/* CHAT 03 — canonical visual tokens, typography and rhythm.
 * Runtime authority for the files owned by this gate. Legacy variables remain
 * as fallbacks so non-owned styles keep working until their assigned gate. */
:root{
  --bac-color-ink:var(--bac-ink,var(--ink,#17242b));
  --bac-color-navy:var(--bac-navy,var(--institutional,#072f49));
  --bac-color-navy-soft:var(--institutional-2,#164e63);
  --bac-color-paper:var(--bac-paper,var(--paper,#fffcf6));
  --bac-color-canvas:var(--bac-canvas,var(--canvas,#f4f1ea));
  --bac-color-line:var(--bac-line,var(--line,#d5cec1));
  --bac-color-accent:var(--bac-accent,var(--accent,#9b432c));
  --bac-color-muted:var(--bac-muted,var(--muted,#5a6468));
  --bac-color-focus:var(--bac-focus,#0b6e99);
  --bac-color-success:var(--success,#2d6a4f);
  --bac-color-error:var(--error,#a33a32);
  --bac-color-on-dark:var(--paper,#fffcf6);
  --bac-color-on-dark-muted:#d6e0e4;
  --bac-color-warm-muted:#f0b9a8;
  --bac-color-panel:#e6e0d5;
  --bac-color-panel-line:#bfb7aa;
  --bac-color-error-panel:#ede2df;

  --bac-font-display:var(--display,Georgia,"Times New Roman",serif);
  --bac-font-sans:var(--sans,Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif);
  --bac-type-label:.75rem;
  --bac-type-help:.875rem;
  --bac-type-legal:.875rem;
  --bac-type-body:1rem;
  --bac-type-body-strong:1.125rem;
  --bac-type-lead:clamp(1.0625rem,.98rem + .4vw,1.25rem);
  --bac-type-h3:clamp(1.25rem,1.12rem + .65vw,1.625rem);
  --bac-type-h2:clamp(1.75rem,1.35rem + 2vw,3rem);
  --bac-type-h1:clamp(2rem,1.3rem + 3.5vw,4.4rem);
  --bac-type-h1-hub:clamp(2.5rem,1.75rem + 3.75vw,4.8rem);
  --bac-type-h1-home:clamp(2.75rem,1.65rem + 5.5vw,6.65rem);
  --bac-leading-display:.98;
  --bac-leading-heading:1.08;
  --bac-leading-body:1.6;
  --bac-leading-compact:1.4;
  --bac-weight-regular:400;
  --bac-weight-medium:600;
  --bac-weight-bold:700;
  --bac-tracking-display:-.04em;
  --bac-tracking-label:.09em;

  --bac-measure-heading:18ch;
  --bac-measure-reading:66ch;
  --bac-measure-reading-wide:72ch;
  --bac-shell-wide:80rem;
  --bac-shell-standard:73.75rem;
  --bac-shell-reading:48rem;
  --bac-shell-gutter:1rem;

  --bac-space-1:.5rem;
  --bac-space-2:.75rem;
  --bac-space-3:1rem;
  --bac-space-4:1.5rem;
  --bac-space-5:2rem;
  --bac-space-6:3rem;
  --bac-space-7:4rem;
  --bac-space-8:6rem;
  --bac-space-9:8rem;
  --bac-rhythm-section:clamp(3rem,6vw,5.5rem);
  --bac-rhythm-section-compact:clamp(2.5rem,5vw,4.5rem);
  --bac-rhythm-hero:clamp(3.5rem,8vw,6rem);

  --bac-radius-control:var(--bac-control-radius,4px);
  --bac-radius-surface:var(--bac-radius,6px);
  --bac-shadow-subtle:0 2px 0 rgb(7 47 73/.04);
  --bac-shadow-elevated:var(--bac-shadow,0 12px 32px rgb(7 47 73/.10));
  --bac-z-content:1;
  --bac-z-floating:10;
  --bac-z-navigation:1000;
}
@media(min-width:48rem){:root{--bac-shell-gutter:1.5rem}}

/* Shared role contract. It does not create area variants. */
.bac-page-main{font-family:var(--bac-font-sans);font-size:var(--bac-type-body);line-height:var(--bac-leading-body)}
.bac-page-main :where(h1,h2,h3){font-family:var(--bac-font-display);overflow-wrap:normal;word-break:normal}
.bac-page-main :where(.eyebrow,[class$="__eyebrow"],.page-index h2){font-family:var(--bac-font-sans);font-size:var(--bac-type-label);font-weight:var(--bac-weight-bold);line-height:var(--bac-leading-compact);letter-spacing:var(--bac-tracking-label);text-transform:uppercase}
.bac-page-main :where(.section-heading h2,.bac-service-section-heading h2,.bac-service-module__header h2){font-size:var(--bac-type-h2);line-height:var(--bac-leading-heading)}
.bac-page-main :where(.hero-lead,.bac-home-hero__statement,.bac-service-hero__lede,.bac-area-hub__lead){font-size:var(--bac-type-lead);line-height:var(--bac-leading-body)}
.bac-page-main :where(p,li){text-wrap:pretty}

.professional-layout{display:grid;grid-template-columns:minmax(280px,.65fr) minmax(0,1.35fr);gap:clamp(3rem,8vw,9rem);align-items:center}
.professional-layout>.photo-placeholder{max-width:500px;width:100%}
.professional-copy{max-width:750px}
.professional-copy .section-heading{margin-bottom:1rem}
.professional-role{font-size:1.1rem;color:var(--bac-color-accent);border-block:1px solid var(--line);padding:1.2rem 0}
.check-list{padding:0;list-style:none;margin:1.5rem 0}
.check-list li{padding:.65rem 0 .65rem 1.8rem;position:relative}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--bac-color-success);font-weight:700}
.selector-section{background:var(--bac-color-paper)}
.service-selector{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--bac-color-ink)}
.service-item{display:grid;grid-template-columns:44px 1fr 32px;gap:1rem;align-items:start;min-height:170px;padding:2rem 1.5rem 2rem 0;border-bottom:1px solid var(--bac-color-line);text-decoration:none}
.service-item:nth-child(even){border-left:1px solid var(--line);padding-left:1.5rem}
a.service-item:hover{background:var(--bac-color-canvas)}
.service-item>span{font-size:var(--bac-type-label);color:var(--bac-color-accent);letter-spacing:.1em}
.service-item h3{margin-bottom:.6rem}
.service-item p{color:var(--bac-color-muted);font-size:.95rem;margin:0}
.service-item b{color:var(--bac-color-accent);font-weight:400;justify-self:end}
.service-anchor{scroll-margin-top:9rem}
.comparison-section{background:var(--bac-color-navy);color:var(--bac-color-paper)}
.comparison-section .section-heading>p:not(.eyebrow){color:#d0dade}
.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgb(255 255 255 / .22);border:1px solid rgb(255 255 255 / .22)}
.comparison-grid article{background:var(--bac-color-navy);padding:clamp(2rem,5vw,4rem)}
.comparison-grid article p:not(.eyebrow){color:#d0dade}

.faq-layout{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);gap:clamp(3rem,8vw,8rem)}
.faq-list{border-top:1px solid var(--bac-color-ink)}
.faq-list details{border-bottom:1px solid var(--bac-color-line)}
.faq-list summary{display:grid;grid-template-columns:1fr 30px;gap:1rem;align-items:center;min-height:72px;padding:1rem 0;cursor:pointer;font-weight:700;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font-size:1.4rem;color:var(--bac-color-accent);transition:transform .18s}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{padding:0 3rem 1.5rem 0;color:var(--bac-color-muted)}
.form-section{background:var(--bac-color-panel)}
.form-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(3rem,7vw,8rem);align-items:start}
.privacy-note{border-top:1px solid #bfb7aa;padding-top:1rem;font-size:.86rem}
.privacy-note p{color:var(--bac-color-muted)}
.form-shell{background:var(--bac-color-paper);border:1px solid var(--bac-color-line);padding:clamp(1.25rem,4vw,3rem)}
.form-status{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--bac-color-line);padding-bottom:1rem;margin-bottom:1.5rem;font-size:var(--bac-type-label);text-transform:uppercase;letter-spacing:.08em}
.form-status span{color:var(--bac-color-success)}
.field-demo{display:grid;gap:1rem}
.field-demo label{display:grid;gap:.35rem;font-size:.82rem;font-weight:700}
.field-demo input,.field-demo select{height:48px;border:1px solid #aaa39a;background:#ece8e0;padding:.7rem;color:var(--bac-color-muted)}
.field-demo button{height:50px;border:0;background:var(--muted);color:#fff;font-weight:700;cursor:not-allowed}
.fallback-link{display:flex;justify-content:space-between;gap:1rem;margin-top:1.4rem;font-size:.82rem;font-weight:700}
.fallback-link span{color:var(--bac-color-muted);font-weight:400;text-align:right}
.is-disabled{pointer-events:none;color:var(--bac-color-muted)}
.page-index{padding-block:2.5rem;border-bottom:1px solid var(--bac-color-line)}
.page-index h2{font-family:var(--bac-font-sans);font-size:var(--bac-type-legal);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.page-index ol{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;list-style:none;padding:0;margin:1.2rem 0 0}
.page-index li{display:flex;gap:.5rem;font-size:.8rem;color:var(--bac-color-muted)}
.page-index li span{color:var(--bac-color-accent)}
.topic-section:nth-of-type(even){background:var(--bac-color-paper)}
.topic-layout{display:grid;grid-template-columns:70px minmax(0,1.15fr) minmax(260px,.65fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.topic-number{font-family:var(--bac-font-display);font-size:clamp(3rem,6vw,6rem);line-height:1;color:var(--line)}
.topic-layout .section-heading{margin-bottom:1.5rem}
.topic-lead{font-size:1.12rem;color:var(--bac-color-muted)}
.topic-layout ul{list-style:none;padding:0;margin:3rem 0 0;border-top:1px solid var(--bac-color-ink)}
.topic-layout li{padding:1rem 0;border-bottom:1px solid var(--bac-color-line);font-weight:700}
.prep-section{background:var(--bac-color-navy);color:var(--bac-color-paper)}
.prep-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem)}
.prep-layout ul{list-style:none;padding:0;margin:0;border-top:1px solid rgb(255 255 255 / .25)}
.prep-layout li{padding:1rem 0;border-bottom:1px solid rgb(255 255 255 / .2)}
.prep-warning{margin-top:1.5rem;color:var(--bac-color-warm-muted);font-size:.9rem}
.urgent-notice{border:2px solid var(--error);padding:clamp(1.5rem,4vw,3rem)}
.urgent-notice h2{font-size:clamp(1.7rem,3vw,3rem)}
.urgent-notice p:last-child{color:var(--bac-color-muted)}
.trust-section{background:var(--bac-color-paper)}
.trust-section .shell{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.trust-section ul{list-style:none;padding:0;margin:0}
.trust-section li{display:grid;grid-template-columns:30px 1fr;padding:1rem 0;border-bottom:1px solid var(--bac-color-line)}
.trust-section li span{color:var(--bac-color-success)}
.age-section{background:var(--bac-color-panel)}
.age-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bac-color-panel-line)}
.age-grid article{background:var(--bac-color-panel);padding:2rem}
.legal-source{font-size:var(--bac-type-legal);color:var(--bac-color-muted);margin-top:1rem}

.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--bac-color-ink)}
.problem-grid article{min-height:260px;padding:2rem 2rem 2rem 0;border-bottom:1px solid var(--bac-color-line)}
.problem-grid .content-card{display:block;min-height:260px;padding:2rem 2rem 2rem 0;border-bottom:1px solid var(--bac-color-line);color:inherit;text-decoration:none;position:relative}
.problem-grid .content-card:hover{background:var(--bac-color-paper);padding-left:1rem}
.problem-grid .content-card b{position:absolute;right:1rem;top:1rem;color:var(--bac-color-accent);font-weight:400}
.problem-grid article:not(:nth-child(3n+1)){border-left:1px solid var(--line);padding-left:2rem}
.problem-grid span{font-size:var(--bac-type-label);color:var(--bac-color-accent)}
.problem-grid p{color:var(--bac-color-muted)}
.pending-panel{display:grid;grid-template-columns:90px 1fr;gap:2rem;border:1px solid var(--bac-color-line);padding:2rem;background:var(--bac-color-paper)}
.pending-mark{aspect-ratio:1;display:grid;place-items:center;background:var(--bac-color-navy);color:var(--bac-color-paper);font-family:var(--bac-font-display);font-size:2rem}
.pending-panel h2{font-size:clamp(1.5rem,3vw,2.5rem)}
.pending-panel p:last-child{color:var(--bac-color-muted)}
.blocked-contact{display:grid;grid-template-columns:170px 1fr;gap:2rem;background:var(--bac-color-error-panel);border-left:4px solid var(--error);padding:1.5rem 2rem}
.blocked-contact>span{font-size:var(--bac-type-label);text-transform:uppercase;letter-spacing:.09em;color:var(--bac-color-error);font-weight:700}
.blocked-contact h2{font-size:1.4rem}
.blocked-contact p{color:var(--bac-color-muted);margin:0}
.route-section{background:var(--bac-color-paper)}
.route-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--bac-color-line);border:1px solid var(--bac-color-line)}
.route-grid article{background:var(--bac-color-paper);padding:clamp(2rem,5vw,4rem);position:relative}
.route-number{position:absolute;right:1.5rem;top:1.2rem;font-family:var(--bac-font-display);font-size:4rem;color:var(--line)}
.route-grid p:not(.eyebrow){color:var(--bac-color-muted)}
.route-grid ul{padding-left:1.2rem}
.process-map{background:var(--bac-color-navy);color:var(--bac-color-paper)}
.process-map .section-heading>p:not(.eyebrow){color:var(--bac-color-on-dark-muted)}
.process-map ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);border-block:1px solid rgb(255 255 255 / .22)}
.process-map li{padding:2rem 1rem;border-right:1px solid rgb(255 255 255 / .22)}
.process-map li span{display:block;color:var(--bac-color-warm-muted);font-size:var(--bac-type-label);margin-bottom:2rem}
.process-map strong{font-family:var(--bac-font-display);font-size:1.3rem;font-weight:400}
.model-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--bac-color-line);border:1px solid var(--bac-color-line)}
.model-grid article{background:var(--bac-color-canvas);padding:clamp(2rem,5vw,4rem)}
.model-grid article>span{color:var(--bac-color-accent);font-size:var(--bac-type-label)}
.model-grid p{color:var(--bac-color-muted)}
.location-section{background:var(--bac-color-navy);color:var(--bac-color-paper)}
.location-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem);align-items:center}
.location-layout p{color:var(--bac-color-on-dark-muted)}
.location-map{aspect-ratio:16/9;border:1px solid rgb(255 255 255 / .25);position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;overflow:hidden}
.location-map::before,.location-map::after{content:"";position:absolute;background:rgb(255 255 255 / .12)}
.location-map::before{width:1px;height:160%;left:54%;top:-30%;transform:rotate(24deg)}
.location-map::after{height:1px;width:160%;top:48%;left:-30%;transform:rotate(-14deg)}
.location-map span{font-size:var(--bac-type-label);letter-spacing:.12em;color:var(--bac-color-warm-muted)}
.location-map strong{font-family:var(--bac-font-display);font-size:clamp(2rem,4vw,4rem);line-height:1;z-index:var(--bac-z-content)}
.location-map i{position:absolute;width:18px;height:18px;background:var(--accent);border:4px solid var(--paper);border-radius:50%;left:54%;top:48%;z-index:2}
.salon-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(3rem,7vw,7rem);align-items:center}
.salon-placeholder{aspect-ratio:16/9;background:linear-gradient(135deg,#d8d2c7,#f3eee4);position:relative;display:flex;justify-content:space-between;align-items:flex-end;padding:1.2rem;color:var(--bac-color-muted)}
.salon-placeholder::after{content:"";position:absolute;inset:8%;border:1px solid #c4bcaf}
.salon-placeholder span,.salon-placeholder strong{z-index:var(--bac-z-content);font-size:var(--bac-type-label);text-transform:uppercase;letter-spacing:.1em}
.credentials-section{background:var(--bac-color-paper)}
.credentials-section .shell{display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.credentials-section ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--bac-color-ink)}
.credentials-section li{display:flex;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--bac-color-line)}
.credentials-section li strong{color:var(--bac-color-accent);font-size:var(--bac-type-label);text-transform:uppercase}
.contact-routes> .shell>div{border-top:1px solid var(--bac-color-ink)}
.contact-routes a,.contact-routes article{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(0,1fr) 100px;gap:2rem;align-items:center;min-height:110px;padding:1rem 0;border-bottom:1px solid var(--bac-color-line);text-decoration:none}
.contact-routes a:hover{background:var(--bac-color-paper);padding-inline:1rem}
.contact-routes h3{font-size:var(--bac-type-h3);margin:0}
.contact-routes p{color:var(--bac-color-muted);margin:0}
.contact-routes a>span{color:var(--bac-color-accent);font-size:1.5rem;justify-self:end}
.contact-routes article>span{color:var(--bac-color-error);font-size:var(--bac-type-label);text-transform:uppercase;justify-self:end}
.privacy-section{background:var(--bac-color-panel)}
.privacy-layout{display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.privacy-layout ul{margin:0;padding-left:1.2rem}
.privacy-layout li{padding:.6rem 0}
.legal-layout{display:grid;grid-template-columns:minmax(240px,.55fr) minmax(0,1.45fr);gap:clamp(3rem,8vw,8rem);align-items:start}
.legal-layout>aside{position:sticky;top:10rem}
.legal-layout>div{border-top:1px solid var(--bac-color-ink)}
.legal-layout>div section{display:grid;grid-template-columns:50px minmax(160px,.55fr) minmax(0,1fr);gap:1.5rem;padding:2rem 0;border-bottom:1px solid var(--bac-color-line)}
.legal-layout section>span{color:var(--bac-color-accent);font-size:var(--bac-type-label)}
.legal-layout h3{font-size:var(--bac-type-h3)}
.legal-layout section p{color:var(--bac-color-muted)}
.not-found{min-height:70vh;padding-block:10rem}
.wp-site-blocks,.wp-block-post-content{padding:0;margin:0}.wp-block-post-content>.wp-block-html{margin-block:0}.bac-dev-notice{background:var(--ink);color:#fff;text-align:center;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:.35rem 1rem}
