/* ==========================================================================
   HEADER + FOOTER
   The chrome every page carries. One source, so it can never drift.
   ========================================================================== */

.foot,.site-header{--focus-ring:#FFFFFF}
.site-header.is-stuck{--focus-ring:var(--ink-strong)}
.skip-link{
  position:absolute;left:var(--gutter);top:-100%;z-index:100;
  background:var(--cream);color:var(--ink);
  padding:.75rem 1.25rem;border-radius:6px;font-weight:500;
  transition:top .2s var(--ease);
}
.skip-link:focus{top:1rem}
/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  position:absolute;inset:0 0 auto;z-index:20;
  transition:background-color .35s var(--ease), box-shadow .35s var(--ease), backdrop-filter .35s var(--ease);
}
.site-header__inner{
  display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.75rem);
  min-height:var(--header-h);
  padding-inline:var(--gutter);
}
.brand{flex:0 0 auto;display:block;line-height:0}
.brand img{
  height:clamp(38px,3.6vw,60px);width:auto;
  /* The supplied logo is solid #116E9C on transparency, so a single asset
     serves both states: inverted to white over the photo, brand blue once
     the header turns solid on scroll. */
  filter:brightness(0) invert(1);
  transition:filter .35s var(--ease);
}
.nav{margin-inline:auto;display:flex;align-items:center}
.nav__list{
  display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.6rem);
  list-style:none;margin:0;padding:0;
}
.nav__link{
  position:relative;display:inline-block;
  color:rgba(255,255,255,.94);
  font-size:clamp(.9375rem,1.04vw,1.0625rem);
  font-weight:400;
  padding-block:.35rem;
}
.nav__link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .32s var(--ease);
}
.nav__link:hover::after,.nav__link:focus-visible::after{transform:scaleX(1);transform-origin:left}
.nav__link[aria-current="page"]::after{transform:scaleX(1)}
/* --- Mobile nav toggle -------------------------------------------------- */
.nav-toggle{
  display:none;margin-left:auto;
  width:46px;height:46px;padding:0;
  background:transparent;border:1px solid rgba(255,255,255,.5);border-radius:5px;
  cursor:pointer;
}
.nav-toggle span{
  display:block;width:18px;height:1.5px;margin:4px auto;
  background:#fff;transition:transform .3s var(--ease),opacity .3s var(--ease);
}
/* --- Scrolled state (sticky header, no layout shift) -------------------- */
.site-header.is-stuck{
  position:fixed;
  background:rgba(255,255,255,.96);
  backdrop-filter:saturate(140%) blur(10px);
  box-shadow:0 1px 0 rgba(20,23,26,.08),0 10px 30px -22px rgba(20,23,26,.6);
}
.site-header.is-stuck .brand img{filter:none}
.site-header.is-stuck .nav__link{color:var(--ink)}
.site-header.is-stuck .header__rule{background:rgba(20,23,26,.18)}
.site-header.is-stuck .btn--ghost{color:var(--brand);border-color:var(--brand)}
.site-header.is-stuck .btn--ghost:hover{background:var(--brand);color:#fff}
.site-header.is-stuck .nav-toggle{border-color:rgba(20,23,26,.3)}
.site-header.is-stuck .nav-toggle span{background:var(--ink)}
@media (prefers-reduced-motion:no-preference){
/* --- Header lands with the hero ---------------------------------------- */
.site-header .brand,.nav__list > li,.site-header__inner > .btn{
    animation:a-rise .7s var(--ease) both;
  }
.site-header .brand{animation-delay:.04s}
.nav__list > li:nth-child(1){animation-delay:.14s}
.nav__list > li:nth-child(2){animation-delay:.2s}
.nav__list > li:nth-child(3){animation-delay:.26s}
.nav__list > li:nth-child(4){animation-delay:.32s}
.nav__list > li:nth-child(5){animation-delay:.38s}
.site-header__inner > .btn{animation-delay:.48s}
.foot__waves{animation:a-drift 16s ease-in-out infinite -2s}
/* --- Footer word marks ------------------------------------------------- */
.foot__words b{transition:color .3s var(--ease),transform .3s var(--ease)}
.foot__words b:hover{color:var(--ft-tan);transform:translate3d(0,-2px,0)}
}
@media (max-width:1180px){
.nav__list{gap:1.35rem}
.nav__link{font-size:.9375rem}
}
@media (max-width:920px){
.nav,.site-header .btn--ghost{display:none}
.nav-toggle{display:block}
.site-header.nav-open{background:rgba(11,18,25,.97);backdrop-filter:blur(12px)}
.site-header.nav-open .nav{
    display:block;position:absolute;left:0;right:0;top:100%;
    padding:0 var(--gutter) 1.75rem;
  }
.site-header.nav-open .nav__list{flex-direction:column;align-items:flex-start;gap:0}
.site-header.nav-open .nav__link{
    display:block;width:100%;padding:.95rem 0;color:#fff;
    border-bottom:1px solid rgba(255,255,255,.12);font-size:1.0625rem;
  }
.site-header.nav-open .header__rule{display:none}
.site-header.nav-open .btn--ghost{display:inline-flex;margin-top:1.35rem;width:100%;color:#fff;border-color:rgba(255,255,255,.7)}
.site-header.nav-open .nav-toggle span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.site-header.nav-open .nav-toggle span:nth-child(2){opacity:0}
.site-header.nav-open .nav-toggle span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
}
/* ==========================================================================
   SITE FOOTER
   ========================================================================== */
.foot{
  --ft-bg:#052E48;
  --ft-cream:#F7F4EF;
  --ft-tan:#C7A578;
  --ft-dim:rgba(247,244,239,.72);
  --ft-line:rgba(247,244,239,.18);

  position:relative;isolation:isolate;overflow:clip;
  background:var(--ft-bg);
  color:var(--ft-cream);
  padding:clamp(3rem,9.9vw,10.375rem) var(--gutter) clamp(2rem,4.5vw,4.75rem);
}
.foot__waves{
  position:absolute;right:-2%;bottom:6%;z-index:-1;
  width:min(34rem,38%);height:auto;
  color:rgba(247,244,239,.1);pointer-events:none;
}
/* --- Top strip ---------------------------------------------------------- */
.foot__strip{
  display:flex;align-items:center;gap:clamp(1rem,1.8vw,1.875rem);
  margin:0 0 clamp(2.5rem,5.3vw,5.5rem);
  color:var(--ft-tan);
  font-size:var(--fs-label);
  font-weight:500;letter-spacing:.24em;text-transform:uppercase;
  white-space:nowrap;
}
.foot__strip i{flex:1 1 auto;height:1px;background:var(--ft-line);display:block}
.foot__strip i:last-child{flex:0 1 clamp(20px,3.2vw,3.25rem)}
.foot__strip b{font-weight:500}
.foot__words{display:flex;gap:clamp(1rem,1.85vw,1.9375rem)}
/* --- Main grid ---------------------------------------------------------- */
.foot__grid{
  display:grid;
  grid-template-columns:1.23fr 1.16fr 1fr;
  align-items:stretch;   /* so both dividers run the full grid height */
}
.foot__links,.foot__cta{
  border-left:1px solid var(--ft-line);
  padding-left:clamp(1.25rem,3.9vw,4.125rem);
}
/* --- Brand column ------------------------------------------------------- */
.foot__brand img{
  height:clamp(48px,4.4vw,4.625rem);width:auto;
  filter:brightness(0) invert(1);   /* single-colour logo → cream on navy */
}
.foot__tagline{
  margin:clamp(1.25rem,2.9vw,3rem) 0 0;
  max-width:26ch;
  font-family:var(--font-serif);
  font-weight:400;
  font-size:clamp(1.1875rem,1.66vw,1.75rem);
  line-height:1.5;
  color:var(--ft-cream);
}
.foot__script{
  margin:clamp(1rem,2.2vw,2.25rem) 0 0;
  font-family:var(--font-script-alt);
  font-size:clamp(2.5rem,5.14vw,5.375rem);
  line-height:.85;
  color:var(--ft-tan);
}
.foot__contact{
  list-style:none;
  margin:clamp(1.15rem,2.1vw,1.75rem) 0 0;padding:0;
  display:grid;gap:clamp(.55rem,.95vw,.8125rem);
  font-size:clamp(.8125rem,.95vw,.9375rem);
  line-height:1.5;
  color:var(--ft-dim);
}
.foot__contact li{display:flex;align-items:flex-start;gap:clamp(.6rem,.95vw,.8125rem)}
.foot__contact svg{
  flex:0 0 auto;width:clamp(15px,1.15vw,17px);height:auto;
  margin-top:.16em;color:var(--ft-tan);
}
.foot__contact b{font-weight:500;color:var(--ft-cream)}
.foot__contact a{
  color:var(--ft-dim);text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .25s var(--ease),border-color .25s var(--ease);
}
.foot__contact a:hover,.foot__contact a:focus-visible{color:var(--ft-cream);border-bottom-color:rgba(199,165,120,.7)}
/* --- Link columns ------------------------------------------------------- */
.foot__links{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,2.5rem)}
.foot__label{
  margin:0 0 clamp(.9rem,1.9vw,1.9375rem);
  color:var(--ft-tan);
  font-size:var(--fs-label);
  font-weight:500;letter-spacing:.2em;text-transform:uppercase;
}
.foot__list{margin:0;padding:0;list-style:none}
.foot__list li + li{margin-top:clamp(.75rem,1.55vw,1.625rem)}
.foot__list a{
  font-family:var(--font-serif);
  font-size:clamp(1rem,1.26vw,1.3125rem);
  line-height:1.25;
  color:var(--ft-cream);
  transition:color .25s var(--ease);
}
.foot__list a:hover{color:var(--ft-tan)}
/* --- CTA column --------------------------------------------------------- */
.foot__note{
  margin:0 0 clamp(1rem,2.1vw,2.125rem);
  font-family:var(--font-serif);
  font-size:clamp(1rem,1.26vw,1.3125rem);
  line-height:1.55;
  color:var(--ft-cream);
}
.foot__btn{
  width:100%;
  padding:1.55em 1.5em;
  background:var(--ft-cream);color:#052E48;border-color:var(--ft-cream);
  border-radius:6px;
}
.foot__btn:hover,.foot__btn:focus-visible{background:#fff;border-color:#fff}
.foot__social{
  margin-top:clamp(1.25rem,2.6vw,2.6875rem);
  padding-top:clamp(1.25rem,2.6vw,2.6875rem);
  border-top:1px solid var(--ft-line);
}
.foot__icons{display:flex;gap:clamp(1rem,1.9vw,1.9375rem);margin:0;padding:0;list-style:none}
.foot__icons a{
  display:grid;place-items:center;
  width:clamp(30px,2.5vw,2.5625rem);aspect-ratio:1;
  color:var(--ft-cream);
  transition:color .25s var(--ease),transform .25s var(--ease);
}
.foot__icons svg{width:100%;height:auto}
.foot__icons a:hover{color:var(--ft-tan);transform:translateY(-2px)}
/* --- Bottom bar --------------------------------------------------------- */
.foot__bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:clamp(1rem,3vw,3rem);flex-wrap:wrap;
  margin-top:clamp(2.5rem,6.1vw,6.375rem);
  padding-top:clamp(1.25rem,2.6vw,2.625rem);
  border-top:1px solid var(--ft-line);
  color:var(--ft-dim);
  font-size:var(--fs-label);
  font-weight:500;letter-spacing:.14em;text-transform:uppercase;
}
.foot__bar p{margin:0}
.foot__legal{display:flex;align-items:center;gap:clamp(.9rem,1.7vw,1.75rem);margin:0;padding:0;list-style:none}
.foot__legal a{color:var(--ft-dim);transition:color .25s var(--ease)}
.foot__legal a:hover{color:var(--ft-cream)}
.foot__legal li + li{border-left:1px solid var(--ft-line);padding-left:clamp(.9rem,1.7vw,1.75rem)}
@media (max-width:1080px){
.foot__grid{grid-template-columns:1fr 1fr;row-gap:clamp(2rem,5vw,3rem)}
.foot__cta{grid-column:1 / -1;border-left:0;padding-left:0;padding-top:clamp(1.5rem,4vw,2.5rem);border-top:1px solid var(--ft-line)}
.foot__btn{max-width:24rem}
}
@media (max-width:700px){
.foot{padding-top:clamp(2.5rem,12vw,4rem)}
.foot__strip{flex-wrap:wrap;white-space:normal;gap:.5rem 1rem}
.foot__strip i{display:none}
.foot__grid{grid-template-columns:1fr}
.foot__links{border-left:0;padding-left:0;padding-top:clamp(1.5rem,5vw,2rem);border-top:1px solid var(--ft-line)}
.foot__tagline{max-width:26ch}
.foot__bar{flex-direction:column;align-items:flex-start;gap:1rem}
}
