/* =====================================================================
   route1.css — Growth and Airway, Route 1 "Editorial Clinic"
   Shared design system for every Route 1 page (home + content pages).

   Loads AFTER lumos.css. lumos.css supplies the framework (variables,
   themes, text styles, layout + component utilities). This file sets the
   route's swatches + fonts, the paper-grain atmosphere, and the editorial
   component styles (nav, hero, intro, conditions, pathways, journey,
   approach, faq, testimonial, cta, footer) plus the content-page
   components (page hero, treatments, signs, team).
   ===================================================================== */

:root{
  /* swatches */
  --swatch--brand-500:#2F5D43; --swatch--brand-600:#264C37; --swatch--brand-text:#F3EFE6;
  --swatch--accent-500:#C57D74;
  --swatch--light-100:#F3EFE6; --swatch--light-200:#FAF6EE; --swatch--light-300:#E2DBCB;
  --swatch--dark-900:#22332A; --swatch--dark-800:#2C3A30; --swatch--dark-700:#565049; --swatch--dark-600:#837C6F;
  /* fonts */
  --font--display:"Newsreader",Georgia,serif;
  --font--body:"Inter",system-ui,sans-serif;
  --font--label:"IBM Plex Sans",sans-serif;
  --font--display-weight:400;
  --font--weight-display:300;
  --font--weight-emphasis:400;
  --btn-radius:0rem;
}

/* atmosphere: paper grain */
body::before{ content:""; position:fixed; inset:0; z-index:9999; pointer-events:none; opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* editorial eyebrow + section label */
.u-eyebrow{ font-family:var(--font--label); font-size:0.75rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--theme--primary); font-weight:600; margin:0 0 var(--space--3); display:flex; align-items:center; gap:var(--space--2); }
.u-eyebrow::before{ content:""; width:1.6rem; height:1px; background:var(--theme--primary); opacity:.6; }
.u-seclabel{ font-family:var(--font--label); font-size:0.72rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--theme--text-muted); border-top:1px solid var(--theme--border); padding-top:var(--space--3); margin:0 0 var(--space--4); display:block; }

/* ---- header ---- */
.nav_wrap{ position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--theme--background) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--theme--border); }
.nav_inner{ display:flex; align-items:center; justify-content:space-between; height:4.625rem; }
.nav_brand{ display:flex; align-items:center; gap:0.8rem; text-decoration:none; color:var(--theme--primary); }
.nav_logo{ display:block; width:16rem; }
.nav_logo svg{ display:block; width:100%; height:auto; }
.nav_brand b{ font-family:var(--font--display); font-weight:500; font-size:1.125rem; color:var(--theme--heading); line-height:1.05; letter-spacing:var(--ls--tight); }
.nav_brand small{ display:block; font-family:var(--font--label); font-size:0.6rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--theme--text-muted); margin-top:0.1rem; }
.nav_menu{ display:flex; align-items:center; gap:1.9rem; }
.nav_link{ font-family:var(--font--label); font-size:0.875rem; text-decoration:none; color:var(--theme--heading); position:relative; padding:0.25rem 0; }
.nav_link::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--theme--primary); transition:width .25s; }
.nav_link:hover::after{ width:100%; }
.nav_link.is-current{ color:var(--theme--primary); }
.nav_link.is-current::after{ width:100%; }
@container (width < 50em){ .nav_link:not(.u-button){ display:none; } .nav_logo{ width:12rem; } }

