/* ============================================================
   株式会社TRUST — Detective Agency
   Design System: dark editorial × dawn-gold accent (unseen.co DNA)
   ============================================================ */

:root{
  --ink:#0A0A0B;
  --ink-2:#121214;
  --ink-3:#1A1A1D;
  --line:rgba(237,237,232,.12);
  --line-2:rgba(237,237,232,.2);
  --fg:#F2F2EC;
  --fg-mute:#BDBDB4;
  --fg-dim:#8C8B82;
  --gold:#C8A24A;
  --gold-soft:#D8B868;
  --gold-deep:#9C7B30;
  --danger:#C0563E;

  --ff-mincho:"Shippori Mincho", serif;
  --ff-sans:"Noto Sans JP", system-ui, sans-serif;
  --ff-mono:"DM Mono", monospace;
  --ff-disp:"Anton", sans-serif;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-2:cubic-bezier(.65,.05,.36,1);
  --maxw:1320px;
  --pad:clamp(20px,5vw,80px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

body{
  background:var(--ink);
  color:var(--fg);
  font-family:var(--ff-sans);
  font-weight:400;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  letter-spacing:.02em;
  cursor:none;
  line-break:strict;
  word-break:normal;
  overflow-wrap:normal;
}
@media (hover:none){ body{cursor:auto} }

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:none;border:none;background:none;color:inherit}
::selection{background:var(--gold);color:var(--ink)}

.mono{font-family:var(--ff-mono);font-weight:500;letter-spacing:.04em}
.accent{color:var(--gold)}
.reg{font-size:.4em;vertical-align:top;color:var(--gold)}

/* ---------- LOADER ---------- */
.loader{position:fixed;inset:0;z-index:9999;background:var(--ink);display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s}
.loader.is-done{opacity:0;visibility:hidden}
.loader__inner{width:min(360px,70vw);text-align:center}
.loader__mark{font-family:var(--ff-disp);font-size:clamp(48px,9vw,84px);letter-spacing:.04em;line-height:1}
.loader__reg{font-size:.28em;vertical-align:top;color:var(--gold)}
.loader__bar{height:1px;background:var(--line);margin:28px 0 12px;position:relative;overflow:hidden}
.loader__fill{position:absolute;inset:0;width:0;background:var(--gold);transform-origin:left}
.loader__meta{display:flex;justify-content:space-between;color:var(--fg-mute);font-size:13px}

/* ---------- CURSOR ---------- */
.cursor{position:fixed;top:0;left:0;z-index:9000;pointer-events:none;mix-blend-mode:difference;will-change:transform}
.cursor__dot{position:absolute;top:0;left:0;width:6px;height:6px;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}
.cursor__ring{position:absolute;top:0;left:0;width:36px;height:36px;border:1px solid rgba(255,255,255,.6);border-radius:50%;transform:translate(-50%,-50%) scale(1);transition:width .3s var(--ease),height .3s var(--ease),opacity .3s,border-color .3s}
.cursor__label{position:absolute;top:0;left:0;transform:translate(-50%,-50%);font-family:var(--ff-mono);font-size:13px;color:#fff;opacity:0;white-space:nowrap;transition:opacity .25s}
.cursor.is-hover .cursor__ring{width:64px;height:64px}
.cursor.is-cta .cursor__ring{width:80px;height:80px;background:rgba(255,255,255,.0);border-color:#fff}
.cursor.is-plus .cursor__ring{width:72px;height:72px}
.cursor.has-label .cursor__label{opacity:1}
.cursor.has-label .cursor__dot{opacity:0}
.cursor.is-hidden{opacity:0}
@media (hover:none){ .cursor{display:none} }

/* ---------- FX CANVAS ---------- */
.fx{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.55}

/* ---------- HEADER ---------- */
.header{position:fixed;top:0;left:0;width:100%;z-index:1000;display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--pad);transition:transform .5s var(--ease),background .5s,padding .5s,border-color .5s;
  border-bottom:1px solid transparent}
.header.is-scrolled{background:rgba(10,10,11,.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:14px var(--pad);border-color:var(--line)}
.header.is-hidden{transform:translateY(-105%)}
.header__brand{display:flex;align-items:baseline;gap:12px}
.header__logo{font-family:var(--ff-disp);font-size:26px;letter-spacing:.06em;line-height:1}
.header__sub{font-size:13px;color:var(--fg-mute)}
.nav{display:flex;gap:30px}
.nav__link{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--fg-mute);transition:color .3s;position:relative}
.nav__link::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);transition:width .4s var(--ease)}
.nav__link:hover{color:var(--fg)}
.nav__link:hover::after{width:100%}
.nav__idx{font-size:13px;color:var(--gold)}
.header__cta{display:flex;align-items:center;gap:9px;font-size:13px;padding:11px 20px;border:1px solid var(--line-2);border-radius:100px;transition:.4s var(--ease);white-space:nowrap}
.header__cta:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--gold);position:relative;flex:none}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--gold);animation:pulse 2s var(--ease) infinite}
.header__cta:hover .pulse,.header__cta:hover .pulse::after{background:var(--ink)}
@keyframes pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.4);opacity:0}}

