.g-tile img{width:100%; height:100%; object-fit:cover; display:block;}

.map iframe{display:block; width:100%; height:clamp(400px,40.7vw,782px); border:0;}

body.admin-bar .site-header{top:32px;}
@media (max-width:782px){
  body.admin-bar .site-header{top:46px;}
}

/* Client: the desktop header height is the same as the sticky (scrolled) one -
   so the two are one. The `--head-h` name stays because the hero's overlap and
   padding rely on it. The logo is as big as fits in that bar (client: "increase
   the size of the logo") - ~8px of breathing room above and below. */
:root{
  --head-h-min:clamp(82px,6.3802vw,122.5px);
  --head-h:var(--head-h-min);
  --logo-h:clamp(64px,5.4vw,104px);
}
.head-row{max-width:1410px; margin:0 auto; padding:0 20px; box-sizing:content-box;}

@media (min-width:1200px){
  .head-row{height:var(--head-h);}
}
.brand img{width:auto; height:var(--logo-h);}

@media (min-width:1200px){
  .brand{width:auto;}
}

@media (max-width:1199px){

  .brand img{width:auto; height:72px;}
}

.site-header .head-cta{
  height:clamp(36px,2.4609vw,47.25px);
  padding:0 clamp(12px,0.8324vw,15.98px) 0 clamp(15px,1.0086vw,19.37px);
  gap:clamp(6.5px,0.4305vw,8.26px);
  font-size:clamp(12.5px,0.8594vw,16.5px);
  font-weight:400;
}

.btn .arr{height:auto; aspect-ratio:47/23;}

.site-header .head-cta .arr{width:clamp(26px,1.8285vw,35.11px);}

@media (min-width:1200px){
  /* Client: menu in the centre, CTA + social on the right. Three cells - logo |
     menu | .head-end - with both side cells 1fr, so the menu is truly centred
     even when the logo and the right-hand box differ in width. If space runs
     short, 1fr won't shrink below its content - the menu shifts a little, it
     doesn't collide. */
  .head-row{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; column-gap:clamp(16px,1.5vw,30px);}
  .brand{justify-self:start; margin-left:clamp(11px,0.9896vw,19px);}
  .main-nav{justify-self:center; margin-left:0;}
  .head-end{justify-self:end; display:flex; align-items:center;}
  .head-cta{margin-left:0;}
  .main-nav > ul{gap:clamp(11px,1.1458vw,22px);}
  .main-nav a{font-size:clamp(16px,0.9896vw,19px); font-weight:400;}
  .main-nav a.is-active{font-weight:600;}
}

.head-row,.brand img,.site-header{transition:height .3s cubic-bezier(.4,0,.2,1), margin-bottom .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1);}

@media (min-width:1200px){
  /* Both states now have the same height, so scrolling only adds a shadow -
     the margin that made up for the lost height becomes 0 on its own. */
  .site-header.is-shrunk{margin-bottom:calc(var(--head-h) - var(--head-h-min)); box-shadow:0 6px 20px rgba(0,0,0,.28);}
  .site-header.is-shrunk .head-row{height:var(--head-h-min);}
}

@media (prefers-reduced-motion:reduce){
  .head-row,.brand img,.site-header{transition:none;}
}

html{overflow-x:clip;}
html{scroll-padding-top:calc(var(--head-h-min) + 22px);}
@media (max-width:1199px){
  html{scroll-padding-top:20px;}
}

a{text-decoration:none;}

.page-hero{background:var(--teal); padding:clamp(50px,4.7vw,90px) 0 clamp(36px,3.1vw,60px);}
.page-hero h1{font-size:clamp(34px,2.6vw,50px); color:var(--gold);}
.page-body{padding:clamp(36px,3.1vw,60px) 0 clamp(50px,4.2vw,80px);}
.page-body .content{max-width:900px;}
.page-body .content h2{font-size:clamp(22px,1.56vw,30px); color:var(--teal); margin:30px 0 0;}
.page-body .content h3{font-size:clamp(18px,1.2vw,23px); color:var(--teal); margin:22px 0 0;}
.page-body .content p{margin:14px 0 0; line-height:1.7;}
.page-body .content ul,
.page-body .content ol{margin:12px 0 0; padding-left:24px;}
.page-body .content ul{list-style:disc;}
.page-body .content ol{list-style:decimal;}
.page-body .content li{margin-top:6px; line-height:1.6;}
.page-body .content a{color:var(--gold); font-weight:600;}
.page-body .content a:hover{color:#ad8a41;}

.wo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,1.9vw,36px); margin-top:clamp(24px,1.9vw,36px);}
.wo-grid .event-card{grid-template-columns:1fr; margin-top:0;}
.wo-grid .ev-photo{height:clamp(150px,10.4vw,200px);}
.wo-grid .ev-copy{padding:clamp(10px,0.9vw,18px) 0 0;}
.wo-grid .ev-copy h3{font-size:clamp(20px,1.45vw,28px);}
.wo-grid .ev-copy p{max-width:none;}
.wo-grid .ev-book{position:static; margin-top:clamp(16px,1.3vw,24px); justify-self:start; min-width:0;}

@media (max-width:1199px){

  .wo-grid{grid-template-columns:repeat(2,1fr);}
  .wo-grid .ev-photo{height:clamp(190px,22vw,260px);}
  .wo-grid .ev-copy h3{font-size:26px;}
}
@media (max-width:860px){
  .wo-grid{grid-template-columns:1fr;}
  .wo-grid .ev-photo{height:clamp(200px,40vw,280px);}
}

.news{overflow-x:hidden;}

