/* CLASSICAL 不動産売却相談 LP ─ 元デザイン（緑×金×明朝）を保ったまま全面整理
   ・左の色棒（border-left）不使用 / カードの角丸は 0〜3px・影なし（1px の線で区切る）
   ・画面に出る記号文字（矢印・＋・チェック）は全部 CSS の図形
   ・並びの間隔は親の gap / 動きは prefers-reduced-motion:no-preference の中だけ */

:root{
  --green:#073d32; --deep:#032c25; --green-2:#0c4a3d;
  --gold:#b58a35; --gold-d:#8a6624; --gold-l:#dfc78b;
  --ink:#163d34; --muted:#52645b; --paper:#fafaf9; --pale:#f2f4f1; --rule:#dde2db;
  --serif:'Noto Serif JP','Yu Mincho',serif;
  --sans:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif;
  --pad:max(6vw,24px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.9;background:#fff;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
/* WebP 用の picture は箱を作らない（中の img が今までどおり figure の直下として振る舞う） */
picture{display:contents}
figure{margin:0}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p{margin:0}
/* 改行：文節の切れ目で折り返し（auto-phrase＝Chrome/Edge/Galaxy）、最後の行に1〜2文字だけ残さない（pretty）、
   行頭に「ぁ・ー」等を置かない（strict）。1か所ずつ <br> で直すと画面幅が変わった瞬間にまた崩れるので土台で決める */
p,li,summary,h1,h2,h3,h4,label,figcaption,.card-link,.text-link,.btn,.method-tag{word-break:auto-phrase;text-wrap:pretty;line-break:strict}
/* 文節判定が割ってしまう短い語だけ、かたまりで送る（長い語に使うと狭い画面ではみ出すので3〜4文字まで） */
.nw{display:inline-block}
/* 左右から入る動きの途中で横スクロールが出ないように */
main{overflow-x:clip}
em{font-style:normal}
button,input,select,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}

/* 明るい面の中は既定で濃色文字（暗い節の color:#fff を持ち込ませない） */
.reason-card,.method-card,.consultation,.care-list,.faq-list{color:var(--ink)}

/* ── 矢印（文字を使わない） ── */
.arw{display:inline-block;flex:0 0 auto;width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor;
  transform:rotate(45deg);margin-left:4px;transition:transform .2s ease}

/* ── 斜めの帯（次の節の色で下端を削る） ── */
.band{position:relative}
.band::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;background:var(--next-bg);pointer-events:none;z-index:4}
.band--slope::after{height:56px;clip-path:polygon(0 100%,100% 0,100% 100%)}
.band--notch::after{height:44px;clip-path:polygon(0 0,50% 100%,100% 0,100% 100%,0 100%)}
.band--peak::after{height:44px;clip-path:polygon(0 100%,50% 0,100% 100%)}

/* ── ボタン ── */
.btn{display:flex;align-items:center;justify-content:center;gap:14px;min-height:68px;padding:16px 26px;border:0;border-radius:3px;
  font-weight:700;font-size:18px;line-height:1.4;cursor:pointer;text-align:center}