.burger{display:none;width:42px;height:42px;position:relative;z-index:1100}
.burger span{position:absolute;left:9px;width:24px;height:1.5px;background:var(--fg);transition:.4s var(--ease)}
.burger span:nth-child(1){top:17px}
.burger span:nth-child(2){top:24px}
.burger.is-open span:nth-child(1){top:20px;transform:rotate(45deg)}
.burger.is-open span:nth-child(2){top:20px;transform:rotate(-45deg)}

/* ---------- MOBILE MENU ---------- */
.mmenu{position:fixed;inset:0;z-index:1050;background:var(--ink-2);display:flex;flex-direction:column;justify-content:center;padding:var(--pad);
  clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);visibility:hidden}
.mmenu.is-open{clip-path:inset(0 0 0 0);visibility:visible}
.mmenu__nav{display:flex;flex-direction:column;gap:6px}
.mmenu__link{display:flex;align-items:baseline;gap:16px;font-family:var(--ff-mincho);font-weight:600;font-size:clamp(28px,8vw,40px);padding:10px 0;border-bottom:1px solid var(--line);transition:color .3s,padding-left .3s var(--ease)}
.mmenu__link .mono{font-size:13px;color:var(--gold)}
.mmenu__link:hover,.mmenu__link:active{color:var(--gold);padding-left:12px}
.mmenu__foot{margin-top:48px}
.mmenu__tel{font-family:var(--ff-disp);font-size:34px;letter-spacing:.04em;color:var(--gold)}
.mmenu__foot p{font-size:13px;color:var(--fg-mute);margin-top:8px}

/* ============================================================
   SHARED SECTION ELEMENTS
   ============================================================ */
section{position:relative;z-index:1;padding:clamp(90px,14vh,170px) var(--pad)}
.sec__tag{font-size:13px;color:var(--gold);margin-bottom:30px;display:inline-block}
.sec__head{max-width:var(--maxw);margin:0 auto clamp(50px,7vw,90px)}
.sec__title{font-family:var(--ff-mincho);font-weight:700;font-size:clamp(30px,5.2vw,62px);line-height:1.3;letter-spacing:.01em}
.sec__desc{max-width:640px;margin-top:26px;color:var(--fg-mute);font-size:clamp(14px,1.6vw,16px)}
.sec__desc strong{color:var(--fg);font-weight:500}

/* reveal base (will-change is toggled by JS only while animating, not persistently) */

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;font-size:14px;padding:17px 32px;border-radius:100px;transition:.4s var(--ease);letter-spacing:.04em}
.btn--primary{background:var(--gold);color:var(--ink);font-weight:500}
.btn--primary:hover{background:var(--gold-soft);transform:translateY(-2px)}
.btn--ghost{border:1px solid var(--line-2);color:var(--fg)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn--block{width:100%;justify-content:center;margin-top:8px}
.btn__arrow{transition:transform .4s var(--ease)}
.btn:hover .btn__arrow{transform:translateX(6px)}

/* ============================================================
   01 HERO
   ============================================================ */
.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(26px,4vh,46px);
  padding-top:clamp(104px,14vh,148px);padding-bottom:clamp(20px,4vh,40px)}
