@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;0,800;1,500;1,600&family=Archivo:wght@400;500;600;700;800;900&display=swap');

@font-face{
  font-family:'SquareSlab';
  src:url('fonts/SquareSlab711BdBTBold.woff2') format('woff2'),
      url('fonts/SquareSlab711BdBTBold.ttf') format('truetype');
  font-weight:700; font-style:normal; font-display:swap;
}

/* ===== BRAND TOKENS (shared across all 6 concepts) ===== */
:root{
  --red:#C8102E; --blue:#75B2DD; --blue-deep:#2B6E9E;
  --navy:#0B2240; --navy-2:#0a1c34; --navy-3:#061730;
  --gold:#F4C430; --cream:#F6F1E7; --paper:#FBF8F2; --white:#fff;
  --slab:'SquareSlab','Roboto Slab','Oswald',Arial,sans-serif;
  --sans:'Oswald',Arial,sans-serif;
  --grot:'Archivo','Oswald',Arial,sans-serif;
  --serif:'Playfair Display',Georgia,serif;

  /* footer theme (skins may override) */
  --footer-bg:var(--navy-3); --footer-fg:#fff; --footer-muted:rgba(255,255,255,.6); --footer-accent:var(--blue);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);-webkit-font-smoothing:antialiased;background:#fff;color:var(--navy);}
img{display:block;max-width:100%;}
a{color:inherit;}
em{font-style:normal;} /* SquareSlab is NEVER italic — em is a color device, not a slant */

/* ===== SHARED PRIMITIVES (restyleable per skin) ===== */
.container{max-width:1240px;margin:0 auto;padding:0 2.2rem;}
.eyebrow{font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--red);}
.section-title{font-family:var(--slab);font-size:clamp(2.1rem,4vw,3.3rem);text-transform:uppercase;line-height:1;letter-spacing:.01em;}
.section-title em{color:var(--blue);}
.rule{width:54px;height:4px;background:var(--red);}
.rule-center{margin-left:auto;margin-right:auto;}

/* ===== BUTTON SYSTEM ===== */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--sans);font-weight:600;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:.95rem 1.8rem;border-radius:5px;transition:transform .16s,box-shadow .16s,background .16s,color .16s;cursor:pointer;border:none;}
.btn:hover{transform:translateY(-2px);}
.btn-red{background:var(--red);color:#fff;}
.btn-red:hover{box-shadow:0 12px 28px rgba(200,16,46,.32);}
.btn-gold{background:var(--gold);color:var(--navy);}
.btn-gold:hover{box-shadow:0 12px 28px rgba(244,196,48,.32);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-ghost{border:1.6px solid rgba(255,255,255,.6);color:#fff;}
.btn-ghost:hover{background:rgba(255,255,255,.1);}
.btn-ghost-navy{border:1.6px solid rgba(11,34,64,.4);color:var(--navy);}
.btn-ghost-navy:hover{background:rgba(11,34,64,.06);}

/* ===== SHARED FOOTER (var-driven; skins set --footer-* ) ===== */
.c-footer{background:var(--footer-bg);color:var(--footer-fg);padding:4.5rem 0 2rem;}
.c-footer .footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.4rem;}
.c-footer .footer-brand .crest{height:62px;width:auto;margin-bottom:1.2rem;}
.c-footer .footer-brand p{font-size:.92rem;line-height:1.65;color:var(--footer-muted);max-width:320px;margin-bottom:1.1rem;}
.c-footer .footer-address{font-size:.84rem;line-height:1.7;color:var(--footer-muted);letter-spacing:.02em;}
.c-footer h5{font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--footer-accent);margin-bottom:1.1rem;}
.c-footer ul{list-style:none;}
.c-footer li{margin-bottom:.6rem;}
.c-footer li a{text-decoration:none;font-size:.9rem;color:var(--footer-muted);transition:color .15s;}
.c-footer li a:hover{color:var(--footer-fg);}
.c-footer .footer-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:3.2rem;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.12);font-size:.78rem;color:var(--footer-muted);flex-wrap:wrap;gap:1rem;}
.c-footer .footer-social{display:flex;gap:1.4rem;}
.c-footer .footer-social a{text-decoration:none;color:var(--footer-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;}
.c-footer .footer-social a:hover{color:var(--footer-accent);}

/* ===== RESPONSIVE BASELINE ===== */
@media(max-width:880px){
  .container{padding:0 1.3rem;}
  .c-footer .footer-top{grid-template-columns:1fr 1fr;gap:2rem;}
  .c-footer .footer-brand{grid-column:1 / -1;}
}
@media(max-width:560px){
  .c-footer .footer-top{grid-template-columns:1fr;}
  .c-footer .footer-bottom{flex-direction:column;align-items:flex-start;}
}
