/* Eastbourne Lifeboat Heritage & Coastal Safety — independent guide
   Heritage-maritime palette: sea-teal ink, warm parchment ground, brass accent.
   Deliberately NOT RNLI corporate branding. */

:root{
  --teal:#0e4b5a;
  --teal-dark:#0a3642;
  --teal-deep:#072a34;
  --brass:#c98a2b;
  --brass-dark:#a86f1d;
  --parchment:#f7f3ea;
  --parchment-2:#efe8d8;
  --surface:#fffdf8;
  --ink:#243239;
  --ink-soft:#4f5f66;
  --line:#e2d9c5;
  --line-soft:#ece4d3;
  --maxw:1160px;
  --prose:720px;
  --radius:9px;
  --shadow:0 1px 2px rgba(10,54,64,.06), 0 8px 26px rgba(10,54,64,.08);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--parchment);color:var(--ink);
  font-family:"Karla",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  font-size:18px;line-height:1.72;font-weight:400;
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal);text-decoration-color:rgba(14,75,90,.35);text-underline-offset:2px}
a:hover{color:var(--brass-dark);text-decoration-color:var(--brass)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.1rem,4vw,2rem)}

/* headings */
h1,h2,h3,h4{font-family:"Fraunces","Georgia",serif;font-weight:600;line-height:1.16;color:var(--teal-dark);letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.6vw,3.1rem);margin:0 0 .4em}
h2{font-size:clamp(1.5rem,3vw,2.05rem);margin:2.2rem 0 .7rem}
h3{font-size:1.25rem;margin:1.6rem 0 .5rem}
p{margin:0 0 1.15rem}
strong{font-weight:700;color:#1c2a30}
em{font-style:italic}

/* skip link */
.skip{position:absolute;left:-999px;top:0;background:var(--teal-dark);color:#fff;padding:.6rem 1rem;z-index:200;border-radius:0 0 6px 0}
.skip:focus{left:0}

/* topbar disclaimer */
.topbar{background:var(--teal-deep);color:#dbe7ea;font-size:.795rem;letter-spacing:.01em}
.topbar .wrap{padding-top:.5rem;padding-bottom:.5rem}
.topbar strong{color:#fff;font-weight:700}

/* header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,253,248,.94);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0}
.wordmark{display:flex;align-items:center;gap:.6rem;color:var(--teal);text-decoration:none;font-family:"Fraunces",serif;font-weight:700;line-height:1.05}
.wordmark span{font-size:1.02rem}
.wordmark span em{display:block;font-size:.72rem;font-weight:500;font-style:normal;color:var(--brass-dark);letter-spacing:.04em;text-transform:uppercase}
.wordmark .mark{color:var(--brass);flex:0 0 auto}
.primary-nav ul{display:flex;gap:.15rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.primary-nav a{display:block;padding:.45rem .7rem;border-radius:7px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.94rem}
.primary-nav a:hover{background:var(--parchment-2);color:var(--teal-dark)}
.primary-nav a.active{color:var(--brass-dark);background:rgba(201,138,43,.1)}
.nav-toggle{display:none;flex-direction:column;gap:4px;background:none;border:1px solid var(--line);border-radius:7px;padding:9px 8px;cursor:pointer}
.nav-toggle span{width:22px;height:2px;background:var(--teal-dark);display:block;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* hero */
.hero{position:relative;color:#fff;overflow:hidden}
.hero--image{min-height:clamp(320px,46vh,480px);display:flex;align-items:flex-end}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,42,52,.28) 0%,rgba(7,42,52,.34) 40%,rgba(7,42,52,.82) 100%)}
.hero-inner{position:relative;z-index:2;padding:2.6rem 0 2.4rem}
.hero--image .hero-inner{padding-bottom:2.8rem}
.hero--plain{background:linear-gradient(150deg,var(--teal) 0%,var(--teal-deep) 100%)}
.hero--plain .hero-inner{padding:3rem 0 2.6rem}
.hero h1{color:#fff;max-width:16ch;text-shadow:0 1px 26px rgba(7,42,52,.4)}
.hero-sub{max-width:60ch;font-size:1.12rem;color:#eef4f5;margin:.3rem 0 0}
.kicker{font-family:"Karla",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:.74rem;font-weight:700;color:#f0d6a6;margin:0 0 .7rem}
.kicker--dark{color:var(--brass-dark)}

/* sections */
.section{padding:clamp(2.2rem,5vw,3.6rem) 0}
.article-single{max-width:var(--prose);margin:0 auto}
.section--cards{background:var(--parchment-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-title{margin-top:.1rem}

/* prose */
.prose{font-size:1.06rem}
.prose > p:first-of-type,.prose .lead{font-size:1.2rem;line-height:1.6;color:#33434a}
.prose h2{padding-top:.2rem}
.prose h2::after{content:"";display:block;width:52px;height:3px;background:var(--brass);border-radius:2px;margin-top:.5rem;opacity:.85}
.prose ul,.prose ol{margin:0 0 1.2rem;padding-left:1.25rem}
.prose li{margin:.35rem 0}
.prose a{font-weight:600}
.i-ext{margin-left:2px;vertical-align:baseline;opacity:.7}

/* notice + aside boxes */
.notice{background:#fff;border:1px solid var(--line);border-left:4px solid var(--brass);border-radius:var(--radius);padding:1rem 1.15rem;margin:1.4rem 0;font-size:.98rem;box-shadow:var(--shadow)}
.notice strong{color:var(--teal-dark)}
.aside{background:rgba(14,75,90,.05);border:1px dashed var(--line);border-radius:var(--radius);padding:.85rem 1.1rem;font-size:.95rem;color:var(--ink-soft)}

/* card grid */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:1rem;margin-top:1.4rem}
.tile{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.25rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s}
.tile:hover{transform:translateY(-3px);border-color:var(--brass);box-shadow:0 10px 30px rgba(10,54,64,.14)}
.tile h3{margin:0 0 .35rem;color:var(--teal-dark);display:flex;align-items:center;gap:.35rem;font-size:1.15rem}
.tile h3 svg{color:var(--brass)}
.tile p{margin:0;font-size:.95rem;color:var(--ink-soft)}

/* button */
.btn{display:inline-block;background:var(--teal);color:#fff;padding:.7rem 1.4rem;border-radius:8px;text-decoration:none;font-weight:700;box-shadow:var(--shadow)}
.btn:hover{background:var(--teal-dark);color:#fff}
.section--404{padding:clamp(3rem,8vw,5.5rem) 0}

/* footer */
.site-footer{background:var(--teal-deep);color:#c7d6d9;margin-top:1rem}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem;padding:2.6rem 0 1.6rem}
.f-brand .wordmark{color:#fff}
.f-brand .wordmark span{font-size:1.05rem}
.wordmark--footer .mark{color:var(--brass)}
.f-tag{margin:.8rem 0 0;font-size:.92rem;color:#a9c0c4;max-width:34ch}
.f-col h3{color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 .7rem}
.f-col ul{list-style:none;margin:0;padding:0}
.f-col li{margin:.35rem 0}
.f-col a{color:#c7d6d9;text-decoration:none;font-size:.94rem}
.f-col a:hover{color:var(--brass);text-decoration:underline}
.f-note{border-top:1px solid rgba(255,255,255,.1);padding:1.3rem 0 2.2rem;font-size:.82rem;color:#96aeb2}
.f-note a{color:#e4c384}
.f-note strong{color:#dfe9eb}
.f-copy{margin:.7rem 0 0;color:#7f979b}

/* CSS-only entrance: ends visible, so content shows even if animation never runs */
@media (prefers-reduced-motion:no-preference){
  .hero-inner,.article-single>*,.card-grid{animation:rise .6s both}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
/* Safeguard: never leave content hidden waiting on JS (belt & braces) */
[data-aos]{opacity:1 !important;transform:none !important}

/* responsive */
@media (max-width:860px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:1.4rem}
}
@media (max-width:720px){
  body{font-size:17px}
  .nav-toggle{display:flex}
  .primary-nav{position:fixed;inset:0 0 0 auto;width:min(80vw,320px);background:var(--surface);border-left:1px solid var(--line);transform:translateX(100%);transition:transform .28s ease;padding:5rem 1.2rem 2rem;overflow-y:auto;box-shadow:-10px 0 40px rgba(10,54,64,.15)}
  .primary-nav.open{transform:none}
  .primary-nav ul{flex-direction:column;gap:.1rem}
  .primary-nav a{padding:.7rem .6rem;font-size:1.05rem;border-bottom:1px solid var(--line-soft)}
  .footer-grid{grid-template-columns:1fr}
}
