/* Brizemar — shared stylesheet. No external fonts, no frameworks. */
/* Brand: Brizemar Brand Kit v1.0 (docs/brand/BRIZEMAR_Brand_Kit_v1.0). */

/* ---- Self-hosted brand fonts (SIL OFL 1.1, licenses shipped in assets/fonts/) ---- */
@font-face{
  font-family:"Montserrat";
  src:url("fonts/Montserrat/Montserrat-VariableFont_wght.ttf") format("truetype-variations");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("fonts/Inter/Inter-VariableFont_opsz-wght.ttf") format("truetype-variations");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

:root{
  /* Brizemar Brand Kit v1.0 tokens — single source of truth for color */
  --brizemar-navy:#0a233e;
  --brizemar-green:#94c004;
  --brizemar-warm-white:#f5f5f5;
  --brizemar-steel-gray:#778292;
  --brizemar-white:#ffffff;
  --brizemar-text-primary:#0a233e;
  --brizemar-text-muted:#5d6877;
  --brizemar-surface:#ffffff;
  --brizemar-surface-soft:#f5f5f5;
  --brizemar-accent:#94c004;
  --brizemar-border:#c7cdd4;

  /* On-dark text tints (derived from Pure White over Brizemar Navy; kept as
     opacities of --brizemar-white rather than new hex so the palette stays
     the kit's five colors). Contrast checked against navy: see README. */
  --on-dark-body:rgba(255,255,255,.85);
  --on-dark-muted:rgba(255,255,255,.72);

  /* Layout */
  --line:var(--brizemar-border);
  --muted:var(--brizemar-text-muted);
  --canvas:var(--brizemar-warm-white);
  --paper:var(--brizemar-surface);
  --ink:var(--brizemar-text-primary);
  --focus:var(--brizemar-navy);
  --focus-on-dark:var(--brizemar-accent);
  --max:1180px;

  --font-display:"Montserrat","Arial",sans-serif;
  --font-body:"Inter","Arial",sans-serif;
}

*{box-sizing:border-box;}
html{background:var(--canvas); -webkit-text-size-adjust:100%;}
body{
  margin:0;
  color:var(--ink);
  background:var(--canvas);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
}
img,svg{max-width:100%;}
a{color:var(--brizemar-navy);}
a:hover{color:var(--brizemar-navy); text-decoration:underline;}
/* Note: --brizemar-green on white/warm-white is ~2.1:1 (fails AA for text),
   so plain-text links never use green as their color — only underline
   signals hover here. Green is reserved for large/bold accents, buttons
   with navy text, and text set against the navy surface (7.41:1). */
h1,h2,h3{
  font-family:var(--font-display);
  font-weight:800;
  line-height:1.15;
  color:var(--brizemar-navy);
  margin:0 0 .5em;
}
h1{font-size:clamp(2rem,4.4vw,3.1rem); letter-spacing:-.01em;}
h2{font-size:clamp(1.5rem,2.6vw,2rem); font-weight:700;}
h3{font-size:1.15rem; font-weight:700;}
p{margin:0 0 1em;}
ul{margin:0 0 1em; padding-left:1.25em;}
.container{width:min(var(--max),100% - 2.5rem); margin-inline:auto;}

:focus-visible{outline:3px solid var(--focus); outline-offset:2px;}
.site-footer :focus-visible,
.care-panel :focus-visible,
.consent-notice :focus-visible{outline-color:var(--focus-on-dark);}

/* Skip link */
.skip-link{
  position:absolute; left:1rem; top:-4rem;
  background:var(--brizemar-navy); color:var(--brizemar-white); padding:.75rem 1.1rem; border-radius:0 0 8px 8px;
  z-index:200; transition:top .15s ease; text-decoration:none; font-family:var(--font-display); font-weight:700;
}
.skip-link:focus{top:0;}

/* Header */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(245,245,245,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-bar{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding:.85rem 0;
}
.wordmark{
  display:inline-flex; align-items:center;
  text-decoration:none;
}
.brand-logo{display:block; width:auto;}
.brand-logo--full{height:38px;}
.brand-logo--compact{height:38px; display:none;}
.main-nav{display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap; font-family:var(--font-display);}
.main-nav a{
  color:var(--ink); text-decoration:none; font-weight:600; font-size:.94rem;
}
.main-nav a:hover{color:var(--brizemar-navy); text-decoration:underline;}
.header-actions{display:flex; align-items:center; gap:1rem; flex-wrap:wrap;}

.lang-switch{display:flex; gap:.35rem; align-items:center; font-family:var(--font-display); font-size:.78rem; font-weight:700; letter-spacing:.04em;}
.lang-switch a, .lang-switch span{
  padding:.3rem .5rem; border-radius:6px; text-decoration:none; color:var(--muted);
}
.lang-switch a:hover{background:rgba(10,35,62,.06); color:var(--brizemar-navy);}
.lang-switch [aria-current="true"]{color:var(--brizemar-navy); background:rgba(148,192,4,.2);}

.nav-toggle{
  display:none; min-height:44px; min-width:44px; border:1px solid var(--line); border-radius:8px;
  background:var(--paper); font-size:1.3rem; cursor:pointer; color:var(--brizemar-navy);
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.7rem 1.15rem; border-radius:9px; font-family:var(--font-display); font-weight:700; font-size:.95rem;
  text-decoration:none; border:1px solid transparent; min-height:44px; cursor:pointer;
}
.btn-primary{background:var(--brizemar-navy); color:var(--brizemar-white); border-color:var(--brizemar-navy);}
.btn-primary:hover{filter:brightness(1.18); color:var(--brizemar-white);}
.btn-accent{background:var(--brizemar-accent); color:var(--brizemar-navy); border-color:var(--brizemar-accent);}
.btn-accent:hover{filter:brightness(1.06);}
.btn-outline{background:transparent; color:var(--brizemar-navy); border-color:var(--brizemar-navy);}
.btn-outline:hover{background:rgba(10,35,62,.06);}
.btn-group{display:flex; flex-wrap:wrap; gap:.75rem;}

/* Hero */
.hero{padding:3.5rem 0 4.25rem; position:relative; overflow:hidden;}
.hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:24px;
  background:url("brand/brizemar-wave-v1.0.svg") no-repeat center / min(720px,90%) 100%;
  opacity:.9; pointer-events:none;
}
.hero-inner{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(240px,.7fr); gap:2.5rem; align-items:center;}
.eyebrow{
  display:inline-block; color:var(--brizemar-navy); font-family:var(--font-display); font-weight:700; font-size:.75rem;
  letter-spacing:.14em; text-transform:uppercase; margin-bottom:.6rem;
}
.eyebrow-accent{color:var(--brizemar-accent);}
.hero-lede{font-size:1.15rem; color:var(--ink); max-width:44ch;}
.hero-graphic{
  aspect-ratio:1/1; border-radius:24px;
  background:radial-gradient(circle at 32% 28%, rgba(148,192,4,.22) 0%, transparent 45%), var(--brizemar-navy);
  position:relative; box-shadow:0 18px 46px rgba(10,35,62,.28);
}

/* Trust strip */
.trust-strip{padding:0 0 3rem;}
.trust-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem;}
.trust-card{
  background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:1.4rem 1.4rem 1.3rem;
}
.trust-card .mark{
  width:38px; height:38px; border-radius:10px; background:rgba(10,35,62,.08); color:var(--brizemar-navy);
  display:grid; place-items:center; margin-bottom:.75rem;
}
.trust-card h3{margin-bottom:.35rem;}
.trust-card p{margin:0; color:var(--muted); font-size:.92rem;}