.btn-gold{background:linear-gradient(115deg,#f1dea6,#d5ae5a);color:var(--deep);box-shadow:0 1px 0 #b58a35 inset,0 -1px 0 #b58a35 inset}
.btn-gold .arw{color:var(--deep)}
/* LINEボタン：ブランド色 #06C755 は白文字とのコントラスト比2.3で読めないため、同系の濃い緑（4.6）にする */
.btn-line{background:linear-gradient(180deg,#12a05a,#07883f);color:#fff;text-shadow:0 1px 1px rgba(0,60,25,.25)}
.btn-line .arw{color:#fff}
.ic-line{flex:0 0 auto;width:32px;height:32px}
.btn-txt{display:grid;gap:2px;text-align:left}
.btn-txt b{font-weight:700}
.btn-txt small{font-size:12px;font-weight:500;opacity:.92;letter-spacing:.02em}
.btn-line .btn-txt{flex:1 1 auto}
.contact-line{justify-self:start;width:min(100%,440px);box-shadow:0 0 0 1px rgba(255,255,255,.28)}
.btn-line-outline{background:#fff;color:var(--green);border:1px solid var(--green)}
.cta{position:relative;overflow:hidden;isolation:isolate;transition:transform .12s ease,filter .2s ease}
.cta:hover{filter:brightness(1.05)}
.cta:hover .arw{transform:translate(3px,-1px) rotate(45deg)}
.cta:active{transform:translateY(2px)}

/* ── ヘッダー ── */
.header{position:sticky;top:0;z-index:50;height:84px;display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--pad);background:#fff;border-bottom:1px solid #cdb679}
.wordmark{font:400 28px/1.15 Georgia,serif;letter-spacing:.11em;color:var(--green)}
.wordmark span{display:block;font:500 12px/2 var(--sans);letter-spacing:.24em;color:var(--muted);margin-top:2px}
.gnav{display:flex;align-items:center;gap:30px;font-size:15px;font-weight:500}
.gnav>a:not(.nav-cta){position:relative;padding:6px 0}
.gnav>a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.gnav>a:not(.nav-cta):hover::after{transform:scaleX(1)}
.nav-cta{display:inline-flex;align-items:center;gap:12px;padding:12px 22px;border-radius:3px;background:var(--green);color:#fff;font-weight:700}
.nav-cta .arw{color:var(--gold-l)}
.menu-toggle{display:none}
.mobile-menu{position:fixed;top:76px;left:0;right:0;z-index:49;background:var(--green);color:#fff;padding:10px 22px 18px;display:grid;gap:0}
.mobile-menu[hidden]{display:none}
.mobile-menu a{padding:15px 4px;border-bottom:1px solid rgba(255,255,255,.14);font-weight:500}

/* ── HERO ── */
.hero{min-height:780px;display:grid;align-content:center;gap:26px;padding:48px var(--pad) 150px calc(var(--pad) + 2vw);overflow:hidden;background:#fff}
.hero-photo{position:absolute;inset:0;z-index:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center right}
.hero-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 26%,rgba(255,255,255,.82) 44%,rgba(255,255,255,.08) 76%),
             linear-gradient(0deg,rgba(6,47,41,.3),transparent 26%)}
.hero-copy,.hero-action{position:relative;z-index:2;max-width:660px}
.hero-area{margin:0 0 22px}
.hero-area span{display:inline-block;background:var(--green);color:#fff;font-size:15px;font-weight:700;letter-spacing:.06em;
  padding:6px 18px;transform:skewX(-10deg)}
.hero-area span::before{content:"";display:inline-block;width:7px;height:7px;background:var(--gold-l);margin-right:10px;vertical-align:.18em;transform:rotate(45deg)}
.hero h1{font:600 clamp(48px,5.3vw,80px)/1.32 var(--serif);letter-spacing:.02em;color:var(--green)}
.hero h1>span{display:block}
.hero h1 .bridge{font-size:.62em;margin:10px 0}
.hero h1 em{position:relative;display:inline-block;font-size:1.26em;line-height:1.12;color:var(--gold);font-weight:700}
/* 下線＝毛筆の払い：入りが太く、右上へ抜けながら細く、かすれる（SVGの揺らぎフィルタで筆の縁のざらつき） */
.hero h1 em::after{content:"";position:absolute;z-index:-1;left:-6%;right:-10%;bottom:-.16em;height:.34em;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 36' preserveAspectRatio='none'%3E%3Cdefs%3E%3Cfilter id='r' x='-5%25' y='-30%25' width='110%25' height='160%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9 0.07' numOctaves='2' seed='4' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='%23b58a35' filter='url(%23r)'%3E%3Cpath d='M7 25C20 17 58 14 118 13C190 12 250 9 297 4C291 9 262 13 214 16C160 20 92 24 42 30C25 32 11 34 5 31C1 29 2 27 7 25Z'/%3E%3Cpath d='M148 20C200 16 252 12 293 7C262 14 214 18 168 22Z' opacity='.5'/%3E%3Cpath d='M58 31C112 26 172 22 236 19C192 24 130 29 70 33Z' opacity='.4'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/100% 100%;
  opacity:.92}
.hero-promise{margin-top:30px;font:600 clamp(24px,2.3vw,32px)/1.65 var(--serif);color:var(--green)}
.hero-lead{margin-top:14px;font-size:18px;color:#2c4d43}
.hero-action{display:grid;gap:12px;width:min(100%,520px)}
.action-kicker{font-size:19px;font-weight:700;text-align:center;color:var(--green)}
.action-note{font-size:15px;text-align:center;color:var(--muted)}
.hero-tags{position:absolute;z-index:3;left:calc(var(--pad) + 2vw);bottom:78px;margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.hero-tags a{display:block;background:rgba(255,255,255,.94);border:1px solid rgba(181,138,53,.45);border-radius:2px;padding:6px 18px;font-size:15px;font-weight:500;color:var(--green)}
.vertical-copy{position:absolute;z-index:3;top:0;right:4vw;writing-mode:vertical-rl;font:500 16px/2 var(--serif);letter-spacing:.24em;
  color:#fff;background:rgba(3,44,37,.78);padding:40px 12px 26px}
.scroll-hint{position:absolute;z-index:3;right:5vw;bottom:84px;display:flex;align-items:center;gap:12px;color:#fff;font-size:11px;letter-spacing:.3em}
.scroll-hint i{position:relative;display:block;width:1px;height:46px;background:rgba(255,255,255,.35);overflow:hidden}
.scroll-hint i::after{content:"";position:absolute;left:0;top:0;width:1px;height:16px;background:#fff}

/* ── 共通の節 ── */
.section{padding:100px var(--pad)}
.section-heading{text-align:center;margin:0 auto 52px;max-width:760px;display:grid;gap:16px}
.eyebrow{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:13px;font-weight:700;letter-spacing:.24em;color:var(--gold)}
.eyebrow::before,.eyebrow::after{content:"";width:28px;height:1px;background:currentColor}
.section h2{font:600 clamp(32px,3.3vw,48px)/1.6 var(--serif);letter-spacing:.03em;color:var(--green)}
.section-heading p{font-size:18px;color:var(--muted)}
.sp-br{display:none}

/* ── REASONS ── */
.reasons{padding-bottom:140px}
.reason-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.reason-card{display:grid;grid-template-columns:42% 1fr;background:#fff;border:1px solid var(--rule);border-radius:2px;overflow:hidden;
  transition:border-color .25s ease}
.reason-card:hover{border-color:var(--gold)}
.reason-photo{position:relative;overflow:hidden;min-height:220px}
.reason-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.reason-card:hover .reason-photo img{transform:scale(1.04)}
/* 人物写真は顔が枠に入る位置で切る（中央合わせだと縦長写真の顔が上に切れる）。スマホ348x196・PC228x220・1024幅179x301 で確認 */
.reason-photo img[src*="empty-house"]{object-position:42% 35%}
.reason-photo img[src*="inherit-home"]{object-position:60% 30%}
.reason-photo img[src*="loan-plan"]{object-position:45% 55%}
.reason-no{position:absolute;z-index:2;left:14px;top:14px;background:var(--green);color:var(--gold-l);font:600 18px/1 var(--serif);
  padding:8px 12px;transform:skewX(-10deg);font-variant-numeric:tabular-nums}
.reason-body{display:flex;flex-direction:column;gap:12px;padding:26px 26px 22px}
.reason-body h3{font:700 21px/1.55 var(--serif);color:var(--green)}
.reason-body p{font-size:16px;line-height:1.85;color:var(--muted);text-wrap:pretty}
.reason-note{max-width:1120px;margin:26px auto 0;text-align:center;font-size:16px;color:var(--muted)}
.card-link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:16px;
  border-top:1px solid var(--rule);font-size:15px;font-weight:700;color:var(--green)}
.card-link .arw{color:var(--gold)}

/* ── METHODS ── */
.methods{background:var(--green);color:#fff;padding-bottom:90px}
.methods .eyebrow{color:var(--gold-l)}
.methods h2{color:#fff}
.methods h2 em{color:var(--gold-l);margin-right:.3em}
.methods .section-heading p{color:#d5e1db}
.methods-grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:stretch}
.method-card{display:flex;flex-direction:column;background:#fff;border-radius:2px;overflow:hidden}
.method-photo{aspect-ratio:16/8;overflow:hidden}
.method-photo img{width:100%;height:100%;object-fit:cover}
.method-body{display:flex;flex-direction:column;gap:16px;padding:30px 32px 30px;flex:1}
.method-tag{align-self:flex-start;font-size:15px;font-weight:700;color:var(--gold-d);padding-bottom:4px;
  background:linear-gradient(var(--gold-l),var(--gold-l)) left bottom/100% 1px no-repeat}
.method-title{display:flex;align-items:baseline;gap:16px}
.method-no{font:600 40px/1 var(--serif);color:#c2a464;font-variant-numeric:tabular-nums}
.method-title h3{font:700 32px/1.4 var(--serif);color:var(--green)}
.method-statement{font:700 23px/1.6 var(--serif);color:var(--deep);padding:16px 0;
  background:linear-gradient(var(--gold),var(--gold)) left top/48px 2px no-repeat,linear-gradient(var(--rule),var(--rule)) left bottom/100% 1px no-repeat}
.method-statement b{font-size:1.5em;color:var(--gold-d);margin:0 .08em}
.method-body>p{font-size:16px;color:#3f574c}
.method-support{padding:16px 18px;background:var(--pale)}
.method-support strong{display:block;color:var(--green);margin-bottom:4px}
.text-link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;
  border-top:1px solid #d9c18a;font-size:17px;font-weight:700;color:var(--green)}
.text-link .arw{color:var(--gold)}
.method-note{max-width:1080px;margin:24px auto 0;text-align:center;font-size:13px;line-height:1.8;color:#c9d8d1}
.methods-reassurance{margin-top:34px;text-align:center;font-size:19px;line-height:2;color:#eef4f1}
.methods-reassurance strong{font-size:1.1em;color:#fff}

/* ── CARE ── */
/* 本文が長いので上端でそろえ、写真は読み進めても画面に残る（上下中央だと写真の上に400px超の空きができた） */
.care{display:grid;grid-template-columns:5fr 6fr;align-items:start;gap:5vw;max-width:1260px;margin:0 auto}
.care-content h2{font-size:clamp(30px,2.9vw,42px)}
.care-photo{position:sticky;top:120px;aspect-ratio:5/4}
.care-photo::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--gold);z-index:0}
.care-photo img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.care-photo figcaption{position:absolute;z-index:2;left:20px;bottom:18px;color:#fff;font-size:12px;letter-spacing:.24em;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.care-content{display:grid;gap:22px}
.care-content .eyebrow{justify-content:flex-start}
.care-content .eyebrow::after{display:none}
.care-lead{font-size:18px;color:var(--muted)}
/* 3つの観点：一覧ではなく、何を確かめるかまで書く。手残りは差し引く中身を式で見せる（記号は文字でなくCSSの線） */
.care-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.care-list li{display:grid;grid-template-columns:60px 1fr;gap:0 18px;padding:22px 0;border-bottom:1px solid var(--rule)}
/* 番号＋線画アイコン（SVG：線の太さと色を他の部品とそろえる） */
.cl-mark{display:grid;justify-items:center;align-content:start;gap:6px}
.cl-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--pale);border:1px solid #e3d3ad}
.cl-icon svg{width:28px;height:28px;fill:none;stroke:var(--green);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cl-no{font:600 14px/1 var(--serif);letter-spacing:.08em;color:var(--gold);font-variant-numeric:tabular-nums}
.care-list h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:19px;font-weight:700;line-height:1.5;color:var(--green)}
.care-list h3 small{font-size:13px;font-weight:500;color:var(--gold-d)}
.care-list p{margin-top:6px;font-size:15.5px;line-height:1.9;color:#3f574c}
/* 手残りの式はレシート型の縦並び（横並びだと幅によって「＝」だけ行末に残った） */
.calc{display:grid;grid-template-columns:18px minmax(0,340px);align-items:center;gap:6px 10px;margin-top:14px}
.c-box{display:grid;gap:1px;padding:8px 12px;background:var(--pale);border:1px solid var(--rule);font-size:14px;font-weight:700;line-height:1.4;color:var(--green)}
.c-box small{font-size:11px;font-weight:500;color:var(--muted)}
.c-res{background:var(--green);border-color:var(--green);color:#fff}
.c-op{position:relative;flex:0 0 auto;width:12px;height:12px}
.c-minus::before,.c-eq::before,.c-eq::after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--gold)}
.c-minus::before{top:5px}
.c-eq::before{top:2px}
.c-eq::after{top:8px}
.c-sum{margin-top:8px}
.c-box.c-sum{position:relative}
.c-box.c-sum::before{content:"";position:absolute;left:-28px;right:0;top:-8px;height:1px;background:var(--gold)}
.care-list p.calc-note{margin-top:10px;font-size:12.5px;line-height:1.7;color:var(--muted)}
.care-after{padding:14px 16px;background:var(--pale);font-size:15px;font-weight:500;color:var(--green)}
.signature{font:500 17px/2 var(--serif);color:var(--muted)}
.signature span{display:block;font:22px Georgia,serif;letter-spacing:.14em;color:var(--green);margin-top:6px}

/* ── FLOW ── */
.flow{background:var(--pale)}
.steps{position:relative;list-style:none;margin:0 auto;padding:0;max-width:1120px;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
/* つなぎ線：1本の長い線だと最後の番号の先まで伸び、中心もずれる → 番号の中心から次の番号の中心まで、各項目に1本ずつ */
.steps li:not(:last-child)::after{content:"";position:absolute;z-index:0;left:28px;top:28px;width:calc(100% + 28px);height:1px;background:#c9b27a;transform-origin:left}
.steps li{position:relative;display:grid;gap:18px;align-content:start}
.step-no{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;
  font:600 20px/1 var(--serif);color:var(--gold-d);font-variant-numeric:tabular-nums}
.step-no::before{content:"";position:absolute;inset:8px;border:1px solid var(--gold);background:var(--pale);transform:rotate(45deg);z-index:-1}
.steps li>div{display:grid;gap:8px}
.steps h3{font:700 20px/1.6 var(--serif);color:var(--green)}
.steps p{font-size:16px;color:var(--muted)}

/* ── FAQ ── */
.faq{padding-bottom:140px}
.faq-list{max-width:860px;margin:0 auto;border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:24px 4px;font-size:18px;font-weight:500;color:var(--green)}
.faq summary::-webkit-details-marker{display:none}
.faq .q{flex:0 0 auto;font:600 22px/1 var(--serif);color:var(--gold)}
.pm{position:relative;flex:0 0 auto;width:18px;height:18px;margin-left:auto}
.pm::before,.pm::after{content:"";position:absolute;left:0;top:50%;width:18px;height:1.5px;background:var(--green);transition:transform .25s ease}
.pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0deg)}
.faq details>p{padding:0 44px 24px;font-size:16px;color:var(--muted)}

/* ── CONTACT ── */
.contact{position:relative;background:var(--green);color:#fff;display:grid;grid-template-columns:.9fr 1.1fr;gap:5vw;align-items:start;overflow:hidden;
  background-image:linear-gradient(rgba(7,61,50,.93),rgba(3,44,37,.96)),url('assets/living-room.jpg');
  /* 9割以上を緑で覆っているので小さいWebPで十分（image-set 非対応のブラウザは上の JPG を使う） */
  background-image:linear-gradient(rgba(7,61,50,.93),rgba(3,44,37,.96)),image-set(url('assets/living-room-800.webp') type('image/webp'),url('assets/living-room.jpg') type('image/jpeg'));
  background-size:cover;background-position:center}
.contact-intro{display:grid;gap:20px;padding-top:12px}
.contact-intro .eyebrow{justify-content:flex-start;color:var(--gold-l)}
.contact-intro .eyebrow::after{display:none}
.contact h2{color:#fff;font-size:clamp(32px,3vw,44px)}
.contact h2 em{color:var(--gold-l)}
.contact-intro>p{font-size:19px;color:#dce7e1}
.contact-intro .small{font-size:15px;color:#b9cbc3}
.contact-tel{justify-self:start;display:grid;gap:2px;margin-top:6px;padding:14px 0 0;border-top:1px solid rgba(223,199,139,.45);
  font:600 30px/1.2 Georgia,serif;letter-spacing:.04em;color:#fff}
.contact-tel span{font:500 13px/1.6 var(--sans);letter-spacing:.1em;color:var(--gold-l)}
.consultation{display:grid;gap:18px;background:#fff;border-radius:2px;padding:36px}
.consultation h3{font:700 28px/1.5 var(--serif);color:var(--green)}
.form-notice{font-size:15px;background:var(--pale);border:1px solid var(--rule);padding:12px 16px;color:#3e594c}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.span-2{grid-column:1/-1}
label{display:flex;flex-wrap:wrap;align-items:center;gap:8px 4px;font-size:16px;font-weight:700;color:var(--ink)}
label>input,label>select,label>textarea{flex:1 1 100%}
.required,.optional{flex:0 0 auto;font-size:12px;font-weight:500;line-height:1.6;margin-left:6px;padding:0 7px;border-radius:2px}
.required{background:var(--green);color:#fff}
.optional{background:var(--pale);color:var(--muted)}
input,select,textarea{width:100%;min-width:0;border:1px solid #cfd6cf;background:#fbfcfa;border-radius:2px;padding:14px 12px;color:#263b33;font-size:16px;font-weight:400}
select{min-height:54px}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--gold);background:#fff}
.form-foot{font-size:14px;text-align:center;color:var(--muted)}
/* LINE版：フォームが無いので相談セクションは1列・中央 */
.contact--solo{grid-template-columns:1fr;justify-items:center;text-align:center}
.contact--solo .contact-intro{max-width:640px;justify-items:center}
.contact--solo .contact-intro .eyebrow{justify-content:center}
.contact--solo .contact-tel,.contact--solo .contact-line{justify-self:center}
/* フォーム版 */
.consultation[hidden],.form-status[hidden]{display:none}
.consent{display:flex;align-items:flex-start;gap:10px;font-size:15px;font-weight:500;line-height:1.7}
.consent input{flex:0 0 auto;width:20px;height:20px;margin:3px 0 0;accent-color:var(--green)}
.consent a{color:var(--green);text-decoration:underline}
.form-status{padding:12px 14px;background:#fdf0ee;border:1px solid #efc9c2;color:#8a2417;font-size:14.5px;font-weight:500;line-height:1.7}
.btn:disabled{opacity:.7;cursor:progress}
.form-thanks{align-content:start;text-align:center}
.form-thanks p{font-size:16px;color:#3e594c}
.contact-tel--dark{justify-self:center;color:var(--green);border-top-color:var(--rule)}
.contact-tel--dark span{color:var(--gold-d)}

/* ── FOOTER ── */
.footer{padding:60px var(--pad) 36px;text-align:center;display:grid;gap:18px;justify-items:center}
.footer-logo img{width:120px;height:auto}
.footer-copy{font:500 17px/1.8 var(--serif);color:var(--muted)}
.footer-info{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;max-width:1000px;font-size:14px;color:var(--muted)}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px}
.official-link{display:inline-flex;align-items:center;gap:8px;font-size:14px;padding-bottom:3px;border-bottom:1px solid #bac8bf}
.copyright{font-size:12px;color:var(--muted)}
.mobile-sticky{display:none}

/* ── 表示の出現（動きを許可した端末だけ） ── */
@media (prefers-reduced-motion:no-preference){
  /* 光の帯は transform で動かす（left を動かすと毎フレーム配置と描画のやり直しが走り、スマホで重い） */
  @keyframes ctaShine{0%{transform:translateX(-140%) skewX(-20deg)}55%,100%{transform:translateX(380%) skewX(-20deg)}}
  .cta::after{content:"";position:absolute;top:-10%;bottom:-10%;left:0;width:34%;pointer-events:none;z-index:2;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),rgba(255,255,255,.12),transparent);
    transform:translateX(-140%) skewX(-20deg);animation:ctaShine 3.8s ease-in-out infinite}
  .nav-cta::after{animation-delay:1.1s}
  .ms-main::after{animation-delay:.6s}
  /* 送信ボタンの波紋（影を毎フレーム描き直す）は負荷のわりに効果が薄いので廃止。光の帯だけ残す */
  @keyframes scrollDrop{0%{transform:translateY(-16px)}100%{transform:translateY(46px)}}
  .scroll-hint i::after{animation:scrollDrop 1.8s cubic-bezier(.6,0,.4,1) infinite}
  /* ── ヒーロー：読み込み時に上から順に組み上がる ── */
  @keyframes heroUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
  @keyframes heroDown{from{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:none}}
  @keyframes heroZoom{from{transform:scale(1.1)}to{transform:scale(1)}}
  @keyframes drawLine{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
  @keyframes popIn{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:none}}
  .hero-photo img{animation:heroZoom 2.8s cubic-bezier(.2,.7,.25,1) both}
  .hero-area{animation:heroUp .7s ease both .1s}
  .hero h1>span{animation:heroUp .8s cubic-bezier(.2,.7,.25,1) both}
  .hero h1>span:nth-child(1){animation-delay:.25s}
  .hero h1>span:nth-child(2){animation-delay:.45s}
  .hero h1>span:nth-child(3){animation-delay:.65s}
  .hero h1 em::after{animation:drawLine .6s cubic-bezier(.7,0,.2,1) both 1.1s}
  .hero h1>span:nth-child(3) em::after{animation-delay:1.35s}
  .hero-promise{animation:heroUp .8s ease both .95s}
  .hero-lead{animation:heroUp .8s ease both 1.1s}
  .hero-action{animation:heroUp .8s ease both 1.25s}
  .hero-tags li{animation:popIn .6s cubic-bezier(.34,1.56,.64,1) both}
  .hero-tags li:nth-child(1){animation-delay:1.5s}
  .hero-tags li:nth-child(2){animation-delay:1.6s}
  .hero-tags li:nth-child(3){animation-delay:1.7s}
  .hero-tags li:nth-child(4){animation-delay:1.8s}
  .vertical-copy{animation:heroDown 1s ease both .6s}

  /* ── LINEボタン：数秒おきに小さく跳ねる ── */
  @keyframes lineHop{0%,78%,100%{transform:translateY(0)}84%{transform:translateY(-5px)}90%{transform:translateY(0)}95%{transform:translateY(-2px)}}
  .hero .btn-line,.ms-line{animation:lineHop 3.4s ease-in-out infinite 2.6s}

  /* ── スクロールで出る：場所ごとに動きを変える（全部同じだと単調） ── */
  .js .rv{transition:opacity .75s ease,transform .9s cubic-bezier(.2,.7,.25,1)}
  .js .rv-up{opacity:0;transform:translateY(28px)}
  .js .rv-left{opacity:0;transform:translateX(-44px)}
  .js .rv-right{opacity:0;transform:translateX(44px)}
  .js .rv-zoom{opacity:0;transform:scale(.93)}
  .js .rv-fade{opacity:0}
  .js .rv.on{opacity:1;transform:none}

  /* 見出し：飾り線が伸びる → 説明文が遅れて出る */
  .eyebrow::before{transform-origin:right}
  .eyebrow::after{transform-origin:left}
  .js .section-heading.rv .eyebrow::before,.js .section-heading.rv .eyebrow::after{transform:scaleX(0);transition:transform .7s cubic-bezier(.7,0,.2,1) .2s}
  .js .section-heading.rv.on .eyebrow::before,.js .section-heading.rv.on .eyebrow::after{transform:scaleX(1)}
  .js .section-heading.rv>p{opacity:0;transform:translateY(12px);transition:opacity .7s ease .35s,transform .7s ease .35s}
  .js .section-heading.rv.on>p{opacity:1;transform:none}

  /* お悩みカード：写真が斜めにめくれて、番号が遅れて落ちてくる */
  /* 斜めのめくれ：写真自体を clip-path で切ると毎フレーム写真を描き直す → 上に被せた薄い板を transform で抜く（描き直し不要） */
  .js .reason-card.rv .reason-photo::after{content:"";position:absolute;z-index:1;top:0;bottom:0;left:-30%;width:160%;background:var(--pale);
    pointer-events:none;transform:translateX(0) skewX(-14deg);transition:transform 1s cubic-bezier(.7,0,.2,1) .15s}
  .js .reason-card.rv.on .reason-photo::after{transform:translateX(105%) skewX(-14deg)}
  .js .reason-card.rv .reason-photo img{transform:scale(1.1);transition:transform 1.4s cubic-bezier(.2,.7,.25,1) .15s}
  .js .reason-card.rv.on .reason-photo img{transform:scale(1)}
  .js .reason-card.rv.on:hover .reason-photo img{transform:scale(1.04);transition:transform .6s ease}
  .js .reason-card.rv .reason-no{opacity:0;transform:skewX(-10deg) translateY(-14px)}
  .js .reason-card.rv.on .reason-no{opacity:1;transform:skewX(-10deg);transition:opacity .4s ease .85s,transform .6s cubic-bezier(.34,1.56,.64,1) .85s}

  /* 売り方カード：写真が引いていき、「1週間」が弾む */
  .js .method-card.rv .method-photo img{transform:scale(1.16);transition:transform 1.8s cubic-bezier(.2,.7,.25,1) .1s}
  .js .method-card.rv.on .method-photo img{transform:scale(1)}
  .js .method-card.rv .method-statement b{display:inline-block;opacity:0;transform:scale(.4);transition:opacity .3s ease .75s,transform .6s cubic-bezier(.34,1.56,.64,1) .75s}
  .js .method-card.rv.on .method-statement b{opacity:1;transform:none}

  /* 暮らし：金の枠が遅れて重なり、3項目がぽこぽこ出る */
  .js .care-photo.rv::before{opacity:0;transform:translate(-18px,-18px);transition:opacity .6s ease .5s,transform 1s cubic-bezier(.2,.7,.25,1) .5s}
  .js .care-photo.rv.on::before{opacity:1;transform:none}
  .js .care-content.rv .care-list li{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.25,1)}
  .js .care-content.rv.on .care-list li{opacity:1;transform:none}
  .js .care-content.rv.on .care-list li:nth-child(1){transition-delay:.45s}
  .js .care-content.rv.on .care-list li:nth-child(2){transition-delay:.6s}
  .js .care-content.rv.on .care-list li:nth-child(3){transition-delay:.75s}
  .js .care-content.rv .c-box{opacity:0;transform:scale(.85);transition:opacity .35s ease,transform .45s cubic-bezier(.34,1.56,.64,1)}
  .js .care-content.rv.on .c-box{opacity:1;transform:none}
  .js .care-content.rv.on .c-box:nth-of-type(1){transition-delay:1s}
  .js .care-content.rv.on .c-box:nth-of-type(2){transition-delay:1.1s}
  .js .care-content.rv.on .c-box:nth-of-type(3){transition-delay:1.2s}
  .js .care-content.rv.on .c-box:nth-of-type(4){transition-delay:1.3s}
  .js .care-content.rv.on .c-box:nth-of-type(5){transition-delay:1.5s}

  /* 流れ：線が伸びて、ひし形の番号が回りながら順に出る */
  .js .steps.rv li::after{transform:scaleX(0);transition:transform .5s cubic-bezier(.7,0,.2,1)}
  .js .steps.rv.on li::after{transform:scaleX(1)}
  .js .steps.rv.on li:nth-child(1)::after{transition-delay:.5s}
  .js .steps.rv.on li:nth-child(2)::after{transition-delay:.75s}
  .js .steps.rv.on li:nth-child(3)::after{transition-delay:1s}
  .js .steps.rv li{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.25,1)}
  .js .steps.rv.on li{opacity:1;transform:none}
  .js .steps.rv .step-no::before{transform:rotate(45deg) scale(0);transition:transform .7s cubic-bezier(.34,1.56,.64,1)}
  .js .steps.rv.on .step-no::before{transform:rotate(225deg) scale(1)}
  .js .steps.rv.on li:nth-child(1),.js .steps.rv.on li:nth-child(1) .step-no::before{transition-delay:.3s}
  .js .steps.rv.on li:nth-child(2),.js .steps.rv.on li:nth-child(2) .step-no::before{transition-delay:.55s}
  .js .steps.rv.on li:nth-child(3),.js .steps.rv.on li:nth-child(3) .step-no::before{transition-delay:.8s}
  .js .steps.rv.on li:nth-child(4),.js .steps.rv.on li:nth-child(4) .step-no::before{transition-delay:1.05s}
  @media (max-width:600px){
    .js .steps.rv li::after{transform:scaleY(0)}
    .js .steps.rv.on li::after{transform:scaleY(1)}
  }

  /* よくある質問：1問ずつ */
  .js .faq-list.rv details{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.25,1)}
  .js .faq-list.rv.on details{opacity:1;transform:none}
  .js .faq-list.rv.on details:nth-child(1){transition-delay:.1s}
  .js .faq-list.rv.on details:nth-child(2){transition-delay:.2s}
  .js .faq-list.rv.on details:nth-child(3){transition-delay:.3s}
  .js .faq-list.rv.on details:nth-child(4){transition-delay:.4s}
  .js .faq-list.rv.on details:nth-child(5){transition-delay:.5s}
  html{scroll-behavior:smooth}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ── タブレット ── */
@media (max-width:1000px){
  .gnav>a:not(.nav-cta){display:none}
  .hero{min-height:720px}
  .hero-photo::after{background:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.88) 46%,rgba(255,255,255,.2)),linear-gradient(0deg,rgba(6,47,41,.3),transparent 24%)}
  .reason-grid{grid-template-columns:1fr}
  .methods-grid{grid-template-columns:1fr;max-width:680px}
  .care{grid-template-columns:1fr;gap:56px}
  .care-photo{position:relative;top:auto}
  .care-photo{max-width:720px}
  .steps{grid-template-columns:1fr 1fr;row-gap:44px}
  .steps li::after{display:none}
  .contact{grid-template-columns:1fr}
  .consultation{max-width:760px;width:100%}
}

/* ── スマホ ── */
@media (max-width:600px){
  html{scroll-padding-top:84px}
  body{font-size:16px;padding-bottom:84px}
  .header{height:74px;padding:0 20px}
  .wordmark{font-size:24px}
  .wordmark span{font-size:12px}
  .gnav{display:none}
  .menu-toggle{display:grid;align-content:center;gap:7px;width:40px;height:40px;padding:8px;background:none;border:0;cursor:pointer}
  .menu-toggle span{display:block;height:1.5px;background:var(--green)}
  .mobile-menu{top:74px}

  .hero{min-height:0;display:flex;flex-direction:column;gap:0;padding:0 0 64px;background:var(--green)}
  /* スマホは写真を背景に敷いて文字を重ねる（写真を別に置くと195px下がって相談ボタンが遠くなる） */
  .hero-photo{position:absolute;inset:0;aspect-ratio:auto;order:0;z-index:0}
  .hero-photo img{position:absolute;inset:0;object-position:42% center;filter:brightness(1.07) saturate(1.03)}
  /* スマホは広告から来た人の最短導線＝LINEを先に（金色のフォームボタンはその下） */
  .hero-action .action-kicker{order:0}
  .hero-action .btn-line{order:1}
  .hero-action .btn-gold{order:2}
  .hero-action .action-note{order:3}
  .hero-photo::after{background:radial-gradient(ellipse 75% 14% at 55% 52%,rgba(3,40,33,.36),rgba(3,40,33,0) 75%),linear-gradient(180deg,rgba(3,44,37,.27) 0%,rgba(3,44,37,.33) 40%,rgba(3,44,37,.55) 60%,rgba(5,52,43,.7) 76%,rgba(7,61,50,.9) 100%)}
  .hero-photo::after{-webkit-mask-image:radial-gradient(ellipse 62% 34% at 88% 16%,rgba(0,0,0,.2) 0%,rgba(0,0,0,.55) 45%,#000 100%);mask-image:radial-gradient(ellipse 62% 34% at 88% 16%,rgba(0,0,0,.2) 0%,rgba(0,0,0,.55) 45%,#000 100%)}
  .hero-copy{order:1;background:none;padding:30px 22px 4px;max-width:none;text-shadow:0 1px 3px rgba(3,30,25,.55),0 2px 16px rgba(3,30,25,.5)}
  .hero-area{margin-bottom:18px}
  .hero-area span{font-size:13px;padding:5px 14px}
  .hero h1{font-size:clamp(34px,10.4vw,48px);line-height:1.4;letter-spacing:-.02em;color:#fff}
  .hero h1 em{color:var(--gold-l)}
  .hero h1 .bridge{margin:6px 0}
  .hero-promise{font-size:clamp(21px,6vw,26px);margin-top:22px;color:#fff}
  .hero-lead{font-size:15px;margin-top:12px;color:#e3ece7}
  .hero-lead br{display:none}
  /* 文字をくっきり（2026-09-21）：輪郭に沿った濃い影＋広いぼかし影。太さと大きさを1段上げる */
  .hero-copy{text-shadow:0 1px 2px rgba(0,22,17,.72),0 2px 6px rgba(0,22,17,.45),0 6px 24px rgba(0,22,17,.42)}
  .hero h1{font-weight:700}
  .hero h1 em{color:#f0d68f}
  .hero-promise{font-weight:700;font-size:clamp(23px,6.6vw,28px);line-height:1.6}
  .hero-promise::after{content:"";display:block;width:78%;height:2px;margin-top:16px;background:linear-gradient(90deg,var(--gold-l),rgba(223,199,139,.15))}
  .hero-lead{font-size:16px;font-weight:500;line-height:1.85;margin-top:16px;color:#fff}
  .hero-action{order:3;width:auto;max-width:none;margin-top:18px;padding:0 20px;gap:10px}
  .action-kicker{color:#fff;font-size:17px;text-shadow:0 1px 8px rgba(3,44,37,.7)}
  .action-note{color:#d5e1db;font-size:14px}
  .btn{min-height:64px;font-size:17px;padding:14px 16px}
  .hero-tags{order:4;position:relative;z-index:2;inset:auto;margin:22px 20px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .hero-tags a{text-align:center;font-size:14px;padding:6px 8px;background:rgba(255,255,255,.08);border-color:rgba(223,199,139,.4);color:#fff}
  .vertical-copy,.scroll-hint{display:none}
  .band--slope::after{height:32px}
  .band--notch::after,.band--peak::after{height:28px}

  .section{padding:72px 20px}
  .section-heading{margin-bottom:36px;gap:14px}
  .section h2{font-size:clamp(27px,7.4vw,34px);line-height:1.6;letter-spacing:0}
  .section-heading p{font-size:16px}
  .sp-br{display:block}
  .reasons{padding-bottom:96px}
  /* スマホは4枚を横スクロール（右端を少し見せて、続きがあると分かるようにする） */
  .reason-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:80%;gap:14px;
    overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;
    margin:0 -20px;padding:0 20px 12px;scrollbar-width:none}
  .reason-grid::-webkit-scrollbar{display:none}
  .reason-card{grid-template-columns:1fr;scroll-snap-align:start}
  .reason-photo{min-height:0;aspect-ratio:16/9}
  .reason-body{padding:20px 20px 18px}
  .reason-body h3{font-size:20px}
  .reason-body p{font-size:15px}

  .methods{padding-bottom:72px}
  .method-body{padding:24px 20px}
  .method-title h3{font-size:27px}
  .method-no{font-size:34px}
  .method-statement{font-size:20px}
  .method-body>p{font-size:15px}
  .method-note{text-align:left;font-size:12px}
  .methods-reassurance{font-size:15px;letter-spacing:-.01em}

  .care-photo::before{inset:12px -10px -10px 12px}
  .care-lead{font-size:16px}
  .care-lead br{display:none}
  .care-list li{grid-template-columns:48px 1fr;gap:0 12px;padding:18px 0}
  .cl-icon{width:46px;height:46px}
  .cl-icon svg{width:24px;height:24px}
  .care-list h3{font-size:17px}
  .care-list p{font-size:15px}
  .c-box{padding:6px 10px;font-size:13px}

  .steps{grid-template-columns:1fr;row-gap:30px;padding-left:0}
  .steps li:not(:last-child)::after{display:block;left:27.5px;top:28px;width:1px;height:calc(100% + 30px);transform-origin:top}
  .steps li{grid-template-columns:56px 1fr;gap:20px;align-items:start}
  .steps h3{font-size:18px}
  .steps p{font-size:15px}

  .faq{padding-bottom:96px}
  .faq summary{font-size:16px;line-height:1.7;padding:20px 2px;gap:12px}
  .faq details>p{padding:0 8px 22px 38px;font-size:15px}

  .contact{padding:72px 18px;gap:36px}
  .contact h2{font-size:clamp(27px,7.4vw,34px)}
  .contact-intro>p{font-size:16px}
  .contact-tel{font-size:26px}
  .consultation{padding:26px 18px}
  .consultation h3{font-size:23px}
  .form-grid{grid-template-columns:1fr;gap:18px}

  .footer{padding:48px 20px 30px}
  .footer-info{flex-direction:column;gap:4px}
  .mobile-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;padding-bottom:env(safe-area-inset-bottom);
    background:var(--deep);border-top:1px solid var(--gold);transform:translateY(110%);transition:transform .3s ease}
  .ms-main{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:10px;min-height:66px;padding:12px 10px;
    font-size:16px;font-weight:700;background:linear-gradient(115deg,#f1dea6,#d5ae5a);color:var(--deep)}
  .ms-tel{flex:0 0 76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff;font-size:12px;font-weight:700}
  .ms-tel svg{width:22px;height:22px;fill:var(--gold-l)}
  .ms-main.ms-line{background:linear-gradient(180deg,#12a05a,#07883f);color:#fff;text-shadow:0 1px 1px rgba(0,60,25,.25)}
  .ms-main .ic-line{width:28px;height:28px}
  .contact-line{width:100%}
  body.show-sticky .mobile-sticky{transform:none}
  body.at-contact .mobile-sticky{transform:translateY(110%)}
}