/* ---- hero (home + content pages) ---- */
.hero_wrap{ position:relative; overflow:hidden; padding-top:clamp(3.5rem,2.5rem + 3.4vw,6rem); }
.hero_flow{ position:absolute; right:-9rem; top:-6rem; width:38rem; color:var(--theme--accent); opacity:.16; z-index:0; pointer-events:none; }
.hero_layout{ position:relative; z-index:1; display:grid; grid-template-columns:1.2fr 0.9fr; gap:var(--space--6); align-items:center; }
@container (width < 54em){ .hero_layout{ grid-template-columns:1fr; gap:var(--space--5); } }
.hero_title{ font-size:clamp(2rem,1.4rem + 3.3vw,3.35rem); line-height:1.06; letter-spacing:-0.012em; font-weight:300; margin:0 0 var(--space--4); }
.hero_title em{ color:var(--theme--primary); font-style:italic; }
.hero_sub{ font-size:var(--text-size--main); line-height:1.6; max-width:46ch; margin:0 0 var(--space--3); }
.hero_root{ font-family:var(--font--display); font-style:italic; font-size:1.125rem; color:var(--theme--heading); margin:0 0 var(--space--5); }
.hero_tags{ display:flex; flex-wrap:wrap; margin:0 0 var(--space--5); max-width:53ch; }
.hero_tags span{ font-family:var(--font--label); font-size:0.75rem; color:var(--theme--text); padding:0.3rem 1rem 0.3rem 0; margin-right:1rem; position:relative; opacity:.85; }
.hero_tags span:not(:last-child)::after{ content:""; position:absolute; right:0; top:50%; width:0.25rem; height:0.25rem; border-radius:50%; background:var(--theme--accent); transform:translateY(-50%); }
.hero_cta{ display:flex; align-items:center; gap:var(--space--4); flex-wrap:wrap; }
.hero_img{ width:100%; height:auto; display:block; mix-blend-mode:multiply; }

/* ---- intro / long-form two-column ---- */
.intro_layout{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:var(--space--6); }
@container (width < 52em){ .intro_layout{ grid-template-columns:1fr; gap:var(--space--3); } }
.intro_aside{ font-family:var(--font--label); font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--theme--primary); opacity:.72; line-height:2.2; }
.intro_heading{ font-size:clamp(1.75rem,1.2rem + 2.6vw,2.75rem); line-height:1.12; max-width:18ch; margin:0 0 var(--space--4); }
.intro_heading em{ color:var(--theme--primary); font-style:italic; }
.intro_body p{ max-width:64ch; }
.has-dropcap::first-letter{ font-family:var(--font--display); float:left; font-size:5.2em; line-height:0.78; padding:0.45rem 0.85rem 0 0; color:var(--theme--accent); font-weight:420; }

/* ---- conditions ---- */
.cond_head{ display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space--4); flex-wrap:wrap; margin-bottom:var(--space--5); }
.cond_head h2{ max-width:16ch; }
.cond_note{ font-family:var(--font--label); font-size:0.875rem; color:var(--theme--text-muted); }
.cond_slider{ position:relative; }
.cond_track{ display:flex; gap:var(--space--4); overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; padding-bottom:var(--space--3); margin-right:calc(50% - 50vw); padding-right:calc(50vw - 50%); scrollbar-width:thin; scrollbar-color:var(--theme--primary) transparent; -webkit-overflow-scrolling:touch; }
.cond_track::-webkit-scrollbar{ height:0.4rem; }
.cond_track::-webkit-scrollbar-thumb{ background:color-mix(in srgb, var(--theme--primary) 45%, transparent); }
.cond_item{ flex:0 0 auto; width:clamp(16rem,30%,21rem); scroll-snap-align:start; display:block; padding:0; border-top:none; }
.cond_img{ margin-bottom:var(--space--3); }
.cond_img .u-placeholder{ min-height:11rem; }
.cond_num{ display:block; font-family:var(--font--label); font-size:0.75rem; font-weight:600; letter-spacing:0.06em; color:var(--theme--accent); margin-bottom:var(--space--2); }
.cond_item h3{ font-size:1.3rem; margin:0 0 var(--space--2); line-height:1.2; }
.cond_item p{ font-size:0.9375rem; line-height:1.6; margin:0; }
.slider_nav{ display:flex; gap:0.6rem; margin-top:var(--space--4); }
.slider_arrow{ width:2.7rem; height:2.7rem; border:1px solid var(--theme--border); background:var(--theme--surface); color:var(--theme--primary); font-size:1.05rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s, color .2s, border-color .2s; }
.slider_arrow:hover{ background:var(--theme--primary); color:var(--theme--on-primary); border-color:var(--theme--primary); }

