/* ==========================================================================
   Beyond Borders D-E Consulting Group — site stylesheet
   Design system extracted from the approved holding page and extended
   to cover the full page set. Tokens and type scale are unchanged.
   ========================================================================== */

/* --- 1. Tokens ----------------------------------------------------------- */
:root{
  --navy:#1e2761;
  --deep:#111842;
  --blue:#35458f;
  --gold:#b8923a;
  --gold-light:#d7bb77;
  /* Gold TEXT on white measures 2.9:1 and fails WCAG AA even at 800 weight.
     This darker tone reads as the same gold and passes at 5.1:1.
     Decorative gold (rules, icons, rings) still uses --gold. */
  --gold-deep:#8a6a1c;
  --cream:#f4f1e9;
  --white:#fff;
  --ink:#171b35;
  --muted:#5e6273;
  --line:#dedfe6;
  --wash:#f8f8fa;
  --pad-x:clamp(22px,5vw,76px);
  --pad-x-wide:clamp(22px,7vw,108px);
  --sec-y:clamp(64px,9vw,124px);
}
*{box-sizing:border-box;border-radius:0}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--ink);background:var(--white);
  font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:-9999px;z-index:99}
.skip:focus{left:8px;top:8px;padding:10px 16px;background:var(--navy);color:var(--white);font-weight:800}

/* --- 2. Type scale ------------------------------------------------------- */
h1,h2,h3,h4{margin:0;color:var(--navy);font-weight:500;letter-spacing:-.05em;line-height:.98}
h1{font-size:clamp(3.4rem,7.1vw,7.3rem);letter-spacing:-.06em;line-height:.91;max-width:850px}
h1.h1-inner{font-size:clamp(2.5rem,5.4vw,4.6rem);letter-spacing:-.05em;line-height:.96}
h2{font-size:clamp(2.3rem,4.2vw,4.6rem)}
h3{font-size:clamp(1.3rem,2.1vw,1.7rem);letter-spacing:-.03em;line-height:1.15}
h4{font-size:1.02rem;letter-spacing:-.01em;line-height:1.3;font-weight:800}
p{margin:0}
.lede{max-width:650px;color:var(--muted);font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.7}
.prose p{max-width:70ch;margin:0 0 20px;color:var(--ink);font-size:1.02rem;line-height:1.78}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--navy)}

/* Uppercase micro-label, with and without the gold rule */
.kicker,.section-label{
  font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
}
.kicker{display:flex;align-items:center;gap:14px;margin:0 0 30px;color:var(--gold-light)}
.kicker:before{content:"";width:42px;height:2px;background:var(--gold);flex:0 0 auto}
.section-label{margin:0 0 18px;color:var(--gold-deep)}

/* --- 3. Utility bar ------------------------------------------------------ */
.utility{
  min-height:38px;display:flex;justify-content:flex-end;align-items:center;gap:28px;
  padding:8px var(--pad-x);color:#ffffffdb;background:var(--deep);font-size:.76rem;
}
.utility a{display:inline-flex;align-items:center;gap:7px;text-decoration:none}
.utility a:hover{color:var(--gold-light)}
.utility svg{width:14px;height:14px}

