/* ========================================================================
   Re CREST — style.css（サイト全体のスタイル。このファイル1本だけを読み込みます）
   管理画面のスタイルは admin/admin.css です。
   ======================================================================== */
/* ======================================================================
   1. 基本（色・文字・ボタン・ヘッダー・フッター など全ページ共通）
   ====================================================================== */
:root{--ink:#272626;--ink-80:#3d3b3b;--ink-60:#595959;--ink-40:#8a8a8a;--paper:#fff;--paper-warm:#faf8f3;--mist:#f4f5f7;--mist-2:#e9eaec;--line:#dcdcdc;--line-2:#e9e9e9;--gold:#bda366;--gold-deep:#8c7236;--gold-soft:#e9dec2;--gold-mist:#f6f1e4;--mark-grey:#d5d5d5;--mark-grey-d:#a6a6a6;--mark-gold:#bdb187;--charcoal:#3a3939;--charcoal-2:#595959;--line-green:#06c755;--ff-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;--ff-disp:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;--ff-serif:"Shippori Mincho","Noto Serif JP","Yu Mincho",serif;--ff-en:"Jost","Helvetica Neue",Arial,sans-serif;--r-sm:10px;--r-md:20px;--r-lg:32px;--r-xl:48px;--sh-1:0 1px 3px rgba(39,38,38,.05);--sh-2:0 14px 40px -14px rgba(39,38,38,.2);--sh-3:0 34px 80px -28px rgba(39,38,38,.32);--ease:cubic-bezier(.22,.8,.2,1);--ease-io:cubic-bezier(.65,0,.35,1);--gutter:clamp(20px,4.6vw,64px);--maxw:1240px;--header-h:72px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
}
body{margin:0;font-family:var(--ff-jp);font-size:15px;line-height:1.95;letter-spacing:.04em;color:var(--ink);background:var(--paper);font-feature-settings:"palt" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
@media (min-width:768px){
  body{font-size:16px}
}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,h4,p,figure,dl,dd{margin:0}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:1000;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;transition:top .2s}
.skip:focus{top:12px}
.wrap{width:min(var(--maxw),100% - var(--gutter)*2);margin-inline:auto}
.wrap--narrow{width:min(860px,100% - var(--gutter)*2);margin-inline:auto}
.en{font-family:var(--ff-en);text-transform:uppercase;letter-spacing:.24em;font-weight:400}
.hide-sp{display:none}
.hide-pc{display:block}
.btn.hide-sp{display:none}
@media (min-width:900px){
  .hide-sp{display:block}
  .hide-pc{display:none}
  .btn.hide-sp{display:inline-flex}
}
.nb{display:inline-block}
.gold{color:var(--gold-deep)}
/* ---------- reveal system ---------- */
.js [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease) var(--d,0s),transform 1.2s var(--ease) var(--d,0s)}
.js [data-reveal="fade"]{transform:none}
.js [data-reveal="left"]{transform:translateX(-44px)}
.js [data-reveal="right"]{transform:translateX(44px)}
.js [data-reveal="zoom"]{transform:scale(.94)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js .imgwipe img{clip-path:inset(0 0 100% 0);transform:scale(1.18);transition:clip-path 1.3s var(--ease-io) var(--d,0s),transform 1.8s var(--ease) var(--d,0s)}
.js .imgwipe.is-in img{clip-path:inset(0 0 0 0);transform:none}
.ch{display:inline-block}
.js [data-split] .ch{opacity:0;filter:blur(14px);transform:translateY(.35em);transition:opacity .9s var(--ease),filter .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i)*.05s + var(--d,0s))}
.js [data-split].is-in .ch{opacity:1;filter:blur(0);transform:none}
@media (prefers-reduced-motion:reduce){
  .js [data-reveal],.js .imgwipe img,.js [data-split] .ch{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important}
}
/* ---------- buttons ---------- */
.btn{--bg:var(--ink);--fg:#fff;--bd:var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.8em;min-height:56px;padding:.9em 1.9em;border-radius:999px;background:var(--bg);color:var(--fg);border:1px solid var(--bd);font-weight:700;letter-spacing:.08em;line-height:1.3;text-align:center;transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .3s,color .3s,border-color .3s;isolation:isolate;overflow:hidden}
.btn::before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateY(101%);transition:transform .55s var(--ease);z-index:-1;border-radius:inherit}
.btn:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}
.btn:hover::before{transform:none}
.btn:hover{color:var(--ink);border-color:var(--gold)}
.btn__arr{display:inline-grid;place-items:center;width:1.5em;height:1.5em;border-radius:50%;background:rgba(255,255,255,.18);transition:transform .4s var(--ease)}
.btn:hover .btn__arr{transform:translateX(4px);background:rgba(39,38,38,.12)}
.btn__arr svg{width:.7em;height:.7em}
.btn__ic{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--line-green);flex:none}
.btn__ic svg{width:19px;height:19px;fill:#fff}
.btn--gold{--bg:var(--gold);--fg:var(--ink);--bd:var(--gold)}
.btn--gold::before{background:var(--ink)}
.btn--gold:hover{color:#fff;border-color:var(--ink)}
.btn--ghost{--bg:transparent;--fg:var(--ink);--bd:var(--ink)}
.btn--ghost::before{background:var(--ink)}
.btn--ghost:hover{color:#fff;border-color:var(--ink)}
.btn--ghost .btn__arr{background:rgba(39,38,38,.1)}
.btn--white{--bg:#fff;--fg:var(--ink);--bd:#fff}
.btn--lg{min-height:68px;padding-inline:2.4em;font-size:1.05em}
.btn--sm{min-height:44px;padding:.55em 1.3em;font-size:.88em}
.btn--block{display:flex;width:100%}
.tlink{display:inline-flex;align-items:center;gap:.7em;font-weight:700;letter-spacing:.1em;border-bottom:1px solid currentColor;padding-bottom:.25em;transition:gap .4s var(--ease),color .3s}
.tlink:hover{gap:1.1em;color:var(--gold-deep)}
/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:2000;background:#fff;display:grid;place-items:center;transition:transform 1.1s var(--ease-io) .1s,visibility 0s 1.3s}
.loader.is-done{transform:translateY(-100%);visibility:hidden}
.loader__in{display:grid;justify-items:center;gap:22px}
.loader__mark{overflow:visible}
.loader__mark polygon{opacity:0;transform-box:fill-box;transform-origin:center}
.loader__mark .p1{transform:translate(-40px,26px) rotate(-8deg)}
.loader__mark .p2{transform:translate(44px,-30px) rotate(8deg)}
.loader__mark .p3{transform:translate(0,-50px)}
.loader__mark .p4{transform:translate(0,50px)}
.loader.is-run .loader__mark polygon{opacity:1;transform:none;transition:opacity .9s var(--ease),transform 1.3s var(--ease)}
.loader.is-run .p3,.loader.is-run .p4{transition-delay:.25s}
.loader__word{font-family:var(--ff-en);font-weight:300;letter-spacing:.42em;font-size:clamp(20px,3.4vw,28px);color:var(--ink);opacity:0;transform:translateY(10px);transition:opacity 1s var(--ease) .7s,transform 1s var(--ease) .7s;padding-left:.42em}
.loader.is-run .loader__word{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .loader{display:none}
}
/* ---------- header ---------- */
.hd{position:fixed;inset:0 0 auto 0;z-index:900;height:var(--header-h);display:flex;align-items:center;transition:background .4s,box-shadow .4s,transform .5s var(--ease)}
.hd::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .4s,background .4s}
.hd.is-scrolled::before{border-bottom-color:var(--line-2);background:rgba(255,255,255,.94)}
.hd__in{position:relative;width:min(1440px,100% - var(--gutter)*1.4);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{align-items:center;gap:12px}
.gnav__list{display:flex;align-items:center}
.gnav .gl b,.gnav .gl i,.hd__cta .btn{white-space:nowrap}
.gnav a.gl{position:relative;line-height:1.25}
.gnav .gl i{font-style:normal}
.gnav a.gl::after{content:"";position:absolute;height:2px;background:var(--gold);transition:width .4s var(--ease),left .4s var(--ease)}
.hd__cta{display:none;align-items:center}
.burger{position:relative;width:56px;height:44px;border-radius:999px;background:var(--ink);color:#fff;display:grid;place-items:center;transition:background .3s}
.burger span{position:absolute;left:19px;width:18px;height:1.5px;background:#fff;transition:transform .45s var(--ease),opacity .3s,top .45s var(--ease)}
.burger span:nth-child(1){top:16px}
.burger span:nth-child(2){top:21px}
.burger span:nth-child(3){top:26px}
.burger[aria-expanded="true"] span:nth-child(1){top:21px;transform:rotate(30deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:21px;transform:rotate(-30deg)}
/* SP：ヘッダーをひと回り小さく・狭く */
@media (max-width:899px){
  :root{--header-h:56px}
  .hd__in{gap:12px}
  .logo{gap:9px}
  .burger{width:46px;height:36px}
  .burger span{left:14px}
  .burger span:nth-child(1){top:12px}
  .burger span:nth-child(2){top:17px}
  .burger span:nth-child(3){top:22px}
  .burger[aria-expanded="true"] span:nth-child(1){top:17px}
  .burger[aria-expanded="true"] span:nth-child(3){top:17px}
}
@media (min-width:1280px){
  .gnav{display:block}
  .hd__cta{display:flex}
  .burger{display:none}
}
/* drawer */
.drawer{position:fixed;inset:0;z-index:880;background:var(--paper-warm);transform:translateY(-102%);transition:transform .9s var(--ease-io);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;visibility:hidden}
.drawer.is-open{transform:none;visibility:visible}
.drawer__in{min-height:100%;padding:calc(var(--header-h) + 12px) var(--gutter) calc(28px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-content:start;max-width:1100px;margin-inline:auto}
.drawer__ctas{display:grid;grid-template-columns:1.5fr 1fr;gap:8px}
.drawer__ctas .btn{min-height:50px;padding:.6em .9em;font-size:14px;white-space:nowrap}
.drawer__ctas .btn__arr{display:none}
.drawer__meta{font-size:12px;color:var(--ink-60);line-height:1.8}
body.is-locked{overflow:hidden}
/* floating CTA */
.fcta{position:fixed;right:clamp(14px,2vw,28px);bottom:clamp(14px,2vw,28px);z-index:800;display:none;transform:translateY(120%);opacity:0;transition:transform .7s var(--ease),opacity .5s}
.fcta.is-show{transform:none;opacity:1}
.fcta .btn{box-shadow:var(--sh-3);min-height:62px}
@media (min-width:900px){
  .fcta{display:block}
}
.mbar{position:fixed;inset:auto 0 0 0;z-index:800;display:grid;grid-template-columns:1.5fr 1fr;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line-2);transform:translateY(110%);transition:transform .6s var(--ease)}
.mbar.is-show{transform:none}
.mbar .btn{min-height:50px;padding:.6em 1em;font-size:14px}
@media (min-width:900px){
  .mbar{display:none}
}
@media (max-width:899px){
  body{padding-bottom:0}
  .ft{padding-bottom:84px}
}
/* ---------- section heading ---------- */
.sh{display:grid;gap:14px}
.sh--c{justify-items:center;text-align:center}
.sh__en{display:inline-flex;align-items:center;gap:12px;font-family:var(--ff-en);font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-deep)}
.sh__en::before{content:"";width:34px;height:1px;background:var(--gold)}
.sh--c .sh__en::after{content:"";width:34px;height:1px;background:var(--gold)}
.sh__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(26px,3.6vw,46px);line-height:1.5;letter-spacing:.07em}
.sh__lead{color:var(--ink-60);max-width:44em;text-wrap:balance}
.sh--dark .sh__ttl{color:#fff}
.sh--dark .sh__lead{color:rgba(255,255,255,.72)}
.sh--dark .sh__en{color:var(--gold)}
.sec{padding-block:clamp(72px,11vw,150px);position:relative}
.sec--mist{background:var(--mist)}
.sec--warm{background:var(--paper-warm)}
.ph{background:var(--mist-2);overflow:hidden}
.ph img{width:100%;height:100%;object-fit:cover}
/* notched frame (clip paths are injected by build) */
/* ---------- footer ---------- */
.ft{position:relative;background:var(--charcoal);color:#fff;overflow:hidden}
.ft__cta{position:relative;padding-block:clamp(64px,9vw,120px);text-align:center;background:linear-gradient(160deg,#4a4948 0,#3a3939 60%)}
.ft__cta .sh__ttl{font-size:clamp(24px,3.4vw,42px)}
.ft__cta p{color:rgba(255,255,255,.75);margin-top:14px}
.ft__cta-btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px}
.ft__tel{display:inline-grid;justify-items:center;line-height:1.2;padding:8px 24px}
.ft__tel b{font-family:var(--ff-en);font-weight:400;font-size:clamp(28px,4.4vw,44px);letter-spacing:.1em;color:#fff}
.ft__tel small{font-size:12px;color:rgba(255,255,255,.65);letter-spacing:.1em}
.ft__main{padding-block:clamp(48px,6vw,80px);display:grid;gap:40px;border-top:1px solid rgba(255,255,255,.14)}
@media (min-width:900px){
  .ft__main{grid-template-columns:1.1fr 1.4fr;gap:80px}
}
.ft__addr{margin-top:22px;font-size:13px;color:rgba(255,255,255,.78);line-height:2}
.ft__sns{display:flex;gap:12px;margin-top:20px}
.ft__sns a{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.3);transition:background .3s,border-color .3s,transform .4s var(--ease)}
.ft__sns a:hover{background:var(--gold);border-color:var(--gold);transform:translateY(-3px)}
.ft__sns svg{width:20px;height:20px;fill:#fff}
.ft__nav{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 24px;align-content:start}
@media (min-width:600px){
  .ft__nav{grid-template-columns:repeat(3,1fr)}
}
.ft__nav a{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.14);transition:color .3s,padding .4s var(--ease)}
.ft__nav a b{font-family:var(--ff-en);font-weight:400;letter-spacing:.22em;font-size:12.5px;text-transform:uppercase}
.ft__nav a i{font-style:normal;font-size:12px;color:rgba(255,255,255,.6)}
.ft__nav a:hover{color:var(--gold);padding-left:6px}
.ft__sub{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:6px;grid-column:1/-1;padding-top:14px;font-size:13px}
.ft__sub a{color:rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.3)}
.ft__sub a:hover{color:var(--gold);border-color:var(--gold)}
.ft__copy{padding-block:22px;border-top:1px solid rgba(255,255,255,.14);font-size:11.5px;color:rgba(255,255,255,.6);line-height:1.8;display:grid;gap:4px}
.ft__word{position:absolute;right:-2vw;bottom:-3.2vw;font-family:var(--ff-en);font-weight:300;font-size:clamp(90px,17vw,260px);letter-spacing:.06em;color:rgba(255,255,255,.04);line-height:1;white-space:nowrap;pointer-events:none;user-select:none}
.ft__form{margin-top:22px}
.ft__form .tlink{color:#fff;font-size:14px}
.ft__form .tlink:hover{color:var(--gold)}
[hidden]{display:none!important}
.edge{--ew:clamp(34px,6.2vw,100px);position:relative}
.edge::before,.edge::after{content:"";position:absolute;left:0;right:0;top:-1px;height:calc(var(--ew) + 1px);pointer-events:none}
.edge::before{z-index:6;background:var(--prev,#fff);-webkit-mask:var(--m) center/100% 100% no-repeat;mask:var(--m) center/100% 100% no-repeat}
.edge::after{z-index:7;background:var(--l) center/100% 100% no-repeat}
.e-a{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1440V120Q720 -40 0 120Z' fill='%23000'/%3E%3C/svg%3E");--l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 133Q720 -27 1440 133' fill='none' stroke='%23d6d6d6' stroke-width='2.2' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0 120Q720 -40 1440 120' fill='none' stroke='%23bda366' stroke-width='1.4' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")}
.e-b{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1440V64C1190 124 1010 4 720 58S250 118 0 46Z' fill='%23000'/%3E%3C/svg%3E");--l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M1440 76C1190 136 1010 16 720 70S250 130 0 58' fill='none' stroke='%23d6d6d6' stroke-width='2.2' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M1440 64C1190 124 1010 4 720 58S250 118 0 46' fill='none' stroke='%23bda366' stroke-width='1.4' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")}
.e-c{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1440V14Q720 154 0 14Z' fill='%23000'/%3E%3C/svg%3E");--l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 27Q720 167 1440 27' fill='none' stroke='%23d6d6d6' stroke-width='2.2' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0 14Q720 154 1440 14' fill='none' stroke='%23bda366' stroke-width='1.4' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E")}

/* ======================================================================
   2. ページごとの部品
   ====================================================================== */
/* ---------- FV ---------- */
.fv{position:relative;overflow:hidden;padding-top:var(--header-h);background:linear-gradient(180deg,#f7f4ec 0,#fff 82%)}
.fv__eyebrow{font-family:var(--ff-en);letter-spacing:.28em;font-size:11px;color:var(--gold-deep);margin-bottom:16px;display:flex;align-items:center;gap:12px;text-transform:uppercase}
.fv__eyebrow::before{content:"";width:34px;height:1px;background:var(--gold)}
.fv__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(29px,8.4vw,44px);line-height:1.48;letter-spacing:.06em;color:var(--ink)}
.fv__ttl .ln{display:block}
.fv__ttl .em{color:var(--gold-deep)}
.fv__en{margin-top:18px;font-family:var(--ff-en);font-weight:300;font-size:clamp(14px,3.6vw,20px);letter-spacing:.18em;color:var(--ink-60)}
.fv__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
/* vertical pills */
.pills{display:flex;flex-direction:row-reverse;gap:8px;position:absolute;right:0;top:-4px;z-index:5}
.pill{writing-mode:vertical-rl;text-orientation:upright;background:#fff;border-radius:14px;padding:16px 9px 14px;box-shadow:var(--sh-2);font-family:var(--ff-disp);font-weight:700;font-size:13px;letter-spacing:.2em;line-height:1;color:var(--ink);white-space:nowrap}
.pill b{color:var(--gold-deep);font-weight:900}
.js .pill{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform 1s var(--ease)}
.js body.anime--02 .pill{opacity:1;transform:none}
.js body.anime--02 .pill:nth-child(1){transition-delay:1.3s}
.js body.anime--02 .pill:nth-child(2){transition-delay:1.55s}
.js body.anime--02 .pill:nth-child(3){transition-delay:1.8s}
/* frames */
.fr{position:absolute;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-2);background:var(--mist-2)}
.fr>img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);will-change:transform}
.fr--nf{box-shadow:none;filter:drop-shadow(0 20px 28px rgba(39,38,38,.16));overflow:visible;background:none;border-radius:0}
.fr--nf .fr__in{width:100%;height:100%;overflow:hidden;background:var(--mist-2)}
.fr--nf .fr__in>img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.js .fr{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1.3s var(--ease)}
.js body.anime--01 .fr{opacity:1;transform:none}
/* mobile collage (390 x 560) */
@media (max-width:899px){
  .pills{right:auto;left:5%;top:32%}
  .pill{font-size:12.5px}
}
.fv__news{position:relative;margin-top:20px;z-index:6}
.news-card{display:grid;gap:6px;background:#fff;border-radius:var(--r-md);padding:16px 20px 16px;box-shadow:var(--sh-3);max-width:420px;transition:transform .5s var(--ease)}
.news-card:hover{transform:translateY(-4px)}
.news-card__hd{display:flex;align-items:center;justify-content:space-between;font-family:var(--ff-en);letter-spacing:.24em;font-size:11px;color:var(--gold-deep);text-transform:uppercase}
.news-card__hd span{display:inline-flex;align-items:center;gap:8px}
.news-card__hd svg{width:14px;height:14px;fill:currentColor}
.news-card__t{font-weight:700;font-size:13.5px;line-height:1.6;letter-spacing:.05em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-card__d{font-family:var(--ff-en);font-size:12px;letter-spacing:.14em;color:var(--ink-60)}
.js .fv__news{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js body.anime--03 .fv__news{opacity:1;transform:none}
.fv__scroll{display:none}
@media (min-width:900px){
  .fv{--fa-w:min(34%,46svh);min-height:min(940px,max(720px,100svh))}
  .fv__ttl{font-size:clamp(30px,3.25vw,50px);line-height:1.5}
  .fv__eyebrow{font-size:12px}
  .pills{right:36%;top:clamp(56px,9vh,92px)}
  .pill{font-size:clamp(13px,1.3vw,20px);padding:20px 12px 16px;letter-spacing:.12em}
  .fv__news{position:absolute;left:calc(-2% + var(--fa-w)*.5335 + 12px);bottom:calc(2.5% + 2px);margin:0;width:calc(var(--fa-w)*.4665 - 14px);max-width:none}
  .news-card{padding:12px 16px;gap:4px;border-radius:var(--r-md)}
  .news-card__t{font-size:13px}
  .fv__cta{margin-top:28px}
  .fv__scroll{display:flex;position:absolute;left:60%;bottom:6px;transform:translateX(-50%);flex-direction:column;align-items:center;gap:8px;font-family:var(--ff-en);font-size:10px;letter-spacing:.3em;color:var(--ink-60);z-index:5}
  .fv__scroll i{width:1px;height:46px;background:linear-gradient(var(--ink),transparent);transform-origin:top;animation:scrl 2.2s var(--ease-io) infinite}
}
@keyframes scrl{0%{transform:scaleY(0)}60%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
/* big FV tweaks for ultra-wide */
/* ---------- INTRO (住宅の相談窓口 card) ---------- */
.intro{padding-block:clamp(56px,9vw,120px);background:var(--mist);position:relative;overflow:hidden}
/* ---------- LAYERS (overlapping illustrations) ---------- */
.layers{position:relative;padding-block:clamp(80px,12vw,170px);overflow:hidden;background:#fff}
.layers__grid{display:grid;gap:56px;align-items:center}
@media (min-width:900px){
  .layers__grid{grid-template-columns:.9fr 1.1fr;gap:40px}
}
.layers__txt{position:relative;z-index:4}
.layers__txt .sh__ttl{font-size:clamp(26px,3.4vw,44px)}
.layers__txt p{margin-top:22px;color:var(--ink-60);max-width:32em}
.layers__quote{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px 16px;font-family:var(--ff-serif);font-weight:700;font-size:clamp(18px,2.2vw,26px);letter-spacing:.1em}
.layers__quote span{border-bottom:2px solid var(--gold);padding-bottom:4px}
.stage{position:relative;aspect-ratio:1/1.02;width:100%;max-width:640px;margin-inline:auto}
@media (min-width:900px){
  .stage{aspect-ratio:1/1;max-width:none}
}
.pl{position:absolute;will-change:transform;transform:translate3d(var(--px,0),var(--py,0),0) rotate(var(--pr,0deg))}
.pl__in{display:block;background:var(--c,#fff);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-2);transition:opacity 1.1s var(--ease) var(--d,0s),transform 1.4s var(--ease) var(--d,0s)}
.js .pl__in{opacity:0;transform:translate(var(--fx,0),var(--fy,60px)) rotate(var(--fr,0deg)) scale(.9)}
.js .pl.is-in .pl__in{opacity:1;transform:none}
.pl__in img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;padding:6%}
.pl.p1{left:0;top:6%;width:54%;aspect-ratio:1.28;--c:var(--gold-mist);--fx:-80px;--fy:40px;--fr:-6deg;z-index:2}
.pl.p2{right:2%;top:0;width:44%;aspect-ratio:1;--c:#fff;--fx:70px;--fy:-30px;--fr:6deg;z-index:3}
.pl.p3{left:20%;top:44%;width:42%;aspect-ratio:1;--c:#eceef0;--fx:-30px;--fy:80px;--fr:-4deg;z-index:4}
.pl.p4{right:0;top:38%;width:40%;aspect-ratio:1;--c:var(--gold-soft);--fx:80px;--fy:40px;--fr:5deg;z-index:2}
.pl.p5{left:-4%;bottom:0;width:32%;aspect-ratio:1;--c:#fff;--fx:-60px;--fy:60px;--fr:-7deg;z-index:5}
.pl.p6{right:12%;bottom:-3%;width:36%;aspect-ratio:1.3;--c:var(--gold-mist);--fx:50px;--fy:80px;--fr:4deg;z-index:5}
.pl.p7{left:46%;top:-6%;width:16%;aspect-ratio:1;z-index:6}
.pl .dot{display:block;width:100%;height:100%;border-radius:50%;background:var(--gold);opacity:.9}
@keyframes spin{to{transform:rotate(360deg)}}
/* ---------- SALE band ---------- */
.sale{position:relative;background:var(--charcoal);color:#fff;overflow:hidden}
.sale__grid{display:grid;gap:0}
@media (min-width:900px){
  .sale__grid{grid-template-columns:1.05fr .95fr;min-height:620px}
}
.sale__body{position:relative;padding:clamp(56px,8vw,110px) var(--gutter);display:grid;gap:22px;align-content:center;z-index:2}
@media (min-width:900px){
  .sale__body{padding-left:max(var(--gutter),calc((100vw - var(--maxw))/2))}
}
.sale__tag{display:inline-flex;align-self:start;justify-self:start;padding:6px 16px;border:1px solid var(--gold);color:var(--gold);border-radius:999px;font-size:12px;letter-spacing:.14em;font-weight:700}
.sale__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(24px,3.2vw,42px);line-height:1.55;letter-spacing:.07em}
.sale__ttl small{display:block;font-size:.5em;color:var(--gold);letter-spacing:.12em;margin-bottom:12px;line-height:1.7}
.sale__body p{color:rgba(255,255,255,.78);max-width:36em}
.sale__body p b{color:#fff}
.sale__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.sale__img{position:relative;min-height:340px}
.sale__img .ph{position:absolute;inset:0}
.sale__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--charcoal),transparent 35%)}
@media (max-width:899px){
  .sale__img::after{background:linear-gradient(180deg,var(--charcoal),transparent 40%)}
}
.sale__img .stamp{position:absolute;right:6%;bottom:8%;z-index:3;width:clamp(110px,14vw,170px);aspect-ratio:1;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;text-align:center;font-family:var(--ff-disp);font-weight:900;line-height:1.3;font-size:clamp(14px,1.6vw,18px);letter-spacing:.08em;animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-12px) rotate(-6deg)}}
/* ---------- SERVICE 3D split ---------- */
.svc{position:relative;background:var(--paper-warm);padding-top:clamp(72px,10vw,140px)}
.svc__head{padding-bottom:clamp(30px,5vw,70px)}
.svc__head .sh__lead{margin-top:10px}
.svc3d{position:relative;display:grid}
.svc3d__stage{display:none}
.svc__item{position:relative;padding:clamp(28px,6vw,48px) 0;border-top:1px solid var(--line)}
.svc__item .svc__fig{margin-bottom:22px;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:3/2}
.svc__item .svc__fig img{width:100%;height:100%;object-fit:cover}
.svc__num{font-family:var(--ff-en);font-weight:300;font-size:clamp(54px,8vw,110px);line-height:1;letter-spacing:.04em;color:transparent;-webkit-text-stroke:1px var(--gold)}
.svc__en{font-family:var(--ff-en);font-size:12px;letter-spacing:.34em;color:var(--gold-deep);text-transform:uppercase;margin-top:6px}
.svc__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(24px,3vw,36px);letter-spacing:.08em;margin-top:6px;line-height:1.5}
.svc__txt{margin-top:14px;color:var(--ink-60);max-width:32em}
.svc__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.svc__tags span{padding:4px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12.5px;letter-spacing:.08em}
.svc__item .tlink{margin-top:22px}
@media (min-width:900px){
  .svc3d{grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,90px)}
  .svc3d__stage{display:block;position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));align-self:start}
  .svc__item{min-height:calc(100svh - var(--header-h));display:flex;flex-direction:column;justify-content:center;border-top:0;padding:0}
  .svc__item .svc__fig{display:none}
  .svc__list{padding-left:clamp(0px,2vw,30px)}
  .svc__item .svc__body{opacity:.28;transform:translateX(18px);transition:opacity .7s var(--ease),transform .9s var(--ease)}
  .svc__item.is-active .svc__body{opacity:1;transform:none}
  .svc3d__stage{perspective:1500px;perspective-origin:50% 45%}
}
.stage3d{position:absolute;inset:0;display:grid;place-items:center}
.stage3d__bgnum{position:absolute;left:4%;top:8%;font-family:var(--ff-en);font-weight:200;font-size:clamp(100px,15vw,220px);line-height:1;color:rgba(189,163,102,.16);letter-spacing:.02em;pointer-events:none}
.stage3d__ring{position:absolute;width:min(78%,560px);aspect-ratio:1;border-radius:50%;border:1px solid var(--gold);opacity:.55}
.stage3d__ring.r2{width:min(58%,420px);border-style:dashed;opacity:.4;animation:spin 50s linear infinite reverse}
.prism{position:relative;width:var(--w);height:calc(var(--w)*1.32);--w:min(34vw,350px);transform-style:preserve-3d;transform:rotateX(-6deg) rotateY(var(--ry,0deg));will-change:transform}
.face{position:absolute;inset:0;border-radius:22px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:rotateY(calc(var(--i)*72deg)) translateZ(calc(var(--w)*.688 + 1px));background:#fff;box-shadow:0 0 0 1px rgba(39,38,38,.06),var(--sh-3)}
.face img{width:100%;height:100%;object-fit:cover}
.face--ill{background:var(--gold-mist)}
.face--ill img{object-fit:contain;padding:10%;mix-blend-mode:multiply}
.face__lb{position:absolute;left:0;right:0;bottom:0;padding:44px 20px 18px;background:linear-gradient(transparent,rgba(30,28,26,.72));color:#fff}
.face__lb b{display:block;font-family:var(--ff-en);font-weight:400;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-soft)}
.face__lb span{font-family:var(--ff-disp);font-weight:700;font-size:20px;letter-spacing:.08em}
.stage3d__shadow{position:absolute;left:50%;bottom:9%;width:min(52%,360px);height:34px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(39,38,38,.28),transparent 70%);filter:blur(6px)}
.stage3d__idx{position:absolute;right:2%;bottom:7%;display:flex;align-items:baseline;gap:10px;font-family:var(--ff-en);font-weight:300;letter-spacing:.14em;color:var(--ink-60)}
.stage3d__idx b{font-weight:300;font-size:44px;color:var(--ink);line-height:1}
.stage3d__bar{position:absolute;left:4%;bottom:7%;width:min(34%,220px);height:1px;background:var(--line)}
.stage3d__bar i{display:block;height:100%;width:var(--p,0%);background:var(--gold-deep)}
/* ---------- NUMBERS ---------- */
.nums{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.nums__grid{display:grid;gap:34px;grid-template-columns:1fr}
@media (min-width:760px){
  .nums__grid{grid-template-columns:repeat(3,1fr);gap:0}
}
.num{position:relative;padding:12px 0 12px;text-align:center}
@media (min-width:760px){
  .num+.num{border-left:1px solid rgba(255,255,255,.16)}
}
.num__v{font-family:var(--ff-en);font-weight:300;font-size:clamp(64px,10vw,128px);line-height:1;letter-spacing:.02em;color:var(--gold)}
.num__v small{font-size:.32em;margin-left:.2em;letter-spacing:.1em;color:#fff;font-family:var(--ff-jp);font-weight:700}
.num__l{margin-top:10px;font-weight:700;letter-spacing:.14em}
.num__n{font-size:11.5px;color:rgba(255,255,255,.55);margin-top:4px}
.nums__note{margin-top:34px;text-align:center;font-size:11.5px;color:rgba(255,255,255,.5)}
/* ---------- BUSINESS (gold) ---------- */
.biz{background:var(--gold);position:relative;overflow:hidden}
.biz__grid{display:grid;gap:22px;margin-top:clamp(34px,5vw,60px)}
@media (min-width:860px){
  .biz__grid{grid-template-columns:1fr 1fr;gap:28px}
}
.bcard{position:relative;display:grid;background:#fff;border-radius:var(--r-lg);overflow:hidden;color:var(--ink);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.bcard:hover{transform:translateY(-6px);box-shadow:var(--sh-3)}
.bcard__img{aspect-ratio:16/10;overflow:hidden}
.bcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.bcard:hover .bcard__img img{transform:scale(1.06)}
.bcard__body{padding:clamp(22px,3vw,36px);display:grid;gap:10px}
.bcard__en{font-family:var(--ff-en);letter-spacing:.3em;font-size:12px;color:var(--gold-deep);text-transform:uppercase}
.bcard__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(20px,2.2vw,26px);letter-spacing:.08em;line-height:1.5}
.bcard p{color:var(--ink-60);font-size:14.5px}
.bcard .tlink{justify-self:start;margin-top:8px}
.biz .sh__en{color:var(--ink)}
.biz .sh__en::before,.biz .sh--c .sh__en::after{background:var(--ink)}
/* ---------- COMPANY summary ---------- */
.co{display:grid;gap:40px}
@media (min-width:900px){
  .co{grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}
}
.co__txt p{margin-top:20px;color:var(--ink-60)}
.co__txt .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.dl{border-top:1px solid var(--line)}
.dl>div{display:grid;gap:2px;padding:16px 4px;border-bottom:1px solid var(--line)}
@media (min-width:560px){
  .dl>div{grid-template-columns:9.5em 1fr;gap:16px}
}
.dl dt{font-weight:700;color:var(--ink-60);font-size:13.5px;letter-spacing:.1em}
.dl dd{font-size:15px}
.dl a{border-bottom:1px solid var(--gold)}
.map{margin-top:clamp(36px,5vw,64px);border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/8;background:var(--mist-2);position:relative}
@media (max-width:700px){
  .map{aspect-ratio:4/3.4}
}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.55) contrast(1.05)}
/* ---------- NEWS / FEED ---------- */
.feed{display:grid;gap:18px;grid-template-columns:repeat(2,1fr);margin-top:clamp(30px,4vw,52px)}
@media (min-width:760px){
  .feed{grid-template-columns:repeat(3,1fr);gap:24px}
}
@media (min-width:1080px){
  .feed{grid-template-columns:repeat(5,1fr);gap:20px}
  .feed--l{grid-template-columns:repeat(4,1fr)}
}
.fcard{position:relative;display:grid;gap:12px;align-content:start;color:inherit;cursor:pointer;text-align:left}
.fcard__img{position:relative;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;background:var(--mist-2)}
.fcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.fcard:hover .fcard__img img{transform:scale(1.07)}
.fcard__ph{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(145deg,var(--gold-mist),var(--mist))}
.fcard__ph img{width:42%;height:auto;object-fit:contain;opacity:.9}
.fcard__ig{position:absolute;right:10px;top:10px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center}
.fcard__ig svg{width:15px;height:15px;fill:var(--ink)}
.fcard__d{font-family:var(--ff-en);font-size:12px;letter-spacing:.16em;color:var(--gold-deep)}
.fcard__t{font-weight:700;font-size:13.5px;line-height:1.7;letter-spacing:.05em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.feed__more{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(34px,5vw,56px)}
.feed__status{margin-top:18px;font-size:12px;color:var(--ink-40);text-align:center}
/* modal */
.modal{position:fixed;inset:0;z-index:1500;display:none;place-items:center;padding:20px;background:rgba(30,28,26,.66);backdrop-filter:blur(6px)}
.modal.is-open{display:grid;animation:fadein .35s var(--ease)}
@keyframes fadein{from{opacity:0}}
.modal__box{position:relative;background:#fff;border-radius:var(--r-lg);max-width:760px;width:100%;max-height:88svh;overflow:auto;padding:clamp(24px,4vw,44px)}
.modal__x{position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:50%;background:var(--mist);display:grid;place-items:center;font-size:22px;line-height:1}
.modal__img{border-radius:var(--r-md);overflow:hidden;margin-bottom:20px}
.modal__d{font-family:var(--ff-en);letter-spacing:.16em;color:var(--gold-deep);font-size:13px}
.modal__t{font-family:var(--ff-disp);font-weight:700;font-size:clamp(20px,2.6vw,26px);margin:6px 0 16px;line-height:1.55}
.modal__b{white-space:pre-line;color:var(--ink-80);font-size:14.5px;line-height:2}
.modal__b+.btn{margin-top:22px}
.modal--img .modal__box{padding:12px;max-width:1100px;background:#fff}
.modal--img img{border-radius:var(--r-md);width:100%}
/* ---------- CONTACT block (home) ---------- */
.qr{display:none;justify-items:center;gap:10px;text-align:center;font-size:12.5px;color:var(--ink-60)}
.qr svg{width:150px;height:150px;border-radius:14px;padding:10px;background:#fff;box-shadow:var(--sh-1)}
@media (min-width:900px){
  .qr{display:grid}
}
.phero{position:relative;overflow:hidden;padding-top:calc(var(--header-h) + clamp(30px,5vw,70px));padding-bottom:clamp(40px,6vw,90px);background:linear-gradient(180deg,#f7f4ec 0,#fff 100%)}
.phero__grid{position:relative;z-index:2;display:grid;gap:34px;align-items:center}
@media (min-width:900px){
  .phero__grid{grid-template-columns:1.05fr .95fr;gap:60px}
  .phero__grid--solo{grid-template-columns:1fr}
}
.crumb{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--ink-60);letter-spacing:.08em;margin-bottom:22px}
.crumb a:hover{color:var(--gold-deep)}
.crumb li+li::before{content:"/";margin-right:8px;color:var(--ink-40)}
.phero__en{font-family:var(--ff-en);font-weight:300;font-size:clamp(14px,1.6vw,18px);letter-spacing:.36em;color:var(--gold-deep);text-transform:uppercase;display:flex;align-items:center;gap:12px}
.phero__en::before{content:"";width:34px;height:1px;background:var(--gold)}
.phero__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(32px,5.4vw,66px);line-height:1.35;letter-spacing:.08em;margin-top:14px}
.phero__lead{margin-top:20px;color:var(--ink-60);max-width:34em}
.phero__fig{position:relative;aspect-ratio:4/3}
.phero__fig .fr{position:absolute;inset:0}
.phero__ribbon{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.phero__ribbon path{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.6s var(--ease-io) .2s}
.phero.is-in .phero__ribbon path,.no-js .phero__ribbon path{stroke-dashoffset:0}
/* prose */
.prose h3{font-family:var(--ff-disp);font-size:clamp(20px,2.4vw,26px);margin:1.8em 0 .6em}
.lead-big{font-family:var(--ff-serif);font-weight:700;font-size:clamp(20px,2.6vw,32px);line-height:2;letter-spacing:.1em}
.quote{font-family:var(--ff-serif);font-weight:700;font-size:clamp(20px,2.8vw,32px);letter-spacing:.14em;display:flex;flex-wrap:wrap;gap:6px 22px;justify-content:center;margin-block:28px}
.quote span{position:relative;padding-inline:.2em}
.quote span::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:8px;background:var(--gold-soft);z-index:-1}
/* soudan flow */
.flows{display:grid;gap:28px}
@media (min-width:900px){
  .flows{grid-template-columns:1fr 1fr;gap:34px}
}
.flow{background:#fff;border:1px solid var(--line-2);border-radius:var(--r-lg);padding:clamp(22px,3vw,38px);box-shadow:var(--sh-1)}
.flow__hd{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.flow__tag{flex:none;white-space:nowrap;padding:4px 14px;border-radius:999px;background:var(--ink);color:#fff;font-size:12px;letter-spacing:.12em;font-weight:700}
.flow__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(18px,2vw,22px);letter-spacing:.08em}
.steps{display:grid;gap:10px;counter-reset:s}
.steps li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;padding:12px 16px;background:var(--mist);border-radius:14px;font-weight:700;letter-spacing:.08em}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--ff-en);font-weight:300;font-size:20px;color:var(--gold-deep);letter-spacing:.1em}
.fail{margin-top:18px;padding:18px 20px;border-radius:16px;background:var(--gold-mist);border:1px dashed var(--gold)}
.fail b{display:block;font-size:13px;color:var(--gold-deep);letter-spacing:.1em;margin-bottom:6px}
.fail li{padding-left:1.3em;position:relative;font-size:14px}
.fail li::before{content:"×";position:absolute;left:0;color:#b04b3b;font-weight:700}
.whybox{margin-top:clamp(40px,6vw,80px);display:grid;gap:26px;align-items:center;background:var(--charcoal);color:#fff;border-radius:var(--r-lg);padding:clamp(28px,5vw,64px)}
@media (min-width:900px){
  .whybox{grid-template-columns:1.2fr .8fr;gap:50px}
}
.whybox h3{font-family:var(--ff-disp);font-size:clamp(20px,2.6vw,30px);line-height:1.7;letter-spacing:.08em}
.whybox h3 em{font-style:normal;color:var(--gold)}
.whybox p{color:rgba(255,255,255,.76);margin-top:14px;font-size:14.5px}
.whybox .fig{border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/3;background:#fff}
.whybox .fig img{width:100%;height:100%;object-fit:contain;padding:6%;mix-blend-mode:multiply}
.reasons{display:grid;gap:22px;margin-top:clamp(34px,5vw,60px)}
@media (min-width:860px){
  .reasons{grid-template-columns:repeat(3,1fr);gap:26px}
}
.reason{background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2);display:grid;align-content:start}
.reason__img{aspect-ratio:16/10;overflow:hidden}
.reason__img img{width:100%;height:100%;object-fit:cover}
.reason__body{padding:40px 24px 28px;position:relative}
.reason__n{font-family:var(--ff-en);font-weight:300;line-height:1;color:var(--gold);position:absolute;right:20px;top:-30px;background:#fff;border-radius:50%;width:64px;height:64px;display:grid;place-items:center;font-size:26px;letter-spacing:.04em;box-shadow:var(--sh-1)}
.reason__t{font-weight:700;line-height:1.8;letter-spacing:.06em}
.reason__t.l{font-size:1.05em}
.can{display:grid;gap:18px;counter-reset:c}
@media (min-width:760px){
  .can{grid-template-columns:1fr 1fr}
}
.can li{position:relative;padding:28px 26px 26px 26px;background:#fff;border-radius:var(--r-lg);border:1px solid var(--line-2);box-shadow:var(--sh-1);counter-increment:c;font-weight:700;line-height:1.9}
.can li small{display:block;font-size:12.5px;letter-spacing:.14em;color:var(--gold-deep);margin-bottom:10px;font-weight:700}
.faq{display:grid;gap:12px}
.faq details{background:#fff;border:1px solid var(--line-2);border-radius:18px;overflow:hidden;transition:box-shadow .4s}
.faq details[open]{box-shadow:var(--sh-2);border-color:var(--gold-soft)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:34px 1fr 28px;gap:14px;align-items:center;padding:20px 22px;font-weight:700;line-height:1.7;letter-spacing:.06em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--ff-en);font-size:15px}
.faq summary::after{content:"";width:14px;height:14px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(45deg) translateY(-3px);transition:transform .4s var(--ease);justify-self:center}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.faq__a{padding:0 22px 22px 70px;color:var(--ink-60);font-size:15px;line-height:2}
.faq__a p+p{margin-top:.2em}
.book{display:grid;gap:22px}
@media (min-width:860px){
  .book{grid-template-columns:1fr 1fr;gap:28px}
}
.book__card{background:#fff;border-radius:var(--r-lg);padding:clamp(24px,3vw,40px);display:grid;gap:16px;align-content:start;box-shadow:var(--sh-2)}
.book__no{font-family:var(--ff-en);letter-spacing:.3em;font-size:12px;color:var(--gold-deep);text-transform:uppercase}
.book__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(20px,2.2vw,26px);letter-spacing:.08em}
.book__card .embed{border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-2);min-height:520px;background:var(--mist)}
/* service page */
.svlist{display:grid;gap:clamp(28px,5vw,64px)}
.svrow{display:grid;gap:24px;align-items:center}
@media (min-width:900px){
  .svrow{grid-template-columns:1fr 1fr;gap:70px}
  .svrow:nth-child(even) .svrow__fig{order:2}
}
.svrow__fig{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:3/2;background:var(--gold-mist)}
.svrow__fig img{width:100%;height:100%;object-fit:cover}
.svrow__fig.ill img{object-fit:contain;mix-blend-mode:multiply;padding:6%}
.svrow__no{font-family:var(--ff-en);font-weight:300;font-size:clamp(44px,6vw,80px);line-height:1;color:transparent;-webkit-text-stroke:1px var(--gold)}
.svrow__st{font-family:var(--ff-disp);font-weight:700;font-size:clamp(22px,2.8vw,34px);letter-spacing:.08em;margin-top:8px;line-height:1.5}
.svrow__sub{display:inline-block;margin-top:8px;padding:3px 14px;border-radius:999px;background:var(--ink);color:#fff;font-size:12.5px;letter-spacing:.14em;font-weight:700}
.svrow__tx{margin-top:16px;color:var(--ink-60)}
/* property */
.pfilter{position:sticky;top:var(--header-h);z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-2);padding:12px 0}
.pfilter__in{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.pfilter__in::-webkit-scrollbar{display:none}
.chip{flex:none;padding:9px 20px;border-radius:999px;border:1px solid var(--line);font-size:13.5px;font-weight:700;letter-spacing:.08em;background:#fff;transition:background .3s,color .3s,border-color .3s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip small{margin-left:6px;font-family:var(--ff-en);opacity:.65}
.pgrid{display:grid;gap:22px;grid-template-columns:1fr}
@media (min-width:640px){
  .pgrid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1040px){
  .pgrid{grid-template-columns:repeat(3,1fr);gap:28px}
}
.pcard{display:flex;flex-direction:column;background:#fff;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-2);box-shadow:var(--sh-1);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--sh-3)}
.pcard__img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--mist-2)}
.pcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.pcard:hover .pcard__img img{transform:scale(1.06)}
.pcard__kind{position:absolute;left:12px;top:12px;padding:3px 12px;border-radius:999px;background:rgba(255,255,255,.94);font-size:11.5px;font-weight:700;letter-spacing:.1em}
.pcard__body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.pcard__t{font-weight:700;letter-spacing:.06em;line-height:1.6}
.pcard__p{font-family:var(--ff-en);font-weight:500;font-size:28px;letter-spacing:.04em;color:var(--ink);line-height:1.2}
.pcard__p small{font-family:var(--ff-jp);font-size:14px;font-weight:700;margin-left:3px}
.pcard__d{font-size:13px;color:var(--ink-60);line-height:1.85;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pcard.is-open .pcard__d{-webkit-line-clamp:unset}
.pcard__s{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.pcard__s li{font-size:11.5px;padding:3px 10px;border-radius:8px;background:var(--mist);color:var(--ink-80);line-height:1.6;letter-spacing:.04em}
.pcard__cta{margin-top:auto;padding-top:8px}
.is-hidden{display:none!important}
/* atelier / consultant */
.duo{display:grid;gap:24px;align-items:center}
@media (min-width:900px){
  .duo{grid-template-columns:1fr 1fr;gap:70px}
  .duo--rev .duo__fig{order:2}
}
.duo__fig{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3}
.duo__fig img{width:100%;height:100%;object-fit:cover}
.duo__no{font-family:var(--ff-en);font-weight:300;font-size:clamp(44px,6vw,80px);line-height:1;color:transparent;-webkit-text-stroke:1px var(--gold)}
.duo__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(22px,2.8vw,32px);letter-spacing:.08em;margin-top:8px;line-height:1.55}
.duo__tx{margin-top:16px;color:var(--ink-60)}
.gallery{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}
@media (min-width:860px){
  .gallery{grid-template-columns:repeat(4,1fr)}
}
.gallery figure{border-radius:var(--r-md);overflow:hidden;aspect-ratio:1;background:var(--mist-2)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.gallery figure:hover img{transform:scale(1.07)}
/* company page */
.greet{display:grid;gap:34px;align-items:start}
@media (min-width:900px){
  .greet{grid-template-columns:.75fr 1.25fr;gap:70px}
}
.greet__fig{border-radius:var(--r-lg);overflow:hidden}
.greet__nm{margin-top:18px;font-size:14px;color:var(--ink-60);line-height:1.8}
.greet__nm b{display:block;font-family:var(--ff-disp);font-size:22px;letter-spacing:.12em;color:var(--ink)}
.tbl{border-top:1px solid var(--line)}
.tbl tr{border-bottom:1px solid var(--line)}
.tbl th,.tbl td{padding:18px 6px;text-align:left;vertical-align:top;font-weight:400}
.tbl th{width:9em;font-weight:700;color:var(--ink-60);font-size:14px;letter-spacing:.1em}
@media (max-width:600px){
  .tbl,.tbl tbody,.tbl tr,.tbl th,.tbl td{display:block;width:100%}
  .tbl th{padding-bottom:0}
  .tbl td{padding-top:4px}
}
.philo{display:grid;gap:20px}
@media (min-width:900px){
  .philo{grid-template-columns:repeat(3,1fr);gap:26px}
}
.philo__c{background:#fff;border-radius:var(--r-lg);padding:30px 28px;border:1px solid var(--line-2);box-shadow:var(--sh-1);display:grid;gap:10px;align-content:start}
.philo__c small{font-family:var(--ff-en);font-size:12px;letter-spacing:.26em;color:var(--gold-deep);text-transform:uppercase}
.philo__c h3{font-family:var(--ff-serif);font-weight:700;font-size:clamp(18px,1.45vw,21px);line-height:1.85;letter-spacing:.04em}
.philo__c p{font-size:14px;color:var(--ink-60);line-height:2}
.vision{display:grid;gap:30px;align-items:center}
@media (min-width:900px){
  .vision{grid-template-columns:1fr 1fr;gap:60px}
}
.vision__fig{border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--sh-2)}
.bizlist{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}
.bizlist li{padding:16px 18px;background:#fff;border:1px solid var(--line-2);border-radius:14px;font-weight:700;font-size:14px;line-height:1.6;letter-spacing:.06em;display:flex;gap:10px;align-items:center}
.bizlist li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold)}
/* baikyaku LP */
.lpfv{position:relative;overflow:hidden;background:#2f2e2d;color:#fff;padding-top:var(--header-h)}
.lpfv__bg{position:absolute;inset:0}
.lpfv__bg img{width:100%;height:100%;object-fit:cover;object-position:75% center;opacity:.85}
.lpfv__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(35,34,33,.95) 0,rgba(35,34,33,.7) 52%,rgba(35,34,33,.15) 100%)}
@media (max-width:899px){
  .lpfv__bg::after{background:linear-gradient(180deg,rgba(35,34,33,.78),rgba(35,34,33,.88))}
}
.lpfv__in{position:relative;z-index:2;padding-block:clamp(60px,9vw,120px);display:grid;gap:18px;max-width:720px}
.lpfv__tag{display:inline-block;padding:6px 16px;border:1px solid var(--gold);border-radius:999px;color:var(--gold);font-size:12.5px;font-weight:700;letter-spacing:.12em;justify-self:start}
.lpfv__ttl{font-family:var(--ff-disp);font-weight:900;font-size:clamp(23px,2.9vw,42px);line-height:1.5;letter-spacing:.05em}
.lpfv__ttl em{font-style:normal;color:var(--gold)}
.lpfv__p{color:rgba(255,255,255,.8);max-width:32em;text-wrap:balance}
.lpfv__tel{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;margin-top:10px;font-size:13px;color:rgba(255,255,255,.75)}
.lpfv__tel a{font-family:var(--ff-en);font-size:26px;letter-spacing:.08em;color:#fff}
.voice{display:grid;gap:20px}
@media (min-width:860px){
  .voice{display:block;column-count:2;column-gap:26px}
  .voice .vcard{break-inside:avoid;margin-bottom:26px}
}
.vcard{background:#fff;border-radius:var(--r-lg);padding:clamp(22px,3vw,34px);box-shadow:var(--sh-2);display:grid;gap:16px;align-content:start;position:relative}
.vcard__hd{display:flex;align-items:center;gap:14px}
.vcard__av{width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--ff-disp);font-weight:700;font-size:18px}
.vcard__who b{display:block;letter-spacing:.1em}
.vcard__who span{font-size:12.5px;color:var(--ink-60)}
.stars{color:#f0b93b;letter-spacing:.2em;font-size:15px;margin-left:auto}
.vcard__tx{color:var(--ink-80);font-size:14.5px;line-height:2}
.vcard__tx.is-clip{overflow:hidden}
.vcard__ft{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--ink-40);margin-top:auto}
.vcard__ft button{font-weight:700;color:var(--gold-deep);letter-spacing:.08em;border-bottom:1px solid var(--gold)}
.infolinks{display:grid;gap:12px}
@media (min-width:760px){
  .infolinks{grid-template-columns:repeat(3,1fr)}
}
.ilink{display:flex;align-items:center;gap:14px;padding:18px 22px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line-2);font-weight:700;letter-spacing:.08em;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .3s}
.ilink:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--gold)}
.ilink svg{width:26px;height:26px;flex:none}
.ilink small{display:block;font-weight:400;font-size:12px;color:var(--ink-60);letter-spacing:.06em}
/* contact form */
.cform{display:grid;gap:22px}
.field{display:grid;gap:8px}
.field label{font-weight:700;letter-spacing:.08em;display:flex;align-items:center;gap:10px}
.req{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--gold-deep);color:#fff;letter-spacing:.1em;font-weight:700}
.opt{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--mist-2);color:var(--ink-60);letter-spacing:.1em;font-weight:700}
.field input,.field textarea{width:100%;font:inherit;letter-spacing:.04em;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .3s,box-shadow .3s}
.field textarea{min-height:200px;resize:vertical;line-height:1.9}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--gold-deep);box-shadow:0 0 0 4px rgba(189,163,102,.2)}
.agree{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.9;padding:16px 18px;background:var(--mist);border-radius:14px}
.agree input{width:20px;height:20px;margin-top:4px;accent-color:var(--ink);flex:none}
.cform__note{font-size:12.5px;color:var(--ink-60)}
.cform__msg{padding:14px 18px;border-radius:14px;background:var(--gold-mist);border:1px solid var(--gold);font-size:14px;display:none}
.cform__msg.is-show{display:block}
.linebox{display:grid;gap:20px;padding:clamp(26px,4vw,48px);background:var(--charcoal);color:#fff;border-radius:var(--r-lg);align-items:center}
@media (min-width:900px){
  .linebox{grid-template-columns:1.3fr .7fr;gap:50px}
}
.linebox h2{font-family:var(--ff-disp);font-size:clamp(22px,2.8vw,32px);line-height:1.6;letter-spacing:.08em}
.linebox p{color:rgba(255,255,255,.78);margin-top:10px}
.linebox .qr{display:grid;color:rgba(255,255,255,.7)}
.linebox .qr svg{background:#fff}
@media (max-width:899px){
  .linebox .qr{display:none}
}
.ccards{display:grid;gap:14px}
@media (min-width:760px){
  .ccards{grid-template-columns:repeat(3,1fr)}
}
.ccard{padding:22px 24px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line-2);display:grid;gap:4px}
.ccard small{font-family:var(--ff-en);letter-spacing:.26em;color:var(--gold-deep);font-size:11.5px;text-transform:uppercase}
.ccard b{font-size:20px;letter-spacing:.06em}
.ccard span{font-size:13px;color:var(--ink-60)}
/* news page */
.nlist{display:grid;gap:0;margin-top:30px;border-top:1px solid var(--line)}
.nrow{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;padding:20px 6px;border-bottom:1px solid var(--line);align-items:baseline;transition:padding .4s var(--ease),background .3s;cursor:pointer;text-align:left;width:100%}
.nrow:hover{padding-left:16px;background:var(--gold-mist)}
.nrow time{font-family:var(--ff-en);letter-spacing:.14em;color:var(--gold-deep)}
.nrow span{font-weight:700;letter-spacing:.05em}
/* policy / sitemap */
.legal h2{font-family:var(--ff-disp);font-size:clamp(18px,2vw,22px);margin:2.2em 0 .6em;padding-left:14px;border-left:3px solid var(--gold);letter-spacing:.08em}
.legal ol{list-style:decimal;padding-left:1.5em;display:grid;gap:.4em;margin-top:.6em}
.legal p{margin-top:.6em}
.sitemap{display:grid;gap:0;border-top:1px solid var(--line)}
.sitemap a{display:flex;justify-content:space-between;align-items:center;padding:18px 6px;border-bottom:1px solid var(--line);font-weight:700;letter-spacing:.08em;transition:padding .4s var(--ease),background .3s}
.sitemap a:hover{padding-left:16px;background:var(--gold-mist)}
.sitemap a small{font-family:var(--ff-en);letter-spacing:.2em;color:var(--gold-deep);font-weight:400;font-size:12px;text-transform:uppercase}
.nf404{min-height:70svh;display:grid;place-items:center;text-align:center;padding-top:var(--header-h)}
.phero__badge{display:inline-flex;align-items:center;gap:12px;margin-top:20px;font-weight:700;letter-spacing:.12em}
.phero__badge span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--gold);color:var(--ink);font-family:var(--ff-disp);font-weight:900;font-size:16px;letter-spacing:.08em}
.phero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.map__link{margin-top:16px}
.sh__lead b{color:var(--ink)}
.prose p+p{margin-top:1.4em}
.prose b{background:linear-gradient(transparent 62%,var(--gold-soft) 62%)}
.lpfv__wrap{position:relative;z-index:2}
.lpfv__logo{font-weight:300;font-size:clamp(34px,5.6vw,64px);letter-spacing:.14em;line-height:1;color:#fff;margin-bottom:6px}
.lpfv__ttl .sm{display:block;font-size:.58em;font-weight:700;letter-spacing:.08em;margin-block:.3em .5em;color:rgba(255,255,255,.88)}
.lpfv__ttl .ln{display:block}
.lpfv__man{display:none}
@media (min-width:900px){
  .lpfv{min-height:min(760px,100svh)}
  .lpfv__man{display:block;position:absolute;right:0;bottom:0;height:min(86%,620px);aspect-ratio:690/600;z-index:1;max-width:46vw}
  .lpfv__man img{width:100%;height:100%;object-fit:cover;object-position:left center;-webkit-mask-image:linear-gradient(90deg,transparent,#000 24%),linear-gradient(180deg,transparent,#000 22%);mask-image:linear-gradient(90deg,transparent,#000 24%),linear-gradient(180deg,transparent,#000 22%);-webkit-mask-composite:source-in;mask-composite:intersect}
  .lpfv__in{max-width:min(780px,62vw)}
}
.anchors{top:var(--header-h)}
.anchors .chip{display:inline-block}
.embed{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-2);background:var(--mist)}
.embed iframe{display:block;width:100%;height:min(720px,86svh);border:0;background:#fff}
.vcard__tx.is-clip{max-height:none;-webkit-mask-image:none;mask-image:none}
.nrow{font:inherit}
.legal ol ol{list-style:lower-alpha;margin-top:.4em}
.fcard__t,.fcard__d{display:block}
.linebox .btn--gold:hover{color:#fff}
.stage__ring{position:absolute;inset:-6%;border-radius:50%;border:1px dashed var(--gold);opacity:.5;animation:spin 60s linear infinite;pointer-events:none}
/* embed facade: 外部埋め込み（地図・実績）が読み込まれるまで／読み込めない環境で表示 */
.embed__fb{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;padding:24px;text-align:center;background:linear-gradient(145deg,var(--gold-mist),var(--mist));color:var(--ink-60);font-size:14px}
.embed__fb svg{width:46px;height:auto;opacity:.9}
.embed__fb p{max-width:28em}
.embed{position:relative;min-height:clamp(240px,34vw,360px)}
.embed iframe[data-src]:not([src]){display:none}
.is-live>.embed__fb{display:none}
.embed.is-live{min-height:0}
/* FV：ボタンは背景の曲線・写真と重なっても読めるよう白地にする */
.fv .btn--ghost{background:rgba(255,255,255,.94);border-color:var(--ink);box-shadow:0 8px 22px rgba(39,38,38,.1)}
.intro2{position:relative;background:var(--mist);padding-block:clamp(88px,11vw,170px) clamp(76px,9vw,140px);overflow:hidden}
.intro2__word{position:absolute;left:-1%;bottom:-.16em;font-family:var(--ff-en);font-weight:200;font-size:clamp(90px,19vw,320px);line-height:1;letter-spacing:.02em;color:transparent;-webkit-text-stroke:1px rgba(189,163,102,.45);pointer-events:none;white-space:nowrap}
.intro2__grid{position:relative;z-index:2;display:grid;gap:clamp(44px,6vw,64px);align-items:center}
@media (min-width:900px){
  .intro2__grid{grid-template-columns:1fr 1.05fr;gap:clamp(40px,5vw,90px)}
}
.intro2__kicker{display:inline-flex;align-items:center;gap:12px;color:var(--gold-deep);font-weight:700;letter-spacing:.14em;font-size:clamp(12px,1.4vw,14.5px)}
.intro2__kicker::before{content:"";width:34px;height:1px;background:var(--gold)}
.intro2__ttl{font-family:var(--ff-disp);font-weight:900;font-size:clamp(40px,5.4vw,78px);letter-spacing:.08em;line-height:1.25;margin-top:14px}
.intro2__sub{margin-top:18px;font-family:var(--ff-disp);font-weight:700;font-size:clamp(20px,2.5vw,32px);letter-spacing:.1em;color:var(--ink-60);line-height:1.6}
.intro2__sub em{font-style:normal;color:var(--ink);background:linear-gradient(transparent 60%,var(--gold-soft) 60%)}
.intro2__tx{margin-top:22px;max-width:30em;color:var(--ink-80)}
.intro2__tx b{background:linear-gradient(transparent 62%,var(--gold-soft) 62%)}
.intro2__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.intro2__fig{position:relative;aspect-ratio:1/.94;width:100%;max-width:640px;margin-inline:auto}
.intro2__disc{position:absolute;inset:-6% -10% -8% 12%;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0,var(--gold-mist) 72%);opacity:.9}
.i2main{position:absolute;right:0;top:7%;width:84%;aspect-ratio:4/3;filter:drop-shadow(0 22px 34px rgba(39,38,38,.16))}
.i2main__in{width:100%;height:100%;overflow:hidden;background:var(--mist-2)}
.i2main__in img{width:100%;height:100%;object-fit:cover}
.pl.i2p1{left:2%;bottom:0;width:35%;aspect-ratio:1;--c:#fff;--fx:-60px;--fy:50px;--fr:-6deg;z-index:4}
.pl.i2p2{right:3%;bottom:-3%;width:29%;aspect-ratio:1;--c:#fff;--fx:60px;--fy:60px;--fr:6deg;z-index:4}
.aud{position:relative;background:var(--paper-warm);padding-block:clamp(88px,11vw,160px) clamp(76px,9vw,140px)}
.aud__grid{list-style:none;padding:0;margin:clamp(36px,5vw,64px) 0 0;display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:700px){
  .aud__grid{grid-template-columns:repeat(6,1fr);gap:20px}
  .aud__c{grid-column:span 2}
  .aud__c:nth-child(n+4){grid-column:span 3}
}
@media (min-width:1100px){
  .aud__grid{grid-template-columns:repeat(5,1fr);align-items:start}
  .aud__c,.aud__c:nth-child(n+4){grid-column:auto}
  .aud__c:nth-child(even){margin-top:38px}
}
.aud__c{display:flex}
.aud__c>a{flex:1;display:flex;flex-direction:column;gap:10px;padding:26px 22px 22px;background:#fff;border-radius:var(--r-lg);border:1px solid var(--line-2);box-shadow:var(--sh-1);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.aud__c>a:hover{transform:translateY(-6px);box-shadow:var(--sh-3)}
.aud__ic{display:grid;place-items:center;width:74px;height:74px;border-radius:58% 42% 55% 45%/50% 56% 44% 50%;background:var(--gold-mist);color:var(--gold-deep);transition:border-radius 1.2s var(--ease),background .6s}
.aud__c>a:hover .aud__ic{border-radius:44% 56% 45% 55%/56% 46% 54% 44%;background:var(--gold-soft)}
.aud__ic svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.aud__en{margin-top:6px;font-family:var(--ff-en);letter-spacing:.24em;font-size:11px;color:var(--gold-deep);text-transform:uppercase}
.aud__c h3{font-size:clamp(19px,1.7vw,22px);font-weight:700;letter-spacing:.08em;line-height:1.5}
.aud__w{display:grid;gap:8px;margin-top:2px}
.aud__w li{position:relative;padding-left:1.35em;font-size:13px;line-height:1.75;color:var(--ink-60)}
.aud__w li::before{content:"";position:absolute;left:0;top:.62em;width:.7em;height:.7em;border-radius:50%;border:1.5px solid var(--gold)}
.aud__more{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;letter-spacing:.08em;border-bottom:0}
.aud__more svg{transition:transform .5s var(--ease)}
.aud__c>a:hover .aud__more svg{transform:translateX(5px)}
.aud__cta{margin-top:clamp(44px,6vw,76px);text-align:center}
/* aud heading: keep on one line on phones */
.aud .sh__ttl{font-size:clamp(21px,5.6vw,24px);white-space:nowrap}
@media (min-width:600px){
  .aud .sh__ttl{font-size:clamp(26px,3.6vw,46px)}
}
} /* ===== 代表挨拶：見出し・写真・氏名をまとめて左に固定／右の文章だけが流れる ===== */ .greet--stick{display:grid;gap:34px;align-items:start}
.greet--stick .greet__side{display:grid;gap:clamp(26px,3vw,48px);align-content:start}
.greet--stick .greet__side .sh{gap:14px}
@media (min-width:900px){
  .greet--stick{grid-template-columns:.75fr 1.25fr;gap:70px}
  .greet--stick .prose{--gh:calc(13px*1.6 + 14px + clamp(26px,3.6vw,46px)*1.5 + clamp(26px,3vw,48px));padding-top:var(--gh)}
}
@media (min-width:900px) and (min-height:640px){
  .greet--stick .greet__side{position:sticky;top:calc(var(--header-h) + 22px);align-self:start}
  .greet--stick .greet__fig{width:min(100%,max(240px,calc((100svh - var(--header-h) - 300px) / 1.08)));max-height:none;aspect-ratio:1/1.08}
  .greet--stick .greet__fig img{max-height:none;width:100%;height:100%;object-fit:cover;object-position:68% center}
}
@media (min-width:900px){
  .greet--stick .greet__fig{aspect-ratio:1/1.08}
}
.aud__hint{display:none}
@media (max-width:699px){
  .aud__grid{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-inline:calc(var(--gutter) * -1);padding:6px var(--gutter) 22px;scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .aud__grid::-webkit-scrollbar{display:none}
  .aud__c{flex:0 0 min(78vw,300px);scroll-snap-align:start}
  .js .aud__c[data-reveal]{opacity:1;transform:none}
  .aud__hint{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:2px;font-size:12px;letter-spacing:.14em;color:var(--ink-60)}
  .aud__hint svg{width:38px;height:12px;stroke:var(--gold-deep);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;animation:hintx 1.8s var(--ease) infinite}
}
@keyframes hintx{0%,100%{transform:translateX(0)}50%{transform:translateX(7px)}}
@media (prefers-reduced-motion:reduce){
  .aud__hint svg{animation:none}
}
.spl{display:flex;align-items:flex-end;justify-content:space-between;gap:20px 40px;flex-wrap:wrap}
.spl__more{flex:none;margin-bottom:6px}
.rc-empty{padding:40px 0;text-align:center;color:var(--ink-60)}
/* --- タブ --- */
.wtabs{display:flex;flex-wrap:wrap;gap:10px;margin:clamp(26px,3.4vw,44px) 0 clamp(22px,3vw,34px)}
.wtabs button{display:inline-flex;align-items:center;gap:.6em;padding:.62em 1.25em;border-radius:999px;border:1px solid var(--line-2);background:#fff;font-size:13.5px;font-weight:700;letter-spacing:.06em;color:var(--ink);transition:background .3s,color .3s,border-color .3s,transform .4s var(--ease)}
.wtabs button small{font-family:var(--ff-en);font-size:11px;font-weight:400;color:var(--gold-deep);transition:color .3s}
.wtabs button:hover{border-color:var(--gold);transform:translateY(-2px)}
.wtabs button[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.wtabs button[aria-selected="true"] small{color:var(--gold)}
/* --- 実績カード --- */
.wgrid{display:grid;gap:clamp(18px,2.4vw,30px);grid-template-columns:1fr}
@media (min-width:640px){
  .wgrid{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:980px){
  .wgrid{grid-template-columns:repeat(3,1fr)}
}
.wcard{position:relative;display:flex;flex-direction:column;background:#fff;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-2);box-shadow:var(--sh-1);cursor:pointer;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.wcard:hover{transform:translateY(-8px);box-shadow:var(--sh-3)}
.wcard__img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--mist-2)}
.wcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.wcard:hover .wcard__img img{transform:scale(1.06)}
.wcard__ph{display:grid;place-items:center;width:100%;height:100%;background:var(--gold-mist)}
.wcard__ph svg{width:56px;height:38px}
.wcard__cat{position:absolute;left:14px;top:14px;padding:.38em 1em;border-radius:999px;background:rgba(255,255,255,.95);color:var(--gold-deep);font-size:11.5px;font-weight:700;letter-spacing:.1em}
.wcard__sample{position:absolute;right:14px;top:14px;padding:.3em .75em;border-radius:6px;background:rgba(39,38,38,.82);color:#fff;font-size:10.5px;letter-spacing:.16em}
.wcard__body{display:flex;flex-direction:column;gap:10px;padding:20px 22px 22px;flex:1}
.wcard__meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--ink-60)}
.wcard__meta time{font-family:var(--ff-en);letter-spacing:.14em;color:var(--gold-deep);font-size:12.5px}
.wcard__t{font-size:17px;font-weight:700;line-height:1.6;letter-spacing:.04em}
.wcard__s{font-size:13.5px;line-height:1.85;color:var(--ink-60);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.wcard__f{display:flex;flex-wrap:wrap;gap:6px}
.wcard__f li{font-size:11.5px;line-height:1.4;padding:.35em .9em;border-radius:999px;background:var(--gold-mist);color:var(--ink-80)}
.wcard__f b{margin-right:.55em;color:var(--gold-deep);font-weight:700}
.wcard__more{margin-top:auto;padding-top:10px;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:13px;font-weight:700;letter-spacing:.08em}
.wcard__more svg{transition:transform .5s var(--ease)}
.wcard:hover .wcard__more svg{transform:translateX(5px)}
.works__ext{margin-top:clamp(28px,4vw,48px);text-align:center}
@media (max-width:639px){
  .wk .wgrid{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-inline:calc(var(--gutter) * -1);padding:6px var(--gutter) 22px;scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .wk .wgrid::-webkit-scrollbar{display:none}
  .wk .wcard{flex:0 0 min(80vw,320px);scroll-snap-align:start}
  .js .wk .wcard[data-reveal]{opacity:1;transform:none}
  .wk .aud__hint{display:flex}
  .wtabs{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gutter) * -1);padding:2px var(--gutter);scrollbar-width:none}
  .wtabs::-webkit-scrollbar{display:none}
  .wtabs button{flex:none}
}
@media (min-width:640px){
  .wk .aud__hint,.works+.aud__hint{display:none}
}
/* works ページ（一覧）はSPでも縦並び */
#works:not(.wk) .wgrid{display:grid}
/* --- 詳細モーダルの追加要素 --- */
.mfacts{display:grid;margin:0 0 18px}
.mfacts div{display:flex;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.mfacts dt{flex:0 0 7.5em;color:var(--ink-60)}
.mfacts dd{margin:0;font-weight:500}
.modal__note{margin-top:16px;font-size:12.5px;color:var(--ink-60)}
.modal__sub{display:block;font-size:13px;font-weight:400;color:var(--ink-60);margin-top:4px;letter-spacing:.04em}
/* --- お客様の声：スライダー --- */
.vc__body{margin-top:clamp(28px,4vw,50px)}
.vslider{position:relative}
.vslider__track{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding:8px var(--gutter) 26px;scroll-padding-inline:var(--gutter);outline-offset:-2px}
.vslider__track::-webkit-scrollbar{display:none}
.vcard--s{flex:0 0 min(84vw,340px);scroll-snap-align:start;box-shadow:var(--sh-1);border:1px solid var(--line-2)}
@media (min-width:700px){
  /* 右端だけ画面端までブリード（左は本文の端にそろえる） */
  .vslider__track{margin-inline:0 calc(50% - 50vw);padding-inline:2px var(--gutter);scroll-padding-inline:2px}
  .vcard--s{flex-basis:calc((min(var(--maxw), 100vw - var(--gutter) * 2) - 20px) / 2)}
}
@media (min-width:1100px){
  .vcard--s{flex-basis:calc((min(var(--maxw), 100vw - var(--gutter) * 2) - 40px) / 3)}
}
.vcard__tx.is-lines{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.vslider__nav{display:none}
@media (min-width:900px){
  .vslider__nav{display:flex;justify-content:flex-end;gap:12px;margin-top:2px}
  .vslider__nav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line-2);background:#fff;display:grid;place-items:center;transition:background .3s,color .3s,border-color .3s}
  .vslider__nav button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
}
.vhint{margin-top:-6px}
@media (min-width:700px){
  .vhint{display:none}
}
.vc .stars{font-size:13px}
/* --- 採用：TOPの導線 --- */
.rcrt{background:var(--mist)}
.rcrt__card{display:grid;border-radius:clamp(22px,3vw,36px);overflow:hidden;background:var(--charcoal);color:#fff;box-shadow:var(--sh-3)}
@media (min-width:900px){
  .rcrt__card{grid-template-columns:1.05fr .95fr}
}
.rcrt__body{display:grid;gap:16px;align-content:center;justify-items:start;padding:clamp(34px,5vw,72px)}
.rcrt__body .sh__en{color:var(--gold)}
.rcrt__ttl{font-family:var(--ff-disp);font-weight:900;font-size:clamp(34px,4.6vw,60px);line-height:1.3;letter-spacing:.08em}
.rcrt__lead{font-size:clamp(15px,1.5vw,18px);line-height:2;color:rgba(255,255,255,.86);max-width:30em}
.rcrt__cnt{font-family:var(--ff-en);letter-spacing:.14em;color:var(--gold);font-size:13px;margin-bottom:6px}
.rcrt__img{min-height:240px;position:relative}
.rcrt__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rcrt__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--charcoal) 0,rgba(58,57,57,0) 38%)}
@media (max-width:899px){
  .rcrt__img::after{background:linear-gradient(180deg,var(--charcoal) 0,rgba(58,57,57,0) 40%)}
  .rcrt__img{aspect-ratio:16/10}
}
/* --- 採用ページ --- */
.rc-draft{padding:14px 20px;border-radius:14px;background:var(--gold-soft);color:var(--ink);font-size:13.5px;font-weight:700;letter-spacing:.06em;text-align:center;margin-bottom:clamp(34px,5vw,60px)}
.rcr__head{display:grid;gap:14px;justify-items:center;text-align:center}
.rcr__head .sh__en::before,.rcr__head .sh__en::after{content:"";width:34px;height:1px;background:var(--gold)}
.rcr__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(24px,3.4vw,40px);line-height:1.6;letter-spacing:.06em;text-wrap:balance}
.rcr__lead{color:var(--ink-60);max-width:38em;text-wrap:pretty}
.rcr__msg{margin:clamp(34px,5vw,60px) 0 0;padding:clamp(24px,3.4vw,40px);border-radius:var(--r-lg);background:var(--paper-warm);font-family:var(--ff-serif,var(--ff-disp));font-size:clamp(16px,1.8vw,20px);line-height:2.1;text-align:center;position:relative}
.rcr__msg::before{content:"“";position:absolute;left:18px;top:-14px;font-family:var(--ff-en);font-size:72px;color:var(--gold);line-height:1}
.rcr__ben{display:grid;gap:18px;margin-top:clamp(34px,5vw,60px)}
@media (min-width:760px){
  .rcr__ben{grid-template-columns:repeat(3,1fr)}
}
.rcr__ben li{padding:26px 24px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line-2);box-shadow:var(--sh-1);display:grid;gap:10px;align-content:start}
.rcr__n{font-family:var(--ff-en);font-weight:200;font-size:40px;line-height:1;color:var(--gold)}
.rcr__ben h3{font-size:17px;font-weight:700;line-height:1.6;letter-spacing:.05em}
.rcr__ben p{font-size:13.5px;line-height:1.9;color:var(--ink-60)}
.rcr__jobs{margin-top:clamp(56px,8vw,110px);display:grid;gap:clamp(24px,3vw,40px)}
.jobs{display:grid;gap:20px}
.job{padding:clamp(22px,3vw,34px);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line-2);box-shadow:var(--sh-1);display:grid;gap:18px}
.job__hd{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}
.job__hd h3{font-size:clamp(18px,2vw,22px);font-weight:700;letter-spacing:.05em}
.job__tag{padding:.3em 1em;border-radius:999px;background:var(--gold-mist);color:var(--gold-deep);font-size:12px;font-weight:700;letter-spacing:.08em}
.job__dl div{display:grid;gap:4px 20px;padding:12px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.85}
@media (min-width:640px){
  .job__dl div{grid-template-columns:8em 1fr}
}
.job__dl dt{color:var(--ink-60);font-weight:700}
.job__dl dd{margin:0}
.job__ft{padding-top:4px}
.rcr__flow{margin-top:clamp(56px,8vw,100px);text-align:center;display:grid;gap:22px}
.rcr__flow h3{font-family:var(--ff-disp);font-size:clamp(20px,2.4vw,26px);font-weight:700;letter-spacing:.08em}
.rcr__flow ol{display:grid;gap:12px}
@media (min-width:760px){
  .rcr__flow ol{grid-template-columns:repeat(4,1fr)}
}
.rcr__flow li{position:relative;padding:18px 14px;border-radius:var(--r-md);background:var(--paper-warm);font-size:14px;font-weight:700;display:grid;gap:8px;justify-items:center}
.rcr__flow li span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-family:var(--ff-en);font-size:14px}
.rcr__cta{margin-top:clamp(44px,6vw,80px);display:grid;gap:22px;justify-items:center;text-align:center}
.rcr__cta p{color:var(--ink-60);font-size:14px;max-width:34em}
/* データ取得待ちの間の高さ確保（読み込み時のガタつき防止） */
[data-rc="works"]:empty{min-height:420px}
[data-rc="voices"]:empty{min-height:300px}
[data-rc="recruit"]:empty{min-height:640px}

/* ======================================================================
   3. 調整（第3〜4回修正：物件・売却実績・メガメニュー など）
   ====================================================================== */
:root{--k-house:#3a3939;--k-land:#b8974f;--k-mansion:#5f7487;--k-shop:#7a6a58;--qbar-h:0px}
/* ---------------------------------------------------------------- header v2 */
.hd{flex-direction:column;justify-content:center}
.hd__in{height:var(--hd-row,72px)}
.logo{flex:none}
.gnav{display:none;flex:1 1 auto;min-width:0;align-self:stretch}
.gnav__list{height:100%}
.gnav__item{height:100%}
.gnav__list{justify-content:center;gap:clamp(2px,.5vw,10px)}
.gnav__item{position:static;display:flex;align-items:center}
.gnav a.gl{display:grid;gap:0;padding:10px clamp(8px,.85vw,14px);text-align:center;border-radius:10px;transition:background .3s}
.gnav .gl b{font-family:var(--ff-jp);font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:none;color:var(--ink)}
.gnav .gl i{font-family:var(--ff-en);font-size:9.5px;letter-spacing:.24em;color:var(--gold-deep);text-transform:uppercase}
.gnav a.gl::after{bottom:3px;left:50%;width:0}
.gnav a.gl:hover::after,.gnav a.gl[aria-current="page"]::after{left:20%;width:60%}
.gnav a.gl[aria-current="page"] b{color:var(--ink)}
.gnav__item.is-cur>a.gl::after{left:20%;width:60%}
.gnav__item.has-sub>a.gl{padding-right:4px}
.gnav__tg{display:grid;place-items:center;width:22px;height:30px;margin-right:4px;border-radius:6px;color:var(--ink-60);transition:transform .35s var(--ease),color .3s,background .3s}
.gnav__tg svg{width:10px;height:10px}
.gnav__tg:hover{background:var(--mist)}
.gnav__item.is-open .gnav__tg,.gnav__item:hover .gnav__tg{transform:rotate(180deg);color:var(--gold-deep)}
.gnav__item.has-sub.is-hot>a.gl{background:var(--paper-warm)}
.hd__cta{gap:12px}
.hd__tel{display:none;flex-direction:column;align-items:flex-end;line-height:1.15;white-space:nowrap}
.hd__tel b{font-family:var(--ff-en);font-weight:500;font-size:19px;letter-spacing:.08em}
.hd__tel small{font-size:10px;color:var(--ink-60);letter-spacing:.06em}
.hd__cta .btn--sm{min-height:46px}
@media (min-width:1180px){
  .gnav{display:block}
  .hd__cta{display:flex}
  .burger{display:none}
}
@media (min-width:1480px){
  .hd__tel{display:flex}
}
@media (min-width:1180px) and (max-width:1279px){
  .gnav .gl i{display:none}
  .gnav .gl b{font-size:13.5px}
  .hd__cta .btn--sm .btn__arr{display:none}
}
@media (min-width:1280px) and (max-width:1399px){
  .gnav .gl i{display:block}
}
/* mega menu */
.mm{position:fixed;left:0;right:0;top:var(--hd-row,72px);z-index:5;padding:0 var(--gutter);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .28s var(--ease),transform .4s var(--ease),visibility 0s .4s;pointer-events:none}
.mm::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.gnav__item.is-open>.mm{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
@media (hover:hover) and (min-width:1180px){
  .gnav__item.has-sub:hover>.mm{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:.06s}
}
.mm__in{max-width:1180px;margin:10px auto 0;background:#fff;border-radius:22px;border:1px solid var(--line-2);box-shadow:0 30px 70px -30px rgba(39,38,38,.35);display:grid;grid-template-columns:260px 1fr;overflow:hidden}
.mm__head{padding:30px 28px;background:var(--paper-warm);display:flex;flex-direction:column;gap:10px}
.mm__head .sh__en{font-size:11px}
.mm__head b{font-family:var(--ff-disp);font-size:21px;letter-spacing:.06em;line-height:1.5}
.mm__head p{font-size:12.5px;color:var(--ink-60);line-height:1.85}
.mm__head .tlink{margin-top:auto;font-size:13px;align-self:flex-start}
.mm__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;padding:22px}
.mm__card{display:flex;gap:12px;align-items:center;padding:10px;border-radius:14px;border:1px solid transparent;transition:background .25s,border-color .25s,transform .4s var(--ease)}
.mm__card:hover{background:var(--mist);border-color:var(--line-2);transform:translateY(-2px)}
.mm__card[aria-current="page"]{background:var(--gold-mist)}
.mm__th{flex:none;width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--mist-2);display:grid;place-items:center}
.mm__th img{width:100%;height:100%;object-fit:cover}
.mm__th svg{width:28px;height:28px;color:var(--gold-deep)}
.mm__th--line{background:var(--line-green)}
.mm__th--line svg{fill:#fff;width:30px;height:30px}
.mm__card span{display:grid;gap:2px;line-height:1.5;min-width:0}
.mm__card b{font-size:14px;letter-spacing:.06em}
.mm__card small{font-size:11.5px;color:var(--ink-60);letter-spacing:.02em;line-height:1.6}
/* quick bar（スマホ・タブレットで主要メニューを常時表示） */
.qbar{display:none}
@media (max-width:1179px){
  :root{--qbar-h:42px}
  .hd{height:calc(var(--hd-row,56px) + var(--qbar-h))}
  .hd__in{height:var(--hd-row,56px)}
  .qbar{position:relative;display:flex;gap:6px;width:100%;height:var(--qbar-h);align-items:center;padding:0 var(--gutter) 6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .qbar::-webkit-scrollbar{display:none}
  .qbar a{flex:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12.5px;font-weight:700;letter-spacing:.06em;white-space:nowrap}
  .qbar a[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:#fff}
  .qbar a.qbar__sell{border-color:var(--gold);background:var(--gold-mist)}
  .qbar a.qbar__sell[aria-current="page"]{background:var(--gold);color:var(--ink)}
  :root{--header-h:calc(56px + var(--qbar-h))}
}
@media (min-width:900px) and (max-width:1179px){
  :root{--header-h:calc(72px + var(--qbar-h))}
  .hd{--hd-row:72px}
  .hd__in{height:72px}
}
@media (max-width:899px){
  .hd{--hd-row:56px}
}
/* drawer v2（グループ表示） */
.drawer__groups{display:grid;gap:22px}
@media (min-width:700px){
  .drawer__groups{grid-template-columns:repeat(2,1fr);gap:26px 40px}
}
.dg__h{display:flex;align-items:baseline;gap:10px;font-family:var(--ff-disp);font-weight:700;font-size:13px;letter-spacing:.12em;color:var(--gold-deep);padding-bottom:6px;border-bottom:1px solid var(--gold-soft)}
.dg__h small{font-family:var(--ff-en);font-size:10px;letter-spacing:.24em;color:var(--ink-40)}
.drawer .dg__list a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 2px;border-bottom:1px solid var(--line);font-family:var(--ff-disp);font-weight:700;font-size:clamp(15px,4.2vw,18px);line-height:1.4;letter-spacing:.05em;opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.drawer .dg__list a::after{content:"";flex:none;width:7px;height:7px;border-top:1.5px solid var(--ink-40);border-right:1.5px solid var(--ink-40);transform:rotate(45deg)}
.drawer .dg__list a[aria-current="page"]{color:var(--gold-deep)}
.drawer.is-open .dg__list a{opacity:1;transform:none;transition-delay:calc(.2s + var(--i,0)*.035s)}
/* ---------------------------------------------------------------- 共通の小物 */
.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.08em;line-height:1.6;background:var(--mist);color:var(--ink-80);white-space:nowrap}
.badge--house{background:var(--k-house);color:#fff}
.badge--land{background:var(--k-land);color:#fff}
.badge--mansion{background:var(--k-mansion);color:#fff}
.badge--shop{background:var(--k-shop);color:#fff}
.badge--nego{background:#fff3e2;color:#9a5a00;border:1px solid #f0d2a6}
.badge--new{background:var(--gold);color:var(--ink)}
.badge--deal{background:#fff;border:1px solid var(--line);color:var(--ink-60)}
.note{font-size:12px;color:var(--ink-60);line-height:1.9}
.btn--line{--bg:var(--line-green);--fg:#fff;--bd:var(--line-green)}
.btn--line .btn__ic{background:rgba(255,255,255,.2)}
.btn--line::before{background:#05a648}
.btn--line:hover{color:#fff;border-color:#05a648}
.rc-skel{min-height:240px;border-radius:var(--r-md);background:linear-gradient(90deg,var(--mist) 0,#fafafa 50%,var(--mist) 100%);background-size:200% 100%;animation:skel 1.4s linear infinite}
@keyframes skel{to{background-position:-200% 0}}
/* ---------------------------------------------------------------- 物件一覧（v2） */
.ptool{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin-top:clamp(28px,4vw,48px)}
.ptool__count{font-size:14px;color:var(--ink-60)}
.ptool__count b{font-family:var(--ff-en);font-size:26px;font-weight:500;color:var(--ink);margin-right:4px}
.ptool__r{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sel{appearance:none;-webkit-appearance:none;height:42px;padding:0 38px 0 16px;border-radius:999px;border:1px solid var(--line);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23595959' stroke-width='1.6'/%3E%3C/svg%3E") right 15px center/11px no-repeat;font:inherit;font-size:13.5px;font-weight:700;letter-spacing:.04em;color:var(--ink);cursor:pointer}
.seg{display:inline-flex;padding:4px;border-radius:999px;background:var(--mist)}
.seg button{height:34px;padding:0 16px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--ink-60);display:inline-flex;align-items:center;gap:6px}
.seg button svg{width:15px;height:15px}
.seg button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:var(--sh-1)}
.pcard{position:relative}
.pcard__lnk{position:absolute;inset:0;z-index:1;border-radius:inherit}
.pcard__lnk:focus-visible{outline-offset:-3px}
.pcard__cta{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pcard__cta .btn{min-height:44px;padding:.5em .8em;font-size:.84em;gap:.5em}
.pcard__cta .btn__ic{width:24px;height:24px;border-radius:7px}
.pcard__cta .btn__ic svg{width:15px;height:15px}
.pcard__img .pcard__kind{z-index:2}
.pcard__img .pcard__st{position:absolute;right:12px;top:12px;z-index:2}
.pcard__img .pcard__n{position:absolute;right:10px;bottom:10px;z-index:2;padding:2px 9px;border-radius:999px;background:rgba(39,38,38,.66);color:#fff;font-family:var(--ff-en);font-size:11px;letter-spacing:.08em;display:inline-flex;gap:5px;align-items:center}
.pcard__img .pcard__n svg{width:12px;height:12px}
.pcard__p .pcard__pn{font-size:12px;font-family:var(--ff-jp);color:var(--ink-60);font-weight:500;margin-left:8px}
.pempty{padding:60px 20px;text-align:center;color:var(--ink-60);border:1px dashed var(--line);border-radius:var(--r-md);margin-top:30px}
.pmap{margin-top:24px;height:min(70svh,640px);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-2);background:var(--mist);position:relative;z-index:0}
.pmap .leaflet-popup-content{margin:12px 14px;font-family:var(--ff-jp)}
.mpop{display:grid;gap:4px;min-width:200px}
.mpop img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;margin-bottom:4px}
.mpop b{font-size:13px;line-height:1.5}
.mpop .mpop__p{font-family:var(--ff-en);font-size:20px;font-weight:500}
.mpop a{color:var(--gold-deep);font-weight:700;font-size:12.5px}
/* ---------------------------------------------------------------- 物件詳細 */
.pd{padding-top:calc(var(--header-h) + clamp(22px,3vw,40px));padding-bottom:clamp(60px,8vw,110px)}
.pd__top{display:grid;gap:clamp(22px,3vw,44px)}
.pd__top>*{min-width:0}
@media (min-width:1000px){
  .pd__top{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}
}
.pd__ttl{font-family:var(--ff-disp);font-weight:700;font-size:clamp(22px,2.8vw,34px);line-height:1.5;letter-spacing:.06em;margin-top:8px}
.pd__badges{display:flex;flex-wrap:wrap;gap:6px}
.pd__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-top:16px}
.pd__price b{font-family:var(--ff-en);font-weight:500;font-size:clamp(40px,5vw,58px);line-height:1;letter-spacing:.02em}
.pd__price small{font-size:18px;font-weight:700}
.pd__price span{font-size:12.5px;color:var(--ink-60)}
.pd__addr{margin-top:12px;color:var(--ink-80);font-size:14.5px;display:grid;gap:2px}
.pd__addr span{font-size:13px;color:var(--ink-60)}
.pd__keys{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:22px;background:var(--line-2);border:1px solid var(--line-2);border-radius:16px;overflow:hidden}
.pd__keys div{background:#fff;padding:12px 16px;display:grid;gap:2px}
.pd__keys dt{font-size:11.5px;color:var(--ink-60);letter-spacing:.1em}
.pd__keys dd{font-weight:700;font-size:15px;letter-spacing:.04em;line-height:1.5}
.pd__cta{display:grid;gap:10px;margin-top:22px}
.pd__cta .btn{width:100%}
.pd__cta-sub{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pd__cta-sub .btn{min-height:50px;font-size:.88em;padding-inline:.8em}
.pd__msgcopy{font-size:12px;color:var(--ink-60);text-align:center}
.pd__msgcopy button{color:var(--gold-deep);font-weight:700;border-bottom:1px solid currentColor}
/* gallery */
.gal{position:relative}
.gal__main{position:relative;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;background:#111;cursor:zoom-in}
.gal__main img{width:100%;height:100%;object-fit:contain;transition:opacity .35s}
.gal__main img.is-fading{opacity:0}
.gal__cap{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;font-size:13px;line-height:1.6;pointer-events:none}
.gal__cap b{font-size:11px;letter-spacing:.14em;margin-right:8px;color:var(--gold-soft)}
.gal__nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;box-shadow:var(--sh-2);z-index:2}
.gal__nav svg{width:16px;height:16px}
.gal__nav--p{left:12px}
.gal__nav--p svg{transform:scaleX(-1)}
.gal__nav--n{right:12px}
.gal__cnt{position:absolute;right:12px;top:12px;padding:3px 10px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-family:var(--ff-en);font-size:12px;letter-spacing:.08em;z-index:2}
.gal__th{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:thin;padding-bottom:6px;scroll-snap-type:x proximity}
.gal__th button{flex:none;width:86px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;opacity:.55;border:2px solid transparent;transition:opacity .25s,border-color .25s;scroll-snap-align:start;background:var(--mist)}
.gal__th button img{width:100%;height:100%;object-fit:cover}
.gal__th button[aria-current="true"]{opacity:1;border-color:var(--gold)}
.gal__th button:hover{opacity:1}
.lbx{position:fixed;inset:0;z-index:1600;background:rgba(14,13,12,.94);display:none;flex-direction:column}
.lbx.is-open{display:flex}
.lbx__img{flex:1;display:grid;place-items:center;padding:56px 12px 12px;min-height:0}
.lbx__img img{max-width:100%;max-height:100%;object-fit:contain}
.lbx__cap{color:#fff;text-align:center;font-size:13.5px;padding:8px 16px 22px;min-height:52px}
.lbx__x{position:absolute;right:14px;top:12px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;display:grid;place-items:center}
.lbx .gal__nav{background:rgba(255,255,255,.16);color:#fff}
.lbx .gal__cnt{left:16px;right:auto;top:20px}
/* sections */
.pd__sec{margin-top:clamp(44px,6vw,80px)}
.pd__sec>h2{display:flex;align-items:baseline;gap:14px;font-family:var(--ff-disp);font-weight:700;font-size:clamp(20px,2.4vw,26px);letter-spacing:.08em;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:20px}
.pd__sec>h2 small{font-family:var(--ff-en);font-weight:400;font-size:12px;letter-spacing:.26em;color:var(--gold-deep);text-transform:uppercase}
.pd__comment{display:grid;gap:18px}
@media (min-width:860px){
  .pd__comment{grid-template-columns:1fr 340px;align-items:start}
}
.pd__comment p{white-space:pre-line;line-height:2.05;color:var(--ink-80)}
.pd__staff{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:18px;background:var(--paper-warm)}
.pd__staff .av{flex:none}
.pd__staff p{font-size:13px;line-height:1.9}
.pd__staff b{display:block;font-size:12px;color:var(--gold-deep);letter-spacing:.1em;margin-bottom:4px}
.pd__tags{display:flex;flex-wrap:wrap;gap:6px}
.pd__tags li{padding:5px 12px;border-radius:999px;border:1px solid var(--gold-soft);background:var(--gold-mist);font-size:12.5px;font-weight:700;letter-spacing:.04em}
.spec{width:100%;border-top:1px solid var(--line);font-size:14px}
.spec tr{border-bottom:1px solid var(--line)}
.spec th,.spec td{padding:13px 12px;text-align:left;vertical-align:top;line-height:1.75}
.spec th{width:10.5em;background:var(--mist);font-weight:700;color:var(--ink-80);font-size:13px;letter-spacing:.06em}
@media (min-width:900px){
  .spec--2 tbody{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
  .spec--2 tr{display:grid;grid-template-columns:10.5em 1fr}
  .spec--2 th{width:auto}
}
@media (max-width:600px){
  .spec th{width:7.5em;padding:11px 10px;font-size:12.5px}
  .spec td{padding:11px 10px;font-size:13.5px}
}
.fac{display:grid;gap:12px}
@media (min-width:760px){
  .fac{grid-template-columns:1fr 1fr}
}
.fac div{padding:14px 16px;border-radius:14px;background:var(--mist)}
.fac dt{font-weight:700;font-size:13px;color:var(--gold-deep);letter-spacing:.1em;margin-bottom:4px}
.fac dd{font-size:13.5px;line-height:1.9;color:var(--ink-80)}
.pd__map{height:clamp(280px,42vw,440px);border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-2);background:var(--mist);position:relative;z-index:0}
.pd__mapnote{margin-top:8px}
.pd__co{display:grid;gap:4px;padding:18px 20px;border-radius:16px;border:1px solid var(--line-2);font-size:13px;color:var(--ink-80);line-height:1.9}
.pd__co b{font-size:14.5px}
.pd__dates{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:12.5px;color:var(--ink-60);margin-top:12px}
.pd__nf{padding:120px 0;text-align:center}
.pd__nf h1{font-family:var(--ff-disp);font-size:clamp(22px,3vw,30px);margin-bottom:14px}
.pd__nf p{color:var(--ink-60);margin-bottom:26px}
.pdbar{position:fixed;left:0;right:0;bottom:0;z-index:810;display:flex;align-items:center;gap:10px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line-2);transform:translateY(110%);transition:transform .5s var(--ease)}
.pdbar.is-show{transform:none}
.pdbar__p{flex:none;font-family:var(--ff-en);font-weight:500;font-size:22px;line-height:1;padding-left:4px}
.pdbar__p small{font-family:var(--ff-jp);font-size:12px;font-weight:700}
.pdbar .btn{flex:1;min-height:48px;font-size:14px;padding:.5em 1em}
@media (min-width:900px){
  .pdbar{display:none}
}
body.is-pd .mbar{display:none}
/* ---------------------------------------------------------------- 売却実績 */
.sold-hero__nums{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:18px;overflow:hidden;margin-top:26px;max-width:560px}
.sold-hero__nums div{background:#fff;padding:14px 10px;text-align:center;display:grid;gap:2px}
.sold-hero__nums b{font-family:var(--ff-en);font-weight:500;font-size:clamp(26px,3.2vw,36px);line-height:1.1}
.sold-hero__nums b i{font-style:normal}
.sold-hero__nums b small{font-family:var(--ff-jp);font-size:13px;margin-left:2px}
.sold-hero__nums span{font-size:11.5px;color:var(--ink-60);letter-spacing:.08em}
.sold-hero__big{display:flex;align-items:baseline;gap:8px;margin-top:22px}
.sold-hero__big b{font-family:var(--ff-en);font-weight:400;font-size:clamp(64px,9vw,112px);line-height:.95;letter-spacing:.01em;color:var(--ink)}
.sold-hero__big small{font-family:var(--ff-disp);font-size:clamp(16px,1.6vw,20px);font-weight:700}
.sold-hero__big em{font-style:normal;font-size:13px;color:var(--ink-60);margin-left:8px}
.sold-ctrl{display:grid;gap:14px;padding:clamp(18px,2.4vw,26px);border-radius:var(--r-md);background:var(--paper-warm);border:1px solid var(--line-2)}
@media (min-width:980px){
  .sold-ctrl{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px}
}
.sold-search{display:flex;gap:8px}
.sold-search label{display:block;font-weight:700;font-size:13px;letter-spacing:.08em;margin-bottom:6px}
.sold-search__in{flex:1;display:flex;border-radius:999px;border:1px solid var(--line);background:#fff;overflow:hidden;min-width:0}
.sold-search__in input{flex:1;min-width:0;border:0;padding:0 18px;height:48px;font:inherit;font-size:14.5px;background:transparent}
.sold-search__in input:focus{outline:none}
.sold-search__in:focus-within{border-color:var(--gold-deep);box-shadow:0 0 0 3px var(--gold-mist)}
.sold-search__in button{flex:none;padding:0 22px;background:var(--ink);color:#fff;font-weight:700;letter-spacing:.1em;font-size:14px}
.sold-search__msg{font-size:12.5px;color:var(--gold-deep);min-height:1.4em;margin-top:6px}
.sold-legend{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:13px;font-weight:700}
.sold-legend span{display:inline-flex;align-items:center;gap:6px}
.sold-legend i{width:14px;height:14px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:inline-block}
.sold-legend .l-house i{background:var(--k-house)}
.sold-legend .l-land i{background:var(--k-land)}
.sold-legend .l-mansion i{background:var(--k-mansion)}
.sold-legend p{width:100%;font-weight:400;font-size:12px;color:var(--ink-60)}
.smap{margin-top:16px;height:min(68svh,620px);min-height:380px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-2);background:#eef0f1;position:relative;z-index:0}
.smap__fb{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:8px;color:var(--ink-60);font-size:13.5px;padding:20px}
.sold-notes{margin-top:12px;display:grid;gap:2px}
.pinm{--c:var(--k-house);position:relative;width:34px;height:34px}
.pinm::before{content:"";position:absolute;inset:0;border-radius:50% 50% 50% 0;background:var(--c);transform:rotate(-45deg);box-shadow:0 6px 14px -4px rgba(0,0,0,.45);border:2px solid #fff}
.pinm svg{position:absolute;left:50%;top:46%;width:16px;height:16px;transform:translate(-50%,-50%);fill:#fff;z-index:1}
.pinm b{position:absolute;right:-8px;top:-8px;z-index:2;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#fff;color:var(--ink);font:700 11px/20px var(--ff-en);text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.pinm--land{--c:var(--k-land)}
.pinm--mansion{--c:var(--k-mansion)}
.pinm--shop{--c:var(--k-shop)}
.pinm--mix{--c:linear-gradient(135deg,var(--k-house) 50%,var(--k-land) 50%)}
.pinm--mix::before{background:var(--k-house)}
.pinm--you::before{background:var(--gold-deep);border-radius:50%;transform:none;width:18px;height:18px;left:8px;top:8px;box-shadow:0 0 0 8px rgba(189,163,102,.3)}
.spop{display:grid;gap:10px;max-height:300px;overflow:auto;min-width:220px;padding-right:4px}
.spop__h{font-weight:700;font-size:13px;letter-spacing:.04em;padding-bottom:6px;border-bottom:1px solid var(--line)}
.spop__i{display:grid;gap:2px;font-size:12.5px;line-height:1.6;padding-bottom:8px;border-bottom:1px dashed var(--line)}
.spop__i:last-child{border-bottom:0;padding-bottom:0}
.spop__i b{font-family:var(--ff-en);font-size:18px;font-weight:500}
.spop__i b small{font-family:var(--ff-jp);font-size:11px;margin-left:2px}
.spop__i span{color:var(--ink-60)}
.stabs{display:flex;gap:12px 20px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-top:clamp(34px,4vw,54px)}
.stabs__k{display:flex;gap:8px;flex-wrap:wrap}
.ssort{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--ink-60);letter-spacing:.06em}
.ssort select{appearance:none;-webkit-appearance:none;font:inherit;font-weight:700;color:var(--ink);background:#fff url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 8%27%3E%3Cpath d=%27M1 1.5l5 5 5-5%27 fill=%27none%27 stroke=%27%23272626%27 stroke-width=%271.8%27/%3E%3C/svg%3E") no-repeat right 14px center/11px;border:1px solid var(--line);border-radius:999px;padding:10px 38px 10px 18px;cursor:pointer}
.ssort select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.slist{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:18px}
.scard{position:relative;display:grid;gap:6px;align-content:start;padding:18px 18px 16px;border-radius:18px;border:1px solid var(--line-2);background:#fff;box-shadow:var(--sh-1);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.scard:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.scard::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 3px 3px 0;background:var(--k-house)}
.scard--land::before{background:var(--k-land)}
.scard--mansion::before{background:var(--k-mansion)}
.scard__hd{display:flex;justify-content:space-between;align-items:center;gap:8px}
.scard__d{font-family:var(--ff-en);font-size:12.5px;letter-spacing:.12em;color:var(--ink-60)}
.scard__p{font-family:var(--ff-en);font-weight:500;font-size:30px;line-height:1.15;letter-spacing:.02em}
.scard__p small{font-family:var(--ff-jp);font-size:14px;font-weight:700;margin-left:2px}
.scard__a{font-weight:700;font-size:14px;letter-spacing:.04em;line-height:1.6}
.scard__s{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--ink-60)}
.scard:has(.scard__m){padding-bottom:42px}
.scard__m{position:absolute;right:14px;bottom:12px;font-size:11.5px;font-weight:700;color:var(--gold-deep);display:inline-flex;align-items:center;gap:4px}
.scard__m svg{width:13px;height:13px}
.smore{display:flex;justify-content:center;margin-top:24px}
.sold-break{display:grid;gap:14px;margin-top:clamp(30px,4vw,50px)}
@media (min-width:860px){
  .sold-break{grid-template-columns:1fr 1fr}
}
.sold-break>div{padding:22px 24px;border-radius:var(--r-md);background:var(--mist)}
.sold-break h3{font-size:14px;letter-spacing:.1em;margin-bottom:14px}
.bar{display:grid;grid-template-columns:7em 1fr 3.4em;align-items:center;gap:10px;font-size:13px;margin-top:8px}
.bar i{display:block;height:10px;border-radius:999px;background:var(--line-2);overflow:hidden}
.bar i u{display:block;height:100%;border-radius:inherit;background:var(--gold);width:var(--w);transform-origin:left;transition:transform 1.4s var(--ease)}
.bar b{font-family:var(--ff-en);font-weight:500;text-align:right}
/* TOP：売却実績ティーザー・新着物件 */
.soldt{display:grid;gap:clamp(24px,4vw,56px);align-items:center}
@media (min-width:980px){
  .soldt{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
}
.soldt__map{position:relative;aspect-ratio:16/11;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-2);background:#eef0f1}
.soldt__map .smap{height:100%;min-height:0;margin:0;border:0;border-radius:0}
.soldt__list{display:grid;gap:10px;margin-top:24px}
.soldt__list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid var(--line);font-size:13.5px}
.soldt__list li b{font-family:var(--ff-en);font-weight:500;font-size:19px;white-space:nowrap}
.soldt__list li span{display:flex;gap:8px;align-items:center;min-width:0}
.soldt__list li em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.newp__rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(78vw,340px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 18px;scrollbar-width:thin;margin-top:clamp(28px,4vw,46px)}
.newp__rail>*{scroll-snap-align:start}
@media (min-width:1100px){
  .newp__rail{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(3,1fr);overflow:visible}
}
.newp__more{display:flex;justify-content:center;margin-top:18px}
/* ---------------------------------------------------------------- スタッフ */
.staff{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));margin-top:clamp(28px,4vw,50px)}
@media (min-width:1100px){.staff:has(> :nth-child(4)){grid-template-columns:repeat(4,1fr)}}
.scard2{display:grid;gap:16px;align-content:start;padding:clamp(22px,2.6vw,30px);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line-2);box-shadow:var(--sh-1)}
.scard2__hd{display:flex;gap:16px;align-items:center}
.scard2__who{display:grid;gap:2px}
.scard2__who b{font-family:var(--ff-disp);font-size:20px;letter-spacing:.1em}
.scard2__who span{font-size:12.5px;color:var(--ink-60);letter-spacing:.06em}
.scard2__msg{position:relative;padding-top:14px;border-top:1px dashed var(--line);font-size:14px;line-height:2;color:var(--ink-80)}
.scard2__msg::before{content:"Message";display:block;font-family:var(--ff-en);font-size:11px;letter-spacing:.26em;color:var(--gold-deep);margin-bottom:6px}
.scard2__dl{display:grid;gap:1px;background:var(--line-2);border-radius:12px;overflow:hidden}
.scard2__dl div{display:grid;grid-template-columns:6.5em 1fr;background:var(--mist);font-size:13px}
.scard2__dl dt{padding:9px 12px;font-weight:700;color:var(--ink-80)}
.scard2__dl dd{padding:9px 12px;background:#fff}
.av{position:relative;flex:none;width:var(--av,84px);height:var(--av,84px);border-radius:50%;overflow:hidden;background:var(--gold-mist);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.av img{width:100%;height:100%;object-fit:cover}
.av svg{width:100%;height:100%}
.av--init{font-family:var(--ff-disp);font-weight:700;font-size:calc(var(--av,84px)*.38);color:var(--gold-deep)}
.av--s{--av:52px}
/* ---------------------------------------------------------------- 売却LP：イクラ不動産から移した内容 */
.str{display:grid;gap:clamp(24px,3vw,40px)}
@media (min-width:980px){
  .str{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
}
.str__pts{display:grid;gap:12px}
.str__pts li{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:#fff;border:1px solid var(--line-2);font-weight:700;line-height:1.7}
.str__pts li::before{content:"";flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23272626' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.str__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.str__tags li{padding:7px 14px;border-radius:999px;background:var(--gold-mist);color:var(--ink);border:1px solid var(--gold-soft);font-size:12.5px;font-weight:700;letter-spacing:.06em}
.acc{border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 4px;font-family:var(--ff-disp);font-weight:700;font-size:clamp(15px,1.6vw,17px);letter-spacing:.05em;line-height:1.6}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23272626' stroke-width='2'/%3E%3C/svg%3E") center/14px no-repeat;transition:transform .4s var(--ease)}
.acc details[open] summary::after{transform:rotate(180deg)}
.acc details p{padding:0 4px 22px;color:var(--ink-80);line-height:2.05}
.lpmap{display:grid;gap:clamp(20px,3vw,40px);align-items:center}
@media (min-width:980px){
  .lpmap{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
}
/* ---------------------------------------------------------------- TOP FV：撮影写真のスライド演出 */
/* 店舗写真ギャラリー（TOP） */
.shopg{overflow:hidden;padding-block:clamp(56px,8vw,110px);background:var(--paper-warm)}
.shopg__hd{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px}
.shopg__rail{display:flex;gap:16px;margin-top:clamp(26px,3.6vw,44px);width:max-content;animation:shopg 70s linear infinite}
.shopg:hover .shopg__rail{animation-play-state:paused}
.shopg__rail figure{flex:none;width:clamp(240px,30vw,420px);aspect-ratio:3/2;border-radius:22px;overflow:hidden;background:var(--mist-2)}
.shopg__rail figure:nth-child(even){margin-top:clamp(18px,3vw,40px)}
.shopg__rail img{width:100%;height:100%;object-fit:cover}
@keyframes shopg{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .shopg__rail{animation:none;overflow-x:auto;width:auto}
}
/* leaflet の微調整 */
.leaflet-container{font-family:var(--ff-jp)!important}
.leaflet-popup-content-wrapper{border-radius:14px!important}
.leaflet-div-icon{background:transparent!important;border:0!important}
.leaflet-control-attribution{font-size:10px!important}

/* ======================================================================
   4. 調整（第5回修正：ロゴ・TOPの一面写真・住宅の相談窓口）
   ====================================================================== */
/* ---------------------------------------------------------------- 正式ロゴ */
.logo{display:block;line-height:0}
.logo__img{display:block;height:46px;width:auto}
.ft__brand .logo__img{height:62px}
@media (max-width:899px){
  .logo__img{height:34px}
  .ft__brand .logo__img{height:52px}
}
@media (min-width:1180px) and (max-width:1279px){
  .logo__img{height:40px}
}
.loader__mark{width:clamp(110px,18vw,170px)}
.loader__mark path{opacity:0;transform-box:fill-box;transform-origin:center}
.loader.is-run .loader__mark path{opacity:1;transform:none;transition:opacity .9s var(--ease),transform 1.3s var(--ease)}
.loader.is-run .loader__mark .p3,.loader.is-run .loader__mark .p4{transition-delay:.25s}
img.loader__word{width:clamp(150px,20vw,200px);height:auto;padding:0;font:inherit}
img.ft__word{position:absolute;right:-1vw;bottom:-1.6vw;width:min(1100px,86vw);height:auto;opacity:.05;pointer-events:none;user-select:none}
.lpfv__logo img{display:block;height:clamp(40px,4.6vw,58px);width:auto}
.infolinks--partner .ilink svg{width:22px;height:22px}
/* ------------------------------------------------- TOP：一面写真のファーストビュー
   写真は何も重ねずに全体を見せ、キャッチコピーだけを白い帯で写真の上に。
   ご相談ボタンとお知らせは、写真のすぐ下の帯（.fvbar）に置く */
.fv--photo{position:relative;background:#fff;padding-top:var(--header-h);overflow:hidden}
.fv--photo .fv__photo{position:relative;height:clamp(380px,72svh,600px);overflow:hidden;background:#d8d4ce}
.fv--photo .fv__photo picture,.fv--photo .fv__photo img{display:block;width:100%;height:100%}
.fv--photo .fv__photo img{object-fit:cover;object-position:50% 50%}
.js .fv--photo .fv__photo img{transform:scale(1.08);opacity:0;transition:transform 2.6s cubic-bezier(.2,.7,.2,1),opacity 1.4s var(--ease)}
.js body.anime--01 .fv--photo .fv__photo img{transform:none;opacity:1}
/* キャッチコピー：写真の上に白い帯 */
.fv--photo .fv__copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(18px,4vw,28px);z-index:3;pointer-events:none}
.fv--photo .fv__ttl{font-size:clamp(17px,5vw,24px);line-height:1.5;letter-spacing:.08em}
.fv--photo .fv__ttl .ln{display:table;background:rgba(255,255,255,.94);padding:.18em .55em .2em;margin-top:.34em;box-shadow:0 10px 24px -16px rgba(39,38,38,.5)}
.fv--photo .fv__ttl .ln:first-child{margin-top:0}
.fv--photo .fv__en{margin-top:12px;font-size:clamp(12px,3.2vw,15px);color:#fff;font-weight:500;letter-spacing:.14em;text-shadow:0 1px 12px rgba(0,0,0,.55),0 0 3px rgba(0,0,0,.45)}
.js .fv--photo .fv__ttl .ln{opacity:0;transform:translateX(-14px);transition:opacity .9s var(--ease),transform 1s var(--ease)}
.js body.anime--02 .fv--photo .fv__ttl .ln{opacity:1;transform:none}
.js body.anime--02 .fv--photo .fv__ttl .ln:nth-child(2){transition-delay:.12s}
.js body.anime--02 .fv--photo .fv__ttl .ln:nth-child(3){transition-delay:.24s}
.js .fv--photo .fv__en{opacity:0;transition:opacity 1.2s var(--ease) .6s}
.js body.anime--02 .fv--photo .fv__en{opacity:1}
/* 3つの約束（縦書きの札） */
.fv--photo .fv__pills{position:absolute;top:calc(var(--header-h) + 16px);left:14px;right:auto;z-index:4;gap:6px}
.fv--photo .fv__pills .pill{font-size:12px;padding:14px 8px 12px;letter-spacing:.14em;box-shadow:0 10px 30px -14px rgba(39,38,38,.45)}
.js body.anime--02 .fv--photo .pill:nth-child(1){transition-delay:0s}
.js body.anime--02 .fv--photo .pill:nth-child(2){transition-delay:.12s}
.js body.anime--02 .fv--photo .pill:nth-child(3){transition-delay:.24s}
.fv--photo .fv__scroll{display:none}
/* 写真の下の帯：ご相談ボタン＋お知らせ */
.fvbar{position:relative;background:#fff;padding:clamp(22px,3vw,34px) 0 clamp(14px,2vw,20px)}
.fvbar__in{display:grid;gap:18px;align-items:center}
.fvbar__lead{font-family:var(--ff-disp);font-weight:700;font-size:clamp(15px,1.3vw,17px);letter-spacing:.06em;line-height:1.7}
.fvbar__lead b{color:var(--gold-deep)}
.fvbar__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.fvbar .fv__news{position:static;margin:0;max-width:none;width:100%;box-shadow:var(--sh-2);border:1px solid var(--line-2)}
@media (min-width:900px){
  .fv--photo{height:auto;min-height:0}
  .fv--photo .fv__photo{height:min(56.25vw, calc(100svh - var(--header-h) - 40px));min-height:500px}
  .fv--photo .fv__copy{left:max(var(--gutter),calc((100vw - 1440px)/2 + 40px));right:auto;top:50%;bottom:auto;transform:translateY(-12%)}
  .fv--photo .fv__ttl{font-size:clamp(24px,2.4vw,38px);line-height:1.45}
  .fv--photo .fv__en{font-size:clamp(14px,1.15vw,18px);margin-top:14px}
  /* 窓と看板のあいだの壁に置く（写真の切り抜き位置から計算。看板にかからない） */
  .fv--photo .fv__pills{top:calc(var(--header-h) + clamp(24px,5svh,56px));left:calc(50% + .12 * max(100%, min(56.25vw, 100svh - var(--header-h) - 40px) * 1.7778));right:auto;transform:translateX(-50%);gap:8px}
  .fv--photo .fv__pills .pill{font-size:clamp(13px,1.25vw,19px);padding:18px 11px 15px;letter-spacing:.12em}
  .fv--photo .fv__scroll{display:flex;position:absolute;right:clamp(20px,2.4vw,40px);top:calc(var(--header-h) + 24px);left:auto;bottom:auto;transform:none;color:#fff;z-index:4}
  .fv--photo .fv__scroll i{background:linear-gradient(#fff,transparent)}
  .fvbar__in{grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:clamp(24px,4vw,64px)}
}
/* 横に広い画面は、看板の右の余白（右上）に */
@media (min-width:1366px) and (min-aspect-ratio:8/5){
  .fv--photo .fv__pills{left:auto;right:calc(clamp(20px,2.4vw,40px) + 44px);transform:none}
}
@media (min-width:900px) and (max-height:700px){
  .fv--photo .fv__pills .pill{font-size:clamp(12px,2.1svh,16px);padding:14px 9px 12px}
}
/* ------------------------------------- 住宅の相談窓口：「家づくりの悩みを解決」以下 */
.sd-lead{margin-top:6px;font-size:clamp(15px,1.25vw,17px);line-height:2;color:var(--ink-80);text-align:center}
.sd-index{margin-top:clamp(30px,4vw,48px)}
.sd-index ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sd-index a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 18px;background:#fff;border:1px solid var(--line-2);border-radius:16px;font-weight:700;font-size:15px;line-height:1.5;letter-spacing:.04em;transition:transform .4s var(--ease),box-shadow .4s,border-color .3s}
.sd-index a::after{content:"";width:9px;height:9px;border-right:1.6px solid var(--gold-deep);border-bottom:1.6px solid var(--gold-deep);transform:rotate(45deg) translate(-2px,-2px)}
.sd-index a:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--gold-soft)}
.sd-index b{font-family:var(--ff-en);font-weight:400;font-size:20px;letter-spacing:.06em;color:var(--gold-deep)}
@media (min-width:1000px){
  .sd-index ol{grid-template-columns:repeat(5,1fr)}
  .sd-index a{grid-template-columns:1fr;justify-items:start;align-content:start;gap:8px;height:100%;padding:18px 18px 40px;position:relative;font-size:14.5px}
  .sd-index a::after{position:absolute;right:18px;bottom:18px}
}
.sd-cases{display:grid;gap:clamp(22px,3vw,36px);margin-top:clamp(40px,5vw,64px)}
.sd-case{display:grid;background:#fff;border:1px solid var(--line-2);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);scroll-margin-top:calc(var(--header-h) + 20px)}
.sd-case__fig{display:grid;place-items:center;background:var(--gold-mist);padding:18px 24px;min-height:200px}
.sd-case__fig img{width:min(100%,320px);height:auto;mix-blend-mode:multiply}
.sd-case__body{display:grid;gap:18px;align-content:center;padding:28px 22px 30px}
.sd-case__no{display:flex;align-items:center;gap:12px;line-height:1}
.sd-case__no span{display:inline-block;padding:7px 14px;border-radius:999px;background:var(--ink);color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.16em}
.sd-case__no b{font-family:var(--ff-en);font-weight:300;font-size:34px;letter-spacing:.04em;color:var(--gold-deep)}
.sd-case__q{font-family:var(--ff-disp);font-weight:700;font-size:clamp(22px,5.6vw,30px);line-height:1.55;letter-spacing:.05em;color:var(--ink)}
.sd-case__a{display:grid;gap:10px;padding:22px 22px 24px;background:var(--paper-warm);border:1px solid #efe8da;border-radius:20px}
.sd-case__lb{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:700;letter-spacing:.12em;color:var(--gold-deep)}
.sd-case__lb svg{width:24px;height:24px;padding:4px;border-radius:50%;background:var(--gold);color:#fff;flex:none}
.sd-case__h{font-weight:700;font-size:clamp(17.5px,4.4vw,21px);line-height:1.7;letter-spacing:.04em;color:var(--ink)}
.sd-case__tx{font-size:16px;line-height:2.05;color:var(--ink-80)}
@media (min-width:860px){
  .sd-case{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);min-height:400px}
  .sd-case:nth-child(even){grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr)}
  .sd-case:nth-child(even) .sd-case__fig{order:2}
  .sd-case__fig{padding:40px}
  .sd-case__fig img{width:min(100%,400px)}
  .sd-case__body{padding:clamp(34px,4vw,60px)}
  .sd-case__q{font-size:clamp(24px,2.3vw,32px)}
  .sd-case__a{padding:26px 30px 28px}
  .sd-case__h{font-size:clamp(18px,1.55vw,21px)}
  .sd-case__tx{font-size:clamp(16px,1.15vw,17px)}
}
.sd-close{margin-top:clamp(48px,6vw,80px);display:grid;justify-items:center;gap:24px;text-align:center}
.sd-close__t{font-family:var(--ff-serif);font-weight:700;font-size:clamp(21px,2.6vw,32px);line-height:1.8;letter-spacing:.1em}
.sd-close__t em{font-style:normal;color:var(--gold-deep);background:linear-gradient(transparent 64%,var(--gold-soft) 64%);padding:0 .1em}
.sd-can__list{list-style:none;margin:clamp(34px,5vw,56px) 0 0;padding:0;display:grid;gap:18px}
@media (min-width:760px){
  .sd-can__list{grid-template-columns:1fr 1fr;gap:24px}
}
.sd-can__item{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:center;background:#fff;border:1px solid var(--line-2);border-radius:var(--r-lg);padding:28px 26px 30px;box-shadow:var(--sh-1)}
.sd-can__ic{grid-row:span 2;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--gold-mist);color:var(--gold-deep)}
.sd-can__ic svg{width:32px;height:32px}
.sd-can__no{font-size:12.5px;font-weight:700;letter-spacing:.14em;color:var(--gold-deep);align-self:end}
.sd-can__no b{font-family:var(--ff-en);font-size:17px;font-weight:500;letter-spacing:.06em}
.sd-can__t{font-family:var(--ff-disp);font-weight:700;font-size:clamp(19px,1.8vw,23px);line-height:1.5;letter-spacing:.06em;align-self:start}
.sd-can__tx{grid-column:1/-1;margin-top:12px;padding-top:16px;border-top:1px dashed var(--line);font-size:16px;line-height:2;color:var(--ink-80)}
@media (min-width:900px){
  .sd-can__item{padding:34px 34px 36px}
  .sd-can__tx{font-size:16.5px}
}
.sd-faq .faq{gap:14px}
.sd-faq .faq summary{padding:22px 24px;font-size:clamp(16px,1.3vw,18px);grid-template-columns:38px 1fr 28px}
.sd-faq .faq summary::before{width:38px;height:38px;font-size:16px}
.sd-faq .faq__a{position:relative;padding:4px 26px 26px 86px;font-size:16px;color:var(--ink-80)}
.sd-faq .faq__a::before{content:"A";position:absolute;left:24px;top:0;width:38px;height:38px;border-radius:50%;background:var(--gold);color:#fff;display:grid;place-items:center;font-family:var(--ff-en);font-size:16px;line-height:1}
@media (max-width:599px){
  .sd-faq .faq summary{padding:18px 16px;gap:12px}
  .sd-faq .faq__a{padding:4px 16px 22px 66px}
  .sd-faq .faq__a::before{left:16px}
}
.sd-book .book__card>p{font-size:16px;line-height:2;color:var(--ink-80)}
.sd-book .book__ttl{font-size:clamp(21px,2.2vw,27px)}
.sd-book .cform__note{font-size:14.5px}
.sd-index span,.sd-case__q,.sd-case__h,.sd-can__t,.sd-close__t{word-break:auto-phrase}

/* ======================================================================
   5. LPページの部品（atelier.k・不動産売却）
   ====================================================================== */
.lp-sec-lead{margin:14px auto 0;max-width:46em;text-align:center;color:var(--ink-60);font-size:clamp(14.5px,1.15vw,16px);line-height:2}
/* お悩みチェック */
.lp-worry{list-style:none;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));margin:clamp(28px,4vw,48px) 0 0}
.lp-worry li{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line-2);border-radius:var(--r-md);padding:18px 20px;font-weight:700;font-size:15px;line-height:1.75}
.lp-worry li::before{content:"";flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 10%27%3E%3Cpath d=%27M1.5 5.2 4.6 8 10.5 1.8%27 fill=%27none%27 stroke=%27%23fff%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E") center/11px no-repeat}
.lp-worry__group{margin-top:clamp(30px,4vw,46px)}
.lp-worry__group h3{display:flex;align-items:center;gap:12px;font-family:var(--ff-disp);font-size:clamp(16px,1.4vw,19px);letter-spacing:.06em}
.lp-worry__group h3 small{font-family:var(--ff-en);font-size:11px;letter-spacing:.24em;color:var(--gold-deep);text-transform:uppercase}
.lp-answer{margin:clamp(30px,4vw,48px) auto 0;max-width:780px;text-align:center;background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:clamp(22px,3vw,34px) clamp(20px,4vw,48px);font-family:var(--ff-disp);font-weight:700;font-size:clamp(17px,1.8vw,23px);line-height:1.7;letter-spacing:.04em;position:relative}
.lp-answer::before{content:"";position:absolute;left:50%;top:-14px;transform:translateX(-50%);border:14px solid transparent;border-top:0;border-bottom-color:var(--ink)}
.lp-answer em{font-style:normal;color:var(--gold)}
/* サービスカード */
.lp-svc{display:grid;gap:clamp(18px,2.4vw,28px);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));margin-top:clamp(30px,4vw,54px)}
.lp-svc__c{background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);border:1px solid var(--line-2);display:flex;flex-direction:column}
.lp-svc__fig{aspect-ratio:3/2;background:var(--gold-mist);overflow:hidden}
.lp-svc__fig img{width:100%;height:100%;object-fit:cover}
.lp-svc__fig--ill img{object-fit:contain;mix-blend-mode:multiply;padding:6%}
.lp-svc__b{padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:10px;flex:1}
.lp-svc__for{align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.1em;padding:4px 12px;border-radius:999px;background:var(--gold-mist);color:var(--gold-deep);border:1px solid var(--gold-soft)}
.lp-svc__for--biz{background:var(--ink);color:#fff;border-color:var(--ink)}
.lp-svc__t{font-family:var(--ff-disp);font-size:clamp(17px,1.5vw,20px);line-height:1.5;letter-spacing:.04em}
.lp-svc__p{color:var(--ink-60);font-size:14.5px;line-height:1.95}
.lp-svc__ul{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:6px;font-size:13.5px;color:var(--ink-80)}
.lp-svc__ul li{position:relative;padding-left:16px;line-height:1.7}
.lp-svc__c--wide .lp-svc__fig{aspect-ratio:3/2}
@media (min-width:900px){.lp-svc__c--wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.lp-svc__c--wide .lp-svc__fig{aspect-ratio:auto;min-height:100%}.lp-svc__c--wide .lp-svc__b{justify-content:center;padding:clamp(28px,3.4vw,48px)}}
.lp-svc__ul li::before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
/* 流れ */
.lp-flow{list-style:none;padding:0;margin:clamp(30px,4vw,54px) 0 0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));counter-reset:f}
.lp-flow li{position:relative;background:#fff;border-radius:var(--r-md);border:1px solid var(--line-2);padding:22px 20px 20px;counter-increment:f}
.lp-flow li::before{content:"STEP " counter(f, decimal-leading-zero);display:block;font-family:var(--ff-en);font-size:12px;letter-spacing:.22em;color:var(--gold-deep);margin-bottom:8px}
.lp-flow b{display:block;font-family:var(--ff-disp);font-size:16.5px;line-height:1.5;letter-spacing:.04em}
.lp-flow p{margin-top:8px;color:var(--ink-60);font-size:13.5px;line-height:1.85}
@media (min-width:900px){.lp-flow--4{grid-template-columns:repeat(4,1fr)}.lp-flow--4 li:nth-child(4n)::after{display:none}}
@media (min-width:900px){.lp-flow li:not(:last-child)::after{content:"";position:absolute;right:-12px;top:50%;width:10px;height:10px;border-top:2px solid var(--gold);border-right:2px solid var(--gold);transform:translateY(-50%) rotate(45deg);z-index:1}}
/* 比較表 */
.lp-cmp{margin-top:clamp(28px,4vw,48px);overflow-x:auto;-webkit-overflow-scrolling:touch}
.lp-cmp table{width:100%;min-width:620px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line-2);font-size:14px;line-height:1.75}
.lp-cmp th,.lp-cmp td{padding:14px 18px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top}
.lp-cmp tr:last-child th,.lp-cmp tr:last-child td{border-bottom:0}
.lp-cmp thead th{background:var(--ink);color:#fff;font-family:var(--ff-disp);font-size:15px;letter-spacing:.06em}
.lp-cmp thead th:first-child{background:var(--charcoal)}
.lp-cmp tbody th{width:20%;background:var(--gold-mist);font-weight:700;white-space:nowrap}
.lp-note{margin-top:14px;font-size:12.5px;color:var(--ink-40);line-height:1.9}
.lp-note a{color:var(--gold-deep);border-bottom:1px solid currentColor}
/* 数字・ポイント */
.lp-points{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));margin-top:clamp(28px,4vw,48px)}
@media (min-width:900px){.lp-points{grid-template-columns:repeat(3,1fr)}}
.lp-points div{background:#fff;border-radius:var(--r-md);padding:22px;border:1px solid var(--line-2)}
.lp-points b{display:block;font-family:var(--ff-disp);font-size:16px;letter-spacing:.04em;line-height:1.5}
.lp-points b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:.15em}
.lp-points p{margin-top:8px;color:var(--ink-60);font-size:13.5px;line-height:1.85}
/* 横並びのギャラリー */
.lp-gal{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin-top:clamp(28px,4vw,48px)}
.lp-gal figure{margin:0;border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/3;background:var(--mist)}
.lp-gal img{width:100%;height:100%;object-fit:cover}
.lp-gal figcaption{display:none}
@media (min-width:900px){.lp-gal{grid-template-columns:repeat(4,1fr)}.lp-gal figure:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}
/* 目次 */
.lp-toc{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:24px}
.lp-toc a{padding:9px 16px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:700;letter-spacing:.05em;transition:background .3s,border-color .3s}
.lp-toc a:hover{background:var(--gold-mist);border-color:var(--gold)}
.lpfv__badges{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.lpfv__badges li{display:flex;align-items:baseline;gap:4px;padding:10px 16px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.lpfv__badges b{font-family:var(--ff-en);font-size:22px;font-weight:500;color:var(--gold);line-height:1}
.lpfv__badges li:not(:first-child) b{font-family:var(--ff-disp);font-size:15px}
.lpfv__badges small{font-size:10.5px;font-weight:500;color:rgba(255,255,255,.7);margin-left:4px}
.lp-cmp--fit table{min-width:0}
@media (max-width:599px){.lp-cmp--fit th,.lp-cmp--fit td{padding:12px 12px;font-size:13px}.lp-cmp--fit tbody th{white-space:normal;width:26%}}