/* ---- hero + development growth thread (home) ---- */
.thread_zone{ position:relative; }
.thread_zone > section{ position:relative; z-index:1; }
.thread_svg{ position:absolute; inset:0; width:100%; height:100%; z-index:0; overflow:visible; pointer-events:none; }
.thread_track{ fill:none; stroke:var(--theme--accent); stroke-width:2px; opacity:.18; stroke-linecap:round; }
.thread_prog{ fill:none; stroke:url(#growthGrad); stroke-width:2.5px; stroke-linecap:round; }
.thread_dot{ position:absolute; width:0.95rem; height:0.95rem; border-radius:50%; background:var(--theme--primary); box-shadow:0 0 0 0.4rem color-mix(in srgb, var(--theme--primary) 16%, transparent); transform:translate(-50%,-50%); opacity:0; transition:opacity .3s; z-index:1; }
.statement_inner{ padding-left:clamp(2.5rem, 13%, 11rem); }
.statement_text{ font-family:var(--font--display); font-weight:300; font-size:clamp(1.8rem,1.25rem + 2.7vw,2.9rem); line-height:1.18; letter-spacing:-0.012em; color:var(--theme--heading); margin:0; max-width:26ch; }
.statement_text em{ font-style:italic; font-weight:400; color:var(--theme--primary); }
@container (width < 48em){ .statement_inner{ padding-left:2.25rem; } }
.bridge_inner{ padding-left:clamp(2.5rem, 13%, 11rem); }
.bridge_text{ font-family:var(--font--display); font-weight:300; font-size:clamp(1.35rem,1.05rem + 1.4vw,1.95rem); line-height:1.4; color:var(--theme--heading); margin:0; max-width:34ch; }
.bridge_text em{ font-style:italic; font-weight:400; color:var(--theme--primary); }
@container (width < 48em){ .bridge_inner{ padding-left:2.25rem; } }
.dev_inner{ padding-left:clamp(2.5rem, 13%, 11rem); }
@container (width < 48em){ .dev_inner{ padding-left:2.25rem; } }
.dev_head{ max-width:46ch; margin:0 0 var(--space--6); }
.dev_lead{ font-family:var(--font--body); font-size:var(--text-size--large); line-height:1.6; color:var(--theme--text); max-width:44ch; margin:0; }
.dev_stages{ display:flex; flex-direction:column; gap:var(--space--8); }
.dev_stage{ display:grid; grid-template-columns:1fr 0.8fr; gap:var(--space--5); align-items:center; }
@container (width < 48em){ .dev_stage{ grid-template-columns:1fr; gap:var(--space--3); } }
.dev_stage_label{ font-family:var(--font--label); font-size:0.72rem !important; letter-spacing:0.22em; text-transform:uppercase; color:var(--theme--accent); margin:0 0 var(--space--1) !important; display:flex; align-items:baseline; gap:0.7rem; }
.dev_stage_label .yr{ color:var(--theme--text-muted); letter-spacing:0.04em; }
.dev_stage h2{ font-size:clamp(1.5rem,1.1rem + 1.6vw,2.2rem); font-weight:300; line-height:1.12; margin:0 0 var(--space--3); }
.dev_stage h2 em{ font-style:italic; font-weight:400; color:var(--theme--primary); }
.dev_stage p{ font-size:1rem; line-height:1.62; margin:0; max-width:40ch; }
.dev_img{ position:relative; }
.dev_img .u-placeholder{ min-height:14rem; }
.dev_motif{ position:absolute; bottom:-0.6rem; right:-0.6rem; width:5.5rem; height:auto; opacity:.55; mix-blend-mode:multiply; }

/* ---- pathways ---- */
.path_grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space--5); }
@container (width < 50em){ .path_grid{ grid-template-columns:1fr; } }
.path_card{ background:var(--theme--surface); border:1px solid var(--theme--border); }
.path_card.is-children{ border-top:0.1875rem solid var(--theme--primary); }
.path_card.is-adults{ border-top:0.1875rem solid var(--theme--accent); }
.path_card .u-placeholder{ border:none; border-bottom:1px solid var(--theme--border); min-height:12rem; }
.path_body{ padding:var(--space--4) var(--space--4) var(--space--5); }
.path_label{ font-family:var(--font--label); font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--theme--text-muted); margin:0 0 var(--space--2); }
.path_card h3{ font-size:1.55rem; line-height:1.16; margin:0 0 var(--space--3); }
.path_card p{ font-size:0.9375rem; line-height:1.62; }
.path_tags{ display:flex; flex-wrap:wrap; gap:0.5rem; margin:var(--space--3) 0 var(--space--4); }
.path_tags span{ font-family:var(--font--label); font-size:0.72rem; color:var(--theme--text); border:1px solid var(--theme--border); border-radius:var(--radius--pill); padding:0.3rem 0.75rem; }