/* --- 4. Header + navigation ---------------------------------------------- */
.site-header{
  min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px;
  padding:14px var(--pad-x);background:var(--white);border-bottom:1px solid var(--line);
  position:relative;z-index:50;
}
.logo{width:clamp(82px,9vw,112px);height:auto;display:block}
/* Scroll-aware navigation is enabled only when JavaScript is available. */
.site-header.scroll-nav{position:sticky;top:0;transition:transform .24s ease,background .24s ease,box-shadow .24s ease}
.site-header.scroll-nav.is-scrolled{background:rgba(255,255,255,.84);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 4px 24px #11184212}
.site-header.scroll-nav.is-hidden{transform:translateY(calc(-100% - 2px));box-shadow:none}
.site-header.scroll-nav:focus-within{transform:translateY(0)}
.site-header.scroll-nav .main-nav.is-open{max-height:65vh;overflow-y:auto}
@media print{.site-header.scroll-nav{position:static;transform:none;box-shadow:none}}
.main-nav{
  display:flex;align-items:center;gap:clamp(16px,2.4vw,38px);
  margin-left:auto;color:var(--navy);font-size:.9rem;font-weight:700;
}
.main-nav a{
  white-space:nowrap;text-decoration:none;padding:6px 0;
  border-bottom:2px solid transparent;transition:border-color .2s,color .2s;
}
.main-nav a:hover{border-bottom-color:var(--gold)}
.main-nav a[aria-current="page"]{border-bottom-color:var(--navy)}
.main-nav .nav-search{display:flex;align-items:center;gap:7px}
.nav-search svg{width:17px;height:17px;flex:none}
.header-contact{
  display:inline-flex;align-items:center;justify-content:center;min-height:46px;
  padding:12px 22px;color:var(--white);background:var(--navy);
  font-size:.86rem;font-weight:800;text-decoration:none;transition:background .2s;
}
.header-contact:hover,.header-contact:focus-visible{background:var(--blue)}
.nav-toggle{
  display:none;width:46px;height:46px;padding:0;border:1px solid var(--line);
  background:var(--white);color:var(--navy);cursor:pointer;
}
.nav-toggle svg{width:22px;height:22px;margin:0 auto;display:block}
.nav-toggle[aria-expanded="true"] .ico-open,
.nav-toggle[aria-expanded="false"] .ico-close{display:none}

/* --- 5. Hero variants ---------------------------------------------------- */
.hero{
  min-height:590px;display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(310px,.8fr);
  color:var(--white);background:var(--navy);
}
.hero-copy{
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  padding:clamp(70px,9vw,138px) var(--pad-x-wide);
}
.hero-copy h1{color:var(--white)}
.hero-copy>p:not(.kicker){margin:34px 0 0;color:#ffffffc7;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.7;max-width:650px}
.hero-art{
  position:relative;min-height:420px;overflow:hidden;
  background:linear-gradient(#b8923a29 1px,transparent 1px),
             linear-gradient(90deg,#b8923a29 1px,transparent 1px),var(--cream);
  background-size:44px 44px;
}
.hero-art:before,.hero-art:after{content:"";position:absolute;border:clamp(34px,5vw,68px) solid var(--gold);border-radius:50%}
.hero-art:before{width:380px;height:380px;top:-105px;right:-145px;opacity:.92}
.hero-art:after{width:330px;height:330px;bottom:-190px;left:-160px;opacity:.7}
.art-mark{position:absolute;inset:50% auto auto 50%;width:min(64%,250px);transform:translate(-50%,-50%);filter:drop-shadow(0 20px 36px #1e27612e)}

/* Compact hero for inner pages */
.page-hero{
  padding:clamp(56px,7vw,96px) var(--pad-x-wide);
  color:var(--white);background:var(--navy);
}
.page-hero h1{color:var(--white)}
.page-hero>p{margin:28px 0 0;max-width:60ch;color:#ffffffc7;font-size:clamp(1rem,1.5vw,1.14rem);line-height:1.7}
.breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 26px;
  color:#ffffff9e;font-size:.76rem;font-weight:700;letter-spacing:.06em;
}
.breadcrumb a{text-decoration:none}
.breadcrumb a:hover{color:var(--gold-light)}
.breadcrumb span[aria-hidden]{color:var(--gold)}

.status{
  display:inline-flex;align-items:center;gap:11px;margin-top:34px;padding:13px 17px;
  color:var(--white);border:1px solid #ffffff3d;font-size:.84rem;font-weight:800;
}
.pulse{width:9px;height:9px;background:var(--gold-light);border-radius:50%;box-shadow:0 0 0 0 #d7bb77b3;animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px transparent}}

/* --- 6. Section shells --------------------------------------------------- */
.section{padding:var(--sec-y) var(--pad-x-wide)}
.section--wash{background:var(--wash)}
.section--navy{background:var(--navy);color:var(--white)}
.section--navy h2,.section--navy h3{color:var(--white)}
.section--navy .section-label{color:var(--gold-light)}
.section--navy .lede{color:#ffffffc7}
.section--deep{background:var(--deep);color:var(--white)}
.section--deep h2{color:var(--white)}
.section--deep .section-label{color:var(--gold-light)}

/* Split head: label + heading left, supporting copy right */
.split{
  display:grid;grid-template-columns:minmax(250px,.7fr) minmax(0,1.5fr);
  gap:clamp(36px,7vw,100px);
}
.split>div>p{max-width:650px;margin:0 0 34px;color:var(--muted);font-size:1.02rem;line-height:1.7}
.section--navy .split>div>p{color:#ffffffc7}
.head{margin-bottom:clamp(36px,5vw,64px);max-width:900px}
.head p{margin-top:22px;color:var(--muted);font-size:1.02rem;line-height:1.7;max-width:70ch}
.section--navy .head p{color:#ffffffc7}

/* --- 7. Bordered tile grid (services, team, projects, contact) ----------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.section--navy .tiles,.section--deep .tiles{border-color:#ffffff2e}
.tile{
  display:flex;flex-direction:column;gap:12px;padding:32px 28px 36px;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  text-decoration:none;color:inherit;transition:background .2s,color .2s;
}
.section--navy .tile,.section--deep .tile{border-color:#ffffff2e}
a.tile:hover,a.tile:focus-visible{background:var(--navy);color:var(--white);outline:none}
a.tile:hover h3,a.tile:focus-visible h3{color:var(--white)}
a.tile:hover p,a.tile:focus-visible p{color:#ffffffc4}
a.tile:hover .tile-n,a.tile:focus-visible .tile-n{color:var(--gold-light)}
.tile-n{font-size:.78rem;font-weight:800;letter-spacing:.14em;color:var(--gold-deep)}
.section--navy .tile-n{color:var(--gold-light)}
.tile p{color:var(--muted);font-size:.95rem;line-height:1.65}
.section--navy .tile p{color:#ffffffc4}
.tile-more{margin-top:auto;padding-top:14px;font-size:.82rem;font-weight:800;letter-spacing:.06em;color:var(--navy)}
a.tile:hover .tile-more,a.tile:focus-visible .tile-more{color:var(--gold-light)}
.section--navy .tile-more{color:var(--gold-light)}

/* --- 8. Contact link tiles (from the holding page) ----------------------- */
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}
.contact-link{
  min-height:104px;display:flex;align-items:center;gap:16px;padding:24px 20px;
  color:var(--navy);border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  font-size:.9rem;font-weight:800;text-decoration:none;transition:color .2s,background .2s;
}
.contact-link:nth-child(even){border-right:0}
.contact-link:hover,.contact-link:focus-visible{color:var(--white);background:var(--navy);outline:none}
.contact-link svg{width:24px;height:24px;flex:0 0 auto;color:var(--gold)}
.contact-link:hover svg,.contact-link:focus-visible svg{color:var(--gold-light)}
.contact-link small{display:block;margin-bottom:6px;color:var(--muted);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.contact-link:hover small,.contact-link:focus-visible small{color:#ffffffad}

/* --- 9. Editorial lists (service capability lists, value lists) ---------- */
.cols{columns:2;column-gap:clamp(28px,5vw,64px)}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{
  position:relative;padding:9px 0 9px 26px;font-size:.97rem;line-height:1.6;
  border-bottom:1px solid var(--line);break-inside:avoid;
}
.ticks li:before{
  content:"";position:absolute;left:0;top:17px;width:9px;height:9px;
  border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:rotate(-45deg);
}
.section--navy .ticks li{border-color:#ffffff2e}

/* Numbered stepped list (How we work) */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border-top:1px solid var(--line)}
.section--navy .steps{border-color:#ffffff2e}
.step{padding:28px 26px 32px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
.section--navy .step{border-color:#ffffff2e}
.step-n{display:block;margin-bottom:14px;font-size:.75rem;font-weight:800;letter-spacing:.16em;color:var(--gold-deep)}
.section--navy .step-n{color:var(--gold-light)}
.step h3{margin-bottom:10px;font-size:1.2rem}
.step p{color:var(--muted);font-size:.94rem;line-height:1.65}
.section--navy .step p{color:#ffffffc4}

/* --- 10. Article / detail layout ---------------------------------------- */
.detail{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,.85fr);gap:clamp(36px,6vw,84px);align-items:start}
.aside{border-top:2px solid var(--navy);padding-top:24px;position:sticky;top:124px}
.aside h4{margin-bottom:14px}
.aside dl{margin:0}
.aside dt{margin-top:16px;font-size:.68rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--gold-deep)}
.aside dd{margin:4px 0 0;font-size:.95rem;line-height:1.55;color:var(--ink)}
.aside dd a{color:var(--navy);font-weight:700}

/* Pull quote */
.pull{
  margin:36px 0;padding:28px 0 28px 30px;border-left:3px solid var(--gold);
  color:var(--navy);font-size:clamp(1.2rem,2.2vw,1.6rem);line-height:1.35;
  letter-spacing:-.02em;font-weight:500;max-width:60ch;
}

/* --- 11. Accordion (FAQ) ------------------------------------------------- */
.faq{border-top:1px solid var(--line);max-width:900px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  display:flex;align-items:flex-start;gap:16px;padding:22px 0;cursor:pointer;
  color:var(--navy);font-size:1.04rem;font-weight:800;line-height:1.4;list-style:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:before{
  content:"";flex:0 0 auto;width:13px;height:13px;margin-top:5px;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:rotate(45deg);transition:transform .2s;
}
.faq details[open] summary:before{transform:rotate(-135deg)}
.faq .answer{padding:0 0 24px 29px}
.faq .answer p{margin:0 0 14px;color:var(--muted);font-size:.99rem;line-height:1.75;max-width:70ch}
.faq .answer p:last-child{margin-bottom:0}
.faq .answer ul{margin:0 0 14px;padding-left:20px;color:var(--muted);font-size:.99rem;line-height:1.7}

/* --- 12. Forms ----------------------------------------------------------- */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:820px;width:100%;min-width:0}
.form>*{min-width:0}
.field{display:flex;flex-direction:column;gap:9px;min-width:0}
.field--full{grid-column:1/-1}
.field label{font-size:.9rem;line-height:1.5;font-weight:700;letter-spacing:.01em;color:var(--navy)}
.field .req{color:var(--gold-deep)}
.field input,.field select,.field textarea{
  width:100%;max-width:100%;min-width:0;min-height:50px;
  padding:13px 14px;border:1px solid var(--line);background:var(--white);
  color:var(--ink);font-family:inherit;font-size:1rem;line-height:1.5;
}
.field select{text-overflow:ellipsis}
.field input[type="file"]{padding:10px;font-size:.9rem;overflow:hidden;text-overflow:ellipsis}
.field input[type="file"]::file-selector-button{min-height:40px;margin-right:12px;padding:8px 12px;border:1px solid var(--line);background:var(--cream);color:var(--navy);font:inherit;font-weight:700;cursor:pointer}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--navy);outline-offset:-1px;border-color:var(--navy)}
.field textarea{min-height:180px;resize:vertical}
.field .hint{font-size:.8rem;color:var(--muted);line-height:1.5}
.consent{display:flex;gap:12px;align-items:flex-start;grid-column:1/-1}
.consent input{width:22px;height:22px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--navy)}
.consent label{min-width:0;min-height:44px;font-size:.9rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted);line-height:1.6;overflow-wrap:anywhere;cursor:pointer}
.contact-enquiry .head,.contact-enquiry .form{max-width:900px;margin-inline:auto}
.contact-enquiry .form{padding:clamp(18px,3vw,36px);border:1px solid var(--line);background:var(--white)}
.contact-enquiry .form .notice{overflow-wrap:anywhere}
@media(max-width:720px){.contact-enquiry .form{grid-template-columns:minmax(0,1fr);gap:22px}.contact-enquiry .form button[type="submit"]{width:100%}.contact-enquiry .head{margin-bottom:28px}}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;
  padding:14px 30px;border:0;background:var(--navy);color:var(--white);
  font-family:inherit;font-size:.88rem;font-weight:800;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;transition:background .2s;
}
.btn:hover,.btn:focus-visible{background:var(--blue)}
.btn--ghost{background:transparent;border:1px solid #ffffff5c;color:var(--white)}
.btn--ghost:hover{background:var(--white);color:var(--navy)}
.notice{
  padding:18px 20px;border-left:3px solid var(--gold);background:var(--cream);
  color:var(--ink);font-size:.93rem;line-height:1.65;max-width:70ch;
}

/* --- 13. CTA band -------------------------------------------------------- */
.cta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:28px;padding:clamp(46px,6vw,76px) var(--pad-x-wide);
  background:var(--deep);color:var(--white);
}
.cta h2{color:var(--white);max-width:16ch}
.cta p{margin-top:16px;max-width:52ch;color:#ffffffc7;font-size:1rem;line-height:1.7}
.cta-actions{display:flex;flex-wrap:wrap;gap:14px}

/* --- 14. Empty state ----------------------------------------------------- */
.empty{
  padding:clamp(44px,6vw,72px);border:1px solid var(--line);background:var(--wash);
  max-width:760px;
}
.empty h3{margin-bottom:14px}
.empty p{color:var(--muted);font-size:1rem;line-height:1.72;margin-bottom:18px;max-width:60ch}

/* --- 15. Footer ---------------------------------------------------------- */
.site-footer{background:var(--deep);color:#ffffffa8;font-size:.85rem}
.footer-main{
  display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));
  gap:clamp(28px,4vw,54px);padding:clamp(48px,6vw,72px) var(--pad-x) 40px;
}
.footer-brand img{width:108px;height:auto;margin-bottom:18px;background:var(--white);padding:10px}
.footer-brand p{color:#ffffffa8;font-size:.88rem;line-height:1.7;max-width:34ch}
.footer-motto{margin-top:14px;color:var(--gold-light);font-size:.9rem;font-weight:700}
.footer-col h4{margin-bottom:16px;color:var(--white);font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.footer-col a{text-decoration:none;line-height:1.5}
.footer-col a:hover{color:var(--gold-light)}
.footer-bar{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 28px;
  padding:22px var(--pad-x);border-top:1px solid #ffffff21;font-size:.78rem;
}
.footer-bar strong{color:var(--white)}
.footer-bar a{text-decoration:none}
.footer-bar a:hover{color:var(--gold-light)}

/* Image slots keep their dimensions when real photography replaces the SVGs. */
.image-slot{display:block;position:relative;overflow:hidden;min-width:0;background:var(--cream)}
.image-slot img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.image-slot--portrait{aspect-ratio:4/5}
.image-slot--portrait img{object-position:center 25%}
.image-slot--service{aspect-ratio:16/9}
.image-slot--logo{aspect-ratio:2/1}
.image-slot--logo img{object-fit:contain;padding:16px}
.placeholder-label{position:absolute;bottom:12px;left:12px;right:12px;width:fit-content;max-width:calc(100% - 24px);padding:7px 10px;background:var(--navy);color:var(--white);font-size:.65rem;line-height:1.5;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.tile>.image-slot{width:100%;margin-bottom:12px}
.tile>.image-slot--portrait{aspect-ratio:4/3}
.tile>.image-slot--portrait img{object-position:center 15%}
.profile-hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:clamp(30px,6vw,80px);align-items:center}
.profile-hero-layout p{margin-top:24px;color:#ffffffc7;font-size:1.1rem;line-height:1.7}
.service-banner{margin:0 0 clamp(36px,5vw,64px)}
.service-banner .image-slot{aspect-ratio:3/1}
.partner-section{background:var(--cream);border-top:1px solid var(--line)}
.partner-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:36px}
.partner-heading h2{font-size:clamp(2rem,3.5vw,3.5rem)}
.partner-heading .lede{margin-top:18px;font-size:.95rem}
.partner-heading>a{flex-shrink:0;color:var(--navy);font-weight:700;text-underline-offset:5px}
.partner-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.partner-slot{padding:8px;border:1px solid var(--line);background:white}
.hero-gallery{display:flex;flex-direction:column;min-width:0;color:var(--navy);background:var(--cream)}
.hero-slide{display:flex;flex:1;flex-direction:column;margin:0;min-height:0}
.hero-slide[hidden],.slideshow-controls[hidden]{display:none}
.hero-slide .image-slot{flex:1;min-height:360px}
.hero-slide .image-slot img{position:absolute;inset:0}
.hero-slide figcaption{padding:22px 24px 14px;font-size:1rem;font-weight:700;line-height:1.5}
.slideshow-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;padding:0 16px 22px}
.slideshow-controls button{display:grid;place-items:center;flex-shrink:0;min-width:44px;min-height:44px;border:1px solid var(--line);background:transparent;color:var(--navy);font:inherit;font-size:1.2rem;cursor:pointer}
.slideshow-controls button:hover{background:var(--white)}
.slideshow-controls [data-autoplay]{flex-basis:100%;font-size:.75rem;font-weight:700;margin-top:6px;min-height:36px}
.hero-gallery{overflow:hidden}
.has-slide-motion .hero-slide:not([hidden]){animation:slide-reveal .45s ease-out both}
@keyframes slide-reveal{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.has-slide-motion .hero-slide:not([hidden]){animation:none}}
.slide-status{font-size:.75rem;white-space:nowrap}
.slide-dots{display:flex;gap:0}
.slide-dots button{border:0;min-width:30px}
.slide-dots span{width:7px;height:7px;background:var(--muted);border-radius:50%}
.slide-dots [aria-pressed="true"] span{background:var(--navy);outline:1px solid var(--navy);outline-offset:4px}
@media(max-width:840px){
  .partner-logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .partner-heading{align-items:flex-start;flex-direction:column}
  /* On small screens photos use their natural height, without forced cropping. */
  .image-slot:not(.image-slot--logo),.tile>.image-slot--portrait,.service-banner .image-slot{aspect-ratio:auto}
  .image-slot:not(.image-slot--logo) img{position:static;width:100%;height:auto}
  .hero-slide{flex:none}
  .hero-slide .image-slot{flex:none;min-height:0}
}
@media(max-width:560px){.profile-hero-layout{grid-template-columns:1fr}.profile-hero-layout>.image-slot{width:100%;max-width:320px}.partner-logos{grid-template-columns:1fr}}
@media print{.slideshow-controls{display:none}}

.back-to-top{position:fixed;right:clamp(16px,3vw,36px);bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:60;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--gold-light);border-radius:50%;background:var(--navy);color:var(--white);box-shadow:0 4px 16px #11184230;cursor:pointer;transition:background .2s,transform .2s}
.back-to-top[hidden]{display:none}
.back-to-top svg{width:23px;height:23px}
.back-to-top:hover{background:var(--blue);transform:translateY(-3px)}
.back-to-top:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media print{.back-to-top{display:none}}

.search-section{max-width:1100px;margin-inline:auto;min-height:45vh}
.search-form label{display:block;margin-bottom:14px;color:var(--navy);font-weight:700}
.search-input-row{display:flex;gap:12px}
.search-input-row input{flex:1;min-width:0;min-height:54px;border:1px solid var(--line);background:var(--white);padding:14px 16px;font:inherit;color:var(--ink)}
.search-status{margin:28px 0;color:var(--muted);line-height:1.65;overflow-wrap:anywhere}
.search-results{list-style:none;margin:0;padding:0}
.search-results li{padding:28px 0;border-top:1px solid var(--line)}
.search-results h2{font-size:clamp(1.4rem,2.5vw,1.9rem);line-height:1.2;letter-spacing:-.02em}
.search-results h2 a{text-decoration:none;text-underline-offset:4px}
.search-results h2 a:hover{text-decoration:underline}
.search-results p{margin-top:12px;line-height:1.75;color:var(--muted);overflow-wrap:anywhere}
.search-results mark{background:#efe1bd;color:var(--deep)}
.search-retry[hidden]{display:none}
@media(max-width:560px){.search-input-row{flex-direction:column}}

/* --- 16. Responsive ------------------------------------------------------ */
@media(max-width:1040px){
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail{grid-template-columns:1fr}
  .aside{position:static}
}
@media(min-width:841px) and (max-width:1100px){
  .site-header{gap:16px;padding-inline:24px}
  .main-nav{gap:15px;font-size:.8rem}
  .header-contact{padding-inline:16px}
}
@media(max-width:1100px){
  .nav-toggle{display:block;order:3}
  .main-nav{
    display:none;order:4;width:100%;flex-direction:column;align-items:stretch;
    gap:0;margin:14px -22px -14px;border-top:1px solid var(--line);
  }
  .main-nav.is-open{display:flex}
  .main-nav a{padding:16px 22px;border-bottom:1px solid var(--line)}
  .main-nav a:hover{border-bottom-color:var(--line);background:var(--wash)}
  .main-nav a[aria-current="page"]{border-left:3px solid var(--gold);background:var(--wash)}
  .site-header{flex-wrap:wrap;position:static}
  .header-contact{order:2;margin-left:auto}
}
@media(max-width:840px){
  .hero{grid-template-columns:1fr}
  .hero-art{min-height:330px}
  .art-mark{width:190px}
  .split{grid-template-columns:1fr}
  .cols{columns:1}
  .cta{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  .utility{justify-content:center;gap:16px}
  .utility a:first-child{display:none}
  .site-header{min-height:88px}
  .header-contact{padding-inline:16px}
  .hero-copy{padding-block:78px}
  h1{font-size:clamp(3.15rem,16vw,4.7rem)}
  h1.h1-inner{font-size:clamp(2.3rem,11vw,3.2rem)}
  .hero-art{min-height:270px}
  .contact-grid{grid-template-columns:1fr}
  .contact-link,.contact-link:nth-child(even){border-right:0}
  .form{grid-template-columns:1fr}
  .footer-main{grid-template-columns:1fr}
  .footer-bar{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pulse{animation:none}
  *{transition:none!important}
}

/* --- 17. Timeline (About: our story) ------------------------------------- */
/* Year (or phase) on the left, a gold rule with square markers, story right. */
.timeline{list-style:none;margin:0;padding:0;max-width:1080px}
.timeline-item{
  display:grid;grid-template-columns:clamp(110px,15vw,190px) minmax(0,1fr);
  column-gap:clamp(24px,4vw,56px);
}
.timeline-when{
  padding-top:2px;color:var(--navy);font-size:clamp(1.7rem,3vw,2.5rem);
  font-weight:500;letter-spacing:-.05em;line-height:1;text-align:right;
}
.timeline-when--phase{
  padding-top:8px;color:var(--gold-deep);font-size:.75rem;font-weight:800;
  letter-spacing:.16em;line-height:1.4;text-transform:uppercase;
}
.timeline-body{position:relative;padding:0 0 clamp(36px,5vw,52px) clamp(28px,3vw,40px);border-left:2px solid var(--line)}
.timeline-item:last-child .timeline-body{padding-bottom:0}
.timeline-body:before{
  content:"";position:absolute;left:-9px;top:6px;width:16px;height:16px;
  background:var(--white);border:2px solid var(--gold);
}
.timeline-item--milestone .timeline-body:before{background:var(--gold)}
.timeline-item--now .timeline-body:before{background:var(--navy);border-color:var(--navy)}
.timeline-body h3{margin-bottom:12px}
.timeline-body p{max-width:64ch;margin:0 0 14px;color:var(--muted);font-size:1rem;line-height:1.75}
.timeline-body p:last-child{margin-bottom:0}
.timeline-item--milestone .timeline-body{border-left-color:var(--gold)}

/* --- 18. Value icons (About: eight commitments) -------------------------- */
.value-icon{
  display:grid;place-items:center;width:56px;height:56px;margin-bottom:6px;
  background:var(--cream);color:var(--navy);
}
.value-icon svg{width:28px;height:28px}
@media(hover:hover){.tile:hover .value-icon{background:var(--navy);color:var(--gold-light)}}
.tile .value-icon{transition:background .2s,color .2s}

/* --- 19. Publications list ----------------------------------------------- */
.pub-list{border-top:1px solid var(--line)}
.pub{
  display:grid;grid-template-columns:clamp(110px,13vw,150px) minmax(0,1fr) auto;
  gap:clamp(20px,3vw,40px);align-items:start;padding:clamp(26px,3vw,36px) 0;
  border-bottom:1px solid var(--line);
}
.pub .image-slot--cover{aspect-ratio:3/4}
.pub h3{margin:8px 0 10px}
.pub p{max-width:68ch;color:var(--muted);font-size:.97rem;line-height:1.7}
.pub-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;color:var(--muted);font-size:.8rem;font-weight:700;letter-spacing:.04em}
.pub-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;min-width:180px}
.btn--outline{background:transparent;border:1px solid var(--navy);color:var(--navy)}
.btn--outline:hover,.btn--outline:focus-visible{background:var(--navy);color:var(--white)}
.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.pub-types{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px;padding:0;list-style:none}
.pub-types li{
  padding:8px 14px;border:1px solid var(--line);color:var(--navy);
  font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
}
.sample-flag{
  display:inline-block;margin-left:10px;padding:3px 8px;vertical-align:middle;
  background:var(--cream);color:var(--gold-deep);font-size:.66rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;
}
.cross-link{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;
  margin-top:clamp(40px,5vw,60px);padding:24px 28px;border-left:3px solid var(--gold);background:var(--wash);
}
.cross-link p{color:var(--ink);font-size:1rem;line-height:1.6}
.cross-link a{color:var(--navy);font-weight:800;text-decoration:none}
.cross-link a:hover{text-decoration:underline}

@media(max-width:840px){
  .timeline-item{grid-template-columns:1fr}
  .timeline-when{padding:0 0 12px clamp(28px,3vw,40px);border-left:2px solid var(--line);text-align:left}
  .timeline-item--milestone .timeline-when{border-left-color:var(--gold)}
  .pub{grid-template-columns:96px minmax(0,1fr)}
  .pub-actions{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;min-width:0}
}

/* Eight header links (with Publications) need a little less room on smaller laptops. */
.header-contact{white-space:nowrap}
@media(min-width:1101px) and (max-width:1260px){
  .site-header{gap:20px}
  .main-nav{gap:clamp(14px,1.6vw,22px);font-size:.84rem}
  .header-contact{padding-inline:18px}
}

/* --- 20. Reveal cards (About: eight commitments) ------------------------- */
/* Only active once site.js adds .is-enhanced; without JS all text shows.
   Hover (on devices that hover) or click/tap reveals; click keeps it open. */
.value{position:relative}
.value-toggle{
  margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;
  letter-spacing:inherit;line-height:inherit;text-align:left;cursor:pointer;
}
.value-toggle:after{content:"";position:absolute;inset:0}           /* whole card is the hit area */
.value-toggle:focus-visible{outline:none}
.value:has(.value-toggle:focus-visible){outline:2px solid var(--gold-deep);outline-offset:-2px}
.value-hint{display:none}

.values.is-enhanced .value{transition:background .2s,color .2s}
.values.is-enhanced .value-text{display:none}
.values.is-enhanced .value-hint{
  display:inline-flex;align-items:center;gap:10px;margin-top:auto;padding-top:14px;
  color:var(--navy);font-size:.82rem;font-weight:800;letter-spacing:.06em;
}
.values.is-enhanced .value-hint:before{content:"Read more"}
.values.is-enhanced .value-hint:after{content:"+";font-size:1.15rem;line-height:1;color:var(--gold-deep)}

.values.is-enhanced .value.is-open{background:var(--navy);color:var(--white)}
.values.is-enhanced .value.is-open h3{color:var(--white)}
.values.is-enhanced .value.is-open .tile-n{color:var(--gold-light)}
.values.is-enhanced .value.is-open .value-icon{background:#ffffff14;color:var(--gold-light)}
.values.is-enhanced .value.is-open .value-text{display:block;color:#ffffffc4;animation:value-in .25s ease-out}
.values.is-enhanced .value.is-open .value-hint{color:var(--gold-light)}
.values.is-enhanced .value.is-open .value-hint:before{content:"Close"}
.values.is-enhanced .value.is-open .value-hint:after{content:"\2212";color:var(--gold-light)}

@media(hover:hover){
  .values.is-enhanced .value:hover{background:var(--navy);color:var(--white)}
  .values.is-enhanced .value:hover h3{color:var(--white)}
  .values.is-enhanced .value:hover .tile-n{color:var(--gold-light)}
  .values.is-enhanced .value:hover .value-icon{background:#ffffff14;color:var(--gold-light)}
  .values.is-enhanced .value:hover .value-text{display:block;color:#ffffffc4;animation:value-in .25s ease-out}
  .values.is-enhanced .value:hover:not(.is-open) .value-hint{visibility:hidden}
}
/* Fixed card height on wider screens so revealing text never shifts the rows below. */
@media(min-width:841px){
  .values.is-enhanced .value{min-height:var(--value-card-h,372px)}
}
@keyframes value-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .values.is-enhanced .value-text{animation:none!important}
}
/* Open cards trade the icon for the text so the fixed height can stay compact. */
.values.is-enhanced .value.is-open .value-icon{display:none}
@media(hover:hover){.values.is-enhanced .value:hover .value-icon{display:none}}
.value-toggle{-webkit-tap-highlight-color:transparent}

/* --- 21. Formatted text from the CMS (Website → Pages, "Formatted text") -- */
.rich h2{margin:44px 0 18px;font-size:clamp(1.7rem,2.6vw,2.3rem)}
.rich h3{margin:34px 0 14px}
.rich>*:first-child{margin-top:0}
.rich ul,.rich ol{max-width:68ch;margin:0 0 22px;padding-left:22px;color:var(--ink);font-size:1.02rem;line-height:1.75}
.rich li{margin-bottom:6px;padding-left:4px}
.rich ul li::marker{color:var(--gold)}
.rich ol li::marker{color:var(--gold-deep);font-weight:800}
.rich a{color:var(--navy);font-weight:700;text-decoration-color:var(--gold);text-underline-offset:3px}
.rich a:hover{color:var(--blue)}
.rich blockquote{
  margin:30px 0;padding:22px 0 22px 26px;border-left:3px solid var(--gold);
  color:var(--navy);font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.45;letter-spacing:-.01em;max-width:60ch;
}
.rich blockquote p{margin:0;color:inherit;font-size:inherit;line-height:inherit}
.rich img{display:block;max-width:100%;height:auto;margin:28px 0}
.rich em{font-style:italic}

/* Shown at the top of a draft page, to signed-in editors only. */
.draft-banner{
  position:sticky;top:0;z-index:60;padding:10px var(--pad-x);
  background:var(--gold-light);color:var(--deep);font-size:.86rem;text-align:center;
}

/* The logo keeps its size however many links the CMS header menu has. */
.site-header>a:first-child{flex:none}

/* Too many header links for one line (set by site.js): same ☰ layout as small screens. */
.site-header.is-crowded .nav-toggle{display:block;order:3}
.site-header.is-crowded .main-nav{
  display:none;order:4;width:100%;flex-direction:column;align-items:stretch;
  gap:0;margin:14px -22px -14px;border-top:1px solid var(--line);
}
.site-header.is-crowded .main-nav.is-open{display:flex}
.site-header.is-crowded .main-nav a{padding:16px 22px;border-bottom:1px solid var(--line)}
.site-header.is-crowded .main-nav a:hover{border-bottom-color:var(--line);background:var(--wash)}
.site-header.is-crowded .main-nav a[aria-current="page"]{border-left:3px solid var(--gold);background:var(--wash)}
.site-header.is-crowded{flex-wrap:wrap}
.site-header.is-crowded .header-contact{order:2;margin-left:auto}

/* "Statement" sections (e.g. About: vision, mission): one large sentence beside the heading. */
.split .statement{max-width:650px;margin:0;color:var(--navy);font-size:1.2rem;line-height:1.6}
.section--navy .split .statement{max-width:70ch;margin-bottom:34px;color:#ffffffd6;font-size:1.15rem;line-height:1.7}

/* Enquiry form feedback (site.js). */
.field-error{display:block;color:#a01d1d;font-size:.84rem;font-weight:700;line-height:1.45}
.consent .field-error{margin-top:4px}
.field [aria-invalid="true"]{border-color:#a01d1d;outline-color:#a01d1d}
.notice--success{border-left:3px solid #1f7a4d;background:#eef7f1;color:#14532d}
.notice--error{border-left:3px solid #a01d1d;background:#fbeeee;color:#7a1414}

/* Header sub-menus (set in the CMS): a menu link with links dropping down beneath it. */
.nav-item{position:relative;display:flex;align-items:center;gap:2px}
.nav-item.is-active>a{border-bottom-color:var(--navy)}
.sub-toggle{
  display:grid;place-items:center;width:24px;height:32px;padding:0;border:0;
  background:none;color:inherit;cursor:pointer;
}
.sub-toggle svg{width:13px;height:13px;transition:transform .2s}
.nav-item.is-open>.sub-toggle svg{transform:rotate(180deg)}
.sub-nav{
  display:none;position:absolute;top:100%;left:-20px;z-index:60;min-width:230px;
  margin:0;padding:8px 0;list-style:none;background:var(--white);
  border:1px solid var(--line);border-top:2px solid var(--gold);box-shadow:0 14px 32px #11184218;
}
.nav-item.is-open>.sub-nav{display:block}
.main-nav .sub-nav a{display:block;padding:11px 20px;border-bottom:0;border-left:3px solid transparent}
.main-nav .sub-nav a:hover,.main-nav .sub-nav a:focus-visible{background:var(--wash);border-left-color:var(--gold)}
.main-nav .sub-nav a[aria-current="page"]{border-left-color:var(--navy);background:var(--wash)}
@media(min-width:1101px){
  .site-header:not(.is-crowded) .nav-item:hover>.sub-nav{display:block}
  .site-header:not(.is-crowded) .nav-item:hover>.sub-toggle svg{transform:rotate(180deg)}
}
/* ☰ layout: sub-menu links sit indented under their link, opened with its arrow. */
@media(max-width:1100px){
  .nav-item{display:grid;grid-template-columns:1fr auto;align-items:stretch;gap:0}
  .nav-item.is-active>a{border-left:3px solid var(--gold);background:var(--wash)}
  .sub-toggle{width:58px;height:auto;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
  .sub-nav{grid-column:1/-1;position:static;min-width:0;padding:0;border:0;box-shadow:none;background:var(--wash)}
  .main-nav .sub-nav a{padding:14px 22px 14px 40px;border-bottom:1px solid var(--line);font-weight:600}
}
.site-header.is-crowded .nav-item{display:grid;grid-template-columns:1fr auto;align-items:stretch;gap:0}
.site-header.is-crowded .nav-item.is-active>a{border-left:3px solid var(--gold);background:var(--wash)}
.site-header.is-crowded .sub-toggle{width:58px;height:auto;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
.site-header.is-crowded .sub-nav{grid-column:1/-1;position:static;min-width:0;padding:0;border:0;box-shadow:none;background:var(--wash)}
.site-header.is-crowded .main-nav .sub-nav a{padding:14px 22px 14px 40px;border-bottom:1px solid var(--line);font-weight:600}

/* "At a glance" infographic (About): key figures, then how we work in four stages. */
.section--cream{background:var(--cream)}
.figures{
  display:grid;grid-template-columns:repeat(var(--figures,5),minmax(0,1fr));
  margin:0 0 clamp(48px,6vw,80px);border-top:2px solid var(--navy);
}
.figure{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:26px 24px 6px 0;border-right:1px solid #1e276124}
.figure+.figure{padding-left:24px}
.figure:last-child{border-right:0}
.figure dd{margin:0;color:var(--navy);font-size:clamp(2.6rem,4.6vw,4rem);line-height:1;letter-spacing:-.05em}
.figure dt{margin-top:14px;color:var(--gold-deep);font-size:.74rem;font-weight:800;letter-spacing:.12em;line-height:1.45;text-transform:uppercase}
.flow{display:grid;grid-template-columns:repeat(var(--stages,4),minmax(0,1fr));gap:44px;margin:0;padding:0;list-style:none}
.flow-stage{position:relative;padding:28px 24px 30px;background:var(--white);border-top:3px solid var(--gold)}
.flow-stage h3{margin:0 0 22px;font-size:1.3rem;line-height:1.15;letter-spacing:-.03em}
.flow-n{display:block;margin-bottom:14px;color:var(--gold-deep);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.flow-list{display:grid;gap:0;margin:0;padding:0;list-style:none}
.flow-list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line);color:var(--navy);font-size:.95rem;font-weight:700}
.flow-list svg{flex:none;width:22px;height:22px;color:var(--gold)}
.flow-stage--hub{background:var(--navy);border-top-color:var(--gold-light)}
.flow-stage--hub h3{color:var(--white)}
.flow-stage--hub .flow-n{color:var(--gold-light)}
.flow-stage--hub .flow-list li{border-color:#ffffff2e;color:var(--white)}
.flow-stage--hub .flow-list li::before{content:"";flex:none;width:8px;height:8px;background:var(--gold-light)}
.journey{display:grid;gap:30px;margin:0;padding:0;list-style:none;counter-reset:journey}
.journey li{
  position:relative;padding:13px 16px;border:1px solid var(--line);background:var(--wash);
  color:var(--navy);font-weight:800;letter-spacing:.02em;counter-increment:journey;
}
.journey li::before{content:counter(journey,decimal-leading-zero);margin-right:12px;color:var(--gold-deep);font-size:.74rem;letter-spacing:.12em}
.journey li:not(:last-child)::after{
  content:"";position:absolute;left:50%;top:calc(100% + 9px);width:12px;height:12px;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:translateX(-50%) rotate(45deg);
}
.journey li:last-child{background:var(--navy);border-color:var(--navy);color:var(--white)}
.journey li:last-child::before{color:var(--gold-light)}
.flow-arrow{
  position:absolute;top:50%;right:-37px;z-index:1;display:grid;place-items:center;width:30px;height:30px;
  background:var(--gold);color:var(--white);transform:translateY(-50%);
}
.flow-arrow svg{width:16px;height:16px}
/* Gentle entrance when scrolled into view (site.js); everything is visible without JavaScript. */
.infographic.will-reveal .figure,.infographic.will-reveal .flow-stage{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.infographic.will-reveal.is-visible .figure,.infographic.will-reveal.is-visible .flow-stage{opacity:1;transform:none}
.infographic.is-visible .figure:nth-child(2),.infographic.is-visible .flow-stage:nth-child(2){transition-delay:.12s}
.infographic.is-visible .figure:nth-child(3),.infographic.is-visible .flow-stage:nth-child(3){transition-delay:.24s}
.infographic.is-visible .figure:nth-child(4),.infographic.is-visible .flow-stage:nth-child(4){transition-delay:.36s}
.infographic.is-visible .figure:nth-child(5){transition-delay:.48s}
@media(prefers-reduced-motion:reduce){.infographic.will-reveal .figure,.infographic.will-reveal .flow-stage{opacity:1;transform:none;transition:none}}
@media(max-width:1040px){
  .figures{grid-template-columns:repeat(3,minmax(0,1fr))}
  .figure:nth-child(3){border-right:0}
  .figure:nth-child(4){padding-left:0}
  .flow{grid-template-columns:minmax(0,1fr);gap:40px}
  .flow-arrow{top:auto;right:auto;bottom:-35px;left:50%;transform:translateX(-50%) rotate(90deg)}
}
@media(max-width:560px){
  .figures{grid-template-columns:repeat(2,minmax(0,1fr))}
  .figure,.figure+.figure{padding:22px 16px 4px 0;border-right:0}
  .figure:nth-child(even){padding-left:16px;border-left:1px solid #1e276124}
  .figure:nth-child(4){padding-left:16px}
  .figure:last-child{grid-column:1/-1}
}

/* Photo gallery (Gallery page): album filters, photo grid and the full-size viewer (site.js). */
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px}
.gallery-filters button{
  min-height:42px;padding:9px 16px;border:1px solid var(--line);background:var(--white);color:var(--navy);
  font:inherit;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,border-color .2s;
}
.gallery-filters button span{margin-left:6px;color:var(--gold-deep)}
.gallery-filters button:hover{border-color:var(--navy)}
.gallery-filters button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--white)}
.gallery-filters button[aria-pressed="true"] span{color:var(--gold-light)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0;padding:0;list-style:none}
.gallery-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.gallery-item[hidden]{display:none}
.gallery-item figure{margin:0}
.gallery-link{aspect-ratio:4/3;border-top:3px solid var(--gold)}
.gallery-link img{transition:transform .5s ease}
.gallery-link:hover img,.gallery-link:focus-visible img{transform:scale(1.04)}
.gallery-zoom{
  position:absolute;top:12px;right:12px;display:grid;place-items:center;width:38px;height:38px;
  background:var(--navy);color:var(--white);opacity:0;transition:opacity .2s;
}
.gallery-zoom svg{width:18px;height:18px}
.gallery-link:hover .gallery-zoom,.gallery-link:focus-visible .gallery-zoom{opacity:1}
.gallery-item figcaption{padding:12px 0 0;color:var(--muted);font-size:.9rem;line-height:1.5}
.gallery-empty{padding:28px;border:1px dashed var(--line);color:var(--muted);text-align:center}
.lightbox{
  width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;
  background:var(--deep);color:var(--white);
}
.lightbox::backdrop{background:#111842cc}
.lightbox[open]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr) auto;align-items:center}
.lightbox-top{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:16px clamp(16px,3vw,32px)}
.lightbox-count{color:var(--gold-light);font-size:.78rem;font-weight:800;letter-spacing:.14em}
.lightbox figure{grid-column:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;height:100%;margin:0}
.lightbox img{display:block;max-width:100%;max-height:calc(100vh - 190px);width:auto;height:auto;object-fit:contain;border-top:3px solid var(--gold)}
.lightbox figcaption{max-width:70ch;padding:16px 0 0;color:#ffffffd6;text-align:center;line-height:1.55}
.lightbox button{
  display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid #ffffff4d;
  background:transparent;color:var(--white);cursor:pointer;transition:background .2s,border-color .2s;
}
.lightbox button:hover,.lightbox button:focus-visible{background:var(--gold);border-color:var(--gold)}
.lightbox button svg{width:22px;height:22px}
.lightbox-prev{margin-left:clamp(10px,3vw,32px)}
.lightbox-next{margin-right:clamp(10px,3vw,32px)}
.lightbox-bottom{grid-column:1/-1;height:24px}
body.has-lightbox{overflow:hidden}
@media(max-width:1040px){.gallery-grid--4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:840px){.gallery-grid,.gallery-grid--4{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:560px){
  .gallery-grid,.gallery-grid--4{grid-template-columns:minmax(0,1fr)}
  .lightbox[open]{grid-template-columns:1fr 1fr;grid-template-rows:auto minmax(0,1fr) auto}
  .lightbox figure{grid-column:1/-1;grid-row:2;padding:0 12px}
  .lightbox-prev,.lightbox-next{grid-row:3;margin:14px 12px 24px}
  .lightbox-prev{justify-self:start}
  .lightbox-next{justify-self:end}
  .lightbox-bottom{display:none}
}

/* Optional metrics cookie: the choice banner and the footer's "Cookie settings" (site.js). */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;align-items:center;gap:24px;
  padding:18px var(--pad-x);background:var(--deep);color:#ffffffe0;border-top:3px solid var(--gold);
  box-shadow:0 -8px 30px #11184233;
}
.cookie-banner[hidden]{display:none}
.cookie-banner p{flex:1;margin:0;max-width:90ch;font-size:.92rem;line-height:1.6}
.cookie-banner a{color:var(--gold-light);font-weight:700}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px;flex:none}
.cookie-banner .btn{background:var(--gold-light);color:var(--deep)}
.cookie-banner .btn:hover{background:var(--white)}
.cookie-banner .btn--ghost{background:transparent;color:var(--white);border:1px solid #ffffff80}
.cookie-banner .btn--ghost:hover{background:var(--white);color:var(--deep)}
.footer-cookie-settings{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(max-width:720px){.cookie-banner{flex-direction:column;align-items:stretch;gap:14px}.cookie-actions .btn{flex:1}}

/* Enquiry form spam protection: trap fields kept off-screen (not display:none, which some bots
   check for) and out of the tab order; the optional CAPTCHA widget. */
.form-trap{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.form-captcha{min-height:65px}

/* CMS "Article with sidebar" (service pages, team profiles, stories) and FAQ topic headings:
   the spacing the original pages set inline. */
.detail-list-heading{margin:44px 0 4px}
.prose h3.prose-heading{margin:40px 0 16px}
.detail--single{grid-template-columns:minmax(0,1fr)}
.faq-topic{margin:48px 0 8px}

/* "Icon ring" section (About → Five ways of working): a half ring of icon segments, each with its text beside it. */
.ways-layout{display:grid;grid-template-columns:minmax(0,1fr) 720px;gap:clamp(32px,4vw,64px);align-items:center}
.ways-head h2{margin:0}
.ways-head p:not(.section-label){margin-top:22px;color:var(--muted);font-size:1.02rem;line-height:1.7;max-width:46ch}
.ways-stage{position:relative;width:720px;height:620px}
.ways-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ways{--ways-bg:var(--white)}
.ways.section--wash{--ways-bg:var(--wash)}
.ways.section--cream{--ways-bg:var(--cream)}
.ways-seg{fill:var(--navy);stroke:var(--ways-bg);stroke-width:8;stroke-linejoin:round}
.ways-lens,.ways-handle{fill:none;stroke:#d3dbe8;stroke-width:22}
.ways-handle{stroke-width:30;stroke-linecap:round}
.ways-list{margin:0;padding:0;list-style:none}
.ways-icon{position:absolute;left:var(--ix);top:var(--iy);display:grid;place-items:center;width:44px;height:44px;color:var(--white)}
.ways-icon svg{width:36px;height:36px}
.ways-text{position:absolute;left:var(--tx);top:var(--ty);width:340px;transform:translateY(-50%)}
.ways-item--up .ways-text{transform:translateY(-100%)}
.ways-item--down .ways-text{transform:none}
.ways-text h3{margin:0 0 4px;color:var(--navy);font-size:1.08rem;font-weight:800;line-height:1.25}
.ways-text p{margin:0;color:var(--ink);font-size:.95rem;line-height:1.5}
.ways-item:hover .ways-icon,.ways-item:focus-within .ways-icon{color:var(--gold-light)}
@media(max-width:1260px){.ways-layout{grid-template-columns:minmax(0,1fr)}.ways-stage{margin:0 auto}}
@media(max-width:840px){
  .ways-stage{width:auto;height:auto}
  .ways-ring{display:none}
  .ways-list{display:grid;gap:14px}
  .ways-item{display:flex;align-items:flex-start;gap:16px;padding:18px;background:var(--white);border-left:3px solid var(--gold)}
  .ways-icon,.ways-text{position:static;transform:none}
  .ways-item .ways-text{transform:none}
  .ways-icon{flex:none;width:52px;height:52px;background:var(--navy)}
  .ways-icon svg{width:30px;height:30px}
  .ways-text{width:auto}
}