/* Sections */
section{padding:3.25rem 0;}
.section-head{max-width:60ch; margin-bottom:2rem;}
.section-head p{color:var(--muted);}
.alt{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* Services */
.services-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.1rem;}
.service-card{
  border:1px solid var(--line); border-radius:14px; padding:1.4rem;
  background:var(--canvas);
  display:flex; flex-direction:column; gap:.5rem;
}
.service-card .mark{
  width:40px; height:40px; border-radius:50%; background:var(--brizemar-navy); color:var(--brizemar-accent);
  display:grid; place-items:center; font-family:var(--font-display); font-weight:800;
}
.service-card p{margin:0; color:var(--muted); font-size:.9rem;}

/* Care teaser */
.care-panel{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.55fr); gap:2rem; align-items:center;
  background:var(--brizemar-navy); color:var(--on-dark-body); border-radius:20px; padding:2.4rem clamp(1.5rem,4vw,3rem);
}
.care-panel h2{color:var(--brizemar-white);}
.care-panel p{color:var(--on-dark-body);}
.care-list{list-style:none; margin:0 0 1.5rem; padding:0; display:grid; gap:.55rem;}
.care-list li{display:flex; gap:.6rem; align-items:flex-start; color:var(--on-dark-body); font-size:.95rem;}
.care-list li::before{content:"◆"; color:var(--brizemar-accent); font-size:.7rem; margin-top:.4em;}
.care-note{
  font-size:.85rem; color:var(--on-dark-muted); border-top:1px solid rgba(255,255,255,.16); padding-top:1rem; margin-top:.5rem;
}
.care-badge{
  border-radius:18px; border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.04);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; text-align:center; padding:1.5rem;
}
.care-badge img{width:min(220px,100%); height:auto;}
.care-badge strong{font-family:var(--font-body); font-weight:700; font-size:1.4rem; color:var(--brizemar-white);}
.care-badge span{font-family:var(--font-display); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--brizemar-accent);}

/* Service area */
.area-wrap{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:2.5rem; align-items:center;}
.area-map{aspect-ratio:1; max-width:320px;}
.area-list{list-style:none; margin:1rem 0 0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem .8rem;}
.area-list li{font-size:.92rem; padding:.3rem 0; border-bottom:1px dashed var(--line);}

