/* KAIZO FAMILY — Final editorial art direction, 2026-11-01.
   Non-destructive presentation layer: originals' text, anchors and links are unchanged. */
:root{--kf-ink:#17243b;--kf-navy:#101e36;--kf-gold:#c5a56e;--kf-paper:#faf9f7;--kf-line:#e8e8e7;--kf-shadow:0 18px 48px rgba(11,26,47,.10)}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{font-family:'Noto Sans JP','Hiragino Sans',sans-serif;line-height:1.9;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:'Noto Serif JP','Hiragino Mincho ProN',serif;line-height:1.48;letter-spacing:.025em}
.fam-header{background:rgba(12,26,47,.97)!important;border-bottom:1px solid rgba(201,168,106,.4)!important;box-shadow:0 8px 28px rgba(8,16,30,.15)!important;backdrop-filter:blur(16px)}
.fam-header-in{max-width:1440px!important;padding-left:clamp(18px,3.2vw,52px)!important;padding-right:clamp(18px,3.2vw,52px)!important}
.fam-wm-jp{color:#fff!important;font-size:clamp(17px,1.7vw,24px)!important;letter-spacing:.12em!important}
.fam-wm-en{color:#e8d1a9!important;border-bottom-color:rgba(201,168,106,.75)!important;letter-spacing:.31em!important}
.fam-tabs a{color:#e8e8ed!important;letter-spacing:.015em!important;font-weight:500!important}
.fam-tabs a:hover,.fam-tabs a.tab-active{color:#fff!important;border-bottom-color:#c9a86a!important}
.fam-tabs a:focus-visible{outline:2px solid #f0d29b;outline-offset:-4px}
.wrap{max-width:1160px}
section{scroll-margin-top:125px}
.sec-title h2,.sec-head h2,.chapter-head h2{letter-spacing:.045em!important;line-height:1.55!important}
.sec-title .en,.sec-head .en{letter-spacing:.22em!important}
.hero{isolation:isolate}
.hero h1{letter-spacing:.055em!important;text-wrap:balance}
.hero::before{pointer-events:none}
.btn,.ph-btn,.card-more{transition:transform .22s ease,background .22s ease,box-shadow .22s ease!important}
.btn:hover,.ph-btn:hover{transform:translateY(-2px)}
.card,.team-card,.sister,.sister-card{transition:box-shadow .25s ease,transform .25s ease}
.card:hover,.team-card:hover{box-shadow:0 22px 46px rgba(17,32,52,.13)}
img{max-width:100%}
.movie-frame,.catch-img{box-shadow:0 22px 60px rgba(11,24,42,.12);overflow:hidden}
.privacy-note,.src-note{line-height:1.9}
footer{background:#101b30!important;color:#eaedf2!important}
footer a{color:inherit}
/* Family portal: bring team cards toward the hero, creating one editorial composition */
body:has(.team-grid) .hero-in{min-height:clamp(460px,54vw,625px)!important}
body:has(.team-grid) .teams{position:relative;z-index:2;margin-top:-64px;padding-top:0!important}
body:has(.team-grid) .sec-head{display:none}
body:has(.team-grid) .team-grid{gap:clamp(10px,1.25vw,20px)!important}
body:has(.team-grid) .team-card{border-radius:12px!important;border:1px solid rgba(255,255,255,.86)!important;overflow:hidden;box-shadow:0 15px 44px rgba(10,20,41,.16)!important}
body:has(.team-grid) .card-logo{height:205px!important;padding:15px!important}
body:has(.team-grid) .card-logo img{height:175px!important;box-shadow:none!important;object-fit:contain}
body:has(.team-grid) .card-body{padding:17px 16px 25px!important}
body:has(.team-grid) .card-body h3{font-size:clamp(15px,1.3vw,19px)!important}
body:has(.team-grid) .quick{padding-top:70px!important}
body:has(.team-grid) .quick-grid{border-radius:12px!important;box-shadow:0 8px 35px rgba(13,30,52,.05)!important}
/* The parents site remains purely editorial: no decorative mascot or photo. */
body:has(.chapter-head) .chapter{scroll-margin-top:125px}
body:has(.chapter-head) .faq-item,body:has(.chapter-head) .diagram-box{box-shadow:0 4px 24px rgba(19,36,60,.045)}
@media(max-width:860px){
 .fam-header-in{padding:0 14px!important}
 .fam-tabs{border-top:1px solid rgba(255,255,255,.15)!important}
 .fam-tabs a{font-size:12px!important;line-height:42px!important}
 .fam-wm-jp{font-size:17px!important}
 body:has(.team-grid) .hero-in{min-height:510px!important}
 body:has(.team-grid) .teams{margin-top:-44px}
}
@media(max-width:600px){
 .wrap{padding-left:20px!important;padding-right:20px!important}
 h1{overflow-wrap:anywhere}
 .hero h1{font-size:clamp(29px,7vw,43px)!important;line-height:1.52!important}
 body:has(.team-grid) .hero-in{min-height:475px!important;padding-top:56px!important;padding-bottom:110px!important}
 body:has(.team-grid) .teams{margin-top:-74px}
 body:has(.team-grid) .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:11px!important}
 body:has(.team-grid) .card-logo{height:140px!important;padding:10px!important}
 body:has(.team-grid) .card-logo img{height:120px!important}
 body:has(.team-grid) .card-body{padding:13px 10px 16px!important}
 body:has(.team-grid) .card-body h3{font-size:14px!important}
 body:has(.team-grid) .card-target{font-size:11px!important}
 body:has(.team-grid) .card-catch{font-size:12px!important;line-height:1.65!important}
 body:has(.team-grid) .card-more{min-height:36px!important;font-size:11px!important;padding:7px 10px!important}
 .sec-title h2,.sec-head h2{font-size:clamp(23px,6vw,30px)!important}
 .fam-header{z-index:200!important}
}
@media(max-width:360px){body:has(.team-grid) .team-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
