/*
 * Design philosophy: 「お庭の帳場」。生成りの紙、墨の可読性、松葉色の安心、奉行朱の決断点を用い、
 * 過剰な装飾に頼らず、帳面の罫線と印章で日本的な実務の美しさを表現する。
 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');

/* ── ベースリセット（Tailwind preflight 相当）── */
*, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; }
html { -webkit-text-size-adjust: 100%; -moz-tab-size: 4; tab-size: 4; }
body { margin: 0; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-size: inherit; font-weight: inherit; }
p, figure, blockquote, dl, dd, pre, hr { margin: 0; }
ol, ul, menu { list-style: none; margin: 0; padding: 0; }
b, strong { font-weight: bolder; }
small { font-size: 80%; }
img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }
table { border-collapse: collapse; border-color: inherit; text-indent: 0; }
button, input, optgroup, select, textarea { font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; color: inherit; margin: 0; padding: 0; }
button, [type="button"], [type="submit"] { -webkit-appearance: button; background-color: transparent; background-image: none; cursor: pointer; }
summary { display: list-item; }
[hidden] { display: none !important; }



:root { --background: #f7f3e9; --foreground: #242820; --border: #d8d1c0; --ring: #b6412c; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; min-width: 320px; background: var(--background); color: var(--foreground); font-family: "Noto Sans JP", sans-serif; font-size: 16px; line-height: 1.8; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }

.site-shell { overflow: hidden; background: #f7f3e9; }
.page-width { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.site-header { position: relative; z-index: 20; height: 92px; display: flex; align-items: center; gap: 40px; width: min(1280px, calc(100% - 48px)); margin: 0 auto; }
.brand { display: inline-flex; align-items: center; gap: 11px; flex: none; }
.brand-symbol { position: relative; display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid rgba(182,65,44,.45); background: #faf7ef; box-shadow: 3px 3px 0 #e6d9bf; }
.brand-symbol::before, .brand-symbol::after { content: ""; position: absolute; width: 6px; height: 6px; border-color: #b6412c; pointer-events: none; }.brand-symbol::before { top: 3px; left: 3px; border-top: 1px solid; border-left: 1px solid; }.brand-symbol::after { right: 3px; bottom: 3px; border-right: 1px solid; border-bottom: 1px solid; }
.brand-mark { width: 33px; height: 33px; object-fit: contain; }
.brand-wording { display: grid; line-height: 1; gap: 6px; }
.brand-kicker { color: #77816a; font-size: 9px; letter-spacing: .17em; font-weight: 700; }
.brand-name { font-family: "Zen Old Mincho", serif; font-size: 27px; font-weight: 900; letter-spacing: .08em; line-height: 1; }
.desktop-nav { display: flex; align-items: center; justify-content: flex-end; gap: 29px; margin-left: auto; color: #40463a; font-size: 13px; font-weight: 600; }
.desktop-nav a { transition: color .18s ease; }
.desktop-nav a:hover { color: #b6412c; }
.header-contact { border: 1px solid #b6412c; background: #b6412c; color: white; display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; font-size: 12px; font-weight: 700; letter-spacing: .04em; box-shadow: 4px 4px 0 #e8d9bd; transition: transform .16s cubic-bezier(.23,1,.32,1), box-shadow .16s cubic-bezier(.23,1,.32,1); }
.header-contact:hover { transform: translate(-1px,-1px); box-shadow: 6px 6px 0 #e8d9bd; }
.header-contact:active, .button-primary:active, .form-submit:active { transform: scale(.98); }
.menu-toggle { display: none; margin-left: auto; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: transparent; color: #242820; }
.mobile-nav { position: absolute; z-index: 18; inset: 92px 0 auto; display: grid; padding: 10px 24px 22px; background: #f7f3e9; border-top: 1px solid #dfd6c4; box-shadow: 0 14px 22px rgba(39, 42, 30, .08); }
.mobile-nav a { padding: 14px 0; border-bottom: 1px solid #ded6c6; font-size: 14px; font-weight: 600; }

.hero-section { position: relative; min-height: 626px; isolation: isolate; border-top: 1px solid #e6dfcf; }
.hero-image { max-width: none; height: 100%; position: absolute; z-index: -3; inset: 0; height: 100%; width: 100%; object-fit: cover; object-position: center; filter: saturate(.82) contrast(.97); }
.hero-wash { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(247,243,233,.985) 0%, rgba(247,243,233,.94) 31%, rgba(247,243,233,.52) 52%, rgba(247,243,233,.06) 78%, rgba(32,45,24,.12) 100%); }
.hero-section::before { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .45; background-image: radial-gradient(rgba(70,64,48,.16) .55px, transparent .55px); background-size: 5px 5px; mix-blend-mode: multiply; pointer-events: none; }
.hero-inner { width: min(1160px, calc(100% - 48px)); min-height: 576px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 64px 0 76px; }
.hero-copy { width: min(590px, 57%); animation: rise-in .58s cubic-bezier(.23,1,.32,1) both; }
.eyebrow, .section-kicker { display: flex; align-items: center; gap: 10px; color: #647254; font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.eyebrow span { width: 24px; height: 1px; background: #b6412c; }
.hero-copy h1, h2 { margin: 17px 0 0; font-family: "Zen Old Mincho", serif; font-weight: 700; letter-spacing: .035em; line-height: 1.45; }
.hero-copy h1 { max-width: 540px; font-size: clamp(40px, 4.55vw, 65px); text-shadow: 0 1px 0 rgba(255,255,255,.4); }
.hero-copy h1 em { color: #b6412c; font-style: normal; position: relative; }
.hero-copy h1 em::after { content: ""; position: absolute; z-index: -1; left: -4px; right: -4px; bottom: 4px; height: 8px; background: #decf94; opacity: .6; }
.hero-lead { max-width: 480px; margin: 20px 0 26px; color: #495047; font-size: 15px; font-weight: 500; line-height: 2; }
.hero-actions { display: flex; align-items: center; gap: 24px; }
.button-primary, .button-secondary, .form-submit { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 53px; padding: 0 21px; background: #b6412c; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .05em; border: 1px solid #b6412c; transition: transform .18s cubic-bezier(.23,1,.32,1), background .18s ease; }
.button-primary:hover, .form-submit:hover { background: #963320; }
.text-link, .underline-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; border-bottom: 1px solid #7c8072; padding-bottom: 4px; }
.text-link:hover, .underline-link:hover { color: #b6412c; border-color: #b6412c; }
.hero-ledger { position: relative; width: 276px; padding: 31px 29px 27px; background: rgba(250,247,239,.95); border: 1px solid #c5bea9; box-shadow: 12px 12px 0 rgba(56,66,43,.18); animation: rise-in .58s .12s cubic-bezier(.23,1,.32,1) both; }
.hero-ledger::after { content:""; position: absolute; inset: 8px; border: 1px solid rgba(182,65,44,.22); pointer-events: none; }
.stamp { position: absolute; top: -25px; right: 22px; display: grid; place-content: center; width: 72px; height: 72px; border: 2px solid #b6412c; color: #b6412c; font-family: "Zen Old Mincho", serif; font-size: 13px; line-height: 1.4; text-align: center; transform: rotate(8deg); background: rgba(247,243,233,.85); }
.ledger-label { margin: 0; color: #69725f; font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.hero-ledger h2 { margin-top: 7px; font-size: 21px; line-height: 1.65; }
.hero-ledger ul { list-style: none; padding: 16px 0 12px; margin: 15px 0 0; border-top: 1px solid #d3cbb8; border-bottom: 1px solid #d3cbb8; display: grid; gap: 9px; }
.hero-ledger li { display: flex; gap: 7px; align-items: flex-start; color: #555d51; font-size: 11px; line-height: 1.7; font-weight: 500; }
.hero-ledger li svg { margin-top: 3px; color: #a6523d; flex: none; }
.ledger-link { display: inline-flex; align-items: center; gap: 5px; margin-top: 14px; color: #b6412c; font-size: 12px; font-weight: 700; }
.hero-bottom-rule { position: absolute; bottom: 0; left: 0; width: 100%; height: 49px; display: flex; align-items: center; padding-left: max(24px, calc((100vw - 1160px)/2)); border-top: 1px solid rgba(83,96,65,.24); background: rgba(247,243,233,.82); color: #58634d; font-size: 11px; letter-spacing: .12em; }

.quick-notes { display: grid; grid-template-columns: 1.05fr 1.28fr 1.2fr auto; width: min(1160px, calc(100% - 48px)); margin: 0 auto; border: 1px solid #ddd4c2; border-top: 0; background: #fbf9f2; }
.note-item { min-height: 92px; display: flex; gap: 13px; align-items: center; padding: 16px 22px; border-right: 1px solid #ddd4c2; }
.note-item svg { color: #627257; flex: none; }
.note-item div { display: grid; line-height: 1.5; }
.note-item span { color: #7a7b70; font-size: 10px; letter-spacing: .09em; }
.note-item strong { margin-top: 3px; font-size: 13px; font-weight: 700; }
.quick-link { display: flex; align-items: center; gap: 8px; padding: 0 20px; color: #b6412c; font-size: 12px; font-weight: 700; white-space: nowrap; }

.intro-section { display: grid; grid-template-columns: .92fr 1.08fr; gap: 10.5vw; align-items: center; padding: 142px 0 132px; }
.section-kicker { margin: 0; }
.intro-heading h2, .section-header h2, .work-heading h2, .flow-intro h2, .faq-title h2, .contact-copy h2 { font-size: clamp(29px, 3vw, 43px); }
.intro-heading > p:not(.section-kicker) { max-width: 445px; margin: 25px 0 28px; color: #596056; font-size: 14px; line-height: 2.15; }
.service-ledger { position: relative; background: #ece7d9; padding: 13px 28px 9px; border-top: 4px solid #5b7153; box-shadow: 16px 16px 0 #dfd5bc; }
.service-ledger::before { content: ""; position: absolute; top: 0; bottom: 0; left: 49px; width: 1px; background: rgba(182,65,44,.2); }
.ledger-top { display: flex; align-items: center; justify-content: space-between; padding: 11px 0 10px 42px; color: #687560; font-size: 11px; font-weight: 700; letter-spacing: .15em; }
.service-row { position: relative; display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; padding: 22px 0 21px; border-top: 1px solid #cfc6b2; transition: transform .18s cubic-bezier(.23,1,.32,1); }
.service-row:hover { transform: translateX(3px); }
.service-number { color: #a04d39; font-family: "Zen Old Mincho", serif; font-size: 13px; }
.service-row h3 { margin: 0; font-family: "Zen Old Mincho", serif; font-size: 20px; font-weight: 700; letter-spacing: .05em; }
.service-row p { margin: 4px 0 0; color: #606359; font-size: 12px; line-height: 1.75; }
.service-arrow { align-self: center; color: #a64e39; }

.strength-section { background: #52684c; color: #f7f3e9; padding: 113px 0 120px; position: relative; }
.strength-section::after { content:""; position:absolute; inset: 0; opacity:.12; background-image: linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px); background-size: 56px 56px; pointer-events:none; }
.strength-section .page-width { position: relative; z-index: 1; }
.section-kicker.light { color: #d8d7b8; }
.section-header { display: grid; grid-template-columns: 1.2fr .62fr; gap: 70px; align-items: end; }
.section-header h2 { margin-top: 13px; }
.section-stamp { display: grid; place-content: center; width: 57px; height: 57px; margin-top: 17px; border: 1px solid #b6412c; color: #b6412c; background: #f7f3e9; font-family: "Zen Old Mincho", serif; font-size: 12px; font-weight: 700; line-height: 1.45; text-align: center; transform: rotate(-5deg); }.section-stamp.pale { border-color: #dfd7ae; color: #f4edcc; background: transparent; }
.section-header > p { margin: 0 0 6px; color: #e6e4d9; font-size: 13px; line-height: 2; }
.strength-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 65px; border-top: 1px solid rgba(239,239,221,.4); }
.strength-card { min-height: 266px; padding: 27px 35px 20px 0; border-right: 1px solid rgba(239,239,221,.4); }
.strength-card + .strength-card { padding-left: 35px; }
.strength-card:last-child { border-right: 0; padding-right: 0; }
.kanji-number { display: block; color: #dfd7ae; font-family: "Zen Old Mincho", serif; font-size: 23px; }
.card-line { width: 34px; height: 1px; margin: 21px 0; background: #dfd7ae; }
.strength-card h3 { margin: 0; font-family: "Zen Old Mincho", serif; font-size: 20px; line-height: 1.6; }
.strength-card p { margin: 12px 0 0; color: #e3e3d9; font-size: 12px; line-height: 2; }

.work-section { padding: 138px 0 130px; }
.work-heading { display: grid; grid-template-columns: 1fr .48fr; gap: 100px; align-items: end; }
.work-heading h2 { margin-top: 12px; }
.work-heading > p { margin: 0 0 6px; color: #60665c; font-size: 13px; line-height: 2; }
.work-gallery { display: grid; grid-template-columns: 1.18fr .82fr; grid-template-rows: 302px 145px; gap: 16px; margin-top: 60px; }
.work-gallery figure { position: relative; margin: 0; overflow: hidden; background: #d9d7c8; }
.work-gallery img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.85); transition: transform .5s cubic-bezier(.23,1,.32,1); }
.work-gallery figure:hover img { transform: scale(1.035); }
.work-large { grid-row: span 2; }
.work-gallery .field-slip { position: absolute; left: 0; bottom: 0; width: min(86%, 370px); padding: 13px 16px 12px; color: #30382c; background: rgba(250,247,239,.95); border-top: 3px solid #b6412c; box-shadow: 5px 0 0 rgba(58,74,51,.42); display: grid; line-height: 1.55; }
.field-slip::after { content: ""; position: absolute; top: 7px; bottom: 7px; left: 7px; width: 1px; background: rgba(182,65,44,.22); }.field-slip > * { position: relative; padding-left: 7px; }.work-gallery .field-slip span { color: #9f422f; font-size: 9px; font-weight: 700; letter-spacing: .11em; }.work-gallery .field-slip strong { margin-top: 2px; font-family: "Zen Old Mincho", serif; font-size: 16px; font-weight: 700; }.work-gallery .field-slip small { margin-top: 3px; color: #5f655b; font-size: 9px; line-height: 1.55; }
.work-note { display: flex; align-items: center; gap: 15px; padding: 22px 26px; background: #e7ddc4; border-left: 4px solid #b6412c; }
.work-note svg { color: #b6412c; flex: none; }
.work-note p { margin: 0; color: #545449; font-size: 12px; line-height: 1.8; }

.flow-section { padding: 116px 0; background: #ebe5d6; }
.flow-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 10vw; align-items: start; }
.flow-intro > p:not(.section-kicker) { color: #5d6359; margin: 21px 0 24px; max-width: 340px; font-size: 13px; line-height: 2; }
.button-secondary { min-height: 49px; padding: 0 17px; border-color: #627357; background: transparent; color: #43563e; }
.button-secondary:hover { background: #627357; color: #fff; }
.flow-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid #b7b09c; }
.flow-list li { display: grid; grid-template-columns: 68px 1fr; gap: 22px; padding: 23px 0 22px; border-bottom: 1px solid #c6beaa; }
.flow-list li > span { display: grid; place-items: center; align-self: start; width: 37px; height: 37px; border: 1px solid #829075; color: #52684c; font-family: "Zen Old Mincho", serif; font-size: 17px; }
.flow-list h3 { margin: 0; font-family: "Zen Old Mincho", serif; font-size: 20px; line-height: 1.5; }
.flow-list p { margin: 3px 0 0; color: #61675e; font-size: 12px; line-height: 1.8; }

.faq-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 10vw; padding: 136px 0; }
.faq-title h2 { margin-top: 11px; }
.seal-line { display: flex; align-items: center; gap: 12px; margin-top: 38px; }
.seal-line span { display: grid; place-items: center; width: 40px; height: 40px; color: #b6412c; border: 1px solid #b6412c; font-family: "Zen Old Mincho", serif; transform: rotate(-6deg); }
.seal-line i { display: block; height: 1px; width: 62px; background: #b6412c; }
.faq-list { border-top: 1px solid #bbb39f; }
.faq-list details { border-color: #d0c7b5; }
.faq-list summary { gap: 12px; padding: 20px 0; color: #33382e; text-align: left; font-family: "Zen Old Mincho", serif; font-size: 17px; font-weight: 600; line-height: 1.6; }
.faq-list summary:hover { color: #a3422d; text-decoration: none; }
.faq-count { color: #a3422d; font-family: "Noto Sans JP", sans-serif; font-size: 10px; letter-spacing: .08em; margin-right: 7px; }
.faq-list .faq-answer { padding: 0 24px 21px 41px; color: #5b6158; font-size: 13px; line-height: 2; }

.contact-section { position: relative; color: #fffdf7; background: #3e4e3b; padding: 104px 0 100px; overflow: hidden; }
.contact-ink { position: absolute; inset: 0; opacity: .34; background: radial-gradient(circle at 10% 120%, #849273 0 1%, transparent 1.3%), radial-gradient(circle at 90% 10%, #879171 0 1.8%, transparent 2.2%); background-size: 30px 30px, 45px 45px; }
.contact-layout { position: relative; z-index: 1; display: grid; grid-template-columns: .9fr 1.1fr; gap: 10vw; align-items: start; }
.contact-copy h2 { margin-top: 12px; }
.contact-copy > p:not(.section-kicker) { max-width: 400px; margin: 23px 0 25px; color: #e6e7dd; font-size: 13px; line-height: 2.1; }
.contact-details { display: grid; gap: 10px; padding-top: 20px; border-top: 1px solid rgba(247,243,233,.32); }
.contact-details span { display: flex; align-items: center; gap: 9px; color: #e8e8df; font-size: 12px; }
.contact-details svg { color: #e2d195; }
.contact-form { background: #f7f3e9; color: #2d332b; padding: 31px 31px 26px; box-shadow: 11px 11px 0 rgba(26,34,25,.32); }
.form-label { margin: 0 0 19px; color: #5f6e56; font-family: "Zen Old Mincho", serif; font-size: 19px; font-weight: 700; letter-spacing: .08em; }
.contact-form label { display: grid; gap: 6px; margin-top: 12px; color: #555c51; font-size: 11px; font-weight: 700; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid #d3cbb9; border-radius: 0; background: #fffdf8; padding: 10px 11px; color: #2d332b; outline: none; font-size: 13px; font-weight: 500; transition: border-color .16s ease, box-shadow .16s ease; }
.contact-form textarea { resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color: #b6412c; box-shadow: 0 0 0 3px rgba(182,65,44,.1); }
.form-submit { width: 100%; margin-top: 20px; border: 0; cursor: pointer; }
.prototype-note { margin: 11px 0 0; color: #717268; font-size: 10px; line-height: 1.7; text-align: center; }
.site-footer { background: #2e382c; color: #e8e5d9; }
.footer-row { display: flex; align-items: center; justify-content: space-between; min-height: 96px; gap: 24px; }
.footer-brand .brand-symbol { width: 39px; height: 39px; background: transparent; border-color: rgba(242,236,212,.55); box-shadow: none; }.footer-brand .brand-symbol::before, .footer-brand .brand-symbol::after { border-color: #e2d195; }.footer-brand .brand-mark { width: 27px; height: 27px; }
.footer-brand .brand-name { font-size: 23px; }
.footer-row p, .footer-row > span { margin: 0; color: #cad0c1; font-size: 11px; }
.mobile-consult { display: none; }

/* Claude版統合：写真見積り・料金高札・一件落着の現場帳を帳場意匠で一貫させる。 */
.office-bar { background: #354a38; color: #f7f3e9; }
.office-bar-inner { display: flex; justify-content: space-between; gap: 20px; width: min(1280px, calc(100% - 48px)); margin: 0 auto; padding: 8px 0 7px; font-size: 10px; font-weight: 600; letter-spacing: .055em; line-height: 1.45; }
.brand-logo { gap: 0; }.brand-logo-wrap { position: relative; display: block; padding-bottom: 10px; }.brand-logo-wrap > span { position: absolute; right: 0; bottom: 0; left: 19%; color: #40583f; font-size: 13.5px; font-weight: 700; letter-spacing: .19em; line-height: 1; text-align: center; }.brand-logo-image { display: block; width: 286px; height: auto; }
.hero-contact-cards { display: grid; grid-template-columns: 1.12fr .88fr; gap: 12px; width: min(100%, 596px); margin-top: 27px; }
.hero-phone-card, .hero-line-card { min-height: 104px; transition: transform .16s cubic-bezier(.23,1,.32,1), box-shadow .16s cubic-bezier(.23,1,.32,1); }
.hero-phone-card:hover, .hero-line-card:hover, .contact-phone:hover, .contact-line:hover { transform: translateY(-2px); }
.hero-phone-card { display: grid; align-content: center; gap: 1px; padding: 14px 17px; background: #faf7ef; color: #29362b; border-left: 4px solid #b6412c; box-shadow: 4px 4px 0 rgba(93,104,72,.22); }
.contact-label { display: flex; align-items: center; gap: 6px; color: #647254; font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.hero-phone-card strong { font-family: "Zen Old Mincho", serif; font-size: clamp(22px, 2.6vw, 31px); letter-spacing: .04em; line-height: 1.25; }
.hero-phone-card small, .hero-line-card small { font-size: 9px; line-height: 1.5; }
.hero-line-card { display: flex; align-items: center; gap: 10px; padding: 13px 15px; background: #06c755; color: white; box-shadow: 4px 4px 0 rgba(35,126,53,.25); }
.hero-line-card > span { display: grid; gap: 2px; flex: 1; line-height: 1.35; }.hero-line-card strong { font-size: 13px; letter-spacing: .04em; }.hero-line-card small { opacity: .92; }
.hero-contact-note { width: min(100%, 590px); margin: 11px 0 0; color: #596457; font-size: 10px; font-weight: 500; line-height: 1.75; }
.hero-slip { display: inline-block; margin: 17px 0 0; padding: 5px 9px 4px; color: #a44531; background: rgba(250,247,239,.76); border-top: 1px solid #b6412c; border-bottom: 1px solid rgba(182,65,44,.35); font-size: 10px; font-weight: 700; letter-spacing: .1em; }
.price-section { padding: 123px 0 118px; background: #fbf9f2; border-top: 1px solid #e6dfcf; }
.price-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-bottom: 38px; }.price-heading h2, .case-heading h2, .area-section h2 { margin-top: 12px; font-size: clamp(29px, 3vw, 43px); }.price-stamp { display: grid; place-content: center; width: 70px; height: 70px; flex: none; border: 2px double #b6412c; color: #b6412c; background: #faf7ef; font-family: "Zen Old Mincho", serif; font-size: 13px; font-weight: 700; line-height: 1.4; text-align: center; transform: rotate(5deg); }
.price-scroll { overflow-x: auto; border: 1px solid #c9c0ae; background: #fffdf8; }.price-table { width: 100%; min-width: 700px; border-collapse: collapse; font-size: 13px; }.price-table th, .price-table td { border: 1px solid #d3cbb9; padding: 14px 16px; text-align: right; }.price-table thead th { background: #40583f; color: #fffdf7; text-align: center; font-weight: 700; line-height: 1.55; }.price-table tbody th { background: #f4f0e5; color: #394437; text-align: left; font-weight: 700; }.price-table td { font-family: "Zen Old Mincho", serif; font-size: 16px; font-weight: 700; color: #3f4339; }
.price-tax-note { margin: 14px 0 0; color: #60665d; font-size: 11px; line-height: 1.85; }.price-detail-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 34px; margin-top: 43px; }.estimate-card { padding: 26px 28px 22px; color: #f9f6ec; background: #3e4e3b; border-left: 5px solid #b6412c; box-shadow: 8px 8px 0 #cfc6b0; }.small-kicker { margin: 0; color: #ded09d; font-size: 10px; font-weight: 700; letter-spacing: .13em; }.estimate-card h3 { margin: 7px 0 15px; font-family: "Zen Old Mincho", serif; font-size: 20px; line-height: 1.6; }.estimate-card > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px dotted rgba(247,243,233,.32); font-size: 11px; }.estimate-card > div strong { font-family: "Zen Old Mincho", serif; font-size: 15px; white-space: nowrap; }.estimate-card .estimate-total { margin-top: 5px; padding-top: 15px; border-bottom: 0; align-items: baseline; font-weight: 700; }.estimate-card .estimate-total strong { color: #f2d9a0; font-size: 24px; }.estimate-card > p:last-child { margin: 13px 0 0; color: #d8ded3; font-size: 10px; line-height: 1.75; }.price-conditions { padding: 5px 0; }.price-conditions h3 { margin: 0; color: #4e6f49; font-family: "Zen Old Mincho", serif; font-size: 22px; }.price-conditions ul { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; list-style: none; margin: 16px 0 22px; padding: 16px 0; border-top: 1px solid #d7cfbd; border-bottom: 1px solid #d7cfbd; }.price-conditions li { display: flex; align-items: baseline; gap: 7px; color: #555d51; font-size: 12px; }.price-conditions li::before { content: "込"; color: #4e6f49; font-family: "Zen Old Mincho", serif; font-weight: 700; }.price-callout { padding: 16px 17px; background: #eee7d6; border-left: 4px solid #b6412c; }.price-callout strong { color: #3c563a; font-family: "Zen Old Mincho", serif; font-size: 18px; }.price-callout p { margin: 5px 0 0; color: #596057; font-size: 11px; line-height: 1.8; }
.case-section { padding: 125px 0 134px; background: #e9e2d2; }.case-heading { display: grid; grid-template-columns: 1fr .55fr; gap: 80px; align-items: end; margin-bottom: 53px; }.case-heading h2 em, .contact-copy h2 em { color: #b6412c; font-style: normal; }.case-heading > p { margin: 0 0 7px; color: #5d6259; font-size: 13px; line-height: 2; }.case-list { display: grid; gap: 48px; padding-top: 16px; }.case-record { position: relative; display: grid; grid-template-columns: .95fr 1.05fr; background: #fcfaf4; border: 1px solid #cfc4af; box-shadow: 10px 10px 0 rgba(117,102,77,.14); }.case-record::before { content: ""; position: absolute; left: 50%; top: 22px; bottom: 22px; width: 1px; background: #d8cfbc; }.case-seal { position: absolute; z-index: 3; top: -20px; right: 18px; left: auto; display: grid; place-content: center; width: 80px; height: 80px; border: 3px double #b6412c; color: #b6412c; background: #fcfaf4; font-family: "Zen Old Mincho", serif; font-size: 13px; font-weight: 700; line-height: 1.3; text-align: center; transform: rotate(-9deg); box-shadow: 3px 3px 0 rgba(182,65,44,.12); }.case-images { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 22px; }.case-images figure { position: relative; margin: 0; background: #d6d4c8; overflow: hidden; }.case-images img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; transition: transform .4s cubic-bezier(.23,1,.32,1); }.case-record:hover .case-images img { transform: scale(1.025); }.case-images figcaption { position: absolute; left: 0; bottom: 0; padding: 4px 10px; background: #40583f; color: white; font-size: 10px; font-weight: 700; letter-spacing: .1em; }.case-body { padding: 27px 36px 24px; }.case-index { margin: 0; color: #ad4d39; font-size: 10px; font-weight: 700; letter-spacing: .11em; }.case-body h3 { margin: 5px 0 15px; color: #314334; font-family: "Zen Old Mincho", serif; font-size: 23px; font-weight: 700; line-height: 1.55; }.case-body dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid #ddd4c3; }.case-body dl div { display: grid; grid-template-columns: 72px 1fr; gap: 8px; padding: 7px 0; border-bottom: 1px solid #e4dccc; font-size: 11px; }.case-body dt { color: #798172; }.case-body dd { margin: 0; font-weight: 700; }.case-note { margin: 14px 0 0; color: #555d51; font-size: 11px; line-height: 1.9; }
.area-section { display: grid; grid-template-columns: .72fr 1.28fr; gap: 11vw; align-items: center; padding: 100px 0; }.area-rule { display: flex; align-items: center; gap: 11px; margin-top: 20px; color: #a44531; font-family: "Zen Old Mincho", serif; font-size: 11px; letter-spacing: .12em; }.area-rule i { display: block; width: 74px; height: 1px; background: #b6412c; }.area-content { position: relative; padding: 25px 29px; background: #f8f5ec; border-left: 4px solid #556d50; box-shadow: 7px 7px 0 #e0d7c1; }.area-stamp { position: absolute; right: 17px; top: -21px; display: grid; place-content: center; width: 53px; height: 53px; border: 1px solid #b6412c; color: #b6412c; background: #fbf9f2; font-family: "Zen Old Mincho", serif; font-size: 11px; font-weight: 700; line-height: 1.4; text-align: center; transform: rotate(6deg); }.area-pills { display: flex; flex-wrap: wrap; gap: 8px; }.area-pills span { padding: 6px 13px; color: #40583f; background: white; border: 1px solid #cfc7b5; font-size: 12px; font-weight: 700; }.area-pills span.main { background: #40583f; border-color: #40583f; color: white; }.area-content p { margin: 15px 0 0; color: #5e645a; font-size: 12px; line-height: 1.9; }.faq-paper { padding: 5px 25px 0; border-top: 4px solid #42583f; background: #fbf9f2; box-shadow: 8px 8px 0 #e0d7c1; }.faq-paper-label { margin: 13px 0 0; color: #a44531; font-size: 10px; font-weight: 700; letter-spacing: .14em; }
.contact-direct { position: relative; padding: 29px 30px 26px; background: #f7f3e9; color: #2d332b; border-top: 4px solid #b6412c; box-shadow: 11px 11px 0 rgba(26,34,25,.32); }.contact-direct::before { content: "相談帳"; position: absolute; right: 17px; top: -28px; display: grid; place-items: center; width: 54px; height: 54px; border: 1px solid #b6412c; background: #f7f3e9; color: #b6412c; font-family: "Zen Old Mincho", serif; font-size: 11px; font-weight: 700; transform: rotate(6deg); }.contact-phone { display: grid; gap: 2px; padding: 15px 17px; background: #fffdf8; border: 1px solid #d3cbb9; border-left: 4px solid #b6412c; color: #2e382d; transition: transform .16s cubic-bezier(.23,1,.32,1); }.contact-phone > span { display: flex; gap: 6px; align-items: center; color: #637159; font-size: 10px; font-weight: 700; letter-spacing: .09em; }.contact-phone strong { font-family: "Zen Old Mincho", serif; font-size: 31px; letter-spacing: .05em; line-height: 1.25; }.contact-phone small { color: #687067; font-size: 10px; }.contact-line { display: flex; align-items: center; gap: 11px; margin-top: 12px; padding: 13px 16px; background: #fffdf8; color: #276b39; border: 1px solid #8ecf9d; border-left: 5px solid #06c755; transition: transform .16s cubic-bezier(.23,1,.32,1); }.contact-line > span { display: grid; gap: 2px; flex: 1; line-height: 1.35; }.contact-line strong { font-size: 14px; letter-spacing: .03em; }.contact-line small { color: #568060; font-size: 10px; }.contact-caption { margin: 14px 0 0; color: #65685e; font-size: 10px; line-height: 1.8; }.footer-brand { display: inline-flex; padding: 0; background: transparent; }.footer-logo-image { display: block; width: 221px; height: auto; }.footer-row p { max-width: 580px; line-height: 1.75; }

@keyframes rise-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
@media (max-width: 900px) {
  .office-bar-inner { width: min(100% - 32px, 720px); }.brand-logo-image { width: 260px; }.hero-contact-cards { width: min(100%, 530px); }.price-section, .case-section { padding: 90px 0; }.price-detail-grid, .case-heading, .area-section { grid-template-columns: 1fr; gap: 34px; }.case-heading > p { max-width: 500px; }.case-record { grid-template-columns: 1fr; }.case-record::before { left: 22px; right: 22px; top: 50%; bottom: auto; width: auto; height: 1px; }.case-seal { top: -19px; right: 18px; left: auto; }.case-body { padding: 27px 30px; }.area-section { padding: 78px 0; }.contact-direct { max-width: 610px; }
  .site-header { height: 76px; width: min(100% - 32px, 720px); gap: 0; }.desktop-nav, .header-contact { display: none; }.menu-toggle { display: inline-flex; }.mobile-nav { top: 76px; }
  .hero-section { min-height: 680px; }.hero-image { object-position: 64% center; }.hero-wash { background: linear-gradient(90deg, rgba(247,243,233,.98) 0%, rgba(247,243,233,.89) 52%, rgba(247,243,233,.25) 100%); }.hero-inner { width: min(100% - 32px, 720px); min-height: 630px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 68px 0 80px; }.hero-copy { width: min(100%, 590px); }.hero-ledger { width: min(330px, 82%); margin: 15px 0 0 auto; }.hero-bottom-rule { padding-left: 16px; }
  .quick-notes { width: min(100% - 32px, 720px); grid-template-columns: 1fr 1fr; }.note-item:nth-child(2) { border-right: 0; }.note-item:nth-child(3) { border-top: 1px solid #ddd4c2; }.quick-link { border-top: 1px solid #ddd4c2; justify-content: center; }
  .intro-section, .section-header, .work-heading, .flow-layout, .faq-section, .contact-layout { grid-template-columns: 1fr; gap: 42px; }.intro-section, .work-section, .faq-section { padding: 90px 0; }.section-header > p, .work-heading > p { max-width: 500px; }.strength-section, .flow-section { padding: 85px 0; }.strength-grid { margin-top: 40px; }.work-gallery { grid-template-columns: 1fr 1fr; }.flow-intro > p:not(.section-kicker) { max-width: 500px; }.faq-title .seal-line { margin-top: 20px; }.contact-section { padding: 80px 0; }
}
@media (max-width: 600px) {
  .office-bar-inner { display: block; width: calc(100% - 32px); padding: 6px 0; font-size: 9px; text-align: center; }.office-bar-inner span:last-child { display: none; }.brand-logo-image { width: 218px; }.brand-logo-wrap { padding-bottom: 9px; }.brand-logo-wrap > span { font-size: 12px; }.hero-section.claude-hero { min-height: 850px; }.hero-contact-cards { grid-template-columns: 1fr; gap: 8px; margin-top: 20px; }.hero-phone-card, .hero-line-card { min-height: 76px; }.hero-phone-card { padding: 10px 13px; }.hero-phone-card strong { font-size: 25px; }.hero-line-card { padding: 11px 13px; }.hero-contact-note { font-size: 9px; line-height: 1.6; }.price-section, .case-section { padding: 73px 0; }.price-heading { margin-bottom: 27px; }.price-stamp { width: 56px; height: 56px; font-size: 10px; }.price-detail-grid { margin-top: 31px; gap: 25px; }.estimate-card { padding: 21px 18px 18px; box-shadow: 5px 5px 0 #cfc6b0; }.estimate-card h3 { font-size: 17px; }.estimate-card .estimate-total strong { font-size: 21px; }.price-conditions h3 { font-size: 19px; }.price-conditions ul { grid-template-columns: 1fr; margin-bottom: 17px; }.price-callout strong { font-size: 16px; }.case-heading { margin-bottom: 31px; }.case-list { gap: 39px; padding-top: 13px; }.case-record { box-shadow: 6px 6px 0 rgba(117,102,77,.13); }.case-images { padding: 14px; }.case-seal { width: 63px; height: 63px; right: 9px; top: -15px; left: auto; font-size: 11px; }.case-record::before { left: 14px; right: 14px; }.case-body { padding: 22px 18px; }.case-body h3 { font-size: 19px; }.case-body dl { grid-template-columns: 1fr; }.case-body dl div { grid-template-columns: 65px 1fr; }.area-section { padding: 70px 0; }.area-content { padding: 20px 17px; }.contact-direct { padding: 22px 17px 18px; box-shadow: 7px 7px 0 rgba(26,34,25,.32); }.contact-phone strong { font-size: 27px; }.footer-logo-image { width: 161px; }.footer-row p { max-width: 100%; font-size: 10px; }.mobile-consult { gap: 0; padding: 0; }.mobile-consult a { flex: 1; height: 64px; display: flex; align-items: center; justify-content: center; gap: 7px; color: white; font-size: 12px; font-weight: 700; letter-spacing: .03em; }.mobile-consult a:first-child { background: #354a38; }.mobile-consult a:last-child { background: #06c755; }
  body { padding-bottom: 64px; }.page-width { width: calc(100% - 32px); }.brand-mark { width: 38px; height: 38px; }.brand-name { font-size: 23px; }.brand-kicker { font-size: 8px; }.hero-section { min-height: 711px; }.hero-image { object-position: 69% center; }.hero-wash { background: linear-gradient(90deg, rgba(247,243,233,.98) 0%, rgba(247,243,233,.94) 60%, rgba(247,243,233,.34) 100%); }.hero-inner { min-height: 661px; padding: 49px 0 55px; }.eyebrow { font-size: 9px; }.hero-copy h1 { font-size: 39px; line-height: 1.5; }.hero-lead { max-width: 333px; font-size: 13px; line-height: 2; }.hero-actions { gap: 16px; flex-direction: column; align-items: flex-start; }.button-primary { min-height: 50px; font-size: 12px; }.hero-ledger { width: 272px; padding: 26px 24px 22px; margin-top: 8px; }.hero-ledger h2 { font-size: 18px; }.hero-ledger ul { padding: 11px 0; margin-top: 10px; gap: 6px; }.hero-ledger li { font-size: 10px; }.stamp { width: 58px; height: 58px; font-size: 11px; top: -17px; right: 16px; }.hero-bottom-rule { height: 40px; font-size: 9px; }
  .quick-notes { display: block; }.note-item { min-height: 66px; padding: 12px 14px; border-right: 0; border-bottom: 1px solid #ddd4c2; }.note-item:nth-child(3) { border-top: 0; }.quick-link { min-height: 55px; border-top: 0; }.section-kicker { font-size: 10px; }.intro-heading h2, .section-header h2, .work-heading h2, .flow-intro h2, .faq-title h2, .contact-copy h2 { font-size: 28px; }.intro-section, .work-section, .faq-section { padding: 74px 0; }.intro-section { gap: 35px; }.intro-heading > p:not(.section-kicker) { font-size: 13px; }.service-ledger { margin-right: 11px; padding: 8px 18px 6px; box-shadow: 10px 10px 0 #dfd5bc; }.service-ledger::before { left: 38px; }.ledger-top { padding-left: 31px; }.service-row { grid-template-columns: 32px 1fr; gap: 8px; }.service-arrow { display: none; }.service-row h3 { font-size: 17px; }.service-row p { font-size: 11px; }
  .strength-section, .flow-section { padding: 75px 0; }.section-header { gap: 22px; }.strength-grid { grid-template-columns: 1fr; margin-top: 31px; }.strength-card, .strength-card + .strength-card, .strength-card:last-child { min-height: 0; padding: 24px 0; border-right: 0; border-bottom: 1px solid rgba(239,239,221,.4); }.strength-card:last-child { border-bottom: 0; }.card-line { margin: 13px 0; }.strength-card h3 { font-size: 18px; }.strength-card p { margin-top: 8px; }
  .work-heading { gap: 22px; }.section-stamp { width: 49px; height: 49px; margin-top: 13px; font-size: 10px; }.work-gallery { grid-template-columns: 1fr; grid-template-rows: 270px 190px auto; margin-top: 34px; }.work-large { grid-row: auto; }.work-gallery .field-slip { width: min(91%, 370px); padding: 10px 13px; }.work-gallery .field-slip strong { font-size: 14px; }.work-note { padding: 17px; }.flow-layout { gap: 34px; }.flow-list li { grid-template-columns: 50px 1fr; gap: 11px; padding: 18px 0; }.flow-list h3 { font-size: 17px; }.flow-list p { font-size: 11px; }.faq-section { gap: 29px; }.faq-list summary { font-size: 15px; }.faq-list .faq-answer { padding-left: 31px; font-size: 12px; }
  .contact-section { padding: 73px 0; }.contact-layout { gap: 35px; }.contact-copy > p:not(.section-kicker) { font-size: 12px; }.contact-form { padding: 24px 18px 20px; box-shadow: 7px 7px 0 rgba(26,34,25,.32); }.form-grid { grid-template-columns: 1fr; gap: 0; }.footer-row { flex-wrap: wrap; min-height: 130px; padding: 26px 0; gap: 12px; }.footer-row p { order: 3; width: 100%; }.footer-row > span { margin-left: auto; }.mobile-consult { position: fixed; z-index: 30; left: 0; bottom: 0; right: 0; display: flex; align-items: center; justify-content: center; gap: 8px; height: 64px; background: #b6412c; color: #fff; box-shadow: 0 -4px 18px rgba(50,37,27,.18); font-size: 13px; font-weight: 700; letter-spacing: .04em; }
}

/* ── 静的化にともなう追加スタイル ── */
.faq-list details { border-bottom: 1px solid #d0c7b5; }
.faq-list summary { display: flex; align-items: flex-start; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: ""; flex: none; width: 9px; height: 9px; margin: 8px 0 0 auto; border-right: 2px solid #9aa08e; border-bottom: 2px solid #9aa08e; transform: rotate(45deg); transition: transform .18s ease; }
.faq-list details[open] summary::after { transform: rotate(-135deg); margin-top: 12px; }
.faq-answer { padding: 0 24px 21px 41px; color: #5b6158; font-size: 13px; line-height: 2; }

/* 加算項目 */
.addon-block { margin-top: 34px; }
.addon-lead { margin: 0 0 14px; color: #3c563a; font-family: "Zen Old Mincho", serif; font-size: 20px; font-weight: 700; }
.addon-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.addon-grid div { padding: 16px 17px; background: #fffdf8; border: 1px solid #d3cbb9; border-top: 3px solid #40583f; }
.addon-grid dt { margin: 0 0 5px; color: #3c563a; font-family: "Zen Old Mincho", serif; font-size: 15px; font-weight: 700; }
.addon-grid dd { margin: 0; color: #5b6158; font-size: 11px; line-height: 1.85; }
.addon-notes { margin: 16px 0 0; padding: 0 0 0 1.1em; color: #60665d; font-size: 11px; line-height: 1.95; }
.addon-notes li { margin-bottom: 4px; }

/* こんな方に */
.needs-section { padding: 96px 0; background: #fbf9f2; border-top: 1px solid #e6dfcf; }
.needs-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 34px; }
.needs-head h2 { margin-top: 12px; font-size: clamp(29px, 3vw, 43px); }
.needs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 26px; list-style: none; margin: 0; padding: 0; }
.needs-grid li { display: flex; gap: 11px; align-items: baseline; padding: 13px 16px; background: #fffdf8; border: 1px solid #ddd4c2; border-left: 3px solid #627257; font-size: 13px; color: #454b42; }
.needs-grid li::before { content: "刈"; flex: none; color: #fffdf8; background: #627257; width: 1.7em; height: 1.7em; display: grid; place-content: center; font-family: "Zen Old Mincho", serif; font-size: 11px; font-weight: 700; }

@media (max-width: 900px) { .addon-grid { grid-template-columns: 1fr 1fr; } .needs-section { padding: 78px 0; } }
@media (max-width: 600px) { .addon-grid { grid-template-columns: 1fr; } .needs-grid { grid-template-columns: 1fr; } .needs-section { padding: 70px 0; } .needs-head h2 { font-size: 28px; } }

/* ── 問い合わせフォーム ── */
.contact-right { display: grid; gap: 26px; }
.contact-form { border-top: 4px solid #5b7153; }
.form-intro { margin: -12px 0 4px; color: #5f665c; font-size: 12px; line-height: 1.8; }
.form-hint { margin: 7px 0 0; color: #6d746a; font-size: 10px; line-height: 1.7; }
.contact-form select { width: 100%; border: 1px solid #d3cbb9; border-radius: 0; background: #fffdf8; padding: 10px 11px; color: #2d332b; outline: none; font-size: 13px; font-weight: 500; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6' d='M6 8l4 4 4-4'/%3E%3C/svg%3E"); background-position: right .55rem center; background-size: 16px; background-repeat: no-repeat; padding-right: 2rem; }
.contact-form select:focus { border-color: #b6412c; box-shadow: 0 0 0 3px rgba(182,65,44,.1); }
.req { display: inline-block; margin-left: 5px; padding: 1px 6px; background: #b6412c; color: #fff; font-size: 9px; letter-spacing: .06em; vertical-align: 1px; }
.form-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.prototype-note a { color: #a3422d; border-bottom: 1px solid currentColor; }
.footer-row a { border-bottom: 1px solid rgba(202,208,193,.5); }
.footer-row a:hover { color: #fff; }

/* 送信完了・エラーページ */
.result-page { display: grid; place-items: center; min-height: 70vh; padding: 80px 0; }
.result-card { width: min(600px, calc(100% - 48px)); padding: 44px 42px 38px; background: #fbf9f2; border: 1px solid #cfc4af; border-top: 5px solid #5b7153; box-shadow: 12px 12px 0 rgba(117,102,77,.14); text-align: center; }
.result-card.error { border-top-color: #b6412c; }
.result-seal { display: grid; place-content: center; width: 84px; height: 84px; margin: 0 auto 22px; border: 3px double #b6412c; color: #b6412c; font-family: "Zen Old Mincho", serif; font-size: 14px; font-weight: 700; line-height: 1.3; transform: rotate(-7deg); }
.result-card h1 { font-family: "Zen Old Mincho", serif; font-size: 28px; font-weight: 700; line-height: 1.6; }
.result-card p { margin: 18px 0 0; color: #565d53; font-size: 13px; line-height: 2; }
.result-card ul { margin: 20px 0 0; padding: 18px 0; border-top: 1px solid #d7cfbd; border-bottom: 1px solid #d7cfbd; display: grid; gap: 7px; text-align: left; }
.result-card li { color: #555d51; font-size: 12px; }
.result-back { display: inline-flex; margin-top: 26px; padding: 13px 24px; background: #b6412c; color: #fff; font-size: 13px; font-weight: 700; }
.result-back:hover { background: #963320; }

/* プライバシーポリシー */
.policy-main { padding: 72px 0 96px; }
.policy-main h1 { font-family: "Zen Old Mincho", serif; font-size: clamp(28px, 3vw, 40px); font-weight: 700; line-height: 1.5; }
.policy-lead { margin: 20px 0 0; color: #565d53; font-size: 13px; line-height: 2.1; }
.policy-main h2 { margin: 44px 0 0; font-family: "Zen Old Mincho", serif; font-size: 20px; font-weight: 700; line-height: 1.6; color: #3c563a; padding-bottom: 9px; border-bottom: 1px solid #d7cfbd; }
.policy-main h2 + p, .policy-main h2 + ul { margin-top: 14px; }
.policy-main p { color: #565d53; font-size: 13px; line-height: 2.05; }
.policy-main ul { display: grid; gap: 6px; padding-left: 1.2em; list-style: disc; color: #565d53; font-size: 13px; line-height: 2; }
.policy-main dl { margin-top: 14px; border-top: 1px solid #ded6c6; }
.policy-main dl div { display: grid; grid-template-columns: 130px 1fr; gap: 14px; padding: 11px 0; border-bottom: 1px solid #ded6c6; font-size: 13px; }
.policy-main dt { color: #77816a; font-weight: 700; }
.policy-main dd { color: #454b42; }
.policy-back { display: inline-flex; margin-top: 46px; padding: 12px 22px; border: 1px solid #627357; color: #43563e; font-size: 13px; font-weight: 700; }
.policy-back:hover { background: #627357; color: #fff; }

@media (max-width: 900px) { .contact-right { gap: 20px; } }
@media (max-width: 600px) {
  .result-card { padding: 32px 20px 28px; box-shadow: 7px 7px 0 rgba(117,102,77,.14); }
  .result-card h1 { font-size: 22px; }
  .policy-main { padding: 54px 0 72px; }
  .policy-main dl div { grid-template-columns: 1fr; gap: 2px; }
}

/* ── 送信完了画面の連絡ボタン ── */
.result-lead { margin: 18px 0 0; color: #565d53; font-size: 13px; line-height: 2; }
.result-lead strong { color: #3c563a; }
.result-actions { display: grid; gap: 11px; margin: 24px 0 0; text-align: left; }
.result-line, .result-phone { display: flex; align-items: center; gap: 12px; padding: 15px 18px; transition: transform .16s cubic-bezier(.23,1,.32,1); }
.result-line:hover, .result-phone:hover { transform: translateY(-2px); }
.result-line { background: #06c755; color: #fff; box-shadow: 4px 4px 0 rgba(35,126,53,.25); }
.result-line span { display: grid; gap: 2px; line-height: 1.4; }
.result-line strong { font-size: 14px; letter-spacing: .03em; }
.result-line small { font-size: 10px; opacity: .95; }
.result-phone { background: #fffdf8; color: #2e382d; border: 1px solid #d3cbb9; border-left: 4px solid #b6412c; box-shadow: 4px 4px 0 rgba(93,104,72,.18); }
.result-phone svg { color: #b6412c; flex: none; }
.result-phone span { display: grid; gap: 1px; line-height: 1.35; }
.result-phone strong { font-family: "Zen Old Mincho", serif; font-size: 26px; letter-spacing: .04em; }
.result-phone small { color: #687067; font-size: 10px; }
@media (max-width: 600px) { .result-phone strong { font-size: 22px; } }