/* ===== Metis sub pages ===== */
:root{
  --navy:#1F2A44;--gold:#B08D57;--gold-d:#8A6A35;--gold-l:#E3CC9C;
  --ink:#24282F;--mute:#4A5163;--line:#E4E1DA;--bg2:#F6F6F4;--bg3:#F4F5F7;
  --serif-en:'Marcellus',serif;--serif-ja:'Shippori Mincho',serif;--sans:'Noto Sans JP',sans-serif;
  --hd:70px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:2;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--navy);text-decoration:none}
a:hover{color:var(--gold-d)}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto}
.narrow{width:min(880px,100% - 48px);margin-inline:auto}

/* header */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--hd);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 40px;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);transition:box-shadow .4s}
.hd.is-scrolled{box-shadow:0 1px 0 var(--line)}
.hd-logo{display:flex;align-items:center;gap:12px;color:var(--ink)}
.hd-logo img{width:46px;height:46px;border-radius:50%}
.hd-logo span{font-family:var(--serif-en);font-size:24px;letter-spacing:.14em}
.nav{display:flex;gap:38px}
.nav a{font-family:var(--serif-en);font-size:15px;letter-spacing:.08em;padding:8px 0;position:relative;color:var(--navy)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .4s}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1)}
.nav a.on{color:var(--gold-d)}
.hd-cta{font-size:13px;letter-spacing:.1em;color:#5B6880}
.menu-btn{display:none;background:none;border:0;cursor:pointer;width:48px;height:48px;padding:12px 8px;flex-direction:column;justify-content:space-between}
.menu-btn span{display:block;height:1.5px;background:var(--navy);transition:transform .4s,opacity .4s}
.menu-open .menu-btn span:nth-child(1){transform:translateY(10px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){opacity:0}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}
.spmenu{position:fixed;inset:0;z-index:45;background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:96px 32px 40px;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
.menu-open .spmenu{opacity:1;visibility:visible}
.spmenu a{color:#fff;font-family:var(--serif-en);font-size:30px;letter-spacing:.06em;display:flex;align-items:baseline;gap:16px;transform:translateY(16px);opacity:0;transition:transform .6s,opacity .6s}
.spmenu a small{font-family:var(--sans);font-size:12px;letter-spacing:.2em;color:#C9CFDA}
.menu-open .spmenu a{transform:none;opacity:1}
.menu-open .spmenu a:nth-child(2){transition-delay:.05s}.menu-open .spmenu a:nth-child(3){transition-delay:.1s}.menu-open .spmenu a:nth-child(4){transition-delay:.15s}.menu-open .spmenu a:nth-child(5){transition-delay:.2s}.menu-open .spmenu a:nth-child(6){transition-delay:.25s}
.menu-open .hd{background:transparent;box-shadow:none}
.menu-open .hd .menu-btn span{background:#fff}
.menu-open .hd-logo span{color:#fff}
body.menu-open{overflow:hidden}

/* page hero */
.phero{position:relative;display:flex;min-height:min(78vh,720px);margin-top:var(--hd)}
.phero-txt{flex:0 0 42%;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:60px 5vw}
.phero-img{flex:1;position:relative;overflow:clip;clip-path:inset(0 0 0 100%);animation:curtain 1.6s cubic-bezier(.75,0,.2,1) .2s forwards}
.phero-img img{position:absolute;inset:-10% 0;width:100%;height:120%;object-fit:cover;will-change:transform}
.phero-img::after{content:"";position:absolute;inset:0;background:rgba(31,42,68,.12)}
@keyframes curtain{to{clip-path:inset(0 0 0 0)}}
.ptitle{margin:0;font-family:var(--serif-en);font-weight:400;font-size:clamp(40px,4.6vw,84px);line-height:1;letter-spacing:.06em;color:var(--navy)}
.ptitle .w{white-space:nowrap;display:inline-block;overflow:clip;vertical-align:bottom;padding-bottom:.08em}
.ptitle .w span{display:inline-block;transform:translateY(115%) rotate(10deg);opacity:0;animation:chIn 1s cubic-bezier(.2,.75,.25,1) forwards}
@keyframes chIn{to{transform:none;opacity:1}}
.psub{margin:0;font-size:14px;letter-spacing:.3em;opacity:0;animation:fadeUp 1s ease 1.1s forwards}
.plead{margin:18px 0 0;font-family:var(--serif-ja);font-size:clamp(18px,1.6vw,22px);font-weight:600;line-height:1.9;color:var(--navy);opacity:0;animation:fadeUp 1s ease 1.3s forwards}
.crumb{position:absolute;left:5vw;bottom:24px;margin:0;padding:0;list-style:none;display:flex;gap:10px;font-size:12px;letter-spacing:.08em;color:#7A8294}
.crumb li+li::before{content:"/";margin-right:10px;color:#C2C6CF}
.crumb a{color:#7A8294}
.vline{position:absolute;left:5vw;top:0;width:1px;height:60px;background:var(--gold);transform-origin:top;animation:grow 1.2s ease .6s both}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

/* sections */
.sec{padding:130px 0;position:relative}
.sec.alt{background:var(--bg2)}
.sec.alt2{background:var(--bg3)}
.h2{margin:0 0 56px;display:flex;flex-direction:column;gap:10px}
.h2 .en{font-family:var(--serif-en);font-weight:400;font-size:clamp(38px,4vw,58px);line-height:1.05;letter-spacing:.06em;color:var(--navy)}
.h2 .ja{display:flex;align-items:center;gap:14px;font-size:14px;letter-spacing:.24em}
.h2 .ja::before{content:"";width:48px;height:1px;background:var(--gold)}
.h2.center{align-items:center;text-align:center}
.h2.center .ja::before{display:none}
.h3{margin:0;font-family:var(--serif-ja);font-weight:600;font-size:clamp(22px,2vw,28px);line-height:1.7;color:var(--navy)}
.lead{font-family:var(--serif-ja);font-size:clamp(20px,2vw,26px);font-weight:600;line-height:1.9;color:var(--navy);margin:0}
p{margin:0}
.txt{color:var(--mute);line-height:2.3}
.ph{display:inline-block;background:#FFF7E6;color:#8A6A35;padding:0 6px;border-radius:2px}

/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1)}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}.rv.d3{transition-delay:.36s}
.rv.is-in{opacity:1;transform:none}
.rv-img{clip-path:inset(0 0 0 100%);transition:clip-path 1.4s cubic-bezier(.75,0,.2,1)}
.rv-img.from-l{clip-path:inset(0 100% 0 0)}
.rv-img.is-in{clip-path:inset(0 0 0 0)}
.rv-chars .w{display:inline-block;overflow:clip;vertical-align:bottom;padding-bottom:.08em}
.rv-chars .w span{display:inline-block;transform:translateY(115%) rotate(10deg);opacity:0;transition:transform 1s cubic-bezier(.2,.75,.25,1),opacity 1s}
.rv-chars.is-in .w span{transform:none;opacity:1}
.rv-line{transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.rv-line.is-in{transform:none}
.px-wrap{position:relative;overflow:clip}
.px-wrap img{position:absolute;left:0;top:-12%;width:100%;height:124%;object-fit:cover;will-change:transform}

/* buttons */
.pill{position:relative;overflow:clip;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:240px;min-height:56px;padding:0 32px;border:1px solid var(--gold);border-radius:999px;background:transparent;color:var(--gold-d);font-family:var(--serif-en);font-size:16px;letter-spacing:.12em;isolation:isolate;transition:color .5s;cursor:pointer}
.pill::before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .5s cubic-bezier(.7,0,.2,1);z-index:-1}
.pill:hover{color:#fff}.pill:hover::before{transform:none}
.pill .arr{transition:transform .5s}.pill:hover .arr{transform:translateX(6px)}
.pill.solid{background:var(--navy);border-color:var(--navy);color:#fff}
.pill.solid::before{background:var(--gold)}
.pill.ja{font-family:var(--sans);font-size:15px;letter-spacing:.1em}

/* split */
.split{display:flex;flex-wrap:wrap;align-items:center;gap:64px}
.split.rev{flex-direction:row-reverse}
.split>.s-img{flex:1.2 1 460px;aspect-ratio:4/3}
.split>.s-txt{flex:1 1 380px;display:flex;flex-direction:column;gap:24px}

/* about */
.logo-box{display:flex;align-items:center;justify-content:center;background:#fff;aspect-ratio:auto !important;padding:clamp(24px,4vw,56px)}
.logo-box img{width:min(100%,460px);height:auto;aspect-ratio:1;object-fit:contain;animation:floatY 7s ease-in-out infinite}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.creed{display:flex;flex-wrap:wrap;gap:24px}
.creed>div{flex:1 1 320px;background:#fff;border:1px solid var(--line);padding:56px 40px;display:flex;flex-direction:column;gap:16px}
.creed .lbl{font-size:13px;letter-spacing:.3em;color:var(--gold-d)}
.creed .big{font-family:var(--serif-ja);font-weight:600;font-size:clamp(26px,2.6vw,36px);line-height:1.6;color:var(--navy)}
.motifs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:56px}
.motif{position:relative;padding:44px 32px;background:#fff;border-top:1px solid var(--gold);display:flex;flex-direction:column;gap:12px}
.motif .no{font-family:var(--serif-en);font-size:13px;letter-spacing:.3em;color:var(--gold-d)}
.motif .en{font-family:var(--serif-en);font-size:28px;letter-spacing:.06em;color:var(--navy)}
.motif .ja{font-family:var(--serif-ja);font-weight:600;font-size:17px;color:var(--navy)}
.motif svg{width:44px;height:44px;stroke:var(--gold);fill:none;stroke-width:1.2}
.msg{display:flex;flex-wrap:wrap;gap:64px;align-items:flex-start}
.msg .m-img{flex:0 1 360px;aspect-ratio:3/4;background:linear-gradient(160deg,#EEF0F4,#E2E5EB);display:flex;align-items:center;justify-content:center;color:#7A8294;font-size:13px;letter-spacing:.1em}
.msg .m-txt{flex:1 1 420px;display:flex;flex-direction:column;gap:28px}
.sign{text-align:right;font-family:var(--serif-ja);color:var(--navy);line-height:1.8}
.sign small{display:block;font-family:var(--sans);font-size:12px;letter-spacing:.2em;color:#7A8294}

/* business */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.chips a{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 20px;border:1px solid var(--line);border-radius:999px;font-size:13px;letter-spacing:.06em;background:#fff;transition:border-color .4s,background .4s}
.chips a:hover{border-color:var(--gold);background:#FFFBF3}
.chips a b{font-family:var(--serif-en);font-weight:400;color:var(--gold-d)}
.biz{padding:110px 0;border-top:1px solid var(--line);scroll-margin-top:var(--hd)}
.biz .s-txt .num{font-family:var(--serif-en);font-size:110px;line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(176,141,87,.6)}
.biz .en{font-family:var(--serif-en);font-size:clamp(32px,3.2vw,46px);letter-spacing:.06em;color:var(--navy);line-height:1.1}
.biz .ja{font-weight:700;letter-spacing:.12em;font-size:15px}
.svc{margin:0;padding:24px 28px;list-style:none;background:var(--bg2);display:flex;flex-direction:column;gap:6px}
.svc li{position:relative;padding-left:20px;font-size:14px;line-height:1.9}
.svc li::before{content:"";position:absolute;left:0;top:.85em;width:8px;height:1px;background:var(--gold)}
.svc-t{font-family:var(--serif-en);font-size:12px;letter-spacing:.3em;color:var(--gold-d);margin-bottom:-14px}

/* company */
.tbl{margin:0;display:grid;grid-template-columns:minmax(120px,220px) 1fr;border-top:1px solid var(--navy);font-size:15px;line-height:1.9}
.tbl dt{padding:24px 8px;border-bottom:1px solid var(--line);color:var(--gold-d);font-weight:500}
.tbl dd{margin:0;padding:24px 8px;border-bottom:1px solid var(--line)}
.tbl ol{margin:0;padding:0;list-style:none;counter-reset:n}
.tbl ol li{counter-increment:n;padding-left:3em;text-indent:-3em}
.tbl ol li::before{content:"(" counter(n) ")";display:inline-block;width:3em;text-indent:0;color:#7A8294}
.map{margin-top:40px;aspect-ratio:16/7;background:var(--bg3)}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.6) contrast(1.05)}

/* contact */
.form{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--navy)}
.f-row{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:24px;padding:26px 8px;border-bottom:1px solid var(--line);align-items:start}
.f-row label.f-lbl,.f-row .f-lbl{font-weight:500;padding-top:12px;display:flex;align-items:center;gap:10px}
.req,.opt{font-size:11px;padding:2px 8px;border-radius:2px;letter-spacing:.08em;line-height:1.6}
.req{background:var(--navy);color:#fff}.opt{background:#E9EBEF;color:#5B6880}
.f-in input[type=text],.f-in input[type=email],.f-in input[type=tel],.f-in select,.f-in textarea{width:100%;min-height:52px;padding:12px 16px;border:1px solid #CFD3DA;border-radius:2px;background:#fff;font:inherit;font-size:16px;color:var(--ink);transition:border-color .3s,box-shadow .3s}
.f-in textarea{min-height:220px;resize:vertical;line-height:1.8}
.f-in input:focus,.f-in select:focus,.f-in textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,141,87,.18)}
.f-err{margin-top:8px;color:#B42318;font-size:13px}
.f-note{margin-top:6px;font-size:12px;color:#7A8294}
.agree{display:flex;justify-content:center;align-items:center;gap:12px;margin:40px 0 8px;font-size:14px}
.agree input{width:20px;height:20px;accent-color:var(--navy)}
.f-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:32px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.alert{padding:16px 20px;border:1px solid #F1C0BB;background:#FEF3F2;color:#B42318;font-size:14px;margin-bottom:32px}
.steps{display:flex;justify-content:center;gap:0;margin:0 0 56px;padding:0;list-style:none}
.steps li{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.1em;color:#9AA1AF}
.steps li+li::before{content:"";width:56px;height:1px;background:#D5D8DE;margin:0 14px}
.steps li b{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid #D5D8DE;font-family:var(--serif-en);font-weight:400}
.steps li.on{color:var(--navy)}.steps li.on b{background:var(--navy);border-color:var(--navy);color:#fff}
.confirm-v{padding-top:12px;white-space:pre-wrap;word-break:break-all}

/* privacy */
.policy h3{margin:56px 0 14px;font-family:var(--serif-ja);font-size:19px;color:var(--navy)}
.policy p,.policy li{color:var(--mute);line-height:2.1}
.policy ul{padding-left:1.2em}

/* CTA + footer */
.cta{position:relative;overflow:clip;color:#fff;text-align:center;padding:120px 24px}
.cta .px-wrap{position:absolute;inset:0}
.cta::after{content:"";position:absolute;inset:0;background:rgba(31,42,68,.72)}
.cta-in{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:22px}
.cta .en{font-family:var(--serif-en);font-size:clamp(46px,5vw,72px);letter-spacing:.06em;line-height:1}
.cta .pill{color:#fff;border-color:var(--gold-l)}
.ft{background:var(--navy);color:#D8DEE9;padding:64px 40px 28px}
.ft-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;max-width:1200px;margin:0 auto}
.ft-co{display:flex;align-items:center;gap:22px}
.ft-co img{width:84px;height:84px;border-radius:50%}
.ft-co b{display:block;font-family:var(--serif-ja);font-weight:500;font-size:19px;color:#fff;margin-bottom:4px}
.ft-co span{font-size:13px;line-height:1.8}
.ft-nav{display:flex;flex-wrap:wrap;gap:12px 28px;align-content:center;font-family:var(--serif-en);font-size:16px}
.ft-nav a{color:#fff}.ft-nav a:hover{color:var(--gold-l)}
.ft-copy{text-align:center;margin-top:44px;font-family:var(--serif-en);font-size:12px;letter-spacing:.12em;color:#AEB6C6}
.totop{position:fixed;right:24px;bottom:24px;z-index:40;width:52px;height:52px;border-radius:50%;border:1px solid var(--gold);background:rgba(255,255,255,.9);color:var(--gold-d);display:flex;align-items:center;justify-content:center;font-size:18px;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.totop.is-on{opacity:1;visibility:visible}

/* responsive */
@media (max-width:1024px){.nav{gap:22px}.hd{padding:0 24px}}
@media (max-width:900px){
  .nav,.hd-cta{display:none}.menu-btn{display:flex}
  .hd{padding:0 16px}
  .phero{flex-direction:column-reverse;min-height:0}
  .phero-txt{padding:48px 24px 72px}
  .ptitle{font-size:clamp(40px,12vw,64px)}
  .phero-img{min-height:46vh}
  .crumb{left:24px}
  .vline{display:none}
  .sec{padding:90px 0}.biz{padding:80px 0}
  .split{gap:36px}
  .f-row{grid-template-columns:1fr;gap:8px}
  .f-row .f-lbl{padding-top:0}
  .tbl{grid-template-columns:1fr}
  .tbl dt{padding:18px 4px 4px;border-bottom:0}
  .tbl dd{padding:0 4px 18px}
  .map{aspect-ratio:4/3}
  .steps li+li::before{width:24px;margin:0 8px}
  .ft{padding:56px 24px 28px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  .phero-img{clip-path:none}.ptitle .w span,.psub,.plead{transform:none;opacity:1}
  .rv,.rv-chars .w span{opacity:1;transform:none}.rv-img{clip-path:none}.rv-line{transform:none}
}
