/* Layout tokens and components extend the owner-approved Zaoju reference. */
:root { --family-background:none; --family-mobile-background:var(--family-background); }
.z-background { background-image:linear-gradient(180deg,rgba(3,7,7,.4),rgba(3,7,7,.78)),var(--family-background); }
.z-brand { overflow:hidden; text-overflow:ellipsis; }
.z-header { gap:24px; }
.z-nav { gap:22px; }
.z-nav a { font-size:13px; }
.z-nav button { min-height:44px; padding:0; color:inherit; background:none; border:0; cursor:pointer; }
.z-menu-button { margin-left:auto; flex-shrink:0; }
.z-hero-copy { width:min(100%,880px); }
.z-hero h1 { font-size:clamp(40px,5.5vw,80px); text-wrap:balance; }
.z-hero h1 span { display:inline; }
.family-site[data-family-site="lines"] .z-background { background-image:linear-gradient(180deg,rgba(3,7,7,.72),rgba(3,7,7,.9)),var(--family-background); }
.z-hero-lead p { margin-bottom:12px; }
.z-hero-meta { margin-bottom:16px; font-size:11px; letter-spacing:.18em; color:var(--z-gold); }
.z-hero-meta p { margin:0; }
.family-stats { padding-block:48px 20px; }
.family-stats .z-copy { border-block:1px solid var(--z-line); padding-block:28px; }
.family-stats dl { display:flex; flex-wrap:wrap; gap:24px 40px; margin:0; }
.family-stats dl > div { flex:1 1 120px; }
.family-stats dt { font-size:13px; color:var(--z-muted); }
.family-stats dd { margin:8px 0 0; font-size:26px; }
.family-stats p { font-size:14px; }
.family-stats ul { margin:0; }
.z-copy { min-width:0; overflow-wrap:anywhere; }
.z-copy img,.family-image { display:block; max-width:100%; height:auto; border-radius:16px; margin:0 0 28px; }
.z-copy figure { margin:28px 0; }
.z-copy figure img { margin-bottom:12px; }
.z-copy figcaption { font-size:13px; line-height:1.7; color:var(--z-muted); }
.z-copy h3 { font-size:26px; font-weight:500; line-height:1.4; margin:32px 0 20px; }
.z-copy h4 { font-size:22px; font-weight:500; line-height:1.5; margin:32px 0 20px; }
.z-panel > h3:first-child,.z-panel > h4:first-child { margin-top:0; }
.z-copy blockquote { padding:16px 0 16px 20px; margin:28px 0; border-left:1px solid var(--z-gold); }
.z-copy table { width:100%; font-size:14px; line-height:1.7; border-collapse:collapse; }
.z-copy td,.z-copy th { border-bottom:1px solid var(--z-line); padding:14px 12px; text-align:left; vertical-align:top; }
.family-table-scroll { overflow:auto; max-width:100%; }
.family-table-scroll table { min-width:520px; }
.z-copy dl:not(.z-prices) { margin:24px 0; }
.z-copy dl:not(.z-prices) dt { font-weight:600; margin-top:20px; }
.z-copy dl:not(.z-prices) dd { margin:8px 0 0; line-height:1.85; }
.z-copy hr { border:0; border-top:1px solid var(--z-line); margin:32px 0; }
.z-copy .family-alias { display:block; scroll-margin-top:88px; }
.family-single { padding-block:8px; }
.family-footer { padding:72px 0 32px; }
.family-footer .z-copy { font-size:13px; line-height:1.8; }
.family-footer .z-copy p { font-size:13px; margin:12px 0; }
.family-footer .z-copy > a { display:inline-flex; min-height:44px; align-items:center; margin-right:24px; }
.family-footer h5 { margin-bottom:12px; font-size:15px; }
.family-footer .family-top { display:block; margin-bottom:28px; }
@media(min-width:901px) and (max-width:1240px) { .z-header { gap:18px; padding-inline:24px; }.z-nav { gap:14px; }.z-nav a { font-size:12px; }.z-brand { font-size:17px; } }
@media(max-width:900px) { .z-nav { max-height:calc(100dvh - 64px); overflow:auto; }.z-nav button { text-align:left; min-height:48px; }.z-brand { max-width:calc(100vw - 104px); }.z-hero h1 { font-size:clamp(38px,9vw,66px); } }
@media(max-width:767px) { .z-background { background-image:linear-gradient(180deg,rgba(3,7,7,.4),rgba(3,7,7,.82)),var(--family-mobile-background); }.z-hero h1 span { white-space:normal; }.z-copy h3 { font-size:24px; }.z-copy h4 { font-size:21px; }.family-stats { padding-top:32px; }.family-footer { padding-top:48px; } }
@media print { .family-footer { background:white; }.z-copy { width:100%; } }
