/* ===== SHARED STYLES for sub-pages ===== */
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#f5f3ee;color:#0a0a0a;font-family:'Inter','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased;line-height:1.7;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* Header */
.header{position:fixed;top:1rem;left:1rem;right:1rem;z-index:900;display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.6rem;color:#fff;transition:color .35s ease}
.header.is-light{color:#0a0a0a}
.logo{display:flex;align-items:center;gap:.85rem;font-family:'Inter';text-decoration:none;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:.5rem .9rem .5rem .55rem;border-radius:6px;border:1px solid rgba(10,10,10,.06);box-shadow:0 2px 12px rgba(0,0,0,.08)}
.logo-mark{display:block;height:30px;width:auto;flex-shrink:0}
.logo-text{display:flex;flex-direction:column;line-height:1.05;gap:2px}
.logo-jp{font-family:'Shippori Mincho',serif;font-size:1.05rem;font-weight:700;color:#1e6f3a;letter-spacing:.02em}
.logo-en{font-family:'Inter';font-size:.72rem;font-weight:500;color:#1e6f3a;letter-spacing:.08em;opacity:.85;text-align:left}
.nav{display:flex;gap:2rem;font-size:.78rem;letter-spacing:.02em;font-weight:500}
.nav a{position:relative;padding:4px 0;display:flex;flex-direction:column;align-items:center;line-height:1.1;gap:2px}
.nav a::after{content:'';position:absolute;left:0;right:0;bottom:-4px;width:0;height:1px;background:#fff;transition:.3s;margin:auto}
.nav a:hover::after{width:100%}
.nav .nav-jp{font-family:'Shippori Mincho',serif;font-size:.92rem;font-weight:600;letter-spacing:.04em}
.nav .nav-en{font-family:'Inter';font-size:.58rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;opacity:.65}
.header.is-light .nav a::after{background:#0a0a0a}
.header.is-light .clock{color:#0a0a0a;opacity:.75}
.nav .nav-item{position:relative;display:flex;align-items:center}
.nav .nav-has-drop>a::after{content:'▾';display:inline-block;font-size:.52rem;margin-left:.35rem;opacity:.5;transform:translateY(-2px);position:static;width:auto;height:auto;background:transparent}
.nav-drop{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);min-width:300px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(10,10,10,.08);box-shadow:0 12px 32px rgba(0,0,0,.12);padding:.6rem;display:flex;flex-direction:column;gap:.1rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease, transform .3s ease;margin-top:.6rem;border-radius:4px}
.nav .nav-item:hover .nav-drop,.nav .nav-item:focus-within .nav-drop{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav-drop a{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.6rem;padding:.7rem .8rem;color:#0a0a0a;text-decoration:none;border-radius:3px;transition:background .2s;flex-direction:row}
.nav-drop a:hover{background:rgba(199,224,121,.2)}
.nav-drop a::after{display:none}
.nav-drop .nav-drop-num{font-family:'Inter';font-size:.6rem;letter-spacing:.14em;color:#90b04b;font-weight:600}
.nav-drop .nav-drop-jp{font-family:'Shippori Mincho',serif;font-size:.95rem;font-weight:600;color:#0a0a0a;line-height:1}
.nav-drop .nav-drop-en{font-family:'Inter';font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:#90b04b;font-weight:500;opacity:.85}
.header.is-light .nav-has-drop>a::after{color:#0a0a0a}
.clock{font-family:'Inter';font-size:.7rem;letter-spacing:.2em;color:#fff;opacity:.85}

/* Section head */
.sec-num{font-family:'Inter';font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#90b04b;font-weight:500;margin-bottom:1.6rem;display:flex;align-items:center;gap:1rem}
.sec-num::before{content:'';width:36px;height:1px;background:#90b04b;flex-shrink:0}
.sec-num .sec-jp{font-family:'Shippori Mincho',serif;font-size:1.1rem;font-weight:600;letter-spacing:.04em;text-transform:none;color:inherit;line-height:1;display:block}
.sec-num .sec-en{font-family:'Inter';font-size:.62rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:inherit;opacity:.75;line-height:1;display:block;margin-top:.45rem}

/* Typography */
.h1{font-family:'Shippori Mincho',serif;font-size:clamp(3rem,8vw,7rem);font-weight:500;line-height:1.04;letter-spacing:-.035em}
.h1 em{color:#90b04b;font-style:italic;font-weight:400}
.h2{font-family:'Shippori Mincho',serif;font-size:clamp(2rem,4.4vw,3.6rem);font-weight:500;line-height:1.12;letter-spacing:-.028em}
.h2 em{color:#90b04b;font-style:italic;font-weight:400}
.h3{font-family:'Shippori Mincho',serif;font-size:clamp(1.35rem,2.2vw,1.8rem);font-weight:600;letter-spacing:.01em;line-height:1.3}
.lead{font-size:1rem;line-height:2;color:#444;max-width:620px}

/* Page shell */
.page-wrap{max-width:1280px;margin:0 auto;padding:0 2.2rem}

/* Breadcrumb */
.crumbs{display:flex;gap:.6rem;align-items:center;font-family:'Inter';font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#888;padding:8rem 0 2rem}
.crumbs a{color:#666;transition:.25s}
.crumbs a:hover{color:#90b04b}
.crumbs span.sep{color:#ccc}
.crumbs .cur{color:#90b04b}

/* Hero band for dept/careers pages */
.sub-hero{padding:3rem 0 6rem;position:relative}
.sub-hero-kicker{display:inline-flex;align-items:center;gap:.9rem;font-family:'Inter';font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:#90b04b;font-weight:600;margin-bottom:2rem}
.sub-hero-kicker::before{content:'';width:36px;height:1px;background:#90b04b}
.sub-hero .h1{margin-bottom:1.6rem}
.sub-hero-en{font-family:'Inter';font-size:.85rem;letter-spacing:.28em;text-transform:uppercase;color:#888;font-weight:500;margin-bottom:2.5rem}
.sub-hero .lead{max-width:680px;font-size:1.05rem}
.sub-hero-media{margin-top:4rem;position:relative;aspect-ratio:16/7;overflow:hidden;background:#1a1a1a}
.sub-hero-media img{width:100%;height:100%;object-fit:cover}
.sub-hero-media .sub-hero-tag{position:absolute;bottom:1rem;left:1rem;font-family:'Inter';font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);padding:.32rem .7rem;border:1px dashed rgba(199,224,121,.5);backdrop-filter:blur(4px)}

/* Generic section */
.sec{padding:7rem 0;border-top:1px solid rgba(10,10,10,.1)}
.sec-grid-1_2{display:grid;grid-template-columns:1.1fr 2fr;gap:5rem;align-items:start}
@media(max-width:960px){.sec-grid-1_2{grid-template-columns:1fr;gap:2.4rem}}

/* Rule list (used for services / steps / FAQs) */
.r-list{list-style:none;padding:0;margin:0}
.r-list>li{display:grid;grid-template-columns:80px 280px 1fr;gap:2rem;padding:2rem 0;border-top:1px solid rgba(10,10,10,.12);align-items:baseline;transition:background .3s}
.r-list>li:last-child{border-bottom:1px solid rgba(10,10,10,.12)}
.r-list>li:hover{background:rgba(199,224,121,.08)}
.r-list .r-num{font-family:'Inter';font-size:.72rem;letter-spacing:.22em;color:#90b04b;font-weight:600;padding-top:.3rem}
.r-list h3{font-family:'Shippori Mincho',serif;font-size:1.4rem;font-weight:600;letter-spacing:.02em}
.r-list p{font-size:.95rem;line-height:1.85;color:#444;margin:0}
.r-list ul{list-style:none;padding:0;margin:.8rem 0 0;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:#666}
.r-list ul li{padding-left:1.1rem;position:relative}
.r-list ul li::before{content:'';position:absolute;left:0;top:.6rem;width:.55rem;height:1px;background:#90b04b}
@media(max-width:820px){
  .r-list>li{grid-template-columns:56px 1fr;gap:.6rem 1rem;padding:1.5rem 0}
  .r-list>li>p,.r-list>li>ul{grid-column:2}
  .r-list h3{grid-column:2}
}

/* Cross-link to other depts */
.related{padding:7rem 0 9rem;border-top:1px solid rgba(10,10,10,.1)}
.related-head{margin-bottom:3rem}
.related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.related-card{display:block;padding:2.4rem 2.2rem;border:1px solid rgba(10,10,10,.12);background:#fafaf7;transition:.35s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}
.related-card:hover{background:#0a0a0a;color:#fafaf7;border-color:#0a0a0a;transform:translateY(-3px)}
.related-card .r-kicker{font-family:'Inter';font-size:.65rem;letter-spacing:.24em;text-transform:uppercase;color:#90b04b;font-weight:600;margin-bottom:1.2rem}
.related-card h3{font-family:'Shippori Mincho',serif;font-size:1.7rem;margin-bottom:.8rem}
.related-card p{font-size:.92rem;line-height:1.8;color:#555;margin:0}
.related-card:hover p{color:rgba(255,255,255,.75)}
.related-card::after{content:'→';position:absolute;right:1.8rem;bottom:1.4rem;font-size:1.3rem;transition:.35s}
.related-card:hover::after{transform:translateX(6px)}
@media(max-width:760px){.related-grid{grid-template-columns:1fr}}

/* CTA band */
.cta-band{background:#0a0a0a;color:#fafaf7;padding:7rem 2.2rem;text-align:center}
.cta-band .sec-num{justify-content:center;flex-direction:column;gap:.5rem;color:#c7e079;margin-bottom:1.4rem}
.cta-band .sec-num::before{display:none}
.cta-band h2{font-family:'Shippori Mincho',serif;font-size:clamp(2.4rem,5.6vw,4.4rem);font-weight:500;letter-spacing:-.02em;margin-bottom:1.2rem;line-height:1.12}
.cta-band h2 em{color:#c7e079;font-style:italic;font-weight:400}
.cta-band p{color:rgba(255,255,255,.7);max-width:560px;margin:0 auto 3rem;font-size:1rem;line-height:2}
.cta-band .cta-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.cta-band .cta{display:inline-flex;align-items:center;gap:1rem;padding:1.1rem 2rem;border-radius:999px;font-family:'Inter';font-size:.82rem;font-weight:500;letter-spacing:.06em;transition:.3s}
.cta-band .cta.primary{background:#c7e079;color:#0a0a0a}
.cta-band .cta.primary:hover{background:#fafaf7;transform:translateY(-2px)}
.cta-band .cta.ghost{color:#fafaf7;border:1px solid rgba(255,255,255,.25)}
.cta-band .cta.ghost:hover{background:#fafaf7;color:#0a0a0a;border-color:#fafaf7}

/* Footer */
.footer{background:#efece3;color:#333;padding:3rem 2.2rem}
.footer-inner{max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;gap:2rem;font-family:'Inter';font-size:.72rem;letter-spacing:.08em;color:#666;flex-wrap:wrap}
.footer a{margin-left:1.2rem}
.footer a:hover{color:#90b04b}

@media(max-width:720px){
  .nav{display:none}
  .crumbs{padding:7rem 0 1.5rem;font-size:.62rem}
}
