/* Shared by every main page. Page-specific rules stay inline in each page. */
@font-face{font-family:'Baloo 2';src:url('/fonts/baloo2.woff2') format('woff2');font-weight:700 800;font-style:normal;font-display:swap}
@font-face{font-family:'Work Sans';src:url('/fonts/worksans.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/fonts/ibmplexmono.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
:root{
  --ink:#151210;
  --spark:#F1651E;
  --spark-text:#B84A0A;
  --ignite:#FFB627;
  --cream:#FBF5E8;
  --charcoal:#4A4038;
  --stud:#E7DBBE;
  --paper:#FFF8EA;
  --on-ink:#E9E1D3;
  --on-ink-muted:#CFC6BA;
  --on-ink-faint:#A89D8E;
  --ink-rule:#3A332C;
  --max:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:"Work Sans",sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--ignite);color:var(--ink)}
h1,h2,h3,.display{font-family:"Baloo 2",sans-serif;line-height:1.02;font-weight:800}
.label{font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:13px;letter-spacing:.08em;text-transform:uppercase;line-height:1.2}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--spark-text);margin-bottom:20px}
.eyebrow::before{content:"";width:22px;height:10px;background:var(--spark);border-radius:4px;flex:none}
.on-ink .eyebrow{color:var(--ignite)}
.on-ink .eyebrow::before{background:var(--ignite)}
/* stud row — section seam */
.stud-row{display:flex;justify-content:center;gap:14px;padding:0}
.stud-row span{width:8px;height:8px;border-radius:999px;background:var(--stud)}
/* buttons */
.btn{display:inline-block;font-family:"Work Sans",sans-serif;font-weight:600;font-size:16px;line-height:1;text-decoration:none;border-radius:4px;padding:16px 26px;border:2px solid var(--ink);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
.btn-primary{background:var(--spark);color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.btn-primary:hover{background:var(--ignite);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.btn-primary:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--stud)}
.on-ink .btn-ghost{color:var(--cream);border-color:var(--cream)}
.on-ink .btn-ghost:hover{background:rgba(251,245,232,.12)}
/* announcement */
.announce{background:var(--ink);color:var(--cream);text-align:center;padding:10px 20px;font-size:14px}
.announce a{color:var(--ignite);font-weight:600}
/* header */
header{position:sticky;top:0;z-index:50;background:var(--cream);border-bottom:2px solid var(--ink)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
.nav img{height:32px;width:auto}
.nav>a:first-child{flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:22px;list-style:none}
.nav-links a{text-decoration:none;font-weight:500;font-size:15px;white-space:nowrap}
.nav-links a:hover{color:var(--spark-text)}
.nav-links a[aria-current="page"]{color:var(--spark-text);position:relative}
.nav-links a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:3px;background:var(--spark);border-radius:4px}
.nav .btn{padding:12px 20px;font-size:15px}
.menu-btn{display:none;background:none;border:2px solid var(--ink);border-radius:4px;padding:8px 12px;font-family:"IBM Plex Mono",monospace;font-size:13px;cursor:pointer}
.hero h1 .hl{color:var(--spark-text)}
.sec-head p{color:var(--charcoal);font-size:18px}
.on-ink .sec-head p{color:var(--on-ink-muted)}
/* footer */
footer{background:var(--ink);color:var(--cream);padding:64px 0 48px}
.foot-grid{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap;align-items:flex-start}
.foot-brand img{height:30px;width:auto;background:var(--cream);padding:6px 10px;border-radius:4px;box-sizing:content-box}
.foot-brand .tag{margin-top:14px;color:var(--on-ink-faint);font-size:14px}
.foot-links{display:flex;flex-direction:column;gap:12px;list-style:none}
.foot-links a{color:var(--on-ink);text-decoration:none;font-size:15px}
.foot-links a:hover{color:var(--ignite)}
.foot-col-head{display:block;color:var(--on-ink-faint);margin-bottom:16px}
.foot-spare{display:flex;align-items:flex-end;gap:14px}
.foot-spare .mini-brick{width:52px;height:26px;background:var(--spark);border:2px solid var(--cream);border-radius:4px;position:relative;transform:rotate(-8deg)}
.foot-spare .mini-brick::before,.foot-spare .mini-brick::after{content:"";position:absolute;top:-8px;width:14px;height:6px;border-radius:999px 999px 0 0;background:var(--spark);border:2px solid var(--cream);border-bottom:none}
.foot-spare .mini-brick::before{left:5px}
.foot-spare .mini-brick::after{left:27px}
.foot-spare span{color:var(--on-ink-faint);font-size:13px}
.foot-legal{margin-top:48px;border-top:1px solid var(--ink-rule);padding-top:24px;color:var(--on-ink-faint);font-size:13px;max-width:80ch}
.nav-actions{flex-shrink:0}
.nav-cta{white-space:nowrap}
/* no-js fallback: if the early class-swap script never ran, show everything the scroll animations would have revealed */
html.no-js .can-settle,html.no-js .fade{opacity:1}
#cookie-banner{ position:fixed; left:16px; right:16px; bottom:16px; z-index:9999; max-width:380px; margin:0;
      background:var(--ink,#151210); color:var(--cream,#FBF5E8); border:2px solid var(--ink,#151210); border-radius:4px;
      box-shadow:4px 4px 0 rgba(0,0,0,.35); padding:16px 18px; display:flex; flex-direction:column; gap:12px;
      font-family:'Work Sans',system-ui,sans-serif; font-size:13.5px; line-height:1.5; }
#cookie-banner[hidden]{ display:none; }
#cookie-banner p{ margin:0; }
#cookie-banner .cb-actions{ display:flex; gap:10px; justify-content:flex-end; }
#cookie-banner button{ font-family:inherit; font-weight:600; font-size:14px; border-radius:4px; padding:9px 18px; cursor:pointer; border:1.5px solid; }
#cookie-banner .cb-accept{ background:var(--spark,#F1651E); color:var(--ink,#151210); border-color:var(--spark,#F1651E); }
#cookie-banner .cb-ghost{ background:transparent; color:var(--cream,#FBF5E8); border-color:var(--charcoal,#4A4038); }
/* enquiry form messages (all forms) */
.form-note{font-size:14px;color:var(--charcoal);margin-top:12px}
.form-note:empty{display:none}
.form-note.is-error{color:var(--spark-text);font-weight:600}
/* phones: "Book" alone keeps the header inside the 16px gutter */
@media(max-width:430px){.nav-cta-extra{display:none}}