.hero__inner{flex:1;max-width:var(--maxw);width:100%;margin:0 auto;display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero__text{display:flex;flex-direction:column}
.hero__eyebrow{font-size:clamp(12px,1.3vw,14px);color:var(--gold);margin-bottom:26px}
.hero__title{font-family:var(--ff-mincho);font-weight:800;font-size:clamp(30px,3.3vw,58px);line-height:1.18;letter-spacing:.01em}
.hero__title .line{display:block;overflow:hidden}
.line--accent{color:var(--gold)}
.hero__lead{margin-top:28px;max-width:460px;color:var(--fg-mute);font-size:clamp(14px,1.4vw,16px);line-height:2.05}
.hero__actions{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}
.hero__media{position:relative;height:min(72vh,640px);border-radius:16px;overflow:hidden;border:1px solid var(--line-2);margin:0;background:#0b0b0e}
.hero__mediaInner{position:absolute;inset:0;background:#0b0b0e url("../assets/images/hero.jpg") center/cover no-repeat}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.22),transparent 28%,transparent 62%,rgba(8,8,10,.55));pointer-events:none}
.hero__cap{position:absolute;top:18px;left:18px;font-size:13px;color:var(--fg);z-index:2}
.hero__cap2{position:absolute;bottom:18px;right:18px;font-size:13px;color:var(--fg);z-index:2}
.hero__trust{max-width:var(--maxw);width:100%;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.trust__item{background:var(--ink);padding:18px 22px;font-size:13px;color:var(--fg-mute);display:flex;align-items:center;gap:10px}
.trust__no{color:var(--gold);font-size:13px}

/* ============================================================
   02 MESSAGE
   ============================================================ */
.message{max-width:1080px;margin:0 auto;text-align:center}
.message__title{font-family:var(--ff-mincho);font-weight:800;font-size:clamp(34px,7vw,84px);line-height:1.28;margin-bottom:54px}
.message__title .line{display:block}
.message__text{max-width:680px;margin:0 auto;text-align:left}
.message__text p{color:var(--fg-mute);font-size:clamp(15px,1.8vw,18px);line-height:2.1;margin-bottom:24px}
.message__text p:nth-child(1){color:var(--fg);font-family:var(--ff-mincho);font-weight:500}
.message__sign{color:var(--fg)!important;border-left:2px solid var(--gold);padding-left:22px;margin-top:36px;font-family:var(--ff-mincho)}

/* ============================================================
   03 SERVICES
   ============================================================ */
.services{max-width:var(--maxw);margin:0 auto}
.svc{border-top:1px solid var(--line)}
.svc__row{display:grid;grid-template-columns:90px 1fr 44px;align-items:start;gap:30px;padding:40px 8px;border-bottom:1px solid var(--line);
  position:relative;transition:padding .5s var(--ease)}
.svc__row::before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(10,10,11,.85),rgba(10,10,11,.6)),var(--svc-bg);background-size:cover;background-position:center;opacity:0;transition:opacity .6s var(--ease);z-index:-1}
.svc__row:hover::before{opacity:1}
.svc__row--1{--svc-bg:url("../assets/images/svc-1.jpg")}
.svc__row--2{--svc-bg:url("../assets/images/svc-2.jpg")}
.svc__row--3{--svc-bg:url("../assets/images/svc-3.jpg")}
.svc__row:hover{padding-left:24px;padding-right:24px}
.svc__no{font-size:13px;color:var(--gold);padding-top:8px}
.svc__main{display:flex;flex-direction:column;gap:14px}
.svc__name{font-family:var(--ff-mincho);font-weight:700;font-size:clamp(26px,4vw,46px);line-height:1.2;transition:color .4s}
.svc__row:hover .svc__name{color:var(--gold)}
.svc__for{color:var(--fg-mute);font-size:clamp(13px,1.5vw,15px);max-width:560px}
.svc__detail{grid-column:2;max-width:600px;max-height:0;opacity:0;overflow:hidden;transition:max-height .7s var(--ease),opacity .5s,margin .5s}
.svc__row:hover .svc__detail,.svc__row.is-open .svc__detail{max-height:340px;opacity:1;margin-top:22px}
.svc__detail p{color:var(--fg-mute);font-size:14px;line-height:1.9;margin-bottom:16px}
.svc__detail strong{color:var(--gold);font-weight:500}
.svc__list{list-style:none;display:flex;flex-direction:column;gap:9px}
.svc__list li{font-size:13px;color:var(--fg);padding-left:20px;position:relative}
.svc__list li::before{content:"—";position:absolute;left:0;color:var(--gold)}
.svc__go{font-size:13px;color:var(--fg-dim);padding-top:8px;text-align:right;transition:color .4s,transform .4s}
.svc__row:hover .svc__go{color:var(--gold);transform:rotate(45deg)}
.svc__note{max-width:var(--maxw);margin:46px auto 0;color:var(--fg-mute);font-size:13px;text-align:center}

/* ============================================================
   04 REASONS
   ============================================================ */
.reasons{max-width:var(--maxw);margin:0 auto}
.reasons__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.reason{background:var(--ink);padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;gap:18px;min-height:280px;transition:background .5s var(--ease)}
.reason:hover{background:var(--ink-2)}
.reason__no{font-size:13px;color:var(--gold)}
.reason__title{font-family:var(--ff-mincho);font-weight:700;font-size:clamp(20px,2.4vw,27px);line-height:1.5}
.reason__text{color:var(--fg-mute);font-size:14px;line-height:1.95;margin-top:auto}
.reason--quote{background:var(--gold);color:var(--ink);justify-content:center;align-items:flex-start}
.reason--quote:hover{background:var(--gold)}
.reason__bq{font-family:var(--ff-mincho);font-weight:800;font-size:clamp(24px,3vw,34px);line-height:1.5}
.reason--quote .accent{color:var(--ink);text-decoration:underline;text-decoration-color:rgba(10,10,11,.4);text-underline-offset:6px}

/* ============================================================
   05 PRICING
   ============================================================ */
.pricing{max-width:var(--maxw);margin:0 auto}
.price{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.price__card{background:var(--ink-2);border:1px solid var(--line);border-radius:12px;padding:30px 26px 34px;display:flex;flex-direction:column;
  position:relative;transition:.5s var(--ease);overflow:hidden}
.price__card:hover{transform:translateY(-6px);border-color:var(--line-2)}
.price__card--feature{border-color:var(--gold-deep);background:linear-gradient(180deg,rgba(200,162,74,.08),var(--ink-2))}
.price__top{margin-bottom:26px}
.price__no{font-size:13px;color:var(--gold);display:block;margin-bottom:14px}
.price__name{font-family:var(--ff-mincho);font-weight:700;font-size:19px;line-height:1.5;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.price__tag{font-family:var(--ff-mono);font-size:13px;color:var(--fg-mute);border:1px solid var(--line-2);border-radius:4px;padding:2px 8px;font-weight:400}
.price__amount{font-family:var(--ff-disp);font-size:clamp(34px,4vw,50px);line-height:1;color:var(--fg);margin-bottom:20px;display:flex;align-items:baseline;letter-spacing:.01em}
.price__card--feature .price__amount{color:var(--gold)}
.price__cur{font-size:.5em;margin-right:4px;color:var(--gold)}
.price__unit{font-family:var(--ff-mincho);font-size:.42em;font-weight:600;margin:0 1px 0 3px;align-self:flex-end;padding-bottom:.4em}
.price__tilde{font-family:var(--ff-sans);font-size:.4em;color:var(--fg-mute);margin:0 6px;align-self:center}
.price__desc{color:var(--fg-mute);font-size:13px;line-height:1.85;margin-top:auto}
.price__badge{position:absolute;top:0;right:0;background:var(--gold);color:var(--ink);font-size:13px;padding:5px 12px;border-bottom-left-radius:8px;letter-spacing:.04em}
.price__assure{list-style:none;display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:40px;justify-content:center}
.price__assure li{font-size:13px;color:var(--fg);display:flex;align-items:center;gap:9px}
.price__assure .mono{color:var(--gold);font-size:13px}

/* ============================================================
   06 FLOW
   ============================================================ */
.flow{max-width:var(--maxw);margin:0 auto}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;counter-reset:step}
.step{background:var(--ink);padding:clamp(28px,3vw,46px);min-height:230px;display:flex;flex-direction:column;gap:16px;transition:background .5s var(--ease);position:relative}
.step:hover{background:var(--ink-2)}
.step__no{font-size:13px;color:var(--gold)}
.step__title{font-family:var(--ff-mincho);font-weight:700;font-size:clamp(19px,2.2vw,25px)}
.step__text{color:var(--fg-mute);font-size:13.5px;line-height:1.95;margin-top:auto}
.step__text strong{color:var(--gold);font-weight:500}
.step--after{background:var(--ink-2)}
.step--after .step__no{color:var(--gold-soft)}
.step--after::after{content:"";position:absolute;inset:0;border:1px solid var(--gold-deep);border-radius:0;pointer-events:none;opacity:.5}

/* ============================================================
   07 PROOF
   ============================================================ */
.proof{max-width:var(--maxw);margin:0 auto;text-align:center}
.proof__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-bottom:64px}
.stat{display:flex;flex-direction:column;gap:14px;padding:20px 0;border-top:1px solid var(--line)}
.stat__num{font-family:var(--ff-disp);font-size:clamp(46px,7vw,84px);line-height:.9;color:var(--gold);letter-spacing:.01em}
.stat__plus{font-family:var(--ff-mincho);font-size:.42em;font-weight:600;color:var(--fg)}
.stat__label{font-size:13px;color:var(--fg-mute);letter-spacing:.03em}
.proof__badges{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.badge{display:flex;flex-direction:column;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:22px 30px;min-width:240px;transition:border-color .4s}
.badge:hover{border-color:var(--gold-deep)}
.badge__k{font-size:13px;color:var(--gold)}
.badge__v{font-size:14px;color:var(--fg);font-weight:400}

/* ============================================================
   08 FAQ
   ============================================================ */
.faq{max-width:980px;margin:0 auto}
.faq__list{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa__q{display:flex;align-items:center;gap:20px;width:100%;text-align:left;padding:30px 8px}
.qa__qmark{font-size:14px;color:var(--gold);flex:none}
.qa__qtext{flex:1;font-family:var(--ff-mincho);font-weight:600;font-size:clamp(16px,2vw,21px);transition:color .3s}
.qa__q:hover .qa__qtext{color:var(--gold)}
.qa__toggle{font-size:13px;color:var(--fg-dim);flex:none;transition:color .3s}
.qa__q[aria-expanded="true"] .qa__toggle{color:var(--gold)}
.qa__q[aria-expanded="true"] .qa__qtext{color:var(--gold)}
.qa__a{max-height:0;overflow:hidden;transition:max-height .6s var(--ease)}
.qa__a p{padding:0 8px 32px 54px;color:var(--fg-mute);font-size:14.5px;line-height:2}
.qa__a strong{color:var(--fg);font-weight:500}

/* ============================================================
   09 CONTACT
   ============================================================ */
.contact{max-width:var(--maxw);margin:0 auto}
.contact__head{text-align:center;margin-bottom:clamp(50px,6vw,80px)}
.contact__title{font-family:var(--ff-mincho);font-weight:800;font-size:clamp(38px,7vw,90px);line-height:1.1;margin-bottom:30px}
.contact__title .line{display:block;overflow:hidden}
.contact__lead{color:var(--fg-mute);font-size:clamp(14px,1.7vw,17px);line-height:2}
.contact__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,5vw,70px);align-items:start}
.contact__direct{display:flex;flex-direction:column;gap:30px}
.contact__tel{display:flex;flex-direction:column;gap:10px;padding:30px;border:1px solid var(--line-2);border-radius:12px;transition:.4s var(--ease)}
.contact__tel:hover{border-color:var(--gold);background:rgba(200,162,74,.05)}
.contact__k{font-size:13px;color:var(--gold)}
.contact__telnum{font-family:var(--ff-disp);font-size:clamp(34px,4.5vw,52px);letter-spacing:.02em;color:var(--fg)}
.contact__tel:hover .contact__telnum{color:var(--gold)}
.contact__ways{display:flex;flex-direction:column;gap:12px}
.contact__way{display:flex;align-items:center;gap:16px;padding:18px 24px;border:1px solid var(--line);border-radius:10px;font-size:14px;transition:.4s var(--ease)}
.contact__way .mono{font-size:13px;color:var(--gold);min-width:36px}
.contact__way:hover{border-color:var(--gold-deep);padding-left:30px}
.contact__assure{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px}
.contact__assure li{font-size:13px;color:var(--fg-mute);position:relative;padding-left:16px}
.contact__assure li::before{content:"✓";position:absolute;left:0;color:var(--gold)}

/* form */
.form{background:var(--ink-2);border:1px solid var(--line);border-radius:14px;padding:clamp(26px,3vw,44px)}
.form__field{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{font-size:13px;color:var(--fg);display:flex;align-items:center;gap:8px}
.form__opt{font-size:13px;color:var(--fg-dim)}
.form__req{font-size:13px;color:var(--gold);border:1px solid var(--gold-deep);border-radius:4px;padding:1px 7px}
.form input,.form select,.form textarea{font-family:var(--ff-sans);font-size:15px;color:var(--fg);background:var(--ink);border:1px solid var(--line-2);border-radius:8px;padding:15px 16px;transition:border-color .3s,background .3s;width:100%;cursor:none}
.form input::placeholder,.form textarea::placeholder{color:var(--fg-dim)}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold);background:var(--ink-3)}
.form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C8A24A' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center}
.form textarea{resize:vertical;min-height:110px;line-height:1.8}
.form__note{font-size:13px;color:var(--fg-dim);margin-top:16px;text-align:center}
.form__success{margin-top:20px;padding:20px;border:1px solid var(--gold-deep);border-radius:8px;background:rgba(200,162,74,.06);color:var(--fg);font-size:14px;line-height:1.9}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{position:relative;z-index:1;background:var(--ink-2);border-top:1px solid var(--line);padding:clamp(60px,8vw,100px) var(--pad) 40px}
.footer__top{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1.3fr;gap:50px;padding-bottom:60px;border-bottom:1px solid var(--line)}
.footer__logo{font-family:var(--ff-disp);font-size:clamp(48px,7vw,84px);letter-spacing:.04em;line-height:1}
.footer__catch{font-size:13px;color:var(--gold);margin-top:18px}
.company{display:grid;grid-template-columns:1fr 1fr;gap:22px 40px}
.company div{display:flex;flex-direction:column;gap:7px}
.company dt{font-size:13px;color:var(--gold)}
.company dd{font-size:14.5px;color:var(--fg);font-weight:400;line-height:1.6}
.footer__bottom{max-width:var(--maxw);margin:0 auto;padding-top:32px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}
.footer__nav{display:flex;gap:26px;flex-wrap:wrap}
.footer__nav a{font-size:14px;color:var(--fg-mute);transition:color .3s}
.footer__nav a:hover{color:var(--gold)}
.footer__copy{font-size:13px;color:var(--fg-mute)}

/* ============================================================
   FLOATING CTA
   ============================================================ */
.fab{position:fixed;right:24px;bottom:24px;z-index:900;width:88px;height:88px;border-radius:50%;background:var(--gold);color:var(--ink);
  display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;font-size:13px;font-weight:500;line-height:1.4;
  box-shadow:0 10px 40px rgba(200,162,74,.3);transform:scale(0);transition:transform .5s var(--ease),background .3s}
.fab.is-visible{transform:scale(1)}
.fab:hover{background:var(--gold-soft)}
.fab .pulse{position:absolute;top:14px;right:16px}
.fab__txt{font-family:var(--ff-mincho);font-weight:700}

/* ============================================================
   ADDED SECTIONS (代表メッセージ / 調査員体制 / 報告書 / お客様の声 / 適正な調査 / これから)
   ============================================================ */
.ceo{max-width:var(--maxw);margin:0 auto}
.ceo__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,6vw,90px);align-items:start;border-top:1px solid var(--line);padding-top:clamp(40px,5vw,64px)}
.ceo__lead{font-family:var(--ff-mincho);font-weight:800;font-size:clamp(30px,4.2vw,56px);line-height:1.3}
.ceo__role{margin-top:26px;font-size:13px;color:var(--gold)}
.ceo__body p{color:var(--fg-mute);font-size:clamp(14px,1.55vw,16px);line-height:2.1;margin-bottom:22px}
.ceo__close{color:var(--fg)!important;font-family:var(--ff-mincho);border-left:2px solid var(--gold);padding-left:22px;margin-top:30px}