/* ---- journey / numbered steps ---- */
.journey_head{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:var(--space--6); margin-bottom:var(--space--5); }
@container (width < 52em){ .journey_head{ grid-template-columns:1fr; gap:var(--space--3); } }
.journey_head h2{ max-width:17ch; margin:0 0 var(--space--3); }
.steps_grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--space--6); }
@container (width < 50em){ .steps_grid{ grid-template-columns:1fr; } }
.step_item{ padding:var(--space--4) 0; border-top:1px solid var(--theme--border); display:grid; grid-template-columns:auto 1fr; gap:var(--space--3); align-items:start; }
.step_num{ font-family:var(--font--display); font-size:2.4rem; color:var(--theme--accent); line-height:0.9; font-weight:380; opacity:.85; }
.step_item h3{ font-size:1.2rem; margin:0 0 var(--space--2); line-height:1.2; }
.step_item p{ font-size:0.9375rem; line-height:1.6; margin:0; }

/* ---- approach / pillars ---- */
.approach_quote{ font-family:var(--font--display); font-style:italic; font-size:clamp(1.6rem,1.1rem + 2.4vw,2.5rem); line-height:1.28; max-width:22ch; margin:0 auto var(--space--2); text-align:center; font-weight:380; color:var(--theme--heading); }
.approach_attr{ text-align:center; font-family:var(--font--label); font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--theme--primary); opacity:.72; margin:0 0 var(--space--6); }
.approach_layout{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:var(--space--6); }
@container (width < 52em){ .approach_layout{ grid-template-columns:1fr; gap:var(--space--3); } }
.approach_layout h2{ max-width:20ch; margin:0 0 var(--space--4); }
.pillar_grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space--5); margin-top:var(--space--6); }
@container (width < 52em){ .pillar_grid{ grid-template-columns:1fr; gap:var(--space--3); } }
.pillar_item{ padding-top:var(--space--3); border-top:0.125rem solid var(--theme--primary); }
.pillar_label{ font-family:var(--font--label); font-size:0.7rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--theme--accent); margin:0 0 var(--space--2); }
.pillar_item h4{ font-size:1.2rem; margin:0 0 var(--space--2); line-height:1.22; }
.pillar_item p{ font-size:0.9rem; line-height:1.6; margin:0; }

/* ---- faq ---- */
.faq_q{ border-top:1px solid var(--theme--border); }
.faq_q:last-of-type{ border-bottom:1px solid var(--theme--border); }
.faq_q summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:var(--space--4); align-items:baseline; padding:var(--space--4) 0; font-family:var(--font--display); font-size:1.3rem; color:var(--theme--heading); letter-spacing:var(--ls--tight); line-height:1.3; transition:color .2s; }
.faq_q summary::-webkit-details-marker{ display:none; }
.faq_q summary:hover{ color:var(--theme--primary); }
.faq_sign{ font-family:var(--font--label); font-size:1.5rem; color:var(--theme--accent); transition:transform .3s; flex-shrink:0; line-height:1; }
.faq_q[open] .faq_sign{ transform:rotate(45deg); }
.faq_a{ font-size:0.97rem; line-height:1.68; color:var(--theme--text); max-width:68ch; padding:0 0 var(--space--4); margin:0; }

