/*
Theme Name: UISCE
Theme URI: https://myuisce.org
Author: Flo Web Design
Author URI: https://flowebdesign.ie
Description: Custom theme for UISCE — the National Advocacy Service for People who use Drugs in Ireland. Built to replace the Divi build. All content is editable via ACF Pro.
Version: 1.26.1
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: uisce
*/

/* ============================================================
   Design tokens — values pulled from the live UISCE site
   (Divi global colours + module presets). Do not guess: these
   are the real brand values.
   ============================================================ */
:root{
  /* brand colours */
  --uisce-green:#69bf16;        /* global "Green" */
  --uisce-green-text:#6abf16;   /* inline highlight green */
  --uisce-green-bright:#99cc00; /* statement band highlight */
  --uisce-green-dark:#5aa513;
  --uisce-navy:#072130;
  --uisce-blue:#1575bf;         /* global "Blue" */
  --uisce-dark-green:#094223;   /* global "Dark Green" (advocacy band) */
  --uisce-ink:#1c2b33;
  --uisce-grey:#4a5a63;
  --uisce-line:#e4e8ea;
  --uisce-soft:#f8f8f8;
  --uisce-white:#ffffff;
  --uisce-darkgreen:#004E43;

  /* who-we-are overlay */
  --uisce-who-overlay:rgba(9,66,35,0.84);
  /* activities overlay */
  --uisce-act-overlay-1:rgba(7,33,48,0.68);
  --uisce-act-overlay-2:rgba(7,33,48,0.55);

  /* typography */
  --uisce-font-heading:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --uisce-font-body:"Work Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  /* layout widths (from Divi rows) */
  --uisce-w-content:1250px;   /* standard rows */
  --uisce-w-wide:1650px;      /* tiles / footer */
  --uisce-w-uwide:98%;      /* header */
  --uisce-w-narrow:710px;     /* headline copy */

  /* filters to recolour the dark-green PNG icons (from Divi customiser) */
  --uisce-filter-green:brightness(0) saturate(100%) invert(51%) sepia(88%) saturate(418%) hue-rotate(48deg) brightness(104%) contrast(96%);
  --uisce-filter-white:brightness(0) invert(1);
  --uisce-filter-navy:brightness(0) saturate(100%) invert(10%) sepia(29%) saturate(1500%) hue-rotate(158deg) brightness(95%) contrast(97%);
}


/* ============================================================
   UISCE — main stylesheet
   Ported from the live site's rendered output. Values (colours,
   fonts, widths, spacing) are the real ones, held as tokens in
   style.css :root.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
/* Smooth scrolling is motion too: honour the reduced-motion preference. */
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
body{
  margin:0;
  font-family:var(--uisce-font-body);
  color:var(--uisce-ink);
  background:var(--uisce-white);
  line-height:1.8;
  font-size:16px;
      font-weight: 500;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--uisce-blue);text-decoration:none;}
a:hover{text-decoration:underline;}

h1,h2,h3,h4,h5,h6{font-family:var(--uisce-font-heading);color:var(--uisce-navy);line-height:1.2;font-weight:700;margin:0 0 .5em;}
h2{font-size:56px;}
@media(max-width:980px){h2{font-size:32px;}}
@media(max-width:600px){h2{font-size:22px;}}
p{margin:0 0 1.1em;}

.wrap{max-width:var(--uisce-w-content);margin:0 auto;padding:0 26px;}
.wrap-wide{max-width:var(--uisce-w-wide);margin:0 auto;padding:0 26px;}

.hl-green{color:var(--uisce-green-text);}
.eyebrow{font-family:var(--uisce-font-body);text-transform:uppercase;letter-spacing:2px;font-size:.8rem;font-weight:600;color:var(--uisce-green-text);margin:0 0 .9em;display:block;}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden;}

.section{padding:76px 0;}
.section--soft{background:var(--uisce-soft);}
.section--tight{padding:52px 0;}
.section-head{max-width:900px;margin:0 auto 44px;text-align:center;}

/* ---------- Skip link ---------- */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--uisce-navy);color:#fff;padding:10px 18px;z-index:1000;}
.skip-link:focus{left:0;}

/* ============================================================
   Top bar
   ============================================================ */