.team{max-width:var(--maxw);margin:0 auto}
.team__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.team__item{background:var(--ink);padding:clamp(26px,3vw,40px);display:flex;flex-direction:column;gap:16px;min-height:170px;transition:background .5s var(--ease)}
.team__item:hover{background:var(--ink-2)}
.team__item .tno{font-size:13px;color:var(--gold)}
.team__item p{color:var(--fg);font-size:15px;line-height:1.85}
.team__note{margin-top:32px;text-align:center;font-family:var(--ff-mincho);color:var(--fg-mute);font-size:clamp(15px,1.8vw,19px)}

.report{max-width:var(--maxw);margin:0 auto}
.report__list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.report__list li{display:flex;align-items:center;gap:16px;padding:22px 26px;border:1px solid var(--line);border-radius:10px;font-size:15px;color:var(--fg);transition:border-color .4s,background .4s}
.report__list li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.report__list li:hover{border-color:var(--gold-deep);background:rgba(200,162,74,.04)}

.voices{max-width:var(--maxw);margin:0 auto}
.voices__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.voice{background:var(--ink-2);border:1px solid var(--line);border-radius:12px;padding:clamp(26px,3vw,40px);display:flex;flex-direction:column;gap:22px;transition:border-color .4s}
.voice:hover{border-color:var(--line-2)}
.voice__quote{font-family:var(--ff-mincho);font-size:clamp(16px,1.9vw,20px);line-height:1.95;color:var(--fg)}
.voice__who{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--fg-mute);margin-top:auto}
.voice__cat{font-family:var(--ff-mono);font-size:13px;color:var(--gold);border:1px solid var(--line-2);border-radius:4px;padding:3px 10px}
.voices__disclaimer{margin-top:26px;font-size:13px;color:var(--fg-dim);text-align:center}

