/* =====================================================
   しゃべらない営業術 — shared site styles
   ===================================================== */
:root{
  --ink:#15202e;
  --navy-900:#0e2138;
  --navy-800:#163356;
  --navy-700:#1d4576;
  --cobalt:#2664ac;
  --cobalt-soft:#5b86bd;
  --marker:#cfe0f4;
  --gold:#a9863f;
  --gold-soft:#d4b878;
  --paper:#faf8f3;
  --paper-2:#f3efe6;
  --white:#ffffff;
  --line:#e7e2d6;
  --line-strong:#d7d0c0;
  --muted:#677080;
  --muted-2:#6b7488;
  --mincho:"Shippori Mincho B1", "Noto Serif JP", serif;
  --sans:"Noto Sans JP", sans-serif;
  --serif-en:"Cormorant Garamond", serif;
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);
  line-height:1.85;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{font-family:var(--mincho);font-weight:700;line-height:1.4;margin:0;letter-spacing:.02em;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* eyebrow */
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--serif-en);font-style:italic;font-size:21px;letter-spacing:.06em;color:var(--cobalt);margin-bottom:22px;}
.eyebrow::before{content:"";width:42px;height:1px;background:var(--cobalt);opacity:.55;}
.eyebrow.center{justify-content:center;}
.eyebrow.on-dark{color:#bcd3ef;}
.eyebrow.on-dark::before{background:#bcd3ef;}

.mk{background:linear-gradient(transparent 58%, var(--marker) 58%, var(--marker) 92%, transparent 92%);padding:0 .06em;}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-family:var(--sans);font-weight:700;letter-spacing:.04em;border-radius:2px;cursor:pointer;transition:transform .25s ease, box-shadow .25s ease, background .25s ease;text-align:center;}
.btn-primary{background:var(--navy-800);color:#fff;padding:20px 40px;font-size:16px;box-shadow:0 14px 30px -14px rgba(14,33,56,.6);border:1px solid var(--navy-800);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 20px 38px -14px rgba(14,33,56,.62);background:var(--navy-900);}
.btn-gold{background:var(--gold);color:#fff;border:1px solid var(--gold);padding:22px 46px;font-size:17px;box-shadow:0 16px 34px -14px rgba(169,134,63,.6);}
.btn-gold:hover{transform:translateY(-2px);background:#9a7935;}
.btn-ghost{border:1px solid rgba(255,255,255,.5);color:#fff;padding:19px 34px;font-size:15px;background:transparent;}
.btn-ghost:hover{background:rgba(255,255,255,.1);}
.btn-outline{border:1px solid var(--navy-800);color:var(--navy-800);padding:19px 38px;font-size:15px;background:transparent;}
.btn-outline:hover{background:var(--navy-800);color:#fff;}
.btn .arr{font-family:var(--serif-en);font-style:normal;}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .35s ease, box-shadow .35s ease, border-color .35s ease;border-bottom:1px solid transparent;}
header .bar{max-width:var(--maxw);margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;align-items:center;}
.brand img{height:40px;width:auto;}
nav.main{display:flex;align-items:center;gap:38px;}
nav.main a{font-size:14.5px;font-weight:500;letter-spacing:.04em;color:#eaf0f8;position:relative;padding:4px 0;transition:color .25s ease;white-space:nowrap;}
nav.main a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:currentColor;transition:width .3s ease;}
nav.main a:hover::after,nav.main a.active::after{width:100%;}
nav.main a.active{font-weight:700;}
.nav-cta{font-size:13.5px;font-weight:700;letter-spacing:.04em;color:#fff;border:1px solid rgba(255,255,255,.55);padding:12px 22px;border-radius:2px;transition:all .25s ease;white-space:nowrap;}
.nav-cta:hover{background:#fff;color:var(--navy-800);}
header.solid{background:rgba(250,248,243,.92);backdrop-filter:blur(10px);border-bottom-color:var(--line);box-shadow:0 6px 24px -18px rgba(0,0,0,.4);}
header.solid nav.main a{color:var(--ink);}
header.solid .nav-cta{color:var(--navy-800);border-color:var(--navy-800);}
header.solid .nav-cta:hover{background:var(--navy-800);color:#fff;}
.menu-btn{display:none;}
/* header variant for light pages: solid by default look handled via JS .solid; but page banners are dark so default transparent works */

/* page banner (subpage hero) */
.banner{position:relative;background:var(--navy-900);color:#fff;overflow:hidden;padding:188px 0 96px;}
.banner::before{content:"";position:absolute;inset:0;background:radial-gradient(820px 460px at 82% -10%, rgba(38,100,172,.4), transparent 70%);}
.banner::after{content:"";position:absolute;right:-60px;top:50%;transform:translateY(-50%);width:360px;height:360px;border:1px solid rgba(159,193,232,.18);border-radius:50%;}
.banner .wrap{position:relative;z-index:2;}
.crumb{font-size:12.5px;letter-spacing:.1em;color:#9fc1e8;margin-bottom:24px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.crumb a,.crumb span{white-space:nowrap;}
.crumb a{color:#bcc8d6;transition:color .2s ease;}
.crumb a:hover{color:#fff;}
.crumb .sep{opacity:.5;}
.banner h1{font-size:clamp(34px,4.6vw,56px);font-weight:800;line-height:1.34;letter-spacing:.03em;}
.banner .b-en{font-family:var(--serif-en);font-style:italic;font-size:19px;letter-spacing:.08em;color:#9fc1e8;display:block;margin-bottom:18px;}
.banner .b-sub{font-family:var(--mincho);font-size:clamp(16px,1.8vw,20px);color:#e7eef7;margin-top:24px;line-height:1.8;max-width:40em;}

/* generic section */
.sec{padding:120px 0;position:relative;}
.sec-head{margin-bottom:60px;}
.sec-head.center{text-align:center;}
.sec-title{font-size:clamp(28px,3.4vw,40px);line-height:1.45;letter-spacing:.03em;}
.lead-jp{font-family:var(--mincho);font-size:19px;line-height:2.05;color:#2a3543;}
.body-jp{font-size:15.5px;line-height:2.05;color:#46505f;}

/* footer */
footer{background:#0a1929;color:#aeb8c5;padding:74px 0 34px;}
.foot-top{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap;align-items:flex-start;padding-bottom:46px;border-bottom:1px solid rgba(255,255,255,.1);}
.foot-brand img{height:42px;margin-bottom:20px;filter:brightness(0) invert(1);opacity:.92;}
.foot-brand p{font-size:13px;color:#8f9db0;max-width:30em;line-height:1.9;}
.foot-nav{display:flex;gap:64px;flex-wrap:wrap;}
.foot-col h5{font-size:12px;letter-spacing:.14em;color:#6f7d8f;font-family:var(--serif-en);font-style:italic;margin-bottom:18px;font-weight:600;}
.foot-col a{display:block;font-size:14px;color:#cdd6e0;margin-bottom:13px;transition:color .2s ease;}
.foot-col a:hover{color:#fff;}
.foot-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px;font-size:12px;color:#6f7d8f;}
.foot-bottom a{color:#8f9db0;}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* shared cta band */
.cta{position:relative;background:var(--navy-900);color:#fff;overflow:hidden;text-align:center;padding:120px 0;}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 500px at 50% -10%, rgba(38,100,172,.35), transparent 70%);}
.cta .inner{position:relative;z-index:2;max-width:780px;margin:0 auto;padding:0 32px;}
.cta .badge{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif-en);font-style:italic;font-size:16px;letter-spacing:.08em;color:var(--gold);border:1px solid rgba(169,134,63,.5);padding:9px 22px;border-radius:999px;margin-bottom:34px;}
.cta h2{font-size:clamp(30px,4vw,46px);font-weight:800;line-height:1.45;margin-bottom:26px;}
.cta h2 .mk-d{background:linear-gradient(transparent 60%, rgba(169,134,63,.45) 60%);padding:0 .08em;}
.cta p.sub{font-size:16px;color:#cdd9e6;line-height:2;margin-bottom:14px;}
.cta .gift{font-family:var(--mincho);font-size:17px;color:#fff;margin:36px auto 44px;max-width:620px;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);padding:26px 0;line-height:1.9;}
.cta .gift b{color:var(--gold-soft);font-weight:700;}
.cta .note{font-size:12.5px;color:#8f9db0;margin-top:24px;letter-spacing:.03em;}

/* responsive */
@media (max-width:980px){
  .foot-top{gap:36px;}
}
@media (max-width:680px){
  .wrap,.cta .inner{padding-left:22px;padding-right:22px;}
  .sec{padding:84px 0;}
  nav.main{display:none;}
  .nav-cta{display:none;}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:2px;background:transparent;flex-direction:column;gap:5px;cursor:pointer;}
  .menu-btn span{width:18px;height:1.5px;background:currentColor;display:block;}
  header.solid .menu-btn{color:var(--ink);border-color:var(--ink);}
  .banner{padding:150px 0 72px;}
  .foot-nav{gap:40px;}
}