/* ---- testimonial (brand theme) ---- */
.testi_quote{ font-family:var(--font--display); font-style:italic; font-size:clamp(1.5rem,1.1rem + 2.2vw,2.25rem); line-height:1.3; max-width:46ch; margin:0 0 var(--space--4); font-weight:360; color:var(--theme--heading); }
.testi_attr{ font-family:var(--font--label); font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--theme--text-muted); }
.trust_grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space--5); margin-top:var(--space--6); border-top:1px solid var(--theme--border); padding-top:var(--space--5); }
@container (width < 44em){ .trust_grid{ grid-template-columns:1fr 1fr; } }
.trust_item strong{ display:block; font-family:var(--font--display); font-size:1.6rem; font-weight:420; color:var(--theme--heading); margin-bottom:0.35rem; line-height:1.1; }
.trust_item span{ font-family:var(--font--label); font-size:0.78rem; letter-spacing:0.03em; color:var(--theme--text-muted); line-height:1.4; }

/* ---- treatments slider: reuses the conditions slider component (.cond_*) ---- */
a.cond_item{ text-decoration:none; color:inherit; }
.cond_item .u-textlink{ display:inline-flex; }

/* ---- signs (children): grouped editorial index ---- */
.signs_groups{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space--5) var(--space--6); margin-top:var(--space--6); }
@container (width < 52em){ .signs_groups{ grid-template-columns:1fr; gap:var(--space--4); } }
.signs_group_label{ display:flex; align-items:baseline; gap:var(--space--2); font-family:var(--font--label); font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--theme--accent); border-top:0.125rem solid var(--theme--accent); padding-top:var(--space--3); margin:0 0 var(--space--1); }
.signs_group_label .gnum{ font-family:var(--font--display); font-style:italic; font-size:1.1rem; letter-spacing:0; color:color-mix(in srgb, var(--theme--accent) 55%, transparent); }
.signs_group ul{ list-style:none; margin:0; padding:0; }
.signs_group li{ padding:var(--space--3) 0; border-top:1px solid var(--theme--border); font-size:1.02rem; line-height:1.5; color:var(--theme--heading); transition:color .2s ease; }
.signs_group li:first-of-type{ border-top:none; }
.signs_group li:hover{ color:var(--theme--primary); }
.signs_note{ margin:var(--space--6) 0 0; max-width:62ch; font-family:var(--font--display); font-style:italic; font-size:clamp(1.1rem,1rem + 0.5vw,1.35rem); line-height:1.5; color:var(--theme--text); }

/* ---- team (about) ---- */
.team_member{ display:grid; grid-template-columns:0.7fr 1.3fr; gap:var(--space--5); align-items:start; }
@container (width < 48em){ .team_member{ grid-template-columns:1fr; } }
.team_photo{ position:relative; }
.team_photo img{ width:100%; height:auto; display:block; filter:grayscale(1); }
.team_photo .u-placeholder{ min-height:20rem; }
.team_member h3{ font-size:clamp(1.4rem,1.1rem + 1.2vw,1.9rem); font-weight:300; line-height:1.14; margin:0 0 var(--space--1); }
.team_role{ font-family:var(--font--label); font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--theme--accent); margin:0 0 var(--space--3); }
.team_body p{ font-size:0.97rem; line-height:1.65; margin:0 0 var(--space--3); max-width:62ch; }
.team_note{ font-family:var(--font--display); font-style:italic; color:var(--theme--text-muted); }