.ethics{max-width:var(--maxw);margin:0 auto}
.ethics__inner{border:1px solid var(--gold-deep);border-radius:14px;padding:clamp(36px,5vw,68px);background:linear-gradient(180deg,rgba(200,162,74,.05),transparent);text-align:center;max-width:900px;margin:0 auto}
.ethics__title{font-family:var(--ff-mincho);font-weight:800;font-size:clamp(28px,3.6vw,48px);line-height:1.3;margin-bottom:26px}
.ethics__inner p{color:var(--fg-mute);font-size:clamp(14px,1.6vw,16px);line-height:2.05;max-width:660px;margin:0 auto}

.closing{text-align:center;background:linear-gradient(rgba(8,8,10,.72),rgba(8,8,10,.82)),url("../assets/images/road.jpg") center/cover no-repeat}
.closing__txt{max-width:780px;margin:0 auto;font-family:var(--ff-mincho);font-size:clamp(18px,2.4vw,30px);line-height:1.95;color:var(--fg)}
.closing__txt .accent{color:var(--gold)}
.ceo__media{margin:32px 0 0;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.ceo__media img{display:block;width:100%;height:240px;object-fit:cover}
.team__hero,.report__hero{margin:0 0 36px;border-radius:12px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/6}
.team__hero img,.report__hero img{display:block;width:100%;height:100%;object-fit:cover}

@media (max-width:900px){
  .ceo__grid{grid-template-columns:1fr;gap:30px}
  .team__grid,.report__list,.voices__grid{grid-template-columns:1fr}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .price{grid-template-columns:repeat(2,1fr)}
  .reasons__grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .nav,.header__cta{display:none}
  .burger{display:block}
  .contact__grid{grid-template-columns:1fr}
  .footer__top{grid-template-columns:1fr;gap:40px}
  .proof__stats{grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .stat{background:var(--ink);padding:30px 20px;border-top:none}
}
@media (max-width:820px){
  .hero__inner{grid-template-columns:1fr;gap:30px}
  .hero__media{order:-1;height:min(52vh,440px)}
  .hero__mediaInner{background-image:url("../assets/images/hero-mobile.jpg")}
  .hero__title{font-size:clamp(40px,8.5vw,64px)}
  .hero__lead{max-width:none}
}
@media (max-width:640px){
  body{font-size:15px}
  .hero__trust{grid-template-columns:repeat(2,1fr)}
  .hero__actions{flex-direction:column}
  .hero__actions .btn{width:100%;justify-content:center}
  .price,.reasons__grid,.steps{grid-template-columns:1fr}
  .reason{min-height:auto}
  .svc__row{grid-template-columns:50px 1fr;gap:16px}
  .svc__go{display:none}
  .svc__detail{grid-column:1/-1}
  .form__row{grid-template-columns:1fr}
  .company{grid-template-columns:1fr}
  .footer__bottom{flex-direction:column;align-items:flex-start}
  .fab{width:72px;height:72px;right:16px;bottom:16px}
  .proof__stats{grid-template-columns:1fr 1fr}
}
@media (max-width:430px){
  .hero__title{font-size:clamp(34px,11vw,46px);letter-spacing:0}
  .hero__lead{font-size:14px}
  .message__title{font-size:clamp(30px,9vw,40px)}
  .contact__title{font-size:clamp(32px,10vw,46px)}
  .sec__title{font-size:clamp(26px,7.5vw,34px)}
  .svc__name{font-size:clamp(23px,7vw,30px)}
  .price__amount{font-size:clamp(30px,9vw,40px)}
  .contact__telnum{font-size:clamp(30px,9vw,44px)}
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .fx{display:none}
  .cursor{display:none}
  body{cursor:auto}
  [data-reveal],[data-reveal-line]{opacity:1!important;transform:none!important}
}