/* Contact */
.contact-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem;}
.contact-card{
  border:1px solid var(--line); border-radius:14px; padding:1.5rem; background:var(--paper);
  text-align:center;
}
.contact-card .mark{
  width:46px; height:46px; margin:0 auto .8rem; border-radius:50%; background:rgba(148,192,4,.18); color:var(--brizemar-navy);
  display:grid; place-items:center;
}
.contact-card a{font-weight:700;}
.contact-disclaimer{margin-top:1.5rem; font-size:.85rem; color:var(--muted); text-align:center;}

/* Footer */
.site-footer{background:var(--brizemar-navy); color:var(--on-dark-body); padding:2.75rem 0 2rem; margin-top:2rem;}
.footer-grid{display:grid; grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr)); gap:2rem; margin-bottom:2rem;}
.footer-brand p{color:var(--on-dark-muted); font-size:.88rem; max-width:36ch; margin-top:.75rem;}
.site-footer h3{color:var(--brizemar-white); font-family:var(--font-display); font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:.9rem;}
.footer-links{list-style:none; margin:0; padding:0; display:grid; gap:.55rem;}
.footer-links a{color:var(--on-dark-body); text-decoration:none; font-size:.92rem;}
.footer-links a:hover{color:var(--brizemar-white); text-decoration:underline;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.14); padding-top:1.4rem;
  display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; justify-content:space-between; align-items:center;
  font-size:.82rem; color:var(--on-dark-muted);
}

/* Legal pages */
.legal-shell{padding:2.5rem 0 4rem;}
.legal-banner{
  display:flex; gap:.75rem; align-items:flex-start;
  background:var(--brizemar-surface-soft); border:1px solid var(--brizemar-border); color:var(--brizemar-navy);
  border-radius:12px; padding:1rem 1.2rem; margin-bottom:2rem; font-size:.92rem; font-weight:600;
}
.legal-banner .mark{flex:0 0 auto; font-size:1.1rem; color:var(--brizemar-navy);}
.legal-body{max-width:76ch;}
.legal-body h2{margin-top:2rem; font-size:1.3rem;}
.legal-body h3{margin-top:1.4rem;}
.legal-body p, .legal-body li{color:var(--ink);}
.legal-body table{width:100%; border-collapse:collapse; margin:1rem 0; font-size:.92rem; font-family:var(--font-body);}
.legal-body th, .legal-body td{border:1px solid var(--line); padding:.55rem .7rem; text-align:left; vertical-align:top;}
.legal-body th{background:rgba(10,35,62,.05); font-weight:700;}
.legal-body td{font-weight:500;}
.legal-meta{color:var(--muted); font-size:.85rem; margin-bottom:1.5rem;}
mark.todo{
  background:rgba(148,192,4,.22); color:var(--brizemar-navy); padding:.05em .35em; border-radius:4px; font-weight:700; font-style:normal;
}
.legal-toc{
  border:1px solid var(--line); border-radius:12px; padding:1rem 1.3rem; background:var(--paper); margin-bottom:2rem;
}
.legal-toc a{display:block; padding:.2rem 0; font-size:.92rem; text-decoration:none;}

/* Consent notice */
.consent-notice{
  position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:150;
  max-width:560px; margin-inline:auto;
  background:var(--brizemar-navy); color:var(--on-dark-body);
  border-radius:14px; padding:1.1rem 1.2rem;
  box-shadow:0 18px 40px rgba(10,35,62,.4);
  display:flex; flex-wrap:wrap; gap:.9rem 1.1rem; align-items:center; justify-content:space-between;
}
.consent-notice p{margin:0; font-size:.88rem; flex:1 1 260px; color:var(--on-dark-body);}
.consent-notice a{color:var(--brizemar-accent);}
.consent-actions{display:flex; gap:.6rem;}
.consent-actions button{
  min-height:40px; padding:.5rem 1rem; border-radius:8px; font-family:var(--font-display); font-weight:700; font-size:.85rem; cursor:pointer; border:1px solid transparent;
}
.consent-accept{background:var(--brizemar-accent); color:var(--brizemar-navy);}
.consent-accept:hover{filter:brightness(1.06);}
.consent-dismiss{background:transparent; color:var(--on-dark-body); border-color:rgba(255,255,255,.3);}
.consent-notice[hidden]{display:none;}

/* Responsive */
@media (max-width:920px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-graphic{max-width:320px; margin-inline:auto; order:-1;}
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .care-panel{grid-template-columns:1fr;}
  .care-badge{max-width:260px; margin-inline:auto;}
  .area-wrap{grid-template-columns:1fr;}
  .area-map{margin-inline:auto;}
  .contact-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:720px){
  .nav-toggle{display:inline-flex; align-items:center; justify-content:center;}
  .main-nav{
    display:none; position:absolute; left:0; right:0; top:100%;
    background:var(--paper); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start; gap:0; padding:.5rem 0;
  }
  .main-nav.open{display:flex;}
  .main-nav a{width:100%; padding:.8rem 1.25rem;}
  .header-bar{position:relative;}
  .footer-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .services-grid{grid-template-columns:1fr;}
  .trust-grid{grid-template-columns:1fr;}
  .consent-notice{flex-direction:column; align-items:stretch;}
  .brand-logo--full{display:none;}
  .brand-logo--compact{display:block;}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important; transition:none!important; animation:none!important;}
}