/* ---- final cta ---- */
.cta_wrap{ text-align:center; }
.cta_wrap h2{ font-size:clamp(1.9rem,1.2rem + 3.4vw,3.25rem); max-width:18ch; margin:0 auto var(--space--3); line-height:1.08; }
.cta_wrap h2 em{ color:var(--theme--primary); font-style:italic; }
.cta_lead{ margin:0 auto var(--space--5); max-width:50ch; }
.cta_row{ display:flex; align-items:center; justify-content:center; gap:var(--space--4); flex-wrap:wrap; }

/* ---- footer ---- */
.footer_top{ display:flex; justify-content:space-between; gap:var(--space--5); flex-wrap:wrap; align-items:flex-start; }
.footer_nav{ display:flex; gap:var(--space--4); flex-wrap:wrap; }
.footer_nav a{ font-family:var(--font--label); font-size:0.82rem; color:var(--theme--text); text-decoration:none; }
.footer_nav a:hover{ color:var(--theme--primary); }
.footer_legal{ margin-top:var(--space--5); padding-top:var(--space--3); border-top:1px solid var(--theme--border); font-family:var(--font--label); font-size:0.72rem; letter-spacing:0.04em; color:var(--theme--text-muted); }

/* ---- blog listing ---- */
.blog_feature{ margin-bottom:var(--space--6); }
.blog_card.is-feature{ display:grid; grid-template-columns:1.05fr 0.95fr; align-items:stretch; }
@container (width < 52em){ .blog_card.is-feature{ grid-template-columns:1fr; } }
.blog_grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space--5); }
@container (width < 60em){ .blog_grid{ grid-template-columns:1fr 1fr; } }
@container (width < 38em){ .blog_grid{ grid-template-columns:1fr; } }
.blog_card{ display:flex; flex-direction:column; text-decoration:none; color:inherit; background:var(--theme--surface); border:1px solid var(--theme--border); transition:transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s; }
.blog_card:hover{ transform:translateY(-3px); box-shadow:0 1rem 2rem -1rem color-mix(in srgb, var(--theme--heading) 28%, transparent); }
.blog_card_img{ aspect-ratio:16/10; overflow:hidden; border-bottom:1px solid var(--theme--border); background:var(--theme--background); }
.blog_card.is-feature .blog_card_img{ aspect-ratio:auto; height:100%; min-height:19rem; border-bottom:none; border-right:1px solid var(--theme--border); }
@container (width < 52em){ .blog_card.is-feature .blog_card_img{ aspect-ratio:16/10; min-height:0; border-right:none; border-bottom:1px solid var(--theme--border); } }
.blog_card_img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.blog_card:hover .blog_card_img img{ transform:scale(1.04); }
.blog_card_body{ padding:var(--space--4); display:flex; flex-direction:column; gap:var(--space--2); flex:1; }
.blog_card.is-feature .blog_card_body{ padding:var(--space--5); justify-content:center; }
.blog_meta{ font-family:var(--font--label); font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--theme--text-muted); margin:0; }
.blog_card_title{ font-family:var(--font--display); font-weight:300; font-size:clamp(1.25rem,1.05rem + 0.7vw,1.6rem); line-height:1.18; color:var(--theme--heading); margin:0; }
.blog_feature .blog_card_title{ font-size:clamp(1.65rem,1.2rem + 1.9vw,2.5rem); }
.blog_card_excerpt{ font-size:0.95rem; line-height:1.6; color:var(--theme--text); margin:0; }
.blog_card .u-textlink{ margin-top:auto; padding-top:var(--space--2); font-size:0.875rem; }