@media (min-width:1200px){

  .has-hero .site-header{
    background:linear-gradient(90deg,rgba(1,16,16,.78) 0%,rgba(1,19,19,.74) 29%,rgba(2,42,42,.66) 47%,rgba(3,49,49,.62) 57%,rgba(4,53,54,.58) 68%,rgba(5,55,56,.55) 78%);
  }
  .has-hero .site-header::after{
    content:''; position:absolute; inset:0; z-index:-1; opacity:0;
    background:linear-gradient(90deg,#011010 0%,#011313 29%,#022A2A 47%,#033131 57%,#043536 68%,#053738 78%);
    transition:opacity .3s cubic-bezier(.4,0,.2,1);
  }
  .has-hero .site-header.is-solid::after{opacity:1;}

  .has-hero .hero{
    margin-top:calc(-1 * var(--head-h));
    min-height:max(calc(var(--head-h) + 500px), min(calc(clamp(540px,45.2vw,868px) + var(--head-h)), calc(100vh - 20px)));
    display:flex; flex-direction:column;
  }

  /* Client: the hero text sat too close to the top. It is now centred
     vertically in the visible part of the photo - below the header
     (--head-h) and above the point where the pillar circles and the wave
     rise into the hero (the same ~5.5vw the circles overlap by). The block
     fills the hero's height so it has room to centre in; width stays the
     .container's (1410px content + 20px sides, now as border-box). */
  .has-hero .hero-inner{
    flex:1 0 auto; width:100%; max-width:1450px; box-sizing:border-box; margin-inline:auto;
    display:flex; flex-direction:column; justify-content:center;
    padding-top:var(--head-h); padding-bottom:clamp(60px,5.5vw,105px);
  }
}

@media (min-width:1200px){
  .hero h1{font-size:clamp(40px,min(3.3vw,6vh),64px); font-weight:700; line-height:1.154;}
  .hero .content p{max-width:clamp(400px,31vw,600px); margin-top:clamp(16px,min(1.35vw,2.4vh),26px); font-size:clamp(16px,min(1.15vw,2.1vh),22px); line-height:1.6;}

  .hero-btns{gap:clamp(14px,1.1vw,20px); margin-top:clamp(22px,min(1.9vw,3.2vh),36px);}

  .hero-btns .btn{
    min-width:clamp(176px,12vw,230px);
    justify-content:center;
    height:clamp(44px,min(2.8vw,5vh),54px);
    padding:0 clamp(10px,0.7813vw,15px);
    gap:clamp(7px,0.5313vw,10.2px);
    font-size:clamp(15px,0.98vw,19px);
    font-weight:400;
  }
  .hero-btns .arr{width:clamp(30px,2.05vw,40px);}

  .watch-story{gap:clamp(12px,0.9vw,18px); font-size:clamp(15px,0.98vw,19px); font-weight:600;}
}

.hero-btns .btn{transition:background-color .3s ease, color .3s ease, border-color .3s ease, transform .3s ease, box-shadow .3s ease;}
.hero-btns .btn .arr{transition:transform .3s ease;}
.hero-btns .btn:hover,
.hero-btns .btn:focus-visible{transform:translateY(-2px); box-shadow:0 8px 18px rgba(0,0,0,.3);}
.hero-btns .btn:hover .arr,
.hero-btns .btn:focus-visible .arr{transform:translateX(4px);}
.hero-btns .btn-outline-light:hover,
.hero-btns .btn-outline-light:focus-visible{background:#fff; border-color:#fff; color:var(--teal);}

@media (prefers-reduced-motion:reduce){
  .hero-btns .btn,.hero-btns .btn .arr{transition:none;}
  .hero-btns .btn:hover,.hero-btns .btn:focus-visible{transform:none;}
  .hero-btns .btn:hover .arr,.hero-btns .btn:focus-visible .arr{transform:none;}
}

.watch-story .play{width:clamp(44px,3.75vw,72px); height:clamp(44px,3.75vw,72px); padding:0; border:0; border-radius:0;}
.watch-story .play svg{width:100%; height:100%;}

.pillar h3{font-family:var(--serif); font-weight:400; font-size:clamp(15px,0.9375vw,18px);}
.pillar p{font-size:clamp(12px,0.7292vw,14px); line-height:1.286;}

/* The circle PNG has a white, grainy strip along its edge (the client spotted
   it on mobile). The round box (`span.pillar-circle`) carries the shadow and
   the size; the image inside is clipped to a 46.5% circle and scaled up by the
   same amount (1/0.93) - so the visible circle matches the box, but the PNG's
   outer ~3.5% (that strip) is cut away. clip-path is on the img, not on the
   box - otherwise the shadow would be cut off too. */
.pillar-circle{display:block; flex:none; aspect-ratio:1;}
.pillar-circle img{display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; clip-path:circle(46.5%); transform:scale(1.0753);}

:root{
  --h2:clamp(28px,2.0833vw,40px);
  --body:clamp(12.5px,0.7292vw,14px);
}

.vision-copy h2,.explore h2,.hold-event h2,.abbey-copy h2,.news h2,
.partners h2,.plan h2,.wo-head h2,.rise-cafe h2,.faqs h2,
.ev-copy h3,.faq-head{font-weight:700;}

@media (min-width:768px){

  .wo-head h2,.rise-cafe h2,.faqs h2,.ev-copy h3{font-size:var(--h2);}

  .vision-copy p,.explore .content p,.hold-event p,.wo-head p,
  .ev-copy p,.ev-when p,.rise-cafe .content p,.abbey-copy p,
  .join p,.plan .content p,.plan-item p,.faq-panel{font-size:var(--body);}

  .tile-num,.tile figcaption{font-size:clamp(17px,1.25vw,24px);}
  .plan-item h3{font-size:clamp(15px,0.9375vw,18px);}

  .wo-head p{max-width:clamp(320px,33.8542vw,650px);}

  .btn{font-size:clamp(15px,1.09375vw,21px);}

  .date-badge,.date-badge b{font-size:clamp(16px,1.1637vw,22.34px);}
}

@media (min-width:768px){

  .btn{
    height:clamp(44px,3.2292vw,62px);
    padding:0 clamp(11px,0.8333vw,16px);
    gap:clamp(6px,0.4375vw,8.4px);
    justify-content:center;
  }
  .btn .arr{width:clamp(32px,2.3708vw,45.52px);}

  .vision-copy .btn,
  .hold-event .btn      {min-width:clamp(160px,11.5625vw,222px);}
  .abbey-copy .btn      {min-width:clamp(168px,12.1911vw,234.07px);}
  .wo-side .btn         {min-width:clamp(180px,13.1167vw,251.84px);}
  .plan-btns .btn       {min-width:clamp(190px,13.9115vw,267.1px);}
  .rise-cafe .btn       {min-width:clamp(224px,16.3198vw,313.34px);}

  .ev-book{
    height:clamp(34px,2.3828vw,45.75px);
    min-width:clamp(150px,10.5885vw,203.3px);
    font-size:clamp(11px,0.7292vw,14px);
  }
}

@media (min-width:1200px){
  .ev-book{top:50%; transform:translateY(-50%);}
  .wo-grid .ev-book{transform:none;}
}

@media (min-width:721px){
  .dots.wo-dots{top:100px;}
}

.partners{padding:clamp(20px,1.6vw,30px) 0;}

.plan{padding-top:clamp(34px,3vw,58px); padding-bottom:clamp(45px,4.1979vw,80.6px);}

.post,.page{margin:0;}

.whats-on .wave-white{margin-top:clamp(20px,2.0833vw,40px); position:relative; z-index:1;}
.whats-on .wave-white::after{content:''; position:absolute; left:0; right:0; bottom:-2px; height:6px; background:#fff;}

.abbey-copy{align-self:center;}

.ev-when{align-items:flex-end;}
.ev-when p{margin-bottom:-3px;}

@media (min-width:1200px){
  .vision{grid-template-columns:clamp(300px,32.2108vw,440px) 1fr; align-items:stretch;}
  .vision-copy{display:flex; flex-direction:column;}
  .vision-copy h2{margin-bottom:clamp(16px,1.25vw,24px);}
  .vision-copy p{line-height:1.4;}
  .vision-copy p:last-of-type{margin-bottom:clamp(32px,2.1875vw,42px);}
  .vision-copy .btn{margin-top:auto; align-self:flex-start;}
  .vision-photos{min-height:clamp(364px,26.8229vw,515px);}
  .vision-photos .vp-back{width:74.3%; height:calc(100% - clamp(19px,1.4063vw,27px));}
  .vision-photos .vp-front{width:53.2%; height:auto; aspect-ratio:335/235; top:auto; bottom:0;}
}

.join{margin-top:clamp(34px,3.5417vw,68px);}

.hero-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  pointer-events:none;
}

@media (prefers-reduced-motion:reduce){
  .hero-video{display:none;}
}

@media (max-width:767.98px){

  .plan{padding:50px 0;}
  .plan .plan-dots{margin-top:14px;}
  .plan-btns{margin-top:32px;}

  .pillar h3,
  .pillar p{max-width:100%;}

  .watch-story{
    padding:0 20px;
    color:var(--teal);
    text-shadow:0 1px 2px rgba(255,255,255,.55);
  }
  .watch-story:hover{color:#a8873f;}

  .hero h1,
  .hero .content p{max-width:100%;}
}
.whats-on .wave-white svg{height:clamp(54px,6.4417vw,123.68px);}

.hero::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 150' preserveAspectRatio='none'><path d='M0 150 L0 50 C 200 54 420 68 620 82 C 800 94 880 104 960 116 C 1100 136 1210 150 1300 150 C 1400 150 1520 146 1600 140 C 1720 128 1830 98 1920 70 L1920 150 Z' fill='%23013636'/></svg>");}

.faq-panel{padding:0 clamp(20px,1.55vw,30px); transition:max-height .35s ease;}
.faq-item.is-open .faq-panel{padding:0 clamp(20px,1.55vw,30px);}
.faq-panel::before,.faq-panel::after{content:''; display:block; height:18px;}
.faq-panel > *:first-child{margin-top:0;}
.faq-panel > *:last-child{margin-bottom:0;}
.faq-panel a{color:var(--gold); font-weight:600; text-decoration:underline;}
.faq-panel ul,.faq-panel ol{margin:0 0 16px; padding-left:22px;}
.faq-panel ul{list-style:disc;}
.faq-panel ol{list-style:decimal;}
.faq-panel li{margin-top:6px;}

.partners-swiper .swiper-slide{width:auto;}
.partners-dots{display:none;}

@media (max-width:1199px){
  .partners-swiper .partner-row{gap:0; flex-wrap:nowrap; justify-content:flex-start;}
  .partners-swiper .swiper-slide{display:flex; align-items:center; justify-content:center;}

  .partners-dots{display:flex; justify-content:center; margin-top:clamp(16px,1.6vw,24px);}
}

.wo-listing{background:#fff; background-image:none; padding-bottom:clamp(44px,3.6vw,68px);}
.wo-listing .wave-white{display:none;}
.wo-listing .wo-head h2{color:var(--teal);}
.wo-listing .wo-head p{color:var(--ink);}
.wo-listing .event-card{border:1px solid #e3ded4; box-shadow:0 6px 18px rgba(0,0,0,.07);}

.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:calc(var(--i,0) * 90ms);}
.js-reveal .reveal[data-anim="left"]{transform:translateX(-34px);}
.js-reveal .reveal[data-anim="right"]{transform:translateX(34px);}
.js-reveal .reveal[data-anim="up"]{transform:translateY(28px);}
.js-reveal .reveal.is-visible{opacity:1; transform:none;}

@media (max-width:767.98px){
  .js-reveal .pillar.reveal{opacity:1; transform:none; transition:none;}
}
@media (max-width:720px){
  .js-reveal .tile.reveal{opacity:1; transform:none; transition:none;}
}

@media (prefers-reduced-motion:reduce){
  .js-reveal .reveal{opacity:1; transform:none; transition:none;}
}

.wo-swiper{margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px;}
.wo-swiper .swiper-slide .event-card:nth-child(2){--i:1;}
.wo-swiper .swiper-slide .event-card:nth-child(3){--i:2;}
.event-card.reveal:focus-within{opacity:1; transform:none;}

.ev--nature{--ev:var(--lime);      --ev-ink:var(--teal);}
.ev--arts{--ev:var(--purple);      --ev-ink:#fff;}
.ev--community{--ev:var(--orange); --ev-ink:var(--teal);}
.ev--heritage{--ev:var(--gold);    --ev-ink:var(--teal);}

.event-card .date-badge{background:var(--ev,var(--teal)); color:var(--ev-ink,#fff);}

.event-card::before{content:''; position:absolute; left:0; top:20px; bottom:20px; width:6px;
  border-radius:0 4px 4px 0; background:var(--ev,var(--teal)); transition:width .3s ease;}
.event-card:hover::before,.event-card:focus-within::before{width:10px;}

@media (prefers-reduced-motion:reduce){
  .event-card::before{transition:none;}
}

.btn-lime{color:var(--teal);}
.btn-lime:hover{color:var(--teal);}

.whats-on .wo-dots span.dot.is-active{--dot:var(--lime);}

.tile--nature{--tile:var(--lime);   --tile-ink:var(--teal);}
.tile--arts{--tile:var(--purple);   --tile-ink:#fff;}
.tile--community{--tile:var(--orange); --tile-ink:var(--teal);}
.tile--heritage{--tile:var(--gold); --tile-ink:var(--teal);}

.tile img{transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.tile:hover img,.tile:focus-within img{transform:scale(1.05);}

.tile::after{content:''; position:absolute; inset:auto 0 0 0; height:55%; pointer-events:none;
  background:linear-gradient(180deg,rgba(1,54,54,0) 0%,rgba(1,54,54,.62) 100%);
  transition:opacity .35s ease;}
.tile:hover::after,.tile:focus-within::after{opacity:0;}
.tile-num,.tile figcaption{z-index:2;}

.tile-hover{
  inset:0;

  z-index:3;
  justify-content:flex-end;
  padding:clamp(16px,1.35vw,26px);
  background:var(--tile,var(--purple));
  border-top:0;
  color:var(--tile-ink,#fff);
  opacity:1;
  transform:translateY(100%);
  transition:transform .5s cubic-bezier(.22,.61,.36,1);
}
.tile:hover .tile-hover,.tile:focus-within .tile-hover{transform:translateY(0);}

.tile.is-amphi .tile-hover{transform:translateY(0);}
.tile-hover .tile-num{margin-bottom:auto; color:var(--tile-ink,#fff); opacity:.75;}
.tile-hover h3{margin-top:0; color:var(--tile-ink,#fff);}
.tile-hover p{color:var(--tile-ink,#fff); opacity:.92;}

@media (prefers-reduced-motion:reduce){
  .tile-hover{transition:none;}
  .tile img{transition:none;}
}

.abbey-row{align-items:end;}

.abbey-copy .btn{margin-bottom:clamp(28px,3.6vw,69px);}

/* Client: bigger Abbey image - it should fill the right-hand column.
   The image and all three fact labels share one `em` scale (the design was
   640px wide, and each fact's position is in those `em`s), so the whole box
   scales via font-size: width = column width, font-size = width / 640.
   The column width is worked out in the CSS itself - the container (up to
   1240) minus the copy column and gap (24px for scrollbar/breathing room).
   padding-top is in `em` too (the design's 90), otherwise the labels would
   drift off the image. */
@media (min-width:1200px){
  .abbey-art{
    --abbey-w:calc(min(1240px, 100vw - 40px) - clamp(320px,23.4vw,450px) - clamp(50px,5.2vw,100px) - 24px);
    width:var(--abbey-w);
    font-size:calc(var(--abbey-w) / 640);
    padding-top:90em;
  }
}

.abbey-art .fact-label{position:absolute; right:1.85em; top:0; transform:translateY(-50%); font-size:max(11px,16em); line-height:1.15; white-space:normal; width:max-content; max-width:8.6em; text-align:right;}
.abbey-art .fact-2 .fact-label{max-width:6.5em;}
@media (max-width:1099.98px){
  .abbey-art .fact-2 .fact-label{max-width:4.2em;}
}
.abbey-art .fact-line{left:0; top:0;}
.abbey-art .fact-line::before{content:''; position:absolute; right:0; top:0; width:27em; height:1.5px; background:var(--gold);}
.abbey-art .fact-dot{left:-4.25px;}
.fact-1{left:170em; top:93em;}
.fact-1 .fact-line{height:111em;}
.fact-1 .fact-dot{top:calc(111em - 5px);}
.fact-2{left:306em; top:187em;}
.fact-2 .fact-line{height:112em;}
.fact-2 .fact-dot{top:calc(112em - 5px);}
.fact-3{left:448em; top:67em;}
.fact-3 .fact-line{height:109em;}
.fact-3 .fact-dot{top:calc(109em - 5px);}

.post-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,1.9vw,36px);}

.post-listing{background:#f6f2e9;}

.post-grid .blog-card > img{height:auto; aspect-ratio:16/10;}

.blog-body :is(h2,h3) a{color:inherit;}
.blog-body :is(h2,h3) a:hover{color:var(--teal); text-decoration:underline; text-underline-offset:3px;}

.blog-body h2{font-size:clamp(20px,1.35vw,26px); color:#12312d; line-height:1.25;}

.page-hero-intro{max-width:70ch; margin-top:clamp(12px,1.05vw,20px); color:#cfe0dc;}
.page-hero-intro p{margin:0 0 12px; line-height:1.7;}
.page-hero-intro p:last-child{margin-bottom:0;}
.page-hero-intro h2,.page-hero-intro h3{margin:18px 0 8px; color:#fff; font-size:clamp(18px,1.2vw,23px);}
.page-hero-intro ul,.page-hero-intro ol{margin:0 0 12px; padding-left:22px;}
.page-hero-intro ul{list-style:disc;}
.page-hero-intro ol{list-style:decimal;}
.page-hero-intro li{margin-top:6px;}
.page-hero-intro a{color:var(--gold); text-decoration:underline;}
.page-hero-intro a:hover{color:#fff;}

.post-none{margin:0; font-size:clamp(15px,1.05vw,17px); color:var(--ink);}

.page-body .navigation.pagination{margin-top:clamp(28px,2.6vw,50px);}
.page-body .navigation.pagination .screen-reader-text{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
.page-body .nav-links .page-numbers.prev,
.page-body .nav-links .page-numbers.next{min-width:0; padding:8px 18px; border-radius:50px;}

@media (max-width:1199px){
  .post-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  .post-grid{grid-template-columns:1fr;}
}

@media (max-width:720px){
  .hold-event p br{display:none;}
}

/* Client: the Hold an Event band should show the park from above. The build
   cropped its tall aerial photo at 30% - which is the houses above the park -
   so the band showed rooftops. 63% lands on the marquee, stalls and lawn,
   matching the design. (A different image chosen in the admin uses the same
   crop.) */
.hold-event{background-position:center 63%;}

@media (max-width:1199px){
  .vision-photos .vp-back{height:clamp(190px,58vw,300px);}
  .vision-photos .vp-front{height:clamp(160px,48vw,250px);}
}

/* Client: on desktop all five Plan your visit items fit in one row, so the
   slider has nothing to slide - its hover arrows and the lone dot below were
   just noise. Hidden from 1200px up; below that the items really do slide,
   so the arrows and dots stay. */
@media (min-width:1200px){
  .plan-swiper .swiper-button-prev,
  .plan-swiper .swiper-button-next,
  .plan .plan-dots{display:none;}
}

/* Client: the small front photo's frame matches the white card behind it
   (the build had it cream). The shadow stays, so the photo still lifts off
   the card. */
.vision-photos .vp-front{border-color:#fff;}

.ft-brand img{width:clamp(240px,17.1875vw,330px);}
.ft-social{gap:4px;}
.ft-social a{width:clamp(26px,1.5625vw,30px); height:clamp(26px,1.5625vw,30px);}
.ft-mid{padding-top:0;}
/* Two columns: sections on the left (Explore...), legal links on the right.
   Social now sits above the emails on the right, so no gap above the links. */
.ft-menus{display:flex; flex-wrap:wrap; gap:clamp(36px,3.6vw,70px);}
.ft-links{margin-top:0;}
.ft-links li{margin-bottom:0; font-size:16px; line-height:1.7;}
.ft-links a{font-size:inherit;}
.ft-contact .ft-social{margin-bottom:18px;}
.ft-contact p{margin:0; line-height:1.7;}
.ft-contact p:last-child{margin-top:0;}
.ft-contact a{font-weight:700;}

@media (min-width:1200px){
  .ft-row{max-width:1240px; padding:0 60px; box-sizing:border-box; grid-template-columns:auto auto auto; justify-content:space-between; column-gap:clamp(48px,4.6875vw,90px);}
  .ft-contact{padding-top:0;}
}

@media (max-width:720px){
  .site-footer{padding:clamp(26px,7vw,36px) 0 clamp(28px,7.5vw,40px);}
  .ft-row{row-gap:26px;}
  .ft-brand img{width:min(210px,62%);}
  .ft-mid{padding-top:0;}
  .ft-links{margin-top:18px;}
  .ft-links li{margin-bottom:0;}
  .ft-links li + li{margin-top:13px;}
  .ft-contact{padding-top:0;}
  .ft-contact p{margin-bottom:14px;}
  .ft-contact p:last-child{margin-top:18px;}
}

.video-lb{position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:clamp(66px,5.6vw,88px) 24px 24px; background:rgba(2,20,20,.88);}
.video-lb.is-open{display:flex;}
.video-lb-inner{position:relative; width:min(1100px,100%);}
.video-lb-frame{position:relative; padding-top:56.25%; border-radius:14px; overflow:hidden; background:#000; box-shadow:0 20px 50px rgba(0,0,0,.5);}
.video-lb-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}

.video-lb-close{position:absolute; right:0; top:calc(-1 * clamp(50px,3.65vw,58px)); display:flex; align-items:center; justify-content:center; width:clamp(38px,2.71vw,44px); height:clamp(38px,2.71vw,44px); padding:0; border:0; border-radius:50%; background:#fff; color:var(--teal); cursor:pointer; transition:background .25s ease, color .25s ease;}
.video-lb-close svg{width:46%; height:46%;}
.video-lb-close:hover{background:var(--gold); color:var(--teal);}
.video-lb-close:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
body.has-lightbox{overflow:hidden;}

.err-hero{text-align:center; padding-bottom:clamp(60px,5.2vw,100px);}
.err-code{margin:0; font-family:var(--serif); font-size:clamp(90px,9.4vw,180px); line-height:1; color:var(--cream);}
.err-hero h1{margin-top:10px;}
.err-hero .content p{margin:16px 0 0; color:#fff;}
.err-hero .btn{margin-top:clamp(24px,1.9vw,36px);}

.page-hero .search-form{display:flex; gap:12px; max-width:640px; margin-top:clamp(22px,1.8vw,34px);}
.page-hero .search-form label{flex:1;}
.page-hero .search-field{width:100%; padding:13px 22px; border:0; border-radius:50px; font-family:var(--sans); font-size:15px; color:var(--ink); background:#fff;}
.page-hero .search-submit{padding:12px 28px; border:0; border-radius:50px; background:var(--gold); color:var(--teal); font-family:var(--sans); font-weight:500; font-size:15px; cursor:pointer;}
.page-hero .search-submit:hover{background:#ad8a41;}
.sr-item + .sr-item{margin-top:26px; padding-top:26px; border-top:1px solid #e3ded4;}
.sr-item h2{font-size:clamp(20px,1.4vw,27px);}
.sr-item h2 a{color:var(--teal);}
.sr-item h2 a:hover{color:var(--gold);}
.sr-type{display:inline-block; margin-top:4px; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#8a8478;}
.sr-item .content p{margin:8px 0 0;}
.page-body .nav-links{display:flex; gap:10px; margin-top:36px;}
.page-body .nav-links .page-numbers{display:inline-block; min-width:40px; padding:8px 0; border-radius:50%; text-align:center; background:#eee9df; color:var(--teal); font-weight:600;}
.page-body .nav-links .page-numbers.current{background:var(--teal); color:#fff;}

.post-hero{padding-bottom:clamp(40px,3.4vw,64px);}

.post-hero.has-figure{padding-bottom:clamp(96px,8.3vw,160px);}
.post-hero h1{max-width:1000px; line-height:1.25;}

.crumbs{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:clamp(14px,1.05vw,20px); font-size:13px; color:#cfe0dc;}
.crumbs a{color:#cfe0dc;}
.crumbs a:hover{color:var(--gold);}
.crumbs span[aria-hidden]{opacity:.5;}
.crumbs .is-current{color:#fff;}

.post-cat{display:inline-block; margin-bottom:clamp(10px,0.8vw,15px); padding:6px 18px; border-radius:50px; background:var(--gold); color:var(--teal); font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;}
.post-cat:hover{background:#ad8a41; color:var(--teal);}

.post-meta{display:flex; flex-wrap:wrap; gap:clamp(16px,1.45vw,28px); margin-top:clamp(16px,1.25vw,24px);}
.post-meta li{display:flex; align-items:center; gap:8px; font-size:13.5px; color:#cfe0dc;}
.post-meta svg{width:17px; height:17px; flex-shrink:0; fill:var(--gold);}

.post-figure{position:relative; z-index:2; margin-top:calc(-1 * clamp(56px,4.7vw,96px));}
.post-figure .container{max-width:1120px;}
.post-figure img{display:block; width:100%; height:clamp(210px,26vw,500px); object-fit:cover; border-radius:14px; box-shadow:0 12px 30px rgba(0,0,0,.22);}
.post-figcap{margin:12px 0 0; font-size:12.5px; font-style:italic; text-align:center; color:#7d7669;}

.post-body .container{max-width:900px;}
.post-body .content{max-width:none;}
.post-figure + .post-body{padding-top:clamp(30px,2.6vw,50px);}

.post-body .content > p:first-of-type{font-size:clamp(16px,1.05vw,20px); line-height:1.75; color:#123a35;}
.post-body .content h4{margin:20px 0 0; font-family:var(--serif); font-weight:400; font-size:clamp(17px,1.05vw,20px); color:var(--teal);}
.post-body .content img{height:auto; border-radius:14px;}
.post-body .content figure{margin:clamp(22px,1.9vw,36px) 0 0;}
.post-body .content figcaption{margin-top:10px; font-size:12.5px; font-style:italic; color:#7d7669;}
.post-body .content blockquote{margin:clamp(24px,2.1vw,40px) 0 0; padding:clamp(18px,1.45vw,28px) clamp(20px,1.7vw,32px); border-left:4px solid var(--gold); border-radius:0 14px 14px 0; background:#f6f2e9;}
.post-body .content blockquote p{margin:0; font-family:var(--serif); font-size:clamp(16px,1.15vw,22px); line-height:1.6; color:var(--teal);}
.post-body .content blockquote p + p{margin-top:12px;}
.post-body .content blockquote cite{display:block; margin-top:12px; font-size:13px; font-style:normal; color:#7d7669;}
.post-body .content hr{margin:clamp(26px,2.1vw,40px) 0 0; border:0; border-top:1px solid #e3ded4;}
.post-body .content table{width:100%; margin-top:clamp(20px,1.7vw,32px); border-collapse:collapse; font-size:14px;}
.post-body .content th,.post-body .content td{padding:10px 14px; border:1px solid #e3ded4; text-align:left;}
.post-body .content th{background:#f6f2e9; color:var(--teal); font-weight:600;}
.post-body .content code{padding:2px 6px; border-radius:4px; background:#f0ece3; font-size:13px;}
.post-body .content .wp-caption-text{margin-top:10px; font-size:12.5px; font-style:italic; color:#7d7669;}
.post-pages{margin-top:26px; font-size:14px; font-weight:600; color:var(--teal);}

.post-foot{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:clamp(16px,1.35vw,26px); margin-top:clamp(30px,2.6vw,50px); padding-top:clamp(20px,1.7vw,32px); border-top:1px solid #e3ded4;}
.post-tags{display:flex; flex-wrap:wrap; gap:9px;}
.post-tags a{display:inline-block; padding:6px 16px; border-radius:50px; background:#f0ece3; font-size:12.5px; font-weight:500; color:var(--teal);}
.post-tags a:hover{background:var(--gold); color:var(--teal);}

.post-share{display:flex; align-items:center; gap:14px; margin-left:auto;}
.post-share-label{font-size:13px; font-weight:600; color:var(--teal);}
.post-share ul{display:flex; gap:10px;}
.post-share a,.post-share button{display:flex; align-items:center; justify-content:center; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:var(--teal); cursor:pointer;}
.post-share svg{width:19px; height:19px; fill:#fff;}
.post-share a:hover,.post-share button:hover{background:var(--gold);}
.post-share a:hover svg,.post-share button:hover svg{fill:var(--teal);}

.copy-link{position:relative;}
.copy-link.is-copied{background:var(--lime);}
.copy-link.is-copied::after{content:attr(data-done); position:absolute; bottom:calc(100% + 9px); left:50%; transform:translateX(-50%); padding:4px 10px; border-radius:6px; background:var(--teal); color:#fff; font-size:11px; white-space:nowrap;}

.post-nav{padding:0 0 clamp(40px,3.4vw,64px);}
.post-nav .container{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(16px,1.35vw,26px); max-width:900px;}
.pn-card{display:flex; flex-direction:column; gap:6px; padding:clamp(16px,1.35vw,26px) clamp(18px,1.45vw,28px); border:1px solid #e3ded4; border-radius:14px; transition:border-color .3s ease, box-shadow .3s ease;}
.pn-card:hover{border-color:var(--gold); box-shadow:0 8px 20px rgba(0,0,0,.08);}

.pn-next{grid-column:2; text-align:right;}
.pn-dir{font-size:11.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--gold);}
.pn-title{font-family:var(--serif); font-size:clamp(15px,1.05vw,20px); line-height:1.4; color:var(--teal);}

.related{padding:clamp(40px,3.4vw,64px) 0 clamp(50px,4.2vw,80px); background:#f6f2e9; text-align:center;}
.related h2{font-size:var(--h2); color:var(--teal);}
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,1.9vw,36px); margin-top:clamp(24px,1.9vw,36px);}
.related-all{margin-top:clamp(26px,2.1vw,40px);}

.post-comments .comments-title,.post-comments .comment-reply-title{font-family:var(--serif); font-size:clamp(20px,1.4vw,27px); font-weight:400; color:var(--teal);}
.post-comments .comment-list{margin-top:24px;}
.post-comments .comment-list li{margin-top:20px; padding-top:20px; border-top:1px solid #e3ded4;}
.post-comments .comment-list li:first-child{border-top:0; padding-top:0;}
.post-comments .comment-list .children{margin-left:clamp(16px,1.9vw,36px);}
.post-comments .comment-author{font-weight:600; color:var(--teal);}
.post-comments .comment-metadata{font-size:12px; color:#8a8478;}
.post-comments .comment-form{margin-top:20px;}
.post-comments .comment-form p{margin:14px 0 0;}
.post-comments .comment-form label{display:block; margin-bottom:6px; font-size:13px; font-weight:600; color:var(--teal);}
.post-comments .comment-form input[type="text"],.post-comments .comment-form input[type="email"],.post-comments .comment-form input[type="url"],.post-comments .comment-form textarea{width:100%; max-width:640px; padding:11px 18px; border:1px solid #e3ded4; border-radius:12px; font-family:var(--sans); font-size:14px; color:var(--ink); background:#fff;}
.post-comments .comment-form .submit{padding:12px 30px; border:0; border-radius:50px; background:var(--gold); font-family:var(--sans); font-weight:500; font-size:15px; color:var(--teal); cursor:pointer;}
.post-comments .comment-form .submit:hover{background:#ad8a41;}

@media (max-width:1199px){

  .related-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:720px){
  .post-figure img{height:clamp(180px,45vw,240px);}
  .post-foot{flex-direction:column; align-items:flex-start;}
  .post-share{margin-left:0;}
  .post-nav .container{grid-template-columns:1fr;}
  .pn-next{grid-column:1; text-align:left;}
  .related-grid{grid-template-columns:1fr;}
}

:root{
  --teal:#013636;
  --purple:#7D4D9E;
  --orange:#EF9926;
  --beige:#D9D1C3;
}

.abbey .wave-teal svg path{fill:var(--teal);}

.abbey .wave-teal{margin-top:-2px; position:relative; z-index:1;}
.abbey .wave-teal::before{content:''; position:absolute; left:0; right:0; top:-2px; height:6px; background:#fff;}
.abbey .wave-teal::after{content:''; position:absolute; left:0; right:0; bottom:-2px; height:6px; background:var(--teal);}
.abbey .wave-teal svg{display:block; position:relative; margin-bottom:-2px;}

.pillars,
.card-wrap,
.abbey,
.faqs,
.whats-on:not(.wo-listing),
.news,
.plan{background-repeat:no-repeat; background-position:top center; background-size:100% auto;}

.pillars{background-image:var(--pattern-pillars);}
.card-wrap{background-image:var(--pattern-pillars); background-position:center bottom;}
.abbey{background-image:var(--pattern-abbey);}
.faqs{background-image:var(--pattern-faqs);}

.whats-on:not(.wo-listing){background-image:var(--pattern-whatson); background-size:auto 97%;}

.news{background-image:var(--pattern-news); background-position:0 100%; background-size:54% auto;}
.plan{background-image:var(--pattern-plan);}
.site-footer{background-image:none;}

.hero::before{background:linear-gradient(100deg,rgba(3,44,43,.95) 0%,rgba(4,55,56,.88) 18%,rgba(4,55,56,.55) 33%,rgba(4,55,56,.18) 48%,rgba(4,55,56,0) 60%);}

.hero{z-index:1;}

.watch-story{color:var(--teal);}
.watch-story:hover{color:#a8873f;}
.watch-story .play{border-color:currentColor;}
.watch-story .play svg{fill:currentColor;}

@media (max-width:720px){
  .hero::before{
    background:linear-gradient(180deg,
      rgba(2,38,37,.90) 0%,
      rgba(2,38,37,.88) 46%,
      rgba(3,48,48,.80) 66%,
      rgba(4,55,56,.50) 84%,
      rgba(4,55,56,.16) 100%);
  }
  .watch-story{color:var(--cream);}
  .watch-story:hover{color:#fff;}

  .watch-story{margin-bottom:46px;}
}

@media (max-width:767.98px){
  .pillar h3,.pillar p{max-width:100%;}
}

.dots{justify-content:center; gap:clamp(5px,0.39vw,7.5px);}
.dots span.dot{--dot:#fff; position:relative; width:clamp(22px,1.72vw,33px); height:clamp(22px,1.72vw,33px); border-radius:50%; color:var(--dot);
  background:none;
  box-shadow:inset 0 0 0 clamp(1.5px,0.1vw,2px) var(--dot);
  cursor:pointer;}
.dots span.dot::before{content:''; position:absolute; top:20.5%; right:20.5%; bottom:20.5%; left:20.5%; border-radius:50%; background-color:var(--dot);}
.dots span.dot.is-active{--dot:var(--teal);}

.cky-consent-container{border-radius:14px!important;}
.cky-consent-container .cky-consent-bar{background:var(--teal)!important; border:0!important; border-radius:14px!important; box-shadow:0 14px 40px rgba(0,0,0,.35)!important; padding:24px 28px!important;}
.cky-consent-bar .cky-title{font-family:var(--serif)!important; font-weight:700!important; font-size:20px!important; color:var(--gold)!important;}
.cky-consent-bar .cky-notice-des,.cky-consent-bar .cky-notice-des *{color:rgba(255,255,255,.88)!important;}
.cky-consent-bar .cky-notice-des a.cky-policy,.cky-consent-bar .cky-notice-des button.cky-policy{color:var(--gold)!important; border:0!important;}
.cky-consent-bar .cky-banner-btn-close img{filter:brightness(0) invert(1);}
.cky-btn{border-radius:50px!important; font-family:var(--sans)!important; font-weight:500!important; padding:8px 18px!important;}
.cky-btn:hover{opacity:1!important;}
.cky-btn.cky-btn-accept{background:var(--gold)!important; border-color:var(--gold)!important; color:var(--teal)!important;}
.cky-btn.cky-btn-accept:hover{background:#ad8a41!important; border-color:#ad8a41!important;}
.cky-consent-bar .cky-btn-reject{background:transparent!important; border:2px solid rgba(255,255,255,.7)!important; color:#fff!important;}
.cky-consent-bar .cky-btn-reject:hover{background:rgba(255,255,255,.14)!important;}
.cky-consent-bar .cky-btn-customize{background:transparent!important; border:2px solid var(--gold)!important; color:var(--gold)!important;}
.cky-consent-bar .cky-btn-customize:hover{background:rgba(192,155,77,.16)!important;}
@media (max-width:576px){
  .cky-consent-container{left:0!important; right:0!important; width:auto!important; max-width:100%!important;}
  .cky-consent-container .cky-consent-bar{border:0!important;}
}
.cky-consent-container,.cky-consent-container *{box-sizing:border-box;}
.cky-modal{max-width:100vw!important;}
.cky-btn-revisit-wrapper{background:var(--teal)!important;}
.cky-btn-revisit-wrapper:hover::before{background:var(--teal-dark)!important;}
.cky-btn-revisit-wrapper:hover::after{border-left-color:var(--teal-dark)!important; border-right-color:var(--teal-dark)!important;}
.cky-modal,.cky-modal .cky-preference-center{border-radius:14px!important;}
.cky-preference-header{border-bottom-color:#e6e0d4!important;}
.cky-preference-header .cky-preference-title{font-family:var(--serif)!important; color:var(--teal)!important; font-size:22px!important;}
.cky-preference-content-wrapper,.cky-preference-content-wrapper *,.cky-accordion-header-des,.cky-accordion-header-des *,.cky-accordion-header .cky-accordion-btn{color:var(--ink)!important;}
.cky-preference-content-wrapper a,.cky-preference-content-wrapper .cky-show-desc-btn,.cky-accordion-header-des a,.cky-cookie-des-table a{color:var(--teal)!important;}
.cky-accordion{border-bottom-color:#e6e0d4!important;}
.cky-switch input[type="checkbox"]:checked{background-color:var(--teal)!important;}
.cky-btn:focus-visible,.cky-switch input[type="checkbox"]:focus-visible,.cky-accordion-header .cky-accordion-btn:focus-visible,.cky-preference-header .cky-btn-close:focus-visible,.cky-notice-des a.cky-policy:focus-visible{outline-color:var(--gold)!important;}
.cky-prefrence-btn-wrapper .cky-btn-reject,.cky-prefrence-btn-wrapper .cky-btn-preferences{background:transparent!important; border:2px solid var(--teal)!important; color:var(--teal)!important;}
.cky-prefrence-btn-wrapper .cky-btn-reject:hover,.cky-prefrence-btn-wrapper .cky-btn-preferences:hover{background:rgba(4,55,56,.08)!important;}

.explore-dots span.dot{--dot:rgba(1,54,54,.4);}
.explore-dots span.dot.is-active{--dot:var(--teal);}
.pillars-dots span.dot{--dot:rgba(255,255,255,.55);}
.pillars-dots span.dot.is-active{--dot:#fff;}
.partners-dots span.dot{--dot:#cfc8ba;}
.partners-dots span.dot.is-active{--dot:var(--teal);}

@media (max-width:767.98px){
  .dots{gap:10px;}
  .dots span.dot{width:14px; height:14px; box-shadow:inset 0 0 0 1.5px var(--dot);}
}

.news{padding:clamp(50px,5.2vw,100px) 0 clamp(40px,4.17vw,80px); color:var(--teal);}

.news h2,.news h3{line-height:1.16;}

.news h2{font-size:var(--h2);}
.news > .container > .content{max-width:clamp(280px,31.3vw,600px); margin:clamp(12px,1.04vw,20px) auto 0;}
.news > .container > .content p{margin:0; font-size:var(--body); line-height:1.3; color:var(--teal);}

.news-swiper{margin:clamp(26px,2.4vw,46px) 0 0; padding:0;}

.news-swiper .swiper-wrapper{align-items:stretch;}
.blog-card{height:auto; display:flex; flex-direction:column; border-radius:clamp(8px,0.83vw,16px); box-shadow:none;}
.blog-card > img{flex:none; height:clamp(150px,13vw,250px);}

.blog-card > .card-media{flex:none; display:block; height:clamp(150px,13vw,250px);}
.blog-card > .card-media > img{display:block; width:100%; height:100%; object-fit:cover;}
.post-grid .blog-card > .card-media{height:auto; aspect-ratio:16/10;}

.blog-body{flex:1 1 auto; display:flex; flex-direction:column; padding:clamp(16px,1.35vw,26px) clamp(18px,1.6667vw,32px);}
.blog-body h3{font-size:clamp(17px,1.25vw,24px); color:var(--teal);}
.blog-body p{margin:clamp(8px,0.63vw,12px) 0 clamp(12px,0.94vw,18px); font-size:clamp(10px,0.625vw,12px); line-height:1.55; color:var(--teal);}

.read-more{align-self:flex-start; margin-top:auto; font-size:clamp(11px,0.63vw,12px); font-weight:700; color:var(--teal);}
.read-more:hover{color:var(--orange);}
.read-more svg{width:clamp(13px,0.826vw,15.86px); height:clamp(13px,0.826vw,15.86px);}

.join-form{position:relative; flex-wrap:wrap;}
.join-form .wpcf7-spinner{position:absolute; left:50%; top:100%; margin:10px 0 0; transform:translateX(-50%);}

.join-form.sent::after,
.join-form.failed::after,
.join-form.invalid::after,
.join-form.aborted::after,
.join-form.spam::after,
.join-form.unaccepted::after,
.join-form.payment-required::after{content:''; flex:0 0 100%; height:0; order:1;}

.join .join-form .wpcf7-response-output{
  order:2;

  flex:0 0 100%;
  max-width:640px;
  margin:clamp(16px,1.35vw,26px) auto 0;
  padding:10px 18px;
  border-radius:10px;
  font-family:var(--sans);
  font-size:clamp(13px,0.79vw,15px);
  line-height:1.5;
  text-align:center;
  color:var(--teal);
  background:rgba(255,255,255,.65);
}

.join-form .wpcf7-not-valid-tip{margin-top:8px; font-size:clamp(12px,0.73vw,14px); line-height:1.4; text-align:left; color:#7a1a1a;}
@media (max-width:720px){

  .join-form .wpcf7-spinner{position:static; margin:0 auto; transform:none;}
  .join-form .wpcf7-not-valid-tip{text-align:center;}
}

@media (max-width:767.98px){
  .watch-story{position:absolute; left:0; right:auto; bottom:81px; margin:0; z-index:999; font-weight:400; color:var(--cream);}
  .watch-story:hover{color:#fff;}
}

@media (max-width:767.98px){
  .pillar-circle{width:min(128px,33.6vw); height:min(128px,33.6vw);}
}

@media (max-width:767.98px){
  .hero .content p br{display:none;}
  .plan h2{line-height:1.16;}
  .plan-item h3{line-height:1.16;}
  .plan .plan-swiper{margin-top:16px;}
}

@media (max-width:1199px){
  .plan-swiper{padding:0 52px;}
}

@media (max-width:412px){
  .plan-swiper{padding:0;}
  .plan-item{align-items:center; text-align:center; padding:0 46px;}
}

.ev-when .ev-status{display:inline-flex; align-items:center; gap:10px; margin:0; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#12312d;}
.ev-when .ev-status::before{content:''; flex:none; width:12px; height:12px; border-radius:50%; background:var(--ev,var(--teal));}
.wo-empty{margin:clamp(20px,1.5vw,28px) 0 0; font-size:clamp(15px,1.05vw,18px); color:#fff;}
.wo-listing .wo-empty{color:var(--ink);}

.ev-pill{display:inline-block; margin-bottom:clamp(10px,0.8vw,15px); padding:6px 18px; border-radius:50px; background:var(--gold); color:var(--teal); font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;}
.ev-meta li{font-size:clamp(14px,0.94vw,18px); color:#fff;}
.ev-meta svg{width:19px; height:19px;}
.ev-body .content + .ev-details,.ev-body .content + .ev-ctas,.ev-details + .ev-ctas{margin-top:clamp(30px,2.6vw,50px);}
.ev-details{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:clamp(16px,1.35vw,26px);}
.ev-detail{padding:clamp(20px,1.6vw,30px) clamp(22px,1.8vw,34px); border-top:4px solid var(--gold); border-radius:14px; background:#f6f2e9;}
.ev-detail h2{font-size:clamp(19px,1.25vw,24px); color:var(--teal);}
.ev-detail p{margin:10px 0 0; line-height:1.7;}
.ev-ctas{display:flex; flex-wrap:wrap; gap:clamp(12px,1.05vw,20px);}
.ev-ctas .btn{min-width:clamp(180px,13.1167vw,251.84px);}

.ev-more .wo-grid{display:flex; flex-wrap:wrap; justify-content:center; text-align:left;}
.ev-more .event-card{flex:0 1 calc((100% - 2 * clamp(20px,1.9vw,36px)) / 3);}

@media (max-width:1199px){
  .ev-more .event-card{flex-basis:calc((100% - clamp(20px,1.9vw,36px)) / 2);}
}
@media (max-width:860px){
  .ev-more .event-card{flex-basis:100%;}
}
@media (max-width:480px){
  .ev-ctas .btn{flex:1 1 100%; justify-content:center;}
}

.partner-row li:nth-child(n) img{width:auto; height:clamp(48px,3.4vw,64px); max-width:clamp(120px,8.4vw,160px); object-fit:contain;}

/* Client: the Wicklow County Council logo looked much smaller than the rest.
   It is about 5:1, so the shared max-width squeezed it to roughly half the
   height of its neighbours. Very wide logos (flagged .is-wide in
   partners.php) drop that width cap, so they take the SAME height as every
   other logo (clamp 48-64px) and their width simply follows their shape.
   The current council file is only 246px wide, so above ~1500px screens it
   is shown slightly larger than the file itself - a higher-resolution logo
   (SVG, or PNG 600px+) will make it sharp. min(100%) keeps it inside its
   slide on mobile. */
.partner-row li.is-wide img{max-width:min(100%, 420px);}

/* Client: partner logos the same size and evenly spaced on desktop.
   Every logo is the same height and its width simply follows its shape
   (the logo files are trimmed to their artwork, so the box IS the logo).
   There is no max-width, so nothing is squeezed or letterboxed inside a
   wider box - that letterboxing was what made the gaps look uneven. The
   row is centred with one fixed gap between every logo, so the visible
   spaces are all equal, and it keeps working when logos are added,
   removed or reordered in the admin. Below 1200px the row is a slider and
   keeps its own sizing. */
@media (min-width:1200px){
  .partners-swiper .partner-row{display:flex; flex-wrap:nowrap; justify-content:center; align-items:center; gap:clamp(40px,3.6vw,68px);}
  .partners-swiper .partner-row > li{flex:none; width:auto;}
  .partners-swiper .partner-row li:nth-child(n) img{width:auto; max-width:none; height:clamp(44px,3.4vw,52px); object-fit:contain;}
}

.contact{padding:clamp(50px,5.2vw,100px) 0; background:#f6f2e9;}
.contact-row{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(36px,4.2vw,80px); align-items:start; max-width:1240px;}
.contact-copy h2{font-size:var(--h2); line-height:1.16; color:var(--teal);}
.contact-copy p{margin:clamp(14px,1.25vw,24px) 0 0; font-size:clamp(14px,0.94vw,18px); line-height:1.6; color:var(--ink);}
.contact-emails{display:grid; gap:clamp(16px,1.25vw,24px); margin:clamp(26px,2.3vw,44px) 0 0; padding:0; list-style:none;}
.contact-emails li{display:flex; align-items:center; gap:16px;}
.contact-ico{flex:none; display:flex; align-items:center; justify-content:center; width:clamp(44px,2.6vw,50px); height:clamp(44px,2.6vw,50px); border-radius:50%; background:var(--teal); color:var(--gold);}
.contact-ico svg{width:46%; height:46%;}
.contact-line{display:flex; flex-direction:column; min-width:0;}
.contact-label{font-size:12.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#7d7669;}
.contact-line a{font-family:var(--serif); font-weight:700; font-size:clamp(17px,1.15vw,22px); color:var(--teal); overflow-wrap:anywhere;}
.contact-line a:hover{color:#ad8a41; text-decoration:underline; text-underline-offset:3px;}

/* Get in Touch: social below the emails - the same teal circle as the email icon. */
.contact-social{display:flex; gap:10px; margin:clamp(22px,1.9vw,34px) 0 0; padding:0; list-style:none;}
.contact-social a{display:flex; align-items:center; justify-content:center; width:clamp(44px,2.6vw,50px); height:clamp(44px,2.6vw,50px); border-radius:50%; background:var(--teal); transition:background-color .25s ease;}
.contact-social svg{width:100%; height:100%; fill:var(--gold); transition:fill .25s ease;}
.contact-social a:hover{background:var(--gold);}
.contact-social a:hover svg{fill:var(--teal);}
.contact-social a:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.contact-card{padding:clamp(24px,2.1vw,40px); border-radius:14px; background:#fff; box-shadow:0 12px 30px rgba(1,54,54,.1);}

.agp-form .agp-fields{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px;}
.agp-form .agp-field{display:flex; flex-direction:column; min-width:0;}
.agp-form .agp-field--full{grid-column:1 / -1;}
.agp-form .agp-field > label{margin-bottom:7px; font-size:14px; font-weight:600; line-height:1.3; color:var(--teal);}
.agp-form .agp-opt{font-weight:400; color:#7d7669;}
.agp-form .wpcf7-form-control-wrap{display:block;}
.agp-form input:is([type="text"],[type="email"],[type="tel"],[type="number"],[type="date"]),.agp-form select,.agp-form textarea{display:block; width:100%; max-width:none; min-height:50px; margin:0; padding:12px 18px; box-sizing:border-box; border:1px solid #d9d1c3; border-radius:12px; font-family:var(--sans); font-size:15px; line-height:1.4; color:var(--ink); background-color:#fff; transition:border-color .2s ease, box-shadow .2s ease;}
.agp-form textarea{min-height:130px; resize:vertical;}
.agp-form select{-webkit-appearance:none; appearance:none; padding-right:46px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 9 7 7 7-7' fill='none' stroke='%23013636' stroke-width='2.4'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; background-size:16px;}
.agp-form :is(input,select,textarea):hover{border-color:#b9ad97;}
.agp-form :is(input,select,textarea):focus{outline:2px solid transparent; border-color:var(--teal); box-shadow:0 0 0 3px rgba(192,155,77,.45);}
.agp-form .wpcf7-not-valid{border-color:#b3261e;}
.agp-form .wpcf7-not-valid-tip{margin-top:6px; font-size:13px; line-height:1.4; color:#b3261e;}
.agp-form .agp-consent .wpcf7-list-item{display:block; margin:0;}
.agp-form .agp-consent label{display:flex; align-items:flex-start; gap:12px; font-size:14px; line-height:1.5; color:var(--ink); cursor:pointer;}
.agp-form .agp-consent input[type="checkbox"]{flex:none; width:20px; height:20px; min-height:0; margin:1px 0 0; accent-color:var(--teal); cursor:pointer;}
.agp-form .agp-consent a,.join-consent a{color:var(--teal); font-weight:600; text-decoration:underline; text-underline-offset:2px;}
.agp-form .agp-submit{flex-direction:row; flex-wrap:wrap; align-items:center; gap:14px; margin-top:4px;}
.agp-form .btn{border:0;}
.agp-form .wpcf7-spinner{margin:0;}
.wpcf7 form.agp-form .wpcf7-response-output{margin:18px 0 0; padding:12px 18px; border-radius:12px; font-size:14px; line-height:1.5; color:var(--ink);}

.join-consent{flex:0 0 100%; display:flex; justify-content:center; margin-top:clamp(14px,1.05vw,20px);}
.join-consent .wpcf7-form-control-wrap{display:block;}
.join-consent .wpcf7-list-item{margin:0;}
.join-consent label{display:inline-flex; align-items:flex-start; gap:10px; max-width:600px; font-size:clamp(12.5px,0.73vw,14px); line-height:1.5; text-align:left; color:#123a35; cursor:pointer;}
.join-form .join-consent input[type="checkbox"]{flex:none; width:18px; height:18px; margin:1px 0 0; padding:0; border-radius:0; accent-color:var(--teal); cursor:pointer;}

.agp-modal{position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(2,20,20,.88); opacity:0; transition:opacity .25s ease;}
.agp-modal[hidden]{display:none;}
.agp-modal.is-open{opacity:1;}
.agp-modal-panel{position:relative; width:min(820px,100%); max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); overflow-y:auto; overscroll-behavior:contain; box-sizing:border-box; padding:clamp(28px,2.6vw,48px); border-radius:14px; background:#fff; box-shadow:0 20px 50px rgba(0,0,0,.5); transform:translateY(16px); transition:transform .3s cubic-bezier(.22,.61,.36,1);}
.agp-modal.is-open .agp-modal-panel{transform:none;}
.agp-modal-panel:focus,.agp-modal-title:focus,.agp-modal-done:focus{outline:none;}
.agp-modal-title{margin:0 56px clamp(20px,1.6vw,30px) 0; font-size:clamp(26px,1.9vw,36px); line-height:1.16; color:var(--teal);}
.agp-modal-close{position:absolute; top:clamp(16px,1.3vw,24px); right:clamp(16px,1.3vw,24px); display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; background:var(--teal); color:#fff; cursor:pointer; transition:background .25s ease, color .25s ease;}
.agp-modal-close svg{width:18px; height:18px;}
.agp-modal-close:hover{background:var(--gold); color:var(--teal);}
.agp-modal-close:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
html.agp-modal-open,html.agp-modal-open body{overflow:hidden;}
.agp-modal.is-sent .wpcf7{display:none;}
.agp-modal-done{padding:clamp(10px,1vw,20px) 0; text-align:center;}
.agp-modal-done-ico{display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; background:var(--gold); color:var(--teal);}
.agp-modal-done-ico svg{width:30px; height:30px;}
.agp-modal-done-msg{max-width:460px; margin:18px auto 0; font-size:clamp(16px,1.05vw,19px); line-height:1.6; color:var(--ink);}
.agp-modal-done .btn{margin-top:clamp(20px,1.6vw,28px); border:0;}

.to-top{position:fixed; right:clamp(16px,1.25vw,24px); bottom:clamp(16px,1.25vw,24px); z-index:90; display:flex; align-items:center; justify-content:center; width:48px; height:48px; padding:0; border:0; border-radius:50%; background:var(--gold); color:var(--teal); box-shadow:0 6px 16px rgba(0,0,0,.28); cursor:pointer; opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .3s ease, transform .3s ease, visibility .3s ease, background-color .25s ease;}
.to-top.is-visible{opacity:1; visibility:visible; transform:none;}
.to-top:hover{background:#ad8a41;}
.to-top:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.to-top svg{width:22px; height:22px;}

.ft-cookie-btn{padding:0; border:0; border-radius:0; background:none; font:inherit; line-height:inherit; color:#fff; cursor:pointer;}
.ft-cookie-btn:hover{color:var(--gold); text-decoration:underline;}
.ft-cookie-btn:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

@media (max-width:991px){
  .contact-row{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .join-consent{flex:none; justify-content:flex-start; margin-top:2px;}
  .join-consent label{max-width:none;}
}
@media (max-width:640px){
  .agp-form .agp-fields{grid-template-columns:1fr; gap:16px;}
  .agp-form input:is([type="text"],[type="email"],[type="tel"],[type="number"],[type="date"]),.agp-form select,.agp-form textarea{font-size:16px;}
  .agp-modal{padding:12px;}
  .agp-modal-panel{max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); padding:24px 18px;}
  .agp-modal-close{top:14px; right:14px; width:40px; height:40px;}
}
@media (prefers-reduced-motion:reduce){
  .agp-modal,.agp-modal-panel,.to-top{transition:none;}
  .agp-modal-panel,.to-top{transform:none;}
}
html.agp-modal-open .cky-btn-revisit-wrapper{display:none!important;}