.topbar{background:#fff;}
.topbar__contact{display:flex;gap:30px;}
.topbar__contact a{color:var(--uisce-green-text);font-weight:600;display:flex;align-items:center;gap:8px;}
.topbar__socials{display:flex;gap:8px;}
.topbar__socials a{width:30px;height:30px;border-radius:5px;background:var(--uisce-green);display:grid;place-items:center;}
.topbar__socials svg{width:15px;height:15px;fill:#fff;}
.topbar__socials a:hover{background:var(--uisce-green-dark);}

/* ============================================================
   Header / nav — one row, two columns (logo | right)
   ============================================================ */
.masthead{background:#fff;position:sticky;top:0;z-index:100;box-shadow:0 2px 14px rgba(7,33,48,.06);}
.masthead__in{max-width:var(--uisce-w-uwide);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 26px;gap:40px;}
.masthead__logo{flex:none;}
.masthead__right{flex:1;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.masthead__right .topbar{display:flex;align-items:center;justify-content:flex-end;gap:30px;font-size:.95rem;}
.masthead__bar{display:flex;align-items:center;gap:24px;}
.masthead__bar .primary-nav{display:flex;align-items:center;gap:24px;}
.header-search-btn{display:inline-flex;align-items:center;flex:none;}
.brand img{height:96px;width:auto;display:block;}
.primary-nav>ul{list-style:none;margin:0;padding:0;display:flex;gap:28px;align-items:center;}
.primary-nav li{position:relative;}
.primary-nav a{color:#000;font-family:var(--uisce-font-heading);font-weight:700;font-size:16px;display:inline-flex;align-items:center;gap:5px;}
.primary-nav a:hover{color:var(--uisce-green-text);text-decoration:none;}
.primary-nav .current-menu-item>a,.primary-nav .current_page_item>a{color:var(--uisce-green-text);}
.primary-nav .menu-item-has-children>a::after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--uisce-green-text);display:inline-block;margin-left:3px;transition:transform .2s;}
.primary-nav .sub-menu{position:absolute;top:100%;left:0;background:#fff;min-width:200px;box-shadow:0 12px 30px rgba(7,33,48,.14);border-radius:4px;padding:5px 0;list-style:none;margin:0;display:none;z-index:110;}
.primary-nav li:hover>.sub-menu{display:block;}
.primary-nav li:hover>a::after{transform:rotate(180deg);}
.primary-nav .sub-menu li{padding:0 5px;}
.primary-nav .sub-menu a{display:block;padding:8px 14px;font-size:17px;font-weight:500;width:100%;}
/* Was styling the magnifier SVG when .header-search sat on the icon itself.
   The class now belongs to the search panel, so the icon is styled via
   .header-search-btn svg further down. Leaving this in made the panel 20px wide. */
.header-search-btn svg{width:20px;height:20px;fill:var(--uisce-navy);cursor:pointer;}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:34px;height:34px;}
.nav-toggle span{display:block;height:3px;background:var(--uisce-navy);margin:5px 0;border-radius:2px;transition:.2s;}
@media(max-width:980px){
  .masthead__right{flex-direction:row;align-items:center;}
  .masthead__right .topbar{display:none;}
  .brand img{height:64px;}
  .primary-nav{position:fixed;inset:0 0 0 auto;width:min(320px,85vw);background:#fff;transform:translateX(100%);transition:transform .3s;padding:80px 24px;overflow:auto;box-shadow:-6px 0 30px rgba(0,0,0,.15);z-index:120;}
  .primary-nav.is-open{transform:translateX(0);}
  .primary-nav>ul{flex-direction:column;align-items:flex-start;gap:6px;}
  .primary-nav .sub-menu{position:static;display:block;box-shadow:none;padding:4px 0 4px 16px;min-width:0;}
  .primary-nav .menu-item-has-children>a::after{display:none;}
  .nav-toggle{display:block;}
}

/* ============================================================
   Hero tiles
   ============================================================ */
.hero-tiles{padding:80px 0 80px;background:var(--uisce-soft);}
.hero-tiles .wrap-wide{max-width:80%;}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
@media(max-width:760px){.tiles{grid-template-columns:1fr;}}
.tile{border-radius:30px;padding:40px;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content: center;gap:24px;text-align:center;text-decoration:none;transition:transform .18s,box-shadow .18s;}
.tile:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(7,33,48,.16);text-decoration:none;}
.tile h3{color:#fff;margin:0;font-size:27px;font-weight:500;font-family:var(--uisce-font-heading);}
.tile img{width:auto;}
.tile--green{background:var(--uisce-green);}
/*.tile--green h3{color:var(--uisce-navy);}*/
/*.tile--green img{filter:var(--uisce-filter-navy);}*/
.tile--navy{background:var(--uisce-navy);}
.tile--blue{background:var(--uisce-blue);}

/* ============================================================
   Headline + help prompts
   ============================================================ */
.headline{text-align:center;padding:60px 0;}
.headline__in{max-width:var(--uisce-w-narrow);margin:0 auto;}
.headline h2{font-size:45px;color:#000;margin-bottom:.35em;}
@media(max-width:980px){.headline h2{font-size:32px;}}
@media(max-width:600px){.headline h2{font-size:18px;}}
.headline__in p{font-size:16px;line-height:1.8;color:#666;margin:0;font-weight:500;}
.help-prompts{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:44px;text-align:left;}
@media(max-width:760px){.help-prompts{grid-template-columns:1fr;}}
.help-prompt{display:flex;gap:16px;align-items:flex-start;}
.help-prompt__icon{flex:none;margin-top:2px;}
.help-prompt__icon img{width:35px;
/*filter:var(--uisce-filter-green);*/
    
}
.help-prompt__title{font-family:var(--uisce-font-body);font-weight:500;text-transform:uppercase;color:var(--uisce-green-text);font-size:20px;letter-spacing:2px;line-height:1.2;margin:0 0 6px;}
.help-prompt__title a{color:inherit;}
.help-prompt__text{font-size:16px;line-height:1.6;color:#000; font-weight:500;margin:0;}
@media(max-width:980px){.help-prompt__title{font-size:16px;}}

/* ============================================================
   Who We Are
   ============================================================ */
.who{position:relative;color:#fff;background-size:cover;background-position:center;}
.who::before{content:"";position:absolute;inset:0;background:var(--uisce-who-overlay);}
.who .wrap{position:relative;}
.who__grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;}
@media(max-width:820px){.who__grid{grid-template-columns:1fr;}}
.who h2{color:#fff;font-size:56px;}
@media(max-width:980px){.who h2{font-size:32px;}}
.who p{color:#fff;font-size:16px;line-height:1.8;}
.who__tiles{display:grid;gap:20px;max-width:300px;}
.who__tiles .tile{min-height:130px;padding:27px 35px;gap:12px;border-radius:30px;}
.who__tiles .tile img{height:86px;}
.who__tiles .tile h3{font-size:23px;}
.who__opts{margin:8px 0 20px;}
.who__opt{display:flex;align-items:center;gap:12px;margin:12px 0;font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:2px;}
.who__opt img{height:22px;width:22px;filter:var(--uisce-filter-white);}

/* ============================================================
   Buttons
   ============================================================ */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--uisce-font-body);font-weight:600;font-size:15px;padding:16px 30px;border-radius:8px;border:0;cursor:pointer;text-transform:uppercase;letter-spacing:2px;line-height:1;transition:background .2s;}
.btn:hover{text-decoration:none;}
.btn--green{background:var(--uisce-green);color:#fff;}
.btn--green:hover{background:var(--uisce-green-dark);color:#fff;}
.btn--outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6);}
.btn--outline:hover{background:rgba(255,255,255,.12);}

/* ============================================================
   Our Activities
   ============================================================ */
.activities{position:relative;background-size:cover;background-position:center;background-attachment:fixed;}
.activities::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--uisce-act-overlay-1),var(--uisce-act-overlay-2));}
.activities .wrap{position:relative;}
.activities h2{color:#fff;font-size: 56px;}
.activities__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:900px;margin:0 auto;}
@media(max-width:760px){.activities__grid{grid-template-columns:1fr 1fr;}}
.activity{background:#fff;border-radius:8px;padding:34px 22px;text-align:center;text-decoration:none;transition:background .2s;}
.activity img{height:46px;width:auto;margin:0 auto 14px;filter:var(--uisce-filter-green);transition:filter .2s;}
.activity__name{display:block;font-family:var(--uisce-font-body);font-weight:500;color:var(--uisce-darkgreen);font-size:1rem;transition:color .2s;}
.activity:hover{background:var(--uisce-green);text-decoration:none;}
.activity:hover img{filter:var(--uisce-filter-white);}
.activity:hover .activity__name{color:#fff;}

/* ============================================================
   Blog / news cards
   ============================================================ */
   .homenews{background:#f8f8f8;}
/* Card styles moved to the News section at the end of this file (v1.4). */

/* ============================================================
   Video / campaign
   ============================================================ */
.video-embed{max-width:840px;margin:0 auto;aspect-ratio:16/9;border-radius:6px;overflow:hidden;position:relative;background:linear-gradient(160deg,var(--uisce-navy),var(--uisce-blue));}
.video-embed iframe{width:100%;height:100%;border:0;display:block;}
.video-embed__placeholder{width:100%;height:100%;display:grid;place-items:center;cursor:pointer;}
.video-embed__placeholder::after{content:"▶";width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--uisce-navy);display:grid;place-items:center;font-size:1.2rem;padding-left:4px;}

/* ============================================================
   Statement band
   ============================================================ */
.statement{background:var(--uisce-navy);color:#fff;text-align:center;padding:56px 26px;}
.statement p{margin:0;font-family:var(--uisce-font-body);font-weight:600;font-size:42px;line-height:1.2;}
@media(max-width:980px){.statement p{font-size:26px;}}
@media(max-width:600px){.statement p{font-size:18px;}}
.statement .hl{color:var(--uisce-green-bright);}

/* ============================================================
   Stats (map background, 10vw padding)
   ============================================================ */
.stats-band{background-size:cover;background-position:center;background-attachment:fixed;padding:10vw 0;}
.stats-band__head{max-width:900px;margin:0 auto 60px;text-align:center;}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;text-align:center;max-width:var(--uisce-w-content);margin:0 auto;padding:0 26px;}
@media(max-width:700px){.stats{grid-template-columns:1fr;gap:36px;}}
.stat {padding-left: 30px;}
.stat__num{font-family:var(--uisce-font-heading);font-weight:700;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1;color:var(--uisce-green);text-align:left;}
.stat:nth-child(2) .stat__num{color:var(--uisce-blue);}
.stat__label{margin-top:8px;font-size:16px;letter-spacing:1px;text-transform:uppercase;color:var(--uisce-darkgreen);text-align: left;letter-spacing: 2px;line-height: 1.4em;}

/* ============================================================
   Advocacy band (stacked, 2 rows full width)
   ============================================================ */
.advocacy{background:var(--uisce-dark-green);color:#fff;}
.advocacy__grid{display:grid;grid-template-columns:1fr;gap:0;max-width:var(--uisce-w-content);margin:0 auto;}
.advocacy__left{padding:76px 26px 40px;}
.advocacy__left h2{color:#fff;font-size:56px;text-align:left;margin-bottom:.3em;}
@media(max-width:980px){.advocacy__left h2{font-size:32px;}}
.advocacy__left p{color:#fff;font-size:16px;line-height:1.8;max-width:720px;}
.advocacy__right{position:relative;padding:0 26px 76px; display: flex;align-items: flex-start;justify-content: space-between;}
.advocacy__right a.btn.btn--green {margin-top: 100px;}
.advocacy__card{display:grid;grid-template-columns:1fr 1fr;max-width: 62%;}
.advocacy__stats{background:#f5f7f5;padding:40px 34px;position:relative;z-index:2;margin-top:30px;}
.advocacy__stat{margin-bottom:22px;}
.advocacy__stat:last-child{margin-bottom:0;}
.advocacy__stat .n{font-family:var(--uisce-font-heading);font-weight:700;font-size:2.6rem;line-height:1;}
.advocacy__stat:nth-child(1) .n{color:var(--uisce-green-dark);}
.advocacy__stat:nth-child(2) .n{color:var(--uisce-blue);}
.advocacy__stat:nth-child(3) .n{color:var(--uisce-green-dark);}
.advocacy__stat .l{font-size:16px;letter-spacing:1.5px;text-transform:uppercase;color:var(--uisce-darkgreen);margin-top:6px;font-weight:500;}
.advocacy__photo{background-size:cover;background-position:center;min-height:320px;}
@media(max-width:820px){.advocacy__card{grid-template-columns:1fr;}.advocacy__photo{min-height:220px;}}

/* ============================================================
   Social feeds
   ============================================================ */
.social-feeds{text-align:center;}

/* ============================================================
   Footer
   ============================================================ */
.footer{background:var(--uisce-navy);color:rgba(255,255,255,.8);padding:60px 0 28px;}
.footer__helpline{font-family:var(--uisce-font-heading);}
.footer__helpline .num{color:var(--uisce-green);font-size:2.9rem;font-weight:700;}
.footer__grid{display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;gap:34px;margin-top:34px;}
@media(max-width:820px){.footer__grid{grid-template-columns:1fr 1fr;}}
.footer h4{color:#fff;font-size:1.4rem;margin-bottom:14px;}
.footer a{color:rgba(255,255,255,.8);}
.footer a:hover{color:var(--uisce-green);}
.footer ul{list-style:none;padding:0;margin:0;}
.footer li{margin-bottom:8px;font-size:18px;}
.footer__socials{display:flex;gap:12px;margin-top:20px;}
.footer__socials a{width:34px;height:34px;border-radius:8px;background:rgba(255,255,255,.1);display:grid;place-items:center;}
.footer__socials svg{width:16px;height:16px;fill:#fff;}
.footer__socials a:hover{background:var(--uisce-green);}
.footer__hse{margin-top:10px;max-width:250px;}
.footer__base{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px;font-size:.85rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}

/* ============================================================
   Crisis help FAB + callback modal
   ============================================================ */
.help-fab{position:fixed;right:22px;bottom:22px;z-index:200;background:var(--uisce-green);color:#fff;font-family:var(--uisce-font-heading);font-weight:700;font-size:.92rem;padding:14px 22px;border-radius:40px;border:0;cursor:pointer;box-shadow:0 10px 26px rgba(7,33,48,.28);}
.help-fab:hover{background:var(--uisce-green-dark);}
.modal-backdrop{position:fixed;inset:0;background:rgba(7,33,48,.55);display:none;place-items:center;z-index:300;padding:20px;}
.modal-backdrop.is-open{display:grid;}
.modal{background:#fff;border-radius:16px;max-width:520px;width:100%;padding:30px 32px;max-height:90vh;overflow:auto;}
.modal h2{font-size:1.5rem;}
.modal__close{float:right;border:0;background:none;font-size:1.6rem;cursor:pointer;color:var(--uisce-grey);line-height:1;}
.modal .field{margin-bottom:16px;}
.modal label{display:block;font-family:var(--uisce-font-heading);font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--uisce-navy);}
.modal input,.modal textarea,.modal select{width:100%;padding:12px 14px;border:1px solid var(--uisce-line);border-radius:10px;font-family:var(--uisce-font-body);font-size:1rem;background:var(--uisce-soft);}

/* ============================================================
   Generic page + post
   ============================================================ */
.page-hero{position:relative;color:#fff;background:var(--uisce-navy);padding:78px 0 82px;background-size:cover;background-position:center;}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,33,48,.86),rgba(7,33,48,.5));}
.page-hero .wrap{position:relative;}
.page-hero h1{color:#fff;}
.page-hero__crumbs{font-size:.85rem;color:rgba(255,255,255,.7);margin-bottom:18px;}
.page-hero__crumbs a{color:rgba(255,255,255,.7);}
.entry-content{padding:60px 0;}
.entry-content .wrap{max-width:820px;}

/* ============================================================
   Flexible page blocks (Activities etc.)
   ============================================================ */

/* Band backgrounds + auto light text on dark bands */
.band--navy{background:var(--uisce-navy);color:#fff;}
.band--green{background:var(--uisce-dark-green);color:#fff;}
.band--darkgreen{background:var(--uisce-darkgreen);color:#fff;}
.band--navy h1,.band--navy h2,.band--navy h3,.band--navy h4,
.band--green h1,.band--green h2,.band--green h3,.band--green h4,
.band--darkgreen h1,.band--darkgreen h2,.band--darkgreen h3,.band--darkgreen h4{color:#fff;}
.band--navy p,.band--green p,.band--darkgreen p{color:rgba(255,255,255,.92);}
.band--navy .eyebrow,.band--green .eyebrow,.band--darkgreen .eyebrow{color:var(--uisce-green-bright);}
/* Underline links in running text on dark bands, but not links that are whole
   components (a cover image, a chip, a card). text-decoration propagates to
   descendants and cannot be removed further down the tree, so a component link
   has to be excluded here rather than fixed inside itself. */
.band--navy a:not(.btn):not(.uisce-complink),
.band--green a:not(.btn):not(.uisce-complink),
.band--darkgreen a:not(.btn):not(.uisce-complink){color:#fff;text-decoration:underline;}

/* Text block */
.textblock__body--center{max-width:820px;margin:0 auto;text-align:center;}
.textblock__body--center .eyebrow{display:block;}
.textblock{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;}
.textblock--imgleft .textblock__media{order:0;}
.textblock--imgleft .textblock__body{order:1;}
.textblock--imgright .textblock__media{order:1;}
.textblock--imgright .textblock__body{order:0;}
.textblock__media img{width:100%;border-radius:14px;display:block;}
.textblock__body h2{margin-bottom:.4em;}
.textblock .btn,.textblock__body--center .btn{margin-top:10px;}
@media(max-width:820px){.textblock{grid-template-columns:1fr;gap:28px;}}

/* Stats block */
.block-stats__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:30px;text-align:center;max-width:var(--uisce-w-content);margin:0 auto;}
.block-stat__num{font-family:var(--uisce-font-heading);font-weight:700;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1;color:var(--uisce-green);}
.band--navy .block-stat__num,.band--green .block-stat__num,.band--darkgreen .block-stat__num{color:var(--uisce-green-bright);}
.block-stat__label{margin-top:8px;font-size:16px;letter-spacing:2px;text-transform:uppercase;color:var(--uisce-darkgreen);line-height:1.4em;}
.band--navy .block-stat__label,.band--green .block-stat__label,.band--darkgreen .block-stat__label{color:rgba(255,255,255,.85);}

/* Pull quote */
.block-quote .pullquote{max-width:900px;margin:0 auto;text-align:center;}
.block-quote .pullquote p{font-family:var(--uisce-font-heading);font-weight:600;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.35;margin:0 0 .5em;}
.pullquote__cite{display:block;font-family:var(--uisce-font-body);font-style:normal;font-weight:600;font-size:1rem;letter-spacing:1px;text-transform:uppercase;color:var(--uisce-green-text);}
.band--navy .pullquote__cite,.band--green .pullquote__cite,.band--darkgreen .pullquote__cite{color:var(--uisce-green-bright);}

/* Cards */
.block-cards__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;}
.info-card{background:#fff;border:1px solid var(--uisce-line);border-radius:14px;padding:30px;}
.band--navy .info-card,.band--green .info-card,.band--darkgreen .info-card{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.06);}
.info-card__icon img{height:56px;width:auto;margin-bottom:14px;filter:var(--uisce-filter-green);}
.info-card__title{font-size:1.25rem;margin-bottom:.4em;}
.band--navy .info-card__title,.band--green .info-card__title,.band--darkgreen .info-card__title{color:#fff;}
.info-card__text{color:var(--uisce-grey);font-size:.98rem;line-height:1.7;}
.band--navy .info-card__text,.band--green .info-card__text,.band--darkgreen .info-card__text{color:rgba(255,255,255,.85);}

/* CTA */
.block-cta__inner{max-width:760px;margin:0 auto;text-align:center;}
.block-cta__inner .btn{margin-top:12px;}

/* Page hero subtitle (used by flexible + normal pages) */
.page-hero__subtitle{color:var(--uisce-green);font-style:italic;font-size:1.2rem;margin-top:6px;}
.band--navy.page-hero .page-hero__subtitle{color:var(--uisce-green-bright);}

/* ============================================================
   Activities redesign — green palette, no navy, modern cards
   ============================================================ */

/* Green hero for flexible/activity pages */
.page-hero--green{background:linear-gradient(120deg,var(--uisce-dark-green),#0a5a3a);color:#fff;padding:96px 0 100px;}
.page-hero--green::before{display:none;}
.page-hero--green h1{color:#fff;font-size:56px;}
.page-hero--green .page-hero__subtitle{color:var(--uisce-green-bright);}
.page-hero--green .page-hero__crumbs,.page-hero--green .page-hero__crumbs a{color:rgba(255,255,255,.75);}
@media(max-width:900px){.page-hero--green h1{font-size:34px;}}

/* Feature cards (YAP-style icon grid) */
.block-features .feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px;}
.feature-card{background:#fff;border-radius:18px;padding:38px 30px;text-align:center;box-shadow:0 10px 30px rgba(7,33,48,.06);transition:transform .2s,box-shadow .2s;border:1px solid var(--uisce-line);text-decoration:none;display:block;}
.feature-card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(9,66,35,.16);text-decoration:none;}
.feature-card__icon{width:88px;height:88px;border-radius:50%;background:var(--uisce-green);display:grid;place-items:center;margin:0 auto 20px;transition:background .2s;}
.feature-card__icon img{height:44px;width:auto;filter:var(--uisce-filter-white);}
.feature-card:hover .feature-card__icon{background:var(--uisce-dark-green);}
.feature-card h3{font-size:1.35rem;margin-bottom:.4em;color:var(--uisce-navy);}
.feature-card__text{color:var(--uisce-grey);font-size:.98rem;line-height:1.7;}
.feature-card .more{display:inline-block;margin-top:14px;color:var(--uisce-green-text);font-weight:600;text-transform:uppercase;letter-spacing:1px;font-size:.85rem;}
/* on dark bands, cards get a subtle glass look */
.band--darkgreen .feature-card,.band--green .feature-card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15);}
.band--darkgreen .feature-card h3,.band--green .feature-card h3{color:#fff;}
.band--darkgreen .feature-card__text,.band--green .feature-card__text{color:rgba(255,255,255,.85);}

/* Stats band — bigger, count-up friendly, dark-green default in activities */
.block-stats.band--darkgreen{background:var(--uisce-dark-green);padding:80px 0;}
.block-stats.band--darkgreen .block-stat__num{color:var(--uisce-green-bright);font-size:clamp(3rem,6vw,4.5rem);}
.block-stats.band--darkgreen .block-stat__label{color:rgba(255,255,255,.85);}

/* Recolour any remaining activity-context quote greens (no navy) */
.block-quote.band--green{background:var(--uisce-dark-green);}

/* ============================================================
   v1.2 — Flexible block styling
   Scoped to .uisce-block, the class carried by every flexible-content
   block section. Scoping to the block rather than to a page template
   means the same blocks look identical wherever they are used (the
   Activities pages, the Contact template, anything future), while the
   home page and normal pages are untouched.
   ============================================================ */
:root{
  --uisce-icon-soft:rgba(105,191,22,.12);
}

/* --- Section pacing: three sizes instead of one uniform 76px --- */
.uisce-block.section{padding:88px 0;}
.uisce-block.block-text{padding:104px 0;}
.uisce-block.section--tight{padding:66px 0;}

/* --- Hero: split layout with standfirst --------------------
   Unscoped on purpose: shared by the Activities flexible template, the News
   listing, category archives, single posts and search results. Only heroes
   carrying .page-hero--green pick these up. */
.page-hero--green{
  background:radial-gradient(120% 140% at 12% 0%,#0d6b45 0%,var(--uisce-dark-green) 55%,#06301c 100%);
  padding:0;overflow:hidden;position:relative;background-size:cover;background-position:center;
}
.hero-split{
  display:grid;grid-template-columns:1fr;gap:60px;align-items:center;padding:78px 0 86px;
}
.page-hero--split .hero-split{grid-template-columns:1.05fr .95fr;}
.page-hero__crumbs{
  font-size:.78rem;letter-spacing:2px;text-transform:uppercase;font-weight:600;
  color:rgba(255,255,255,.6);margin-bottom:22px;
}
.page-hero--green h1{
  font-size:clamp(2.4rem,4.6vw,3.7rem);line-height:1.05;letter-spacing:-.5px;margin:0;
}
.hero-rule{
  width:64px;height:4px;background:var(--uisce-green-bright);border-radius:2px;margin:26px 0 22px;
}
.hero-standfirst{
  font-style:normal;font-size:1.16rem;line-height:1.65;color:rgba(255,255,255,.88);
  max-width:46ch;margin:0;
}
.hero-media{position:relative;}
.hero-media img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:20px;display:block;
  box-shadow:0 30px 60px rgba(0,0,0,.32);
}
.hero-media__tag{
  position:absolute;left:-14px;bottom:26px;background:var(--uisce-green);color:#fff;
  font-weight:600;font-size:.82rem;letter-spacing:1.5px;text-transform:uppercase;
  padding:13px 20px;border-radius:10px;box-shadow:0 12px 26px rgba(0,0,0,.22);
}
@media(max-width:900px){
  .page-hero--split .hero-split{grid-template-columns:1fr;}
  .hero-split{gap:34px;padding:56px 0 60px;}
  .hero-media__tag{left:12px;}
}

/* --- Editorial text block: heading left, prose right ------- */
.uisce-block .textblock--editorial{
  display:grid;grid-template-columns:.72fr 1.28fr;gap:64px;align-items:start;text-align:left;
}
.uisce-block .textblock--editorial h2{
  font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.15;margin:0;letter-spacing:-.3px;
}
.uisce-block .textblock__prose p{
  font-size:1.08rem;line-height:1.78;color:var(--uisce-grey);margin:0 0 1.1em;
}
.uisce-block .textblock__prose p:first-child{
  font-size:1.24rem;line-height:1.62;color:var(--uisce-ink);
}
.uisce-block .textblock__prose p:last-child{margin-bottom:0;}
.uisce-block.band--green .textblock__prose p,
.uisce-block.band--darkgreen .textblock__prose p{color:rgba(255,255,255,.9);}
@media(max-width:900px){
.uisce-block .textblock--editorial{grid-template-columns:1fr;gap:22px;}
}

/* --- Section heads: left aligned --------------------------- */
.uisce-block .section-head{max-width:640px;margin:0 0 48px;text-align:left;}
.uisce-block .section-head h2{font-size:clamp(1.7rem,2.8vw,2.3rem);line-height:1.18;margin:0;}

/* --- Feature cards: inline SVG icon, left aligned ---------- */
.uisce-block .feature-grid{gap:22px;}
.uisce-block .feature-card{
  text-align:left;padding:34px 30px 32px;border-radius:16px;
  border:1px solid var(--uisce-line);box-shadow:none;position:relative;overflow:hidden;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.uisce-block .feature-card::after{
  content:"";position:absolute;left:0;top:0;height:3px;width:0;
  background:var(--uisce-green);transition:width .3s ease;
}
.uisce-block .feature-card:hover{
  transform:translateY(-4px);border-color:transparent;box-shadow:0 18px 40px rgba(9,66,35,.13);
}
.uisce-block .feature-card:hover::after{width:100%;}
.uisce-block .feature-card__icon{
  width:58px;height:58px;border-radius:14px;margin:0 0 20px;background:var(--uisce-icon-soft);
  display:grid;place-items:center;color:var(--uisce-dark-green);
  transition:background .22s ease,color .22s ease;
}
.uisce-block .feature-card__icon svg{width:28px;height:28px;}
.uisce-block .feature-card__icon img{height:28px;width:auto;filter:var(--uisce-filter-green);}
.uisce-block .feature-card:hover .feature-card__icon{background:var(--uisce-green);color:#fff;}
.uisce-block .feature-card h3{font-size:1.18rem;line-height:1.3;margin-bottom:.5em;}
.uisce-block .feature-card__text{font-size:.96rem;line-height:1.72;}
.uisce-block.band--green .feature-card__icon,
.uisce-block.band--darkgreen .feature-card__icon{background:rgba(255,255,255,.12);color:#fff;}

/* --- Info cards: same icon treatment ---------------------- */
.uisce-block .info-card__icon{
  width:52px;height:52px;border-radius:13px;margin-bottom:18px;background:var(--uisce-icon-soft);
  display:grid;place-items:center;color:var(--uisce-dark-green);
}
.uisce-block .info-card__icon svg{width:25px;height:25px;}
.uisce-block .info-card__icon img{height:25px;width:auto;margin:0;}

/* --- Stats band: texture, boxed figures ------------------- */
.uisce-block.block-stats.band--darkgreen{
  position:relative;padding:96px 0;background:var(--uisce-dark-green);overflow:hidden;
}
.uisce-block.block-stats.band--darkgreen::before{
  content:"";position:absolute;inset:0;opacity:.07;
  background-image:url(assets/images/bg-map.png);
  background-repeat:no-repeat;background-position:center;background-size:cover;
}
.uisce-block.block-stats .wrap{position:relative;z-index:1;}
.uisce-block .block-stats__grid{gap:20px;text-align:left;}
.uisce-block .block-stat{
  padding:26px 24px 24px;border-radius:14px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
}
.uisce-block .block-stat__num{font-size:clamp(2.8rem,5.4vw,4rem);letter-spacing:-1px;}
.uisce-block .block-stat__label{
  font-size:.84rem;letter-spacing:1.1px;margin-top:10px;max-width:26ch;
}

/* --- Pull quote: big mark, optional photo ----------------- */
.uisce-block.block-quote.band--green{background:var(--uisce-darkgreen);}
.uisce-block .quote-split{display:grid;grid-template-columns:1fr;gap:56px;align-items:center;}
.uisce-block.block-quote--split .quote-split{grid-template-columns:.85fr 1.15fr;}
.uisce-block .quote-split__media img{
  width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:18px;display:block;
}
.uisce-block.block-quote .pullquote{
  max-width:900px;margin:0;text-align:left;position:relative;padding-top:6px;
}
.uisce-block.block-quote .pullquote::before{
  content:"\201C";position:absolute;left:-6px;top:-46px;
  font-family:var(--uisce-font-heading);font-size:8rem;line-height:1;
  color:var(--uisce-green-bright);opacity:.28;
}
.uisce-block.block-quote .pullquote p{
  font-size:clamp(1.3rem,2.2vw,1.75rem);line-height:1.42;font-weight:500;
}
.uisce-block .pullquote__cite{
  margin-top:14px;padding-left:44px;position:relative;letter-spacing:1.6px;font-size:.86rem;
}
.uisce-block .pullquote__cite::before{
  content:"";position:absolute;left:0;top:50%;width:30px;height:2px;background:var(--uisce-green-bright);
}
@media(max-width:900px){
.uisce-block.block-quote--split .quote-split{grid-template-columns:1fr;gap:30px;}
.uisce-block.block-quote .pullquote::before{top:-38px;font-size:6rem;}
}

/* --- Related activities strip ----------------------------- */
.uisce-block .actstrip__head{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  margin-bottom:32px;flex-wrap:wrap;
}
.uisce-block .actstrip__head h2{font-size:1.55rem;margin:0;}
.uisce-block .actstrip__all{
  font-weight:600;font-size:.84rem;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--uisce-green-text);text-decoration:none;
}
.uisce-block .actstrip__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:14px;
}
.uisce-block .act-chip{
  display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--uisce-line);
  border-radius:12px;padding:17px 18px;text-decoration:none;
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.uisce-block .act-chip:hover{
  border-color:var(--uisce-green);transform:translateY(-3px);
  box-shadow:0 12px 26px rgba(9,66,35,.1);text-decoration:none;
}
.uisce-block .act-chip__icon{
  color:var(--uisce-green-dark);display:grid;place-items:center;flex:0 0 auto;
}
.uisce-block .act-chip__icon svg{width:24px;height:24px;}
.uisce-block .act-chip__label{
  font-family:var(--uisce-font-heading);font-weight:600;font-size:.97rem;
  color:var(--uisce-navy);line-height:1.25;
}

/* --- CTA: inset panel rather than a full-bleed slab ------- */
.uisce-block .block-cta__inner{
  max-width:none;margin:0;text-align:left;
  background:linear-gradient(115deg,var(--uisce-dark-green),#0b5e3c);
  border-radius:22px;padding:54px 56px;
  display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;
}
@media(max-width:820px){
.uisce-block .block-cta__inner{grid-template-columns:1fr;padding:38px 28px;gap:26px;}
}

/* --- Text + image block: match the editorial type scale ---- */
.uisce-block .textblock--imgright h2,
.uisce-block .textblock--imgleft h2{
  font-size:clamp(1.6rem,2.6vw,2.15rem);line-height:1.18;letter-spacing:-.2px;
}
.uisce-block .textblock__body p{
  font-size:1.06rem;line-height:1.76;color:var(--uisce-grey);margin:0 0 1.05em;
}
.uisce-block .textblock__body p:first-of-type{
  font-size:1.16rem;line-height:1.62;color:var(--uisce-ink);
}
.uisce-block .textblock__body p:last-of-type{margin-bottom:0;}
.uisce-block .textblock{gap:60px;}

/* --- Cards grid: columns follow the item count so text stays readable --- */
.uisce-block .block-cards__grid{
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;
}
@media(min-width:901px){
  /* two and four items read far better in two wide columns than four narrow ones */
.uisce-block.block-cards--2 .block-cards__grid,
.uisce-block.block-cards--4 .block-cards__grid{
    grid-template-columns:repeat(2,1fr);
  }
}
.uisce-block .info-card{padding:34px 32px;border-radius:16px;}
.uisce-block .info-card__text p{margin:0 0 .9em;}
.uisce-block .info-card__text p:last-child{margin-bottom:0;}

/* ============================================================
   v1.3 — background images, card hover, CTA bands, breadcrumbs
   ============================================================ */

/* --- Sections with a background image ---------------------- */
/* The colour comes from the band, applied as a gradient overlay in an inline
   style (layered above the photo), so no pseudo-element is needed and nothing
   collides with the stats band's map texture. */
.has-bgimage{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:scroll;
}
.uisce-block.has-bgimage{padding-top:104px;padding-bottom:104px;}
.uisce-block.section--tight.has-bgimage{padding-top:76px;padding-bottom:76px;}
/* Suppress the decorative map texture when a real photo is behind the stats. */
.uisce-block.block-stats.has-bgimage::before{display:none;}
/* Cards and feature cards need a solid surface to stay legible over a photo. */
.uisce-block.has-bgimage .info-card,
.uisce-block.has-bgimage .feature-card{
  background:#fff;border-color:rgba(255,255,255,.6);
  box-shadow:0 14px 34px rgba(7,33,48,.16);
}
.uisce-block.has-bgimage .info-card__title,
.uisce-block.has-bgimage .feature-card h3{color:var(--uisce-navy);}
.uisce-block.has-bgimage .info-card__text,
.uisce-block.has-bgimage .info-card__text p,
.uisce-block.has-bgimage .feature-card__text,
.uisce-block.has-bgimage .feature-card__text p{color:var(--uisce-grey);}
.uisce-block.has-bgimage .info-card__icon,
.uisce-block.has-bgimage .feature-card__icon{
  background:var(--uisce-icon-soft);color:var(--uisce-dark-green);
}
/* A photo behind a light band still needs dark text to hold up. */
.uisce-block.has-bgimage.section--soft .textblock__prose p,
.uisce-block.has-bgimage.section--soft .textblock__body p{color:var(--uisce-ink);}

/* --- Cards: the hover treatment the feature cards already had --- */
.uisce-block .info-card{
  position:relative;overflow:hidden;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.uisce-block .info-card::after{
  content:"";position:absolute;left:0;top:0;height:3px;width:0;
  background:var(--uisce-green);transition:width .3s ease;
}
.uisce-block .info-card:hover{
  transform:translateY(-4px);border-color:transparent;
  box-shadow:0 18px 40px rgba(9,66,35,.13);
}
.uisce-block .info-card:hover::after{width:100%;}
/* On dark bands the lift needs a lighter edge to read at all. */
.uisce-block.band--green .info-card:hover,
.uisce-block.band--darkgreen .info-card:hover,
.uisce-block.band--navy .info-card:hover{
  background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.28);
  box-shadow:0 18px 40px rgba(0,0,0,.22);
}

/* --- CTA: band + image now apply to the panel, with top padding --- */
.uisce-block.block-cta{background:transparent;padding:116px 0 104px;}
.uisce-block .block-cta__inner{
  max-width:none;margin:0;text-align:left;border-radius:22px;padding:54px 56px;
  display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;
  background:linear-gradient(115deg,var(--uisce-dark-green),#0b5e3c);
}
.uisce-block .block-cta__inner.band--green{
  background:linear-gradient(115deg,var(--uisce-dark-green),#0b5e3c);
}
.uisce-block .block-cta__inner.band--darkgreen{
  background:linear-gradient(115deg,var(--uisce-darkgreen),#0a6b5c);
}
.uisce-block .block-cta__inner.band--navy{
  background:linear-gradient(115deg,var(--uisce-navy),#0e3c55);
}
.uisce-block .block-cta__inner--plain,
.uisce-block .block-cta__inner.section--soft{
  background:var(--uisce-soft);border:1px solid var(--uisce-line);
}
.uisce-block .block-cta__inner.block-cta__inner--plain h2,
.uisce-block .block-cta__inner.section--soft h2{color:var(--uisce-navy);}
.uisce-block .block-cta__inner.block-cta__inner--plain p,
.uisce-block .block-cta__inner.section--soft p{color:var(--uisce-grey);}
.uisce-block .block-cta__inner.block-cta__inner--plain .btn,
.uisce-block .block-cta__inner.section--soft .btn{
  background:var(--uisce-green);color:#fff;
}
.uisce-block .block-cta__inner.block-cta__inner--plain .btn:hover,
.uisce-block .block-cta__inner.section--soft .btn:hover{
  background:var(--uisce-green-dark);color:#fff;
}
.uisce-block .block-cta__inner.has-bgimage{padding:60px 56px;}
.uisce-block .block-cta__inner h2{
  color:#fff;font-size:clamp(1.6rem,2.6vw,2.15rem);margin:0 0 .45em;
}
.uisce-block .block-cta__inner p{color:rgba(255,255,255,.86);margin:0;max-width:52ch;}
.uisce-block .block-cta__inner .btn{
  margin:0;background:var(--uisce-green-bright);color:var(--uisce-dark-green);white-space:nowrap;
}
.uisce-block .block-cta__inner .btn:hover{background:#fff;color:var(--uisce-dark-green);}
@media(max-width:820px){
.uisce-block.block-cta{padding:80px 0 72px;}
.uisce-block .block-cta__inner{grid-template-columns:1fr;padding:38px 28px;gap:26px;}
}

/* --- Breadcrumbs (theme fallback when Yoast is off) -------- */
.page-hero__crumbs .crumb-sep{margin:0 9px;opacity:.55;}
.page-hero__crumbs a{text-decoration:none;}
.page-hero__crumbs a:hover{text-decoration:underline;}
.uisce-block .page-hero__crumbs a{color:rgba(255,255,255,.78);}
.uisce-block .page-hero__crumbs span[aria-current]{color:var(--uisce-green-bright);}

/* Over a photo the card keeps its solid surface on hover — the dark-band hover
   rule above would otherwise turn it translucent and lose the text. */
.uisce-block.has-bgimage .info-card:hover,
.uisce-block.has-bgimage .feature-card:hover{
  background:#fff;border-color:transparent;
  box-shadow:0 20px 44px rgba(7,33,48,.24);
}

/* ============================================================
   v1.4 — News: listing, archives, single post, search
   Card design follows the Activities language: 16px radius,
   lift on hover, green rule drawing across the top.
   ============================================================ */

/* --- Grid ------------------------------------------------- */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.news-grid--2{grid-template-columns:repeat(2,1fr);}
.news-grid--3{grid-template-columns:repeat(3,1fr);}
.news-grid--4{grid-template-columns:repeat(4,1fr);}
@media(max-width:980px){
  .news-grid,.news-grid--3{grid-template-columns:repeat(2,1fr);gap:20px;}
}
@media(max-width:600px){
  .news-grid,.news-grid--2,.news-grid--3{grid-template-columns:1fr;}
}

/* --- Card ------------------------------------------------- */
.news-card{
  border:1px solid var(--uisce-line);border-radius:16px;overflow:hidden;background:#fff;
  display:flex;flex-direction:column;position:relative;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.home .news-card{border-radius:0;}
.news-card::after{
  content:"";position:absolute;left:0;top:0;height:3px;width:0;z-index:2;
  background:var(--uisce-green);transition:width .3s ease;
}
.news-card:hover{transform:translateY(-4px);border-color:transparent;box-shadow:0 18px 40px rgba(9,66,35,.13);}
.news-card:hover::after{width:100%;}

.news-card__img{
  aspect-ratio:16/10;background-size:cover;background-position:center;display:block;
  position:relative;background-color:var(--uisce-soft);
}
.news-card__img--empty{
  background:linear-gradient(125deg,var(--uisce-dark-green),#0b5e3c);
}
.news-card__cat{
  position:absolute;left:14px;bottom:14px;background:var(--uisce-green);color:#fff;
  font-family:var(--uisce-font-body);font-weight:600;font-size:.68rem;letter-spacing:1.4px;
  text-transform:uppercase;padding:7px 12px;border-radius:7px;
}
.news-card__body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1;}
.news-card__meta{
  font-size:.74rem;color:var(--uisce-grey);font-family:var(--uisce-font-body);
  text-transform:uppercase;letter-spacing:1.2px;font-weight:600;
}
.news-card__dot{margin:0 7px;opacity:.6;}
.news-card__title{font-size:1.12rem;line-height:1.32;margin:11px 0 9px;}
.news-card__title a{color:var(--uisce-navy);text-decoration:none;}
.news-card:hover .news-card__title a{color:var(--uisce-dark-green);}
.news-card__excerpt{font-size:.93rem;color:var(--uisce-grey);margin:0 0 16px;line-height:1.68;}
.news-card__more{
  margin-top:auto;font-family:var(--uisce-font-body);font-weight:600;font-size:.78rem;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--uisce-green-text);
}
.news-card__more::after{content:"\2192";margin-left:7px;display:inline-block;transition:transform .22s ease;}
.news-card:hover .news-card__more::after{transform:translateX(4px);}

/* --- Featured lead card ----------------------------------- */
.news-card--feature{
  display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch;margin-bottom:34px;
}
.news-card--feature .news-card__img{aspect-ratio:auto;min-height:340px;height:100%;}
.news-card--feature .news-card__body{padding:44px 46px;justify-content:center;}
.news-card--feature .news-card__title{font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.2;margin:14px 0 12px;}
.news-card--feature .news-card__excerpt{font-size:1.02rem;}
@media(max-width:900px){
  .news-card--feature{grid-template-columns:1fr;}
  .news-card--feature .news-card__img{min-height:0;aspect-ratio:16/9;}
  .news-card--feature .news-card__body{padding:26px 24px 30px;}
}

/* --- Listing shell --------------------------------------- */
.newslist__intro{
  max-width:760px;margin:0 0 34px;font-size:1.1rem;line-height:1.72;color:var(--uisce-grey);
}
.newslist__intro p:last-child{margin-bottom:0;}
.homenews__action{text-align:center;margin-top:38px;}

/* --- Category filter chips ------------------------------- */
.news-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 34px;}
.news-chip{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.8rem;letter-spacing:1.2px;
  text-transform:uppercase;padding:11px 18px;border-radius:100px;text-decoration:none;
  border:1px solid var(--uisce-line);color:var(--uisce-grey);background:#fff;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.news-chip:hover{border-color:var(--uisce-green);color:var(--uisce-dark-green);text-decoration:none;}
.news-chip.is-active{background:var(--uisce-green);border-color:var(--uisce-green);color:#fff;}

/* --- Pagination ------------------------------------------ */
.news-pagination{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:52px;}
.news-pagination .page-numbers{
  min-width:44px;height:44px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--uisce-line);border-radius:10px;text-decoration:none;background:#fff;
  font-family:var(--uisce-font-body);font-weight:600;font-size:.9rem;color:var(--uisce-grey);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.news-pagination .page-numbers:hover{border-color:var(--uisce-green);color:var(--uisce-dark-green);}
.news-pagination .page-numbers.current{
  background:var(--uisce-green);border-color:var(--uisce-green);color:#fff;
}
.news-pagination .page-numbers.dots{border-color:transparent;background:transparent;}
.news-pagination .prev,.news-pagination .next{letter-spacing:1.2px;text-transform:uppercase;font-size:.76rem;}

/* --- Empty state ----------------------------------------- */
.news-empty{
  text-align:center;padding:70px 26px;border:1px dashed var(--uisce-line);border-radius:18px;
  background:var(--uisce-soft);
}
.news-empty h2{font-size:1.5rem;margin:0 0 .4em;}
.news-empty p{color:var(--uisce-grey);margin:0 0 22px;}

/* --- Search form ---------------------------------------- */
.news-search{display:flex;gap:12px;margin:0 0 34px;max-width:620px;}
.news-search input[type="search"]{
  flex:1;padding:15px 18px;border:1px solid var(--uisce-line);border-radius:10px;
  font-family:var(--uisce-font-body);font-size:1rem;background:#fff;
}
.news-search input[type="search"]:focus{outline:2px solid var(--uisce-green);outline-offset:1px;}
@media(max-width:560px){.news-search{flex-direction:column;}}

/* --- Single post: hero extras --------------------------- */
.post-terms{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.post-term{
  background:rgba(255,255,255,.14);color:#fff;text-decoration:none;
  font-family:var(--uisce-font-body);font-weight:600;font-size:.7rem;letter-spacing:1.4px;
  text-transform:uppercase;padding:8px 14px;border-radius:100px;
  border:1px solid rgba(255,255,255,.24);transition:background .2s ease;
}
.post-term:hover{background:var(--uisce-green);border-color:var(--uisce-green);text-decoration:none;}
.single-post .page-hero--green h1{font-size:clamp(2rem,3.8vw,3.1rem);}
.post-meta{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.8rem;letter-spacing:1.4px;
  text-transform:uppercase;color:rgba(255,255,255,.78);
}
.post-meta__dot{margin:0 8px;opacity:.6;}
.single-post .hero-media img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:20px;display:block;
  box-shadow:0 30px 60px rgba(0,0,0,.32);
}

/* --- Single post: article body -------------------------- */
.post-body{padding:80px 0 64px;}
.post-body .wrap{max-width:760px;}
.entry-prose{font-size:1.09rem;line-height:1.8;color:var(--uisce-ink);}
.entry-prose > p:first-child{font-size:1.24rem;line-height:1.66;color:var(--uisce-ink);}
.entry-prose p{margin:0 0 1.35em;}
.entry-prose h2{font-size:1.7rem;line-height:1.24;margin:2em 0 .6em;}
.entry-prose h3{font-size:1.32rem;line-height:1.3;margin:1.8em 0 .5em;}
.entry-prose ul,.entry-prose ol{margin:0 0 1.35em;padding-left:1.3em;}
.entry-prose li{margin-bottom:.55em;line-height:1.75;}
.entry-prose a{color:var(--uisce-dark-green);text-decoration:underline;text-underline-offset:3px;}
.entry-prose a:hover{color:var(--uisce-green);}
.entry-prose img{max-width:100%;height:auto;border-radius:14px;display:block;margin:2em 0;}
.entry-prose figure{margin:2em 0;}
.entry-prose figcaption{
  font-size:.85rem;color:var(--uisce-grey);margin-top:.7em;text-align:center;
}
.entry-prose blockquote{
  margin:2em 0;padding:4px 0 4px 28px;border-left:4px solid var(--uisce-green);
  font-family:var(--uisce-font-heading);font-weight:500;font-size:1.28rem;line-height:1.5;
  color:var(--uisce-dark-green);
}
.entry-prose blockquote p:last-child{margin-bottom:0;}
.entry-prose hr{border:0;border-top:1px solid var(--uisce-line);margin:2.6em 0;}
.entry-prose table{width:100%;border-collapse:collapse;margin:2em 0;font-size:.96rem;}
.entry-prose th,.entry-prose td{border:1px solid var(--uisce-line);padding:12px 14px;text-align:left;}
.entry-prose th{background:var(--uisce-soft);font-family:var(--uisce-font-heading);}

/* --- Tags + share -------------------------------------- */
.post-tags{margin-top:44px;display:flex;flex-wrap:wrap;gap:9px;align-items:center;}
.post-tags__label{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.76rem;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--uisce-grey);margin-right:4px;
}
.post-tags a{
  font-size:.85rem;padding:7px 13px;border-radius:100px;background:var(--uisce-soft);
  border:1px solid var(--uisce-line);color:var(--uisce-grey);text-decoration:none;
}
.post-tags a:hover{border-color:var(--uisce-green);color:var(--uisce-dark-green);text-decoration:none;}

.post-share{
  margin-top:40px;padding-top:28px;border-top:1px solid var(--uisce-line);
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.post-share__label{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.76rem;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--uisce-grey);margin-right:6px;
}
.post-share__btn{
  width:44px;height:44px;border-radius:11px;display:inline-grid;place-items:center;
  border:1px solid var(--uisce-line);background:#fff;color:var(--uisce-dark-green);
  cursor:pointer;position:relative;transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.post-share__btn svg{width:18px;height:18px;}
.post-share__btn:hover{background:var(--uisce-green);border-color:var(--uisce-green);color:#fff;}
.post-share__done{
  position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);
  background:var(--uisce-navy);color:#fff;font-family:var(--uisce-font-body);font-size:.7rem;
  font-weight:600;letter-spacing:1.2px;text-transform:uppercase;padding:6px 10px;border-radius:6px;
  opacity:0;pointer-events:none;transition:opacity .2s ease;white-space:nowrap;
}
.post-share__copy.is-copied .post-share__done{opacity:1;}
.post-share__copy.is-copied{background:var(--uisce-green);border-color:var(--uisce-green);color:#fff;}

/* --- Previous / next ----------------------------------- */
.post-nav{padding:0 0 76px;}
.post-nav__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.post-nav__item{
  border:1px solid var(--uisce-line);border-radius:16px;padding:24px 26px;text-decoration:none;
  display:block;background:#fff;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.post-nav__item:hover{
  border-color:var(--uisce-green);transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(9,66,35,.1);text-decoration:none;
}
.post-nav__item--next{text-align:right;grid-column:2;}
.post-nav__label{
  display:block;font-family:var(--uisce-font-body);font-weight:600;font-size:.72rem;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--uisce-green-text);margin-bottom:8px;
}
.post-nav__title{
  display:block;font-family:var(--uisce-font-heading);font-weight:600;font-size:1.05rem;
  line-height:1.35;color:var(--uisce-navy);
}
@media(max-width:700px){
  .post-nav__grid{grid-template-columns:1fr;}
  .post-nav__item--next{text-align:left;grid-column:1;}
}

/* --- Related --------------------------------------------- */
.newsrelated .section-head{max-width:640px;margin:0 0 40px;text-align:left;}
.newsrelated .section-head h2{font-size:clamp(1.7rem,2.8vw,2.3rem);line-height:1.18;margin:0;}

/* ============================================================
   v1.5 — Full-width hero image + navy hero variant
   ============================================================ */

/* --- Navy hero: same treatment as the green one ------------ */
.page-hero--navy{
  background:radial-gradient(120% 140% at 12% 0%,#0e3c55 0%,var(--uisce-navy) 55%,#04141f 100%);
  color:#fff;padding:0;overflow:hidden;position:relative;
  background-size:cover;background-position:center;
}
.page-hero--navy::before{display:none;}
.page-hero--navy h1{color:#fff;font-size:clamp(2.4rem,4.6vw,3.7rem);line-height:1.05;letter-spacing:-.5px;margin:0;}
.page-hero--navy .page-hero__subtitle{color:var(--uisce-green-bright);}

/* --- Full-width hero image -------------------------------- */
/* The photo sits in an inline layered background with the hero colour as a
   gradient over it, so the same overlay logic as the section blocks applies. */
.page-hero--full{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.page-hero--full::before{display:none;}
.page-hero--full .hero-split{
  grid-template-columns:1fr;
  padding:150px 0 130px;
  min-height:clamp(360px,44vw,540px);
  align-items:end;
}
.page-hero--full .hero-split__copy{max-width:820px;}
.page-hero--full h1{
  font-size:clamp(2.5rem,5.4vw,4.2rem);
  text-shadow:0 2px 24px rgba(0,0,0,.28);
}
.page-hero--full .hero-standfirst{
  max-width:56ch;font-size:1.2rem;color:rgba(255,255,255,.94);
  text-shadow:0 1px 14px rgba(0,0,0,.32);
}
.page-hero--full .page-hero__crumbs{color:rgba(255,255,255,.78);}
/* Scrims keep the copy legible over a busy or pale photograph, on top of
   whatever the overlay slider is set to: one from the bottom, and one from the
   left behind the text column specifically. */
.page-hero--full::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to top,rgba(0,0,0,.40) 0%,rgba(0,0,0,0) 58%),
    linear-gradient(to right,rgba(0,0,0,.38) 0%,rgba(0,0,0,.12) 45%,rgba(0,0,0,0) 70%);
}
.page-hero--full .wrap{position:relative;z-index:1;}

@media(max-width:900px){
  .page-hero--full .hero-split{padding:96px 0 76px;min-height:0;}
  .page-hero--full h1{font-size:clamp(2rem,8vw,2.6rem);}
  .page-hero--full .hero-standfirst{font-size:1.06rem;}
}

/* Post meta and category pills need the same lift over a photo. */
.page-hero--full .post-meta{color:rgba(255,255,255,.9);text-shadow:0 1px 12px rgba(0,0,0,.34);}
.page-hero--full .post-term{background:rgba(0,0,0,.32);border-color:rgba(255,255,255,.38);}

/* --- Normal pages now share the hero component ------------ */
.entry-content .entry-prose{max-width:760px;}

/* ============================================================
   v1.6 — Contact: details + form, map
   ============================================================ */

.uisce-block.block-contact{padding:96px 0;}
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start;}
.block-contact--formleft .contact-grid{grid-template-columns:1.05fr 1fr;}
.block-contact--formleft .contact-info{order:2;}
.block-contact--formleft .contact-form{order:1;}
@media(max-width:920px){
  .contact-grid,.block-contact--formleft .contact-grid{grid-template-columns:1fr;gap:40px;}
  .block-contact--formleft .contact-info,.block-contact--formleft .contact-form{order:0;}
}

/* --- Details column -------------------------------------- */
.contact-info h2{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.15;margin:0 0 .5em;letter-spacing:-.3px;}
.contact-info__intro{font-size:1.06rem;line-height:1.76;color:var(--uisce-grey);}
.contact-info__intro p:last-child{margin-bottom:0;}
.band--green .contact-info__intro,.band--darkgreen .contact-info__intro,
.band--navy .contact-info__intro{color:rgba(255,255,255,.9);}

.contact-list{list-style:none;margin:34px 0 0;padding:0;}
.contact-row{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--uisce-line);}
.contact-row:last-child{border-bottom:1px solid var(--uisce-line);}
.band--green .contact-row,.band--darkgreen .contact-row,.band--navy .contact-row,
.band--green .contact-row:last-child,.band--darkgreen .contact-row:last-child,
.band--navy .contact-row:last-child{border-color:rgba(255,255,255,.18);}
.contact-row__icon{
  flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:var(--uisce-icon-soft,rgba(105,191,22,.12));color:var(--uisce-dark-green);
}
.contact-row__icon svg{width:21px;height:21px;}
.band--green .contact-row__icon,.band--darkgreen .contact-row__icon,.band--navy .contact-row__icon{
  background:rgba(255,255,255,.12);color:#fff;
}
.contact-row__text{display:block;padding-top:2px;}
.contact-row__label{
  display:block;font-family:var(--uisce-font-body);font-weight:600;font-size:.72rem;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--uisce-green-text);margin-bottom:3px;
}
.contact-row__value{
  display:block;font-family:var(--uisce-font-heading);font-weight:600;font-size:1.05rem;
  line-height:1.45;color:var(--uisce-navy);
}
.contact-row__value a{color:inherit;text-decoration:none;}
.contact-row .contact-row__value a:not(.btn){text-decoration:none;}
.contact-row__value a:hover{color:var(--uisce-green-text);text-decoration:underline;}
.band--green .contact-row .contact-row__value a:not(.btn):hover,
.band--darkgreen .contact-row .contact-row__value a:not(.btn):hover,
.band--navy .contact-row .contact-row__value a:not(.btn):hover{
  color:var(--uisce-green-bright);text-decoration:underline;
}
.band--green .contact-row__value,.band--darkgreen .contact-row__value,
.band--navy .contact-row__value{color:#fff;}

.contact-socials{margin-top:30px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.contact-socials__label{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.74rem;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--uisce-grey);
}
.band--green .contact-socials__label,.band--darkgreen .contact-socials__label,
.band--navy .contact-socials__label{color:rgba(255,255,255,.75);}
.contact-socials__links{display:flex;gap:10px;}
.contact-socials__links a{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  border:1px solid var(--uisce-line);color:var(--uisce-dark-green);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.contact-socials__links a svg{width:17px;height:17px;fill:currentColor;}
.contact-socials__links a:hover{background:var(--uisce-green);border-color:var(--uisce-green);color:#fff;}
.band--green .contact-socials__links a,.band--darkgreen .contact-socials__links a,
.band--navy .contact-socials__links a{border-color:rgba(255,255,255,.28);color:#fff;}

/* --- Form panel ------------------------------------------ */
.contact-form{
  background:#fff;border:1px solid var(--uisce-line);border-radius:20px;padding:40px 40px 34px;
  box-shadow:0 18px 44px rgba(7,33,48,.07);
}
.has-bgimage .contact-form{box-shadow:0 22px 50px rgba(7,33,48,.22);}
.contact-form__heading{font-size:1.35rem;line-height:1.3;margin:0 0 22px;color:var(--uisce-navy);}
.contact-form__note{
  margin:22px 0 0;padding-top:18px;border-top:1px solid var(--uisce-line);
  font-size:.86rem;line-height:1.6;color:var(--uisce-grey);
}
.contact-form__placeholder{color:var(--uisce-grey);margin:0;}
@media(max-width:560px){.contact-form{padding:28px 24px 24px;}}

/* Style whatever the forms plugin outputs, so CF7 and WPForms both inherit
   the theme's field styling without per-plugin CSS. */
.contact-form input[type="text"],.contact-form input[type="email"],
.contact-form input[type="tel"],.contact-form input[type="url"],
.contact-form input[type="number"],.contact-form input[type="date"],
.contact-form select,.contact-form textarea{
  width:100%;padding:14px 16px;border:1px solid var(--uisce-line);border-radius:10px;
  font-family:var(--uisce-font-body);font-size:1rem;color:var(--uisce-ink);background:#fff;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.contact-form textarea{min-height:130px;resize:vertical;}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  outline:0;border-color:var(--uisce-green);box-shadow:0 0 0 3px rgba(105,191,22,.16);
}
.contact-form label{
  display:block;font-family:var(--uisce-font-body);font-weight:600;font-size:.82rem;
  letter-spacing:.6px;color:var(--uisce-ink);margin-bottom:7px;
}
.contact-form p{margin:0 0 18px;}
.contact-form p:last-child{margin-bottom:0;}
.contact-form input[type="submit"],.contact-form button[type="submit"]{
  display:inline-flex;align-items:center;font-family:var(--uisce-font-body);font-weight:600;
  font-size:15px;padding:16px 30px;border-radius:8px;border:0;cursor:pointer;
  text-transform:uppercase;letter-spacing:2px;line-height:1;
  background:var(--uisce-green);color:#fff;transition:background .2s ease;width:auto;
}
.contact-form input[type="submit"]:hover,.contact-form button[type="submit"]:hover{
  background:var(--uisce-green-dark);
}
.contact-form input[type="checkbox"],.contact-form input[type="radio"]{
  width:auto;margin-right:8px;accent-color:var(--uisce-green);
}

/* --- Map ------------------------------------------------- */
.map-embed{
  border-radius:20px;overflow:hidden;border:1px solid var(--uisce-line);
  background:var(--uisce-soft);line-height:0;
}
.map-embed iframe{width:100%;height:var(--map-h,440px);border:0;display:block;filter:saturate(.92);}
.map-embed__placeholder{color:var(--uisce-grey);margin:0;}
.map-directions{margin:26px 0 0;text-align:center;}
@media(max-width:600px){.map-embed iframe{height:320px;}}

/* ============================================================
   v1.7.1 — Form panel text on coloured bands
   The form sits on a white card inside the section, so it must not
   inherit the band's light text. The band rules (.band--green h3,
   .band--green p) sit at 0,1,1, so these are scoped through
   .block-contact to win on specificity rather than source order.
   ============================================================ */
.block-contact .contact-form,
.block-contact .contact-form p,
.block-contact .contact-form li,
.block-contact .contact-form span,
.block-contact .contact-form label{color:var(--uisce-ink);}

.block-contact .contact-form h2,
.block-contact .contact-form h3,
.block-contact .contact-form h4,
.block-contact .contact-form .contact-form__heading{color:var(--uisce-navy);}

.block-contact .contact-form .contact-form__note,
.block-contact .contact-form .contact-form__placeholder{color:var(--uisce-grey);}

/* Links inside the panel, which the band would otherwise turn white and underline. */
.block-contact .contact-form a:not(.btn){color:var(--uisce-dark-green);text-decoration:underline;}
.block-contact .contact-form a:not(.btn):hover{color:var(--uisce-green);}

/* Submit buttons keep white text on green regardless of band. */
.block-contact .contact-form input[type="submit"],
.block-contact .contact-form button[type="submit"]{color:#fff;}

/* Placeholder text in plugin fields, which some bands would wash out. */
.block-contact .contact-form ::placeholder{color:var(--uisce-grey);opacity:.75;}

/* Validation and response messages from CF7 / WPForms sit inside the panel too. */
.block-contact .contact-form .wpcf7-not-valid-tip,
.block-contact .contact-form .wpforms-error{color:#b3261e;}
.block-contact .contact-form .wpcf7-response-output{
  color:var(--uisce-ink);border:1px solid var(--uisce-line);border-radius:10px;
  padding:12px 14px;margin:16px 0 0;font-size:.9rem;
}

/* ============================================================
   v1.9 — Cards: solid colour tile design
   A second card design so two card rows on one page do not look
   alike. Matches the home page hero tiles: 30px radius, title
   above a large outline icon, green / navy / blue.
   ============================================================ */
.card-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:30px;}
@media(max-width:760px){.card-tiles{grid-template-columns:1fr;}}

.card-tile{
  border-radius:30px;padding:46px 38px;min-height:330px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:22px;text-align:center;
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.card-tile:hover{
  transform:translateY(-5px);box-shadow:0 20px 42px rgba(7,33,48,.18);filter:brightness(.94);
}

/* Title above the icon, echoing the home page tiles. */
.card-tile__title{
  color:#fff;margin:0;font-family:var(--uisce-font-heading);
  font-size:clamp(1.35rem,2.2vw,1.7rem);font-weight:500;line-height:1.25;
}
.card-tile__icon{display:grid;place-items:center;}
.card-tile__icon svg{
  width:74px;height:74px;stroke:#fff;stroke-width:1.3;fill:none;
}
.card-tile__icon img{height:74px;width:auto;filter:var(--uisce-filter-white);}

/* Set the colour on the paragraphs too, or a coloured band's own text rules
   would win on specificity and wash these out. */
.uisce-block .card-tile__text,
.uisce-block .card-tile__text p{
  color:rgba(255,255,255,.9);font-size:.98rem;line-height:1.7;margin:0;
}
.uisce-block .card-tile__text p + p{margin-top:.8em;}

.card-tile--green{background:var(--uisce-green);}
.card-tile--navy{background:var(--uisce-navy);}
.card-tile--blue{background:var(--uisce-blue);}

/* White text on the brand green measures 2.32:1, which fails WCAG AA even at
   large sizes, so the green tile uses navy instead (7.14:1). Navy and blue keep
   white text at 16.55:1 and 4.85:1. */
.card-tile--green .card-tile__title{color:var(--uisce-navy);}
.card-tile--green .card-tile__icon svg{stroke:var(--uisce-navy);}
.card-tile--green .card-tile__icon img{filter:var(--uisce-filter-navy);}
.uisce-block .card-tile--green .card-tile__text,
.uisce-block .card-tile--green .card-tile__text p{color:rgba(7,33,48,.88);}

/* Over a photo the tiles need to stay solid, so no transparency is inherited. */
.uisce-block.has-bgimage .card-tile{box-shadow:0 16px 36px rgba(7,33,48,.28);}

@media(max-width:600px){
  .card-tile{min-height:0;padding:38px 28px;border-radius:22px;}
  .card-tile__icon svg{width:62px;height:62px;}
}

/* ============================================================
   v1.10 — CTA with a background image spans the whole section
   With no image the section stays clear and the inset panel carries
   the colour. With an image the photo fills the section edge to
   edge and the panel becomes a plain container.
   ============================================================ */
.uisce-block.block-cta--bleed{
  padding:146px 0 118px;background-size:cover;background-position:center;background-repeat:no-repeat;
}
.uisce-block.block-cta--bleed .block-cta__inner--bare{
  background:none;border:0;border-radius:0;padding:0;box-shadow:none;
  display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;
  max-width:none;margin:0;text-align:left;
}
.uisce-block.block-cta--bleed .block-cta__inner--bare h2{
  color:#fff;font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.15;margin:0 0 .45em;
  text-shadow:0 2px 18px rgba(0,0,0,.26);
}
.uisce-block.block-cta--bleed .block-cta__inner--bare p{
  color:rgba(255,255,255,.92);margin:0;max-width:56ch;
  text-shadow:0 1px 12px rgba(0,0,0,.3);
}
.uisce-block.block-cta--bleed .block-cta__inner--bare .btn{
  margin:0;background:var(--uisce-green-bright);color:var(--uisce-dark-green);white-space:nowrap;
}
.uisce-block.block-cta--bleed .block-cta__inner--bare .btn:hover{background:#fff;color:var(--uisce-dark-green);}

/* A light band overlay leaves a pale photo, so the copy has to go dark. */
.uisce-block.block-cta--bleed.block-cta--light .block-cta__inner--bare h2{
  color:var(--uisce-navy);text-shadow:none;
}
.uisce-block.block-cta--bleed.block-cta--light .block-cta__inner--bare p{
  color:var(--uisce-grey);text-shadow:none;
}
.uisce-block.block-cta--bleed.block-cta--light .block-cta__inner--bare .btn{
  background:var(--uisce-green);color:#fff;
}
.uisce-block.block-cta--bleed.block-cta--light .block-cta__inner--bare .btn:hover{
  background:var(--uisce-green-dark);color:#fff;
}

@media(max-width:820px){
  .uisce-block.block-cta--bleed{padding:100px 0 78px;}
  .uisce-block.block-cta--bleed .block-cta__inner--bare{grid-template-columns:1fr;gap:26px;}
}

/* ============================================================
   v1.11 — Parallax backgrounds (full hero, bleed CTA)
   The photo sits on its own layer so it can be moved with a
   transform, which is what makes it travel at a different rate to
   the page. background-attachment:fixed is deliberately not used:
   it pins the image rather than moving it, and it is broken on iOS.
   ============================================================ */
.has-parallax{position:relative;overflow:hidden;isolation:isolate;}

/* The image overhangs the section by 28% top and bottom, which is exactly the
   maximum the script translates it, so no edge is ever exposed. Change one and
   the other has to change with it, and so does SPEED in main.js. */
.has-parallax .parallax-media{
  position:absolute;left:0;right:0;top:-28%;height:156%;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  z-index:0;
  will-change:transform;
  transform:translate3d(0,0,0);
  backface-visibility:hidden;
}
.has-parallax .parallax-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
}
.has-parallax > .wrap{position:relative;z-index:3;}

/* The hero scrims sit above the overlay but below the copy. */
.page-hero--full.has-parallax::after{z-index:2;}
.page-hero--full.has-parallax::before{display:none;}
/* No inline background on the section itself any more. */
.page-hero--full.has-parallax,
.block-cta--bleed.has-parallax{background-image:none;}

/* Parallax is switched off where it would be a liability rather than a nicety:
   when the visitor has asked for reduced motion, and on narrow screens where
   scroll events are throttled during momentum scrolling and the effect judders.
   In both cases the image simply sits still, which looks intentional. */
@media (prefers-reduced-motion: reduce){
  .has-parallax .parallax-media{transform:none !important;top:0;height:100%;}
}
@media (max-width:700px){
  .has-parallax .parallax-media{transform:none !important;top:0;height:100%;}
}


/* ============================================================
   v1.14 — Team block: portraits with popup bios, roster, cards
   ============================================================ */

/* Shared: photo frames and the initials fallback. */
.block-team img{display:block;width:100%;height:100%;object-fit:cover;}
.team-initials{
  font-family:var(--uisce-font-heading);font-weight:600;letter-spacing:1px;color:#fff;
  display:grid;place-items:center;width:100%;height:100%;
  background:linear-gradient(135deg,var(--uisce-dark-green),#0b5e3c);
}

/* --- Portraits ------------------------------------------- */
.team-portraits{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:38px 26px;
}
@media(min-width:1140px){.team-portraits{grid-template-columns:repeat(3,1fr);}}
@media(max-width:520px){.team-portraits{grid-template-columns:repeat(2,1fr);gap:30px 18px;}}

.team-portrait{
  width:100%;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:4px;font:inherit;color:inherit;
}
.team-portrait--static{cursor:default;}
.team-portrait__photo{
  width:clamp(120px,15vw,200px);aspect-ratio:1;border-radius:50%;overflow:hidden;
  display:block;margin-bottom:14px;background:var(--uisce-soft);
  box-shadow:0 0 0 0 rgba(105,191,22,0);
  transition:transform .24s ease,box-shadow .24s ease;
}
.team-portrait__photo .team-initials{font-size:2.6rem;border-radius:50%;}
.team-portrait:not(.team-portrait--static):hover .team-portrait__photo{
  transform:translateY(-5px);box-shadow:0 0 0 5px rgba(105,191,22,.28);
}
.team-portrait:focus-visible{outline:0;}
.team-portrait:focus-visible .team-portrait__photo{
  box-shadow:0 0 0 4px var(--uisce-green);transform:translateY(-5px);
}
.team-portrait__name{
  font-family:var(--uisce-font-heading);font-weight:600;font-size:1.06rem;line-height:1.3;
  color:var(--uisce-navy);
}
.team-portrait__role{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.72rem;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--uisce-green-text);line-height:1.4;
}
.team-portrait__more{
  margin-top:6px;font-family:var(--uisce-font-body);font-weight:600;font-size:.72rem;
  letter-spacing:1.3px;text-transform:uppercase;color:var(--uisce-grey);
  display:inline-flex;align-items:center;gap:6px;
}
.team-portrait__more::after{
  content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(-45deg);
}
.team-portrait:hover .team-portrait__more{color:var(--uisce-dark-green);}
/* On a coloured band the names have to be pinned or the band's rules win. */
.uisce-block.band--green .team-portrait__name,
.uisce-block.band--darkgreen .team-portrait__name,
.uisce-block.band--navy .team-portrait__name{color:#fff;}
.uisce-block.band--green .team-portrait__more,
.uisce-block.band--darkgreen .team-portrait__more,
.uisce-block.band--navy .team-portrait__more{color:rgba(255,255,255,.75);}

/* --- The bio dialog -------------------------------------- */
.modal--team{max-width:660px;padding:34px 36px 36px;}
.team-modal__head{
  display:flex;gap:22px;align-items:center;
  padding-bottom:20px;margin-bottom:22px;border-bottom:1px solid var(--uisce-line);
}
.team-modal__photo{
  flex:0 0 auto;width:96px;height:96px;border-radius:50%;overflow:hidden;background:var(--uisce-soft);
}
.team-modal__photo .team-initials{font-size:1.9rem;border-radius:50%;}
.team-modal__id h2{margin:0 0 4px;font-size:1.5rem;line-height:1.25;color:var(--uisce-navy);}
.team-modal__role{
  margin:0 0 6px;font-family:var(--uisce-font-body);font-weight:600;font-size:.74rem;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--uisce-green-text);
}
.team-modal__email{font-size:.9rem;color:var(--uisce-grey);text-decoration:none;}
.team-modal__email:hover{color:var(--uisce-dark-green);text-decoration:underline;}
.team-modal__bio{font-size:.98rem;line-height:1.75;color:var(--uisce-grey);}
.team-modal__bio p{margin:0 0 1em;}
.team-modal__bio p:last-child{margin-bottom:0;}
@media(max-width:560px){
  .modal--team{padding:26px 22px 28px;}
  .team-modal__head{flex-direction:column;text-align:center;gap:16px;}
  .team-modal__photo{width:84px;height:84px;}
}

/* --- Roster ---------------------------------------------- */
.team-roster{list-style:none;margin:0;padding:0;}
.team-row{
  display:grid;grid-template-columns:220px 1fr;gap:36px;align-items:start;
  padding:34px 0;border-top:1px solid var(--uisce-line);
}
.team-row:last-child{border-bottom:1px solid var(--uisce-line);}
.team-row__media{aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:var(--uisce-soft);}
.team-row__media .team-initials{font-size:3rem;}
.team-row__name{font-size:1.35rem;line-height:1.25;margin:0 0 5px;color:var(--uisce-navy);}
.team-row__role{
  margin:0 0 8px;font-family:var(--uisce-font-body);font-weight:600;font-size:.76rem;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--uisce-green-text);
}
.team-row__email{font-size:.9rem;color:var(--uisce-grey);text-decoration:none;}
.team-row__email:hover{color:var(--uisce-dark-green);text-decoration:underline;}
.team-row__bio{margin-top:14px;font-size:.97rem;line-height:1.74;color:var(--uisce-grey);max-width:62ch;}
.team-row__bio p{margin:0 0 .95em;}
.team-row__bio p:last-child{margin-bottom:0;}
@media(max-width:700px){
  .team-row{grid-template-columns:1fr;gap:20px;}
  .team-row__media{max-width:200px;}
}

/* --- Cards ----------------------------------------------- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:28px;}
@media(min-width:1100px){.team-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:620px){.team-grid{grid-template-columns:1fr;gap:22px;}}
.team-card{
  background:#fff;border:1px solid var(--uisce-line);border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.team-card:hover{transform:translateY(-4px);border-color:transparent;box-shadow:0 18px 40px rgba(9,66,35,.13);}
.team-card__media{aspect-ratio:4/5;background:var(--uisce-soft);}
.team-card__body{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1;}
.team-card__name{font-size:1.22rem;line-height:1.3;margin:0 0 4px;color:var(--uisce-navy);}
.team-card__role{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.78rem;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--uisce-green-text);margin:0 0 10px;
}
.team-card__email{font-size:.9rem;color:var(--uisce-grey);text-decoration:none;word-break:break-word;}
.team-card__email:hover{color:var(--uisce-dark-green);text-decoration:underline;}
.team-bio{margin-top:6px;padding-top:12px;}
.team-bio__toggle{
  cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:9px;
  font-family:var(--uisce-font-body);font-weight:600;font-size:.78rem;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--uisce-green-text);
}
.team-bio__toggle::-webkit-details-marker{display:none;}
.team-bio__toggle::after{
  content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);margin-top:-4px;transition:transform .2s ease;
}
.team-bio[open] .team-bio__toggle::after{transform:rotate(-135deg);margin-top:2px;}
.team-bio__toggle:focus-visible{outline:2px solid var(--uisce-green);outline-offset:3px;border-radius:3px;}
.team-bio__text{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--uisce-line);
  font-size:.93rem;line-height:1.72;color:var(--uisce-grey);
}
.team-bio__text p{margin:0 0 .9em;}
.team-bio__text p:last-child{margin-bottom:0;}

/* Light card surfaces inside a coloured band need their text pinned down. */
.uisce-block .team-card__name,.uisce-block .team-row__name{color:var(--uisce-navy);}
.uisce-block .team-card__email,.uisce-block .team-bio__text,
.uisce-block .team-bio__text p{color:var(--uisce-grey);}
.uisce-block.has-bgimage .team-card{box-shadow:0 16px 36px rgba(7,33,48,.24);}

/* ============================================================
   v1.16 — Lists inside block text and cards
   Nothing had styled these, so a bulleted list in a text block or
   info card fell back to browser defaults with a 40px indent.
   ============================================================ */
.uisce-block .textblock__prose ul,
.uisce-block .textblock__prose ol,
.uisce-block .textblock__body ul,
.uisce-block .textblock__body ol,
.uisce-block .info-card__text ul,
.uisce-block .info-card__text ol{
  margin:0 0 1.1em;padding-left:1.35em;
}
.uisce-block .textblock__prose li,
.uisce-block .textblock__body li,
.uisce-block .info-card__text li{
  margin-bottom:.5em;line-height:1.65;
}
.uisce-block .textblock__prose li::marker,
.uisce-block .textblock__body li::marker,
.uisce-block .info-card__text li::marker{color:var(--uisce-green);}
.uisce-block .textblock__prose ul:last-child,
.uisce-block .textblock__body ul:last-child,
.uisce-block .info-card__text ul:last-child{margin-bottom:0;}

/* Nested lists sit tighter and drop the disc for a dash, so two levels stay
   readable without the indent running away. */
.uisce-block .info-card__text ul ul,
.uisce-block .textblock__prose ul ul{
  margin:.5em 0 .2em;padding-left:1.1em;list-style:none;
}
.uisce-block .info-card__text ul ul li,
.uisce-block .textblock__prose ul ul li{
  margin-bottom:.3em;font-size:.95em;position:relative;
}
.uisce-block .info-card__text ul ul li::before,
.uisce-block .textblock__prose ul ul li::before{
  content:"";position:absolute;left:-1.1em;top:.72em;
  width:9px;height:1px;background:var(--uisce-green);
}

/* On a coloured band the markers need to lift off the background. */
.uisce-block.band--green .info-card__text li::marker,
.uisce-block.band--darkgreen .info-card__text li::marker,
.uisce-block.band--navy .info-card__text li::marker{color:var(--uisce-green-bright);}

/* ============================================================
   v1.17 — Publications list and video grid
   ============================================================ */

/* --- Publications ---------------------------------------- */
.resources__intro{max-width:760px;margin:0 0 40px;font-size:1.08rem;line-height:1.75;color:var(--uisce-grey);}
.resources__intro p:last-child{margin-bottom:0;}
.resources__empty{
  padding:34px 26px;border:1px dashed var(--uisce-line);border-radius:14px;
  background:var(--uisce-soft);color:var(--uisce-grey);margin:0;
}

.resource-list{list-style:none;margin:0;padding:0;display:grid;gap:22px;}
.resource{
  display:grid;grid-template-columns:168px 1fr;gap:30px;align-items:start;
  background:#fff;border:1px solid var(--uisce-line);border-radius:18px;padding:26px 30px;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.resource:hover{transform:translateY(-3px);border-color:transparent;box-shadow:0 18px 40px rgba(9,66,35,.12);}
@media(max-width:760px){
  .resource{grid-template-columns:1fr;gap:20px;padding:22px 22px 24px;}
}

.resource__cover{
  aspect-ratio:1/1.414;border-radius:10px;overflow:hidden;background:var(--uisce-soft);
  border:1px solid var(--uisce-line);display:grid;place-items:center;
}
.resource__cover img{width:100%;height:100%;object-fit:cover;display:block;}
.resource__cover-fallback{
  display:grid;place-items:center;width:100%;height:100%;
  background:linear-gradient(135deg,var(--uisce-dark-green),#0b5e3c);color:#fff;
}
.resource__cover-fallback svg{width:46px;height:46px;}
@media(max-width:760px){.resource__cover{max-width:140px;}}

.resource__meta{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.74rem;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--uisce-green-text);margin:0 0 7px;
}
.resource__title{font-size:1.3rem;line-height:1.28;margin:0 0 10px;color:var(--uisce-navy);}
.resource__desc{font-size:.98rem;line-height:1.72;color:var(--uisce-grey);}
.resource__desc p{margin:0 0 .85em;}
.resource__desc p:last-child{margin-bottom:0;}
.resource__actions{margin-top:18px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.resource__size{font-weight:400;letter-spacing:1px;opacity:.85;margin-left:2px;text-transform:none;}
.resource__link{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.8rem;letter-spacing:1.3px;
  text-transform:uppercase;color:var(--uisce-green-text);text-decoration:none;
}
.resource__link:hover{color:var(--uisce-dark-green);text-decoration:underline;}

.resource__videos{margin-top:22px;padding-top:18px;border-top:1px solid var(--uisce-line);}
.resource__videos-label{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.72rem;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--uisce-grey);margin:0 0 12px;
}
.resource__video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:12px;}

/* Light cards inside a coloured band need their text pinned down. */
.uisce-block .resource__title{color:var(--uisce-navy);}
.uisce-block .resource__desc,.uisce-block .resource__desc p{color:var(--uisce-grey);}

/* --- Video thumbnails ------------------------------------ */
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px;}
@media(min-width:1100px){.video-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.video-grid{grid-template-columns:1fr;}}

.video-thumb{
  background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left;width:100%;
  font:inherit;color:inherit;display:flex;flex-direction:column;gap:12px;
}
.video-thumb__img{
  display:block;aspect-ratio:16/9;border-radius:14px;overflow:hidden;position:relative;
  background:var(--uisce-navy) center/cover no-repeat;
  box-shadow:0 10px 26px rgba(7,33,48,.12);
  transition:transform .22s ease,box-shadow .22s ease;
}
.video-thumb__img::after{
  content:"";position:absolute;inset:0;background:rgba(7,33,48,.16);transition:background .22s ease;
}
.video-thumb__play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.94);
  display:grid;place-items:center;transition:background .22s ease,transform .22s ease;
}
.video-thumb__play::before{
  content:"";width:0;height:0;margin-left:4px;
  border-left:19px solid var(--uisce-dark-green);
  border-top:12px solid transparent;border-bottom:12px solid transparent;
}
.video-thumb:hover .video-thumb__img{transform:translateY(-4px);box-shadow:0 20px 40px rgba(7,33,48,.2);}
.video-thumb:hover .video-thumb__img::after{background:rgba(7,33,48,.05);}
.video-thumb:hover .video-thumb__play{background:#fff;transform:translate(-50%,-50%) scale(1.07);}
.video-thumb:focus-visible{outline:0;}
.video-thumb:focus-visible .video-thumb__img{outline:3px solid var(--uisce-green);outline-offset:3px;}
.video-thumb__title{
  font-family:var(--uisce-font-heading);font-weight:600;font-size:1.02rem;line-height:1.35;
  color:var(--uisce-navy);
}
.uisce-block.band--green .video-thumb__title,
.uisce-block.band--darkgreen .video-thumb__title,
.uisce-block.band--navy .video-thumb__title{color:#fff;}

/* Smaller variant used inside a publication entry. */
.video-thumb--sm{gap:8px;}
.video-thumb--sm .video-thumb__img{border-radius:10px;box-shadow:none;}
.video-thumb--sm .video-thumb__play{width:38px;height:38px;}
.video-thumb--sm .video-thumb__play::before{
  border-left-width:12px;border-top-width:8px;border-bottom-width:8px;margin-left:3px;
}
.video-thumb--sm .video-thumb__title{font-size:.82rem;line-height:1.3;}

/* --- Player dialog --------------------------------------- */
.modal--video{max-width:960px;padding:24px 24px 26px;}
.video-modal__title{font-size:1.15rem;line-height:1.3;margin:0 34px 14px 0;color:var(--uisce-navy);}
.video-modal__frame{
  aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden;
}
.video-modal__frame iframe{width:100%;height:100%;border:0;display:block;}
@media(max-width:560px){.modal--video{padding:18px 16px 20px;}}

/* ============================================================
   v1.19 — Callback popup on a photo
   With a background image set in Theme Settings the popup becomes
   a photo panel with the brand colour as a gradient over it. The
   form has to flip to suit a dark surface, and that includes
   whatever Contact Form 7 or WPForms output, hence the plugin
   selectors below.
   ============================================================ */
.modal--callback{max-width:1100px;width:100%;padding:44px 48px 46px;}
@media(max-width:700px){.modal--callback{padding:30px 24px 32px;}}

.modal--onphoto{
  background-color:var(--uisce-dark-green);
  background-size:cover;background-position:center;background-repeat:no-repeat;
  border-radius:18px;
}
.modal--onphoto h2{
  color:#fff;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.1;margin:0 0 .5em;
}
.modal--onphoto .modal__intro{color:rgba(255,255,255,.88);font-size:1rem;margin:0 0 22px;max-width:56ch;}
.modal--onphoto .modal__close{color:rgba(255,255,255,.85);}
.modal--onphoto .modal__close:hover{color:#fff;}

/* --- The form, on a dark surface -------------------------- */
/* Labels and legends, including the ones CF7 wraps around radio and checkbox
   groups. */
.modal--onphoto label,
.modal--onphoto legend,
.modal--onphoto .wpforms-field-label,
.modal--onphoto p{color:#fff;}
.modal--onphoto label{
  font-family:var(--uisce-font-heading);font-weight:600;font-size:.95rem;
  margin-bottom:8px;letter-spacing:0;
}

.modal--onphoto input[type="text"],
.modal--onphoto input[type="email"],
.modal--onphoto input[type="tel"],
.modal--onphoto input[type="url"],
.modal--onphoto input[type="number"],
.modal--onphoto input[type="date"],
.modal--onphoto select,
.modal--onphoto textarea{
  width:100%;padding:15px 18px;border-radius:6px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.5);
  font-family:var(--uisce-font-body);font-size:1rem;color:var(--uisce-ink);
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.modal--onphoto textarea{min-height:150px;resize:vertical;}
.modal--onphoto ::placeholder{color:var(--uisce-grey);opacity:.8;}
.modal--onphoto input:focus,
.modal--onphoto select:focus,
.modal--onphoto textarea:focus{
  outline:0;background:#fff;border-color:var(--uisce-green-bright);
  box-shadow:0 0 0 3px rgba(153,204,0,.35);
}

/* Radios and checkboxes need to be visible against the photo. */
.modal--onphoto input[type="radio"],
.modal--onphoto input[type="checkbox"]{
  width:20px;height:20px;margin-right:9px;flex:0 0 auto;
  accent-color:var(--uisce-green-bright);
  background:rgba(255,255,255,.92);
}
.modal--onphoto .wpcf7-list-item{margin:0 22px 8px 0;display:inline-flex;align-items:center;}
.modal--onphoto .wpcf7-list-item-label{color:#fff;font-weight:500;}

/* Submit button and the CF7 spinner. */
.modal--onphoto input[type="submit"],
.modal--onphoto button[type="submit"]{
  display:inline-flex;align-items:center;font-family:var(--uisce-font-body);font-weight:600;
  font-size:15px;padding:16px 34px;border-radius:8px;border:0;cursor:pointer;width:auto;
  text-transform:uppercase;letter-spacing:2px;line-height:1;
  background:var(--uisce-green);color:#fff;transition:background .2s ease;
}
.modal--onphoto input[type="submit"]:hover,
.modal--onphoto button[type="submit"]:hover{background:var(--uisce-green-dark);}
.modal--onphoto .wpcf7-spinner{background-color:#fff;}

/* Validation and response messages, which would otherwise be unreadable. */
.modal--onphoto .wpcf7-not-valid-tip,
.modal--onphoto .wpforms-error{color:#ffd5d2;font-weight:600;}
.modal--onphoto .wpcf7-response-output{
  color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:10px;
  background:rgba(0,0,0,.22);padding:12px 15px;margin:18px 0 0;font-size:.92rem;
}

/* CF7 and WPForms both like to lay fields out in one column; two reads better
   at this width, and collapses back on small screens. */
.modal--onphoto .uisce-form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;}
@media(max-width:700px){
  .modal--onphoto .uisce-form-row{grid-template-columns:1fr;}
}

/* ============================================================
   v1.19.1 — Contact Form 7 output, shared by the Contact page
   panel and the callback popup
   CF7 runs its output through wpautop, which drops a <br> after
   every label and blows the spacing out. Hidden here rather than
   switching autop off with wpcf7_autop_or_not, because that filter
   is global and would reflow every other form on the site.
   ============================================================ */
.contact-form label + br,
.modal--onphoto label + br{display:none;}

/* Radio and checkbox groups sit inline, as Yes / No pairs. */
.contact-form .wpcf7-list-item,
.modal--onphoto .wpcf7-list-item{
  margin:0 24px 6px 0;display:inline-flex;align-items:center;
}
/* The label CF7 wraps around each option must not inherit the field-label
   styling, or every Yes and No comes out bold and letter-spaced. */
.contact-form .wpcf7-list-item label,
.modal--onphoto .wpcf7-list-item label{
  display:inline-flex;align-items:center;margin:0;cursor:pointer;
  font-family:var(--uisce-font-body);font-weight:500;font-size:.95rem;letter-spacing:0;
}
.contact-form .wpcf7-list-item-label,
.modal--onphoto .wpcf7-list-item-label{font-weight:500;}

/* Consent checkboxes have long labels, so they go full width and the box
   aligns to the first line rather than the middle of the wrapped text. */
.contact-form .wpcf7-acceptance .wpcf7-list-item,
.modal--onphoto .wpcf7-acceptance .wpcf7-list-item{display:flex;width:100%;margin-right:0;}
.contact-form .wpcf7-acceptance label,
.modal--onphoto .wpcf7-acceptance label{align-items:flex-start;line-height:1.55;}
.contact-form .wpcf7-acceptance input[type="checkbox"],
.modal--onphoto .wpcf7-acceptance input[type="checkbox"]{margin-top:3px;}

/* Controls big enough to hit, on both surfaces. */
.contact-form input[type="radio"],
.contact-form input[type="checkbox"]{
  width:20px;height:20px;margin-right:10px;flex:0 0 auto;accent-color:var(--uisce-green);
}

/* Two-column pairs: whether there is room depends on how wide the form panel
   is, not how wide the window is. On the Contact page the panel is one of two
   columns and sits around 430px, so a container query is the right tool: the
   pairs stack until the panel itself is wide enough. Browsers without container
   query support simply stay single column, which is the safe way round. */
.contact-form{container-type:inline-size;}
.contact-form .uisce-form-row{display:grid;grid-template-columns:1fr;gap:0 22px;}
@container (min-width:540px){
  .contact-form .uisce-form-row{grid-template-columns:1fr 1fr;}
}

/* Tighter, more even rhythm now the stray line breaks are gone. */
.contact-form .wpcf7-form > p,
.modal--onphoto .wpcf7-form > p{margin:0 0 20px;}
.contact-form .uisce-form-row p,
.modal--onphoto .uisce-form-row p{margin:0 0 20px;}
.contact-form label,
.modal--onphoto label{margin-bottom:9px;}

/* ============================================================
   v1.20 — Hero stat band and publication cover grid
   ============================================================ */

/* --- Hero stat band -------------------------------------- */
/* Sits flush with the bottom of the hero, inside the wrap, so it reads as part
   of the hero rather than a separate section. */
.page-hero--withstats .hero-split{padding-bottom:52px;}
.hero-stats{
  position:relative;z-index:3;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  background:var(--uisce-dark-green);
  border-radius:14px 14px 0 0;
  overflow:hidden;
}
.hero-stat{padding:26px 32px 30px;}
.hero-stat + .hero-stat{box-shadow:inset 1px 0 0 rgba(255,255,255,.12);}
.hero-stat__label{
  font-family:var(--uisce-font-body);font-weight:600;font-size:.74rem;letter-spacing:1.6px;
  text-transform:uppercase;color:rgba(255,255,255,.82);line-height:1.45;margin-bottom:10px;
  max-width:22ch;
}
.hero-stat__num{
  font-family:var(--uisce-font-heading);font-weight:700;line-height:1;
  font-size:clamp(2rem,3.4vw,2.9rem);color:var(--uisce-green-bright);letter-spacing:-1px;
}
.page-hero--navy .hero-stats{background:var(--uisce-navy);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);}
@media(max-width:700px){
  .hero-stats{grid-template-columns:1fr;}
  .hero-stat{padding:20px 24px 22px;}
  .hero-stat + .hero-stat{box-shadow:inset 0 1px 0 rgba(255,255,255,.12);}
  .page-hero--withstats .hero-split{padding-bottom:36px;}
}

/* --- Cover grid ------------------------------------------ */
.cover-grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:40px 36px;
}
.block-covers--2 .cover-grid{grid-template-columns:repeat(2,1fr);}
.block-covers--4 .cover-grid{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){
  .cover-grid,
  .block-covers--3 .cover-grid,
  .block-covers--4 .cover-grid{grid-template-columns:repeat(2,1fr);gap:30px 24px;}
}
@media(max-width:520px){
  .cover-grid,
  .block-covers--2 .cover-grid,
  .block-covers--3 .cover-grid,
  .block-covers--4 .cover-grid{grid-template-columns:1fr;}
}

.cover{display:block;text-decoration:none;}
.cover__frame{
  display:block;position:relative;aspect-ratio:1/1.414;border-radius:6px;overflow:hidden;
  background:var(--uisce-soft);border:1px solid var(--uisce-line);
  box-shadow:0 12px 30px rgba(7,33,48,.12);
  transition:transform .24s ease,box-shadow .24s ease;
}
.cover__frame img{width:100%;height:100%;object-fit:cover;display:block;}
.cover:hover .cover__frame{transform:translateY(-6px);box-shadow:0 26px 50px rgba(7,33,48,.24);}
.cover:focus-visible{outline:0;}
.cover:focus-visible .cover__frame{outline:3px solid var(--uisce-green);outline-offset:4px;}

/* No cover uploaded: a readable panel rather than an empty frame. */
.cover__placeholder{
  position:absolute;inset:0;display:grid;place-items:center;padding:26px;text-align:center;
  background:linear-gradient(150deg,var(--uisce-dark-green),#0b5e3c);
}
.cover__placeholder-title{
  font-family:var(--uisce-font-heading);font-weight:600;font-size:1.05rem;line-height:1.35;color:#fff;
}

/* Tells people it is a download, and how big, before they click. */
.cover__badge{
  position:absolute;right:10px;bottom:10px;
  background:rgba(7,33,48,.82);color:#fff;border-radius:6px;
  font-family:var(--uisce-font-body);font-weight:600;font-size:.66rem;letter-spacing:1.2px;
  text-transform:uppercase;padding:6px 9px;display:inline-flex;gap:6px;align-items:center;
}
.cover__size{font-weight:400;letter-spacing:.6px;opacity:.85;text-transform:none;}

.cover__title{
  display:block;margin-top:16px;
  font-family:var(--uisce-font-heading);font-weight:600;font-size:1rem;line-height:1.35;
  color:var(--uisce-navy);
}
.cover:hover .cover__title{color:var(--uisce-dark-green);}
.cover__meta{
  display:block;margin-top:4px;
  font-family:var(--uisce-font-body);font-weight:600;font-size:.72rem;letter-spacing:1.3px;
  text-transform:uppercase;color:var(--uisce-green-text);
}
.cover--nolink .cover__frame{box-shadow:none;}
.cover--nolink:hover .cover__frame{transform:none;}

/* On a coloured band the captions have to be pinned or the band's rules win. */
.uisce-block.band--green .cover__title,
.uisce-block.band--darkgreen .cover__title,
.uisce-block.band--navy .cover__title{color:#fff;}

/* ============================================================
   v1.20.1 — Component links never inherit the band underline
   Belt and braces alongside the :not(.uisce-complink) exclusion
   above, so a component link added without that class still comes
   out clean. Specificity here beats .band--x a:not(.btn) (0,2,1).
   ============================================================ */
/* The :not(.btn) is not decorative: adding :not(.uisce-complink) to the base
   rule pushed it to 0,3,1, so these need a third class to match it and win on
   source order. Without it these rules silently do nothing. */
.band--green a.cover:not(.btn),.band--darkgreen a.cover:not(.btn),.band--navy a.cover:not(.btn),
.band--green a.act-chip:not(.btn),.band--darkgreen a.act-chip:not(.btn),.band--navy a.act-chip:not(.btn),
.band--green a.feature-card:not(.btn),.band--darkgreen a.feature-card:not(.btn),.band--navy a.feature-card:not(.btn){
  text-decoration:none;
}
/* The captions sit inside the anchor, so their colour still needs setting on
   dark bands even though the underline is handled on the link itself. */
.band--green .cover__title,.band--darkgreen .cover__title,.band--navy .cover__title{color:#fff;}
.band--green .cover__meta,.band--darkgreen .cover__meta,.band--navy .cover__meta{color:var(--uisce-green-bright);}
.band--green .cover:hover .cover__title,
.band--darkgreen .cover:hover .cover__title,
.band--navy .cover:hover .cover__title{color:var(--uisce-green-bright);}

/* ============================================================
   v1.22 — Artwork gallery and lightbox
   ============================================================ */
.gallery__intro{max-width:720px;margin:0 0 38px;font-size:1.06rem;line-height:1.75;color:var(--uisce-grey);}
.gallery__intro p:last-child{margin-bottom:0;}
.uisce-block.band--green .gallery__intro,
.uisce-block.band--darkgreen .gallery__intro,
.uisce-block.band--navy .gallery__intro{color:rgba(255,255,255,.9);}

.gallery-grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:26px;
}
.block-gallery--2 .gallery-grid{grid-template-columns:repeat(2,1fr);}
.block-gallery--4 .gallery-grid{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){
  .gallery-grid,
  .block-gallery--3 .gallery-grid,
  .block-gallery--4 .gallery-grid{grid-template-columns:repeat(2,1fr);gap:18px;}
}
@media(max-width:560px){
  .gallery-grid,
  .block-gallery--2 .gallery-grid,
  .block-gallery--3 .gallery-grid,
  .block-gallery--4 .gallery-grid{grid-template-columns:1fr;}
}

.gallery-thumb{
  width:100%;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left;
  font:inherit;color:inherit;display:flex;flex-direction:column;gap:12px;
}
.gallery-thumb__frame{
  display:block;position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;
  background:var(--uisce-soft);
  transition:transform .24s ease,box-shadow .24s ease;
}
.gallery-thumb__frame img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery-thumb__frame::after{
  content:"";position:absolute;inset:0;background:rgba(7,33,48,0);transition:background .24s ease;
}
.gallery-thumb:hover .gallery-thumb__frame{transform:translateY(-4px);box-shadow:0 20px 42px rgba(7,33,48,.2);}
.gallery-thumb:hover .gallery-thumb__frame::after{background:rgba(7,33,48,.16);}
.gallery-thumb:focus-visible{outline:0;}
.gallery-thumb:focus-visible .gallery-thumb__frame{outline:3px solid var(--uisce-green);outline-offset:4px;}

/* Magnifier cue, so it reads as openable rather than decorative. */
.gallery-thumb__zoom{
  position:absolute;right:14px;bottom:14px;width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.94);display:grid;place-items:center;
  opacity:0;transform:translateY(6px);transition:opacity .24s ease,transform .24s ease;
}
.gallery-thumb__zoom::before{
  content:"";width:13px;height:13px;border:2px solid var(--uisce-dark-green);border-radius:50%;
  margin:-3px 0 0 -3px;
}
.gallery-thumb__zoom::after{
  content:"";position:absolute;width:2px;height:8px;background:var(--uisce-dark-green);
  border-radius:1px;transform:rotate(-45deg);right:12px;bottom:10px;
}
.gallery-thumb:hover .gallery-thumb__zoom,
.gallery-thumb:focus-visible .gallery-thumb__zoom{opacity:1;transform:translateY(0);}

.gallery-thumb__title{
  font-family:var(--uisce-font-heading);font-weight:600;font-size:.98rem;line-height:1.35;
  color:var(--uisce-navy);
}
.uisce-block.band--green .gallery-thumb__title,
.uisce-block.band--darkgreen .gallery-thumb__title,
.uisce-block.band--navy .gallery-thumb__title{color:#fff;}

/* --- Lightbox -------------------------------------------- */
.image-modal{padding:0;}
.modal--image{
  max-width:min(1100px,94vw);background:transparent;padding:0;overflow:visible;position:relative;
}
.modal--image .modal__close{
  position:absolute;right:-6px;top:-46px;color:#fff;font-size:2.1rem;z-index:2;float:none;
}
.image-modal__figure{margin:0;}
.image-modal__frame{
  background:rgba(0,0,0,.35);border-radius:12px;overflow:hidden;
  display:grid;place-items:center;max-height:78vh;
}
.image-modal__frame img{
  display:block;max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;
}
.image-modal__cap{
  display:block;margin-top:16px;text-align:center;color:#fff;
}
.image-modal__title{
  display:block;font-family:var(--uisce-font-heading);font-weight:600;font-size:1.1rem;line-height:1.35;
}
.image-modal__caption{display:block;margin-top:5px;font-size:.94rem;color:rgba(255,255,255,.82);}
.image-modal__count{
  display:block;margin-top:9px;font-family:var(--uisce-font-body);font-weight:600;font-size:.72rem;
  letter-spacing:1.6px;color:rgba(255,255,255,.6);
}

/* Prev / next, kept clear of the image on small screens. */
.image-modal__nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.9);display:grid;place-items:center;
  transition:background .2s ease,transform .2s ease;
}
.image-modal__nav:hover{background:#fff;}
.image-modal__nav::before{
  content:"";width:12px;height:12px;
  border-right:2.5px solid var(--uisce-dark-green);border-bottom:2.5px solid var(--uisce-dark-green);
}
.image-modal__nav--prev{left:-26px;}
.image-modal__nav--prev::before{transform:rotate(135deg);margin-left:-3px;}
.image-modal__nav--next{right:-26px;}
.image-modal__nav--next::before{transform:rotate(-45deg);margin-right:-3px;}
.image-modal__nav:focus-visible{outline:3px solid var(--uisce-green-bright);outline-offset:3px;}
@media(max-width:820px){
  .image-modal__nav{width:44px;height:44px;top:auto;bottom:-64px;transform:none;}
  .image-modal__nav--prev{left:calc(50% - 58px);}
  .image-modal__nav--next{right:calc(50% - 58px);}
  .modal--image .modal__close{top:-40px;right:0;}
  .image-modal__cap{padding-bottom:56px;}
}

/* ============================================================
   v1.25 — Header icon hover swap and search panel
   ============================================================ */

/* --- Contact icon hover swap ----------------------------- */
/* Both icons are in the markup with one faded out, rather than swapping the SVG
   at hover time, so there is no flash. These label the contact details; the
   social row is separate and holds only X, YouTube and Instagram. */
.icon-swap{display:inline-grid;place-items:center;flex:none;}
.icon-swap__rest,
.icon-swap__hover{display:grid;place-items:center;grid-area:1/1;transition:opacity .18s ease;}
.icon-swap__hover{opacity:0;}
.topbar__contact a:hover .icon-swap__rest,
.topbar__contact a:focus-visible .icon-swap__rest{opacity:0;}
.topbar__contact a:hover .icon-swap__hover,
.topbar__contact a:focus-visible .icon-swap__hover{opacity:1;}
/* Fixed box: the ringing phone is wider than the handset, and without this the
   phone number shifts sideways on hover. */
.topbar__contact .icon-swap{width:18px;height:18px;}
.topbar__contact .icon-swap svg{width:17px;height:17px;fill:var(--uisce-green-text);}

@media (prefers-reduced-motion: reduce){
  .icon-swap__rest,.icon-swap__hover{transition:none;}
}

/* --- Search panel ---------------------------------------- */
.header-search-btn{
  display:inline-flex;align-items:center;flex:none;
  background:none;border:0;cursor:pointer;padding:0;color:inherit;
}
.header-search-btn svg{width:20px;height:20px;fill:var(--uisce-navy);transition:fill .2s ease;}
.header-search-btn:hover svg{fill:var(--uisce-green);}
.header-search-btn:focus-visible{outline:2px solid var(--uisce-green);outline-offset:4px;border-radius:4px;}

/* A full-width drop-down on the header. Anchoring to the masthead bar looked
   neater but the bar narrows when the nav collapses, which pushed the panel off
   screen between roughly 700 and 980px. Spanning the header is predictable at
   every width. */
.masthead{position:relative;}
.header-search{
  position:absolute;left:0;right:0;top:100%;z-index:60;
  background:#fff;border-top:1px solid var(--uisce-line);
  box-shadow:0 18px 44px rgba(7,33,48,.14);
  padding:18px 0;
  opacity:0;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease;
}
.header-search.is-open{opacity:1;transform:translateY(0);}
.header-search .wrap{display:flex;justify-content:flex-end;}
.header-search form{display:flex;align-items:center;gap:10px;}
.header-search input[type="search"]{
  flex:1 1 auto;min-width:0;width:clamp(200px,32vw,360px);padding:13px 16px;
  border:1px solid var(--uisce-line);border-radius:9px;
  font-family:var(--uisce-font-body);font-size:1rem;background:#fff;
}
.header-search input[type="search"]:focus{
  outline:0;border-color:var(--uisce-green);box-shadow:0 0 0 3px rgba(105,191,22,.18);
}
.header-search .btn{padding:13px 22px;white-space:nowrap;}
.header-search__close{
  background:none;border:0;cursor:pointer;font-size:1.6rem;line-height:1;
  color:var(--uisce-grey);padding:0 4px;
}
.header-search__close:hover{color:var(--uisce-navy);}
.header-search__close:focus-visible{outline:2px solid var(--uisce-green);outline-offset:2px;border-radius:4px;}

@media(max-width:640px){
  .header-search .wrap,.header-search form{width:100%;}
  .header-search form{flex-wrap:wrap;}
  .header-search input[type="search"]{flex:1 1 100%;width:100%;}
  .header-search .btn{flex:1;justify-content:center;}
}

@media (prefers-reduced-motion: reduce){
  .header-search{transition:none;}
}

/* The search button sits beside the burger rather than inside the nav, so it
   stays reachable when the menu collapses. */
.masthead__bar{display:flex;align-items:center;gap:18px;}
.masthead__bar .primary-nav{flex:1 1 auto;}
.masthead__bar .header-search-btn{order:3;margin-left:auto;}
@media(max-width:980px){
  .masthead__bar{justify-content:flex-end;}
  .masthead__bar .header-search-btn{order:1;margin-left:0;}
}

/* ============================================================
   v1.26 — Scroll reveal
   The hiding rules are gated behind html.js-reveal, which a small
   inline script in the head adds only when JavaScript is running
   and the visitor has not asked for reduced motion. Without it
   every element renders normally, so the page can never end up
   with content stuck invisible.
   ============================================================ */
.js-reveal .reveal{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .6s cubic-bezier(.22,.61,.36,1),
             transform .6s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--reveal-delay,0ms);
  /* Only these two properties animate, so this stays on the compositor. */
  will-change:opacity,transform;
}
.js-reveal .reveal.is-revealed{
  opacity:1;
  transform:none;
  will-change:auto;
}
/* Already on screen at load: no transition, no delay. */
.js-reveal .reveal--instant{transition:none;transition-delay:0ms;}

/* Media rises a touch further, which reads better on large images. */
.js-reveal .textblock__media.reveal,
.js-reveal .hero-media.reveal,
.js-reveal .quote-split__media.reveal,
.js-reveal .map-embed.reveal{transform:translateY(30px);}
.js-reveal .textblock__media.is-revealed,
.js-reveal .hero-media.is-revealed,
.js-reveal .quote-split__media.is-revealed,
.js-reveal .map-embed.is-revealed{transform:none;}

/* Belt and braces: the inline script already skips reduced-motion visitors, but
   a preference changed after load is honoured too. */
@media (prefers-reduced-motion: reduce){
  .js-reveal .reveal{opacity:1;transform:none;transition:none;}
}

/* ============================================================
   v1.26 — Header condense on scroll
   Driven by .is-scrolled on the masthead. Only the logo height and
   the bar padding move, so the nav does not reflow and nothing
   jumps. The contact row is hidden below 980 already, so this only
   applies where it is visible.
   ============================================================ */
.masthead{transition:box-shadow .25s ease;}
.brand img{transition:height .28s ease;}
.masthead .topbar{transition:max-height .28s ease,opacity .22s ease;overflow:hidden;max-height:60px;}

.masthead.is-scrolled{box-shadow:0 4px 22px rgba(7,33,48,.12);}
.masthead.is-scrolled .brand img{height:64px;}
/* The contact and social row folds away, leaving the logo and nav. It is
   duplicated in the footer, so nothing becomes unreachable. */
.masthead.is-scrolled .topbar{max-height:0;opacity:0;}

@media(max-width:980px){
  /* The topbar is already hidden at this width, so leave the header alone. */
  .masthead.is-scrolled .brand img{height:64px;}
  .masthead.is-scrolled .topbar{max-height:0;}
}

@media (prefers-reduced-motion: reduce){
  .masthead,.brand img,.masthead .topbar{transition:none;}
}