/* ---- article (blog post) ---- */
.article_head{ max-width:46rem; margin-inline:auto; text-align:center; }
.article_cat{ font-family:var(--font--label); font-size:0.72rem; letter-spacing:0.24em; text-transform:uppercase; color:var(--theme--primary); font-weight:600; margin:0 0 var(--space--3); }
.article_title{ font-size:clamp(2rem,1.4rem + 3vw,3.25rem); font-weight:300; line-height:1.1; letter-spacing:-0.012em; margin:0 0 var(--space--4); }
.article_meta{ display:flex; gap:var(--space--3); justify-content:center; align-items:center; flex-wrap:wrap; font-family:var(--font--label); font-size:0.8rem; letter-spacing:0.04em; color:var(--theme--text-muted); }
.article_meta .dot{ width:0.25rem; height:0.25rem; border-radius:50%; background:var(--theme--accent); }
.article_meta strong{ color:var(--theme--heading); font-weight:600; }
.article_hero{ max-width:60rem; margin:var(--space--6) auto 0; }
.article_hero img{ width:100%; height:auto; display:block; }
.video_embed{ position:relative; aspect-ratio:16/9; width:100%; background:var(--swatch--dark-900); border:1px solid var(--theme--border); overflow:hidden; }
.video_embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.article_body{ max-width:42rem; margin-inline:auto; }
.article_body > *:first-child{ margin-top:0; }
.article_body p{ font-size:1.14rem; line-height:1.75; color:var(--theme--text); margin:0 0 1.25em; }
.article_body h2{ font-family:var(--font--display); font-weight:380; font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem); line-height:1.2; color:var(--theme--heading); margin:1.9em 0 0.55em; }
.article_body h3{ font-family:var(--font--display); font-weight:480; font-size:1.3rem; line-height:1.25; color:var(--theme--heading); margin:1.6em 0 0.5em; }
.article_body ul, .article_body ol{ margin:0 0 1.25em; padding-left:1.35em; }
.article_body li{ font-size:1.1rem; line-height:1.7; margin:0 0 0.5em; padding-left:0.2em; }
.article_body li::marker{ color:var(--theme--accent); }
.article_body a{ color:var(--theme--primary); text-decoration:underline; text-underline-offset:0.15em; }
.article_body strong{ color:var(--theme--heading); font-weight:600; }
.article_body blockquote{ margin:1.6em 0; padding:0.2em 0 0.2em var(--space--4); border-left:2px solid var(--theme--accent); font-family:var(--font--display); font-style:italic; font-size:1.3rem; line-height:1.5; color:var(--theme--heading); }
.article_body img{ width:100%; height:auto; margin:1.6em 0; }
.article_body .has-dropcap::first-letter{ font-family:var(--font--display); float:left; font-size:4.6em; line-height:0.72; padding:0.4rem 0.7rem 0 0; color:var(--theme--accent); font-weight:420; }
.author_box{ max-width:42rem; margin:var(--space--7) auto 0; padding-top:var(--space--5); border-top:1px solid var(--theme--border); display:grid; grid-template-columns:auto 1fr; gap:var(--space--4); align-items:center; }
.author_box img{ width:4.5rem; height:4.5rem; object-fit:cover; filter:grayscale(1); border-radius:50%; }
.author_box .author_label{ font-family:var(--font--label); font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--theme--accent); margin:0 0 0.2rem; }
.author_box h3{ font-family:var(--font--display); font-weight:300; font-size:1.3rem; margin:0 0 0.3rem; }
.author_box p{ font-size:0.92rem; line-height:1.55; color:var(--theme--text-muted); margin:0; }
.article_back{ max-width:42rem; margin:var(--space--6) auto 0; }

/* hero load reveal (home) */
.hero_layout > div > *{ opacity:0; animation:lumos-rise .9s cubic-bezier(.2,.7,.3,1) forwards; }
.hero_layout .hero_title{ animation-delay:.05s; } .hero_layout .hero_sub{ animation-delay:.16s; }
.hero_layout .hero_root{ animation-delay:.26s; } .hero_layout .hero_tags{ animation-delay:.34s; } .hero_layout .hero_cta{ animation-delay:.44s; }
.hero_art{ opacity:0; animation:lumos-rise .9s cubic-bezier(.2,.7,.3,1) .3s forwards; }

@media (prefers-reduced-motion: reduce){
  .hero_layout > div > *, .hero_art{ opacity:1; animation:none; }
}
