/*
Theme Name: Pea Green Boat 2026
Theme URI: https://mihidigital.co.uk/
Author: MiHi Digital
Author URI: https://mihidigital.co.uk/
Description: Custom WordPress theme for The Pea Green Boat, Sidmouth. Classic seaside styling, Courier New body typography, events and an easy-to-edit homepage.
Version: 1.0.98
Text Domain: pea-green-boat
*/

:root {
  --pgb-ink: #19384a;
  --pgb-ink-deep: #173343;
  --pgb-green: #5c6d61;
  --pgb-green-dark: #4e5f54;
  --pgb-paper: #efe6d6;
  --pgb-mist: #e6e5dc;
  --pgb-sage: #d0decd;
  --pgb-line: rgba(25, 56, 74, .28);
  --pgb-white: #f8f1e5;
  --pgb-max: 1180px;
  --pgb-gutter: clamp(22px, 5vw, 72px);
  --pgb-section: clamp(82px, 9vw, 132px);
  --pgb-heading: "Barlow Semi Condensed", "Arial Narrow", Arial, sans-serif;
  --pgb-hand: "Caveat", "Segoe Print", "Bradley Hand", cursive;
  --pgb-body: "Courier New", Courier, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--pgb-ink);
  background: var(--pgb-paper);
  font-family: var(--pgb-body);
  font-size: 17px;
  line-height: 1.62;
  letter-spacing: -0.7px;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1.25em; text-wrap: pretty; }
button, input, textarea, select { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.pgb-wrap { width: min(calc(100% - (var(--pgb-gutter) * 2)), var(--pgb-max)); margin-inline: auto; }
.pgb-section { padding-block: var(--pgb-section); }
.pgb-section--tight { padding-block: clamp(62px, 7vw, 96px); }
.pgb-kicker { font-family: var(--pgb-body); font-size: clamp(17px, 1.7vw, 21px); letter-spacing: .02em; }
.pgb-title, h1, h2, h3, h4, .site-title {
  font-family: var(--pgb-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  line-height: 1.08;
  text-wrap: balance;
}
.pgb-title { margin: 0; font-size: clamp(34px, 4.7vw, 59px); }
.pgb-section-title { margin: 0 0 8px; font-size: clamp(27px, 3.1vw, 42px); }
.pgb-subtitle { margin: 0; font-size: clamp(16px, 1.5vw, 19px); }
.pgb-rule-title { display: flex; align-items: center; justify-content: center; gap: 28px; }
.pgb-rule-title::before, .pgb-rule-title::after { content: ""; width: 48px; height: 1px; background: var(--pgb-ink); opacity: .65; }

.pgb-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 12px 30px;
  border: 1px solid var(--pgb-ink);
  background: transparent; color: var(--pgb-ink);
  font-family: var(--pgb-heading); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .18em;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.pgb-button:hover, .pgb-button:focus-visible { background: var(--pgb-ink); color: var(--pgb-white); transform: translateY(-1px); }
.pgb-button--filled { background: var(--pgb-green); border-color: var(--pgb-green); color: var(--pgb-white); }
.pgb-button--filled:hover, .pgb-button--filled:focus-visible { background: var(--pgb-ink); border-color: var(--pgb-ink); }
.pgb-arrow { display: inline-block; margin-top: 10px; font-family: Arial, sans-serif; font-size: 27px; line-height: 1; transition: transform .2s ease; }
a:hover .pgb-arrow { transform: translateX(5px); }

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(239,230,214,.97);
  color: var(--pgb-ink);
  border-bottom: 1px solid rgba(78,95,84,.18);
  box-shadow: 0 0 0 rgba(25,56,74,0);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: box-shadow .28s ease, background .28s ease;
}
.site-header.is-scrolled {
  background: rgba(239,230,214,.985);
  box-shadow: 0 10px 30px rgba(25,56,74,.075);
}
.site-header .pgb-wrap {
  width: calc(100% - clamp(44px, 6.1vw, 124px));
  max-width: none;
}
.site-header__inner {
  min-height: 118px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(28px, 3.4vw, 54px);
  transition: min-height .28s ease;
}
.site-header.is-scrolled .site-header__inner { min-height: 96px; }
.site-branding {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  min-width: 72px;
}
.site-brand-mark {
  flex: 0 0 auto;
  display: block;
  width: 66px;
  height: 66px;
  overflow: hidden;
  border-radius: 50%;
  animation: pgb-mark-in .58s cubic-bezier(.22,.61,.36,1) both;
}
.site-brand-mark:hover,
.site-brand-mark:focus-visible { transform: none; opacity: 1; }
.site-brand-mark,
.site-brand-copy { transition: none; }
.site-brand-mark__image,
.site-brand-mark .custom-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  clip-path: none;
  mix-blend-mode: normal;
  filter: none;
}
.site-brand-copy {
  display: block;
  color: var(--pgb-ink);
  text-decoration: none;
  transition: none;
}
.site-brand-copy:hover,
.site-brand-copy:focus-visible { opacity: 1; color: var(--pgb-ink); text-decoration: none; }
.site-title {
  display: block;
  color: var(--pgb-ink);
  font-size: clamp(18px, 1.35vw, 23px);
  letter-spacing: .14em;
  line-height: 1;
  white-space: nowrap;
}
.site-tagline {
  margin-top: 7px;
  color: var(--pgb-ink);
  font-family: var(--pgb-body);
  font-weight: 700;
  font-size: 13px;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .88;
}
.site-header__nav-group {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(18px, 2vw, 30px);
  padding-left: 0;
  border-left: 0;
}
.site-nav {
  flex: 1 1 auto;
  display: flex;
  justify-content: flex-end;
  min-width: 0;
}
.site-nav ul {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(23px, 2.35vw, 39px);
  list-style: none;
  padding: 0;
  margin: 0;
}
.site-nav a {
  position: relative;
  color: var(--pgb-ink);
  font-family: var(--pgb-heading);
  font-weight: 700;
  font-size: clamp(15.5px, .98vw, 17px);
  line-height: 1;
  letter-spacing: .135em;
  text-transform: uppercase;
  white-space: nowrap;
}
.site-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -11px;
  height: 2px;
  background: var(--pgb-green-dark);
  opacity: .72;
  transition: right .22s ease, opacity .22s ease;
}
.site-nav a:hover::after,
.site-nav a:focus-visible::after,
.site-nav .current-menu-item > a::after { right: 0; opacity: 1; }
.site-header__social {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 9px;
  padding-left: 0;
  border-left: 0;
}
.site-header__social a,
.site-header__social span {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--pgb-ink);
  border-radius: 50%;
  color: var(--pgb-paper);
  background: var(--pgb-ink);
  transition: transform .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.site-header__social span { opacity: .58; }
.site-header__social a:hover,
.site-header__social a:focus-visible {
  transform: translateY(-2px) scale(1.035);
  color: #fff;
  background: var(--pgb-green-dark);
  border-color: var(--pgb-green-dark);
  box-shadow: 0 8px 18px rgba(25,56,74,.14);
}
.site-header__social svg { width: 18px; height: 18px; display: block; }
.site-header__social rect,
.site-header__social circle { fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-header__social circle:last-child { fill: currentColor; stroke: none; }
.site-header__social path { fill: currentColor; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: none; color: var(--pgb-ink); padding: 8px; cursor: pointer; }
.menu-toggle span:not(.screen-reader-text) { display: block; width: 28px; height: 1px; background: currentColor; margin: 7px 0; transform-origin: center; transition: transform .22s ease, opacity .18s ease; }
body.nav-open .menu-toggle span:not(.screen-reader-text):nth-child(1) { transform: translateY(8px) rotate(45deg); }
body.nav-open .menu-toggle span:not(.screen-reader-text):nth-child(2) { opacity: 0; }
body.nav-open .menu-toggle span:not(.screen-reader-text):nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Hero slider */
.pgb-hero-slider {
  position: relative;
  padding: clamp(24px, 3vw, 36px) 0 0;
  overflow: hidden;
  background: var(--pgb-paper);
}
.pgb-hero-slider__viewport {
  width: 100%;
  margin: 0;
  overflow: hidden;
}
.pgb-hero-slider__track {
  display: flex;
  gap: clamp(16px, 1.8vw, 24px);
  align-items: stretch;
  transition: transform .9s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}
.pgb-hero-slider__track.is-jumping { transition: none; }
.pgb-hero-slide {
  flex: 0 0 min(88vw, 1120px);
  margin: 0;
  aspect-ratio: 1.7 / 1;
  overflow: hidden;
  background: var(--pgb-mist);
}
.pgb-hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pgb-hero-slider__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-top: 18px;
  padding-bottom: 8px;
}
.pgb-hero-slider__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.pgb-hero-slider__button {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 0 6px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--pgb-ink);
  font-family: var(--pgb-heading);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease;
}
.pgb-hero-slider__button:hover,
.pgb-hero-slider__button:focus-visible { color: var(--pgb-green-dark); }
.pgb-hero-slider__button span[aria-hidden="true"] {
  font-family: Arial, sans-serif;
  font-size: 18px;
  line-height: 1;
}

/* Intro */
.pgb-intro {
  text-align: center;
  padding-top: clamp(72px, 7.6vw, 108px);
  padding-bottom: clamp(60px, 6.4vw, 88px);
}
.pgb-intro__inner {
  max-width: 1100px;
  margin-inline: auto;
}
.pgb-intro .pgb-title {
  font-size: clamp(42px, 5vw, 66px);
  line-height: .98;
  letter-spacing: .13em;
}
.pgb-intro__strap {
  margin-top: 13px;
  font-family: var(--pgb-heading);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .28em;
}
.pgb-intro__body {
  max-width: 850px;
  margin: clamp(34px, 3.8vw, 48px) auto 0;
  padding-top: 0;
}
.pgb-intro__copy {
  max-width: 760px;
  margin-inline: auto;
}
.pgb-intro__copy p {
  margin: 0;
  color: var(--pgb-ink);
  font-size: 18px;
  line-height: 1.62;
  letter-spacing: -.55px;
}
.pgb-intro__copy p + p { margin-top: 13px; }
.pgb-intro__actions {
  display: flex;
  justify-content: center;
  margin: clamp(46px, 4.8vw, 60px) auto 0;
}
.pgb-intro__link {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  width: auto;
  padding: 0 0 8px;
  border-bottom: 1px solid currentColor;
  color: var(--pgb-green-dark);
  text-align: center;
  transition: color .2s ease, border-color .2s ease;
}
.pgb-intro__link-label {
  font-family: var(--pgb-heading);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.pgb-intro__link-arrow {
  flex: 0 0 auto;
  font-family: Arial, sans-serif;
  font-size: 20px;
  line-height: 1;
  transition: transform .22s ease;
}
.pgb-intro__link:hover,
.pgb-intro__link:focus-visible { color: var(--pgb-ink); }
.pgb-intro__link:hover .pgb-intro__link-arrow,
.pgb-intro__link:focus-visible .pgb-intro__link-arrow { transform: translateX(4px); }

/* Feature cards */
.pgb-cards { padding-top: 0; padding-bottom: clamp(64px, 6.2vw, 86px); }
.pgb-cards > .pgb-wrap { width: min(calc(100% - (var(--pgb-gutter) * 1.1)), 1360px); }
.pgb-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 2.35vw, 34px);
  align-items: stretch;
}
.pgb-card {
  position: relative;
  background: #f8f3e9;
  border: 1px solid rgba(78,95,84,.15);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.pgb-card:hover,
.pgb-card:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 15px 34px rgba(25,56,74,.07);
}
.pgb-card > a {
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
}
.pgb-card__media {
  position: relative;
  z-index: 1;
  overflow: hidden;
  background: var(--pgb-green-dark);
  margin-bottom: -1px;
}
.pgb-card__image,
.pgb-card__placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 1.08 / 1;
}
.pgb-card__image {
  object-fit: cover;
  transition: transform .45s ease;
}
.pgb-card__placeholder { background: var(--pgb-green-dark); }
.pgb-card:hover .pgb-card__image,
.pgb-card:focus-within .pgb-card__image { transform: scale(1.018); }
.pgb-card__number {
  position: absolute;
  z-index: 3;
  left: 0;
  bottom: -1px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 55px;
  background: #f8f3e9;
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}
.pgb-card__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  min-height: 270px;
  background: #f8f3e9;
  padding: clamp(30px, 2.7vw, 40px) clamp(28px, 2.8vw, 42px) clamp(26px, 2.5vw, 36px);
}
.pgb-card__title {
  margin: 0 0 16px;
  font-size: clamp(28px, 2.4vw, 36px);
  line-height: 1.03;
  letter-spacing: .125em;
}
.pgb-card__copy {
  margin: 0 0 30px;
  max-width: 34ch;
  font-size: 17px;
  line-height: 1.58;
  letter-spacing: -.45px;
}
.pgb-card__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid rgba(78,95,84,.22);
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.pgb-card__link span {
  font-family: Arial, sans-serif;
  font-size: 20px;
  line-height: 1;
  transition: transform .2s ease;
}
.pgb-card:hover .pgb-card__link span,
.pgb-card:focus-within .pgb-card__link span { transform: translateX(5px); }

/* Testimonial */
.pgb-testimonial {
  background: var(--pgb-green-dark);
  color: var(--pgb-paper);
  padding: clamp(76px, 7vw, 102px) 0 clamp(82px, 7.5vw, 110px);
}
.pgb-testimonial__inner {
  width: min(calc(100% - (var(--pgb-gutter) * 1.1)), 1360px);
  max-width: none;
  margin-inline: auto;
}
.pgb-testimonial__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 20px;
  margin-bottom: clamp(34px, 4vw, 50px);
  border-bottom: 1px solid rgba(239,230,214,.30);
}
.pgb-testimonial__label,
.pgb-testimonial__source {
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.pgb-testimonial__source { opacity: .72; text-align: right; }
.pgb-testimonial__quote {
  max-width: 30ch;
  margin: 0 auto;
  font-family: var(--pgb-body);
  font-size: clamp(30px, 3.2vw, 46px);
  line-height: 1.34;
  letter-spacing: -1.1px;
  text-align: center;
}

/* Location feature */
.pgb-location {
  background: #f8f3e9;
}
.pgb-location__media {
  width: 100%;
  overflow: hidden;
  position: relative;
  background: var(--pgb-green-dark);
}
.pgb-location__media img,
.pgb-location__placeholder {
  display: block;
  width: 100%;
  height: clamp(430px, 43vw, 690px);
}
.pgb-location__media img { object-fit: cover; object-position: center 54%; }
.pgb-location__placeholder { background: var(--pgb-green-dark); }
.pgb-location__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(35deg, rgba(18,42,35,.48) 0%, rgba(18,42,35,.24) 28%, rgba(18,42,35,0) 58%);
}
.pgb-location__image-note {
  position: absolute;
  z-index: 2;
  left: clamp(30px, 5.2vw, 92px);
  bottom: clamp(30px, 5vw, 78px);
  max-width: 13ch;
  color: #f8f3e9;
  font-family: var(--pgb-heading);
  font-size: clamp(40px, 5.1vw, 78px);
  font-weight: 700;
  line-height: .92;
  letter-spacing: .055em;
  text-transform: uppercase;
  text-wrap: balance;
  text-shadow: 0 3px 24px rgba(18,42,35,.28);
}
/* Private hire promo */
.pgb-private-promo {
  position: relative;
  background: var(--pgb-sage);
  color: var(--pgb-ink);
  padding: clamp(82px, 7.6vw, 116px) 0 clamp(78px, 7.2vw, 108px);
  text-align: center;
}
.pgb-private-promo__inner {
  width: min(calc(100% - (var(--pgb-gutter) * 1.2)), 920px);
  max-width: none;
  margin-inline: auto;
}
.pgb-private-promo__kicker {
  margin-bottom: 20px;
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--pgb-green-dark);
  opacity: 1;
}
.pgb-private-promo__title {
  max-width: 15ch;
  margin: 0 auto;
  font-size: clamp(42px, 5.4vw, 76px);
  line-height: .98;
  letter-spacing: .075em;
  color: var(--pgb-ink);
  text-wrap: balance;
}
.pgb-private-promo__lead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.5vw, 20px);
  width: fit-content;
  max-width: 100%;
  margin: 30px auto 0;
  color: var(--pgb-ink);
  font-family: var(--pgb-heading);
  font-size: clamp(19px, 1.85vw, 26px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.pgb-private-promo__lead::before,
.pgb-private-promo__lead::after {
  content: "";
  width: clamp(24px, 3vw, 44px);
  height: 2px;
  flex: 0 0 auto;
  background: var(--pgb-ink);
  opacity: .42;
}
.pgb-private-promo__copy {
  max-width: 52ch;
  margin: 18px auto 0;
  font-family: var(--pgb-body);
  font-size: clamp(17px, 1.45vw, 20px);
  line-height: 1.62;
  letter-spacing: -.55px;
  color: var(--pgb-ink);
  opacity: .9;
}
.pgb-private-promo__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 34px;
  padding-bottom: 7px;
  border-bottom: 2px solid var(--pgb-green-dark);
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.pgb-private-promo__link span:last-child {
  font-family: Arial, sans-serif;
  font-size: 19px;
  line-height: 1;
  transition: transform .2s ease;
}
.pgb-private-promo__link:hover span:last-child,
.pgb-private-promo__link:focus-visible span:last-child { transform: translateX(5px); }
.pgb-private-promo::after {
  content: "";
  position: absolute;
  left: clamp(28px, 5.2vw, 92px);
  right: clamp(28px, 5.2vw, 92px);
  bottom: 0;
  height: 1px;
  background: rgba(63,84,66,.32);
}

/* Events — single hospitality feature */
.pgb-events {
  background: var(--pgb-sage);
  padding: clamp(72px, 6.8vw, 104px) 0 clamp(88px, 8vw, 122px);
  overflow: hidden;
}
.pgb-events > .pgb-wrap {
  width: min(calc(100% - (var(--pgb-gutter) * 1.1)), 1500px);
  max-width: none;
  margin-inline: auto;
}
.pgb-events__layout {
  display: grid;
  grid-template-columns: minmax(250px, .66fr) minmax(0, 2.34fr);
  gap: clamp(42px, 4.5vw, 74px);
  align-items: center;
}
.pgb-events__intro { padding-block: 12px; }
.pgb-events__kicker {
  margin-bottom: 16px;
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.pgb-events .pgb-section-title {
  max-width: 9ch;
  margin: 0 0 20px;
  color: var(--pgb-ink);
  font-size: clamp(38px, 4vw, 58px);
  line-height: .98;
  letter-spacing: .105em;
}
.pgb-events__intro-copy {
  max-width: 28ch;
  margin: 0;
  color: var(--pgb-ink);
  font-size: 17px;
  line-height: 1.62;
  letter-spacing: -.55px;
}
.pgb-events__all {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: 32px;
  padding-bottom: 7px;
  border-bottom: 2px solid var(--pgb-green-dark);
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.pgb-events__all span:last-child {
  font-family: Arial, sans-serif;
  font-size: 18px;
  transition: transform .2s ease;
}
.pgb-events__all:hover span:last-child,
.pgb-events__all:focus-visible span:last-child { transform: translateX(4px); }
.pgb-events__feature { min-width: 0; }
.pgb-event-showcase {
  min-width: 0;
  background: #f8f3e9;
  border: 1px solid rgba(78,95,84,.12);
  overflow: hidden;
  transition: transform .24s ease, box-shadow .24s ease;
}
.pgb-event-showcase:hover,
.pgb-event-showcase:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(25,56,74,.08);
}
.pgb-event-showcase > a {
  display: grid;
  grid-template-columns: minmax(0, 1.32fr) minmax(310px, .78fr);
  min-height: clamp(410px, 29vw, 500px);
}
.pgb-event-showcase__media {
  position: relative;
  min-height: 100%;
  overflow: hidden;
  background: var(--pgb-green-dark);
}
.pgb-event-showcase__media img,
.pgb-event-showcase__placeholder {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
}
.pgb-event-showcase__media img {
  position: absolute;
  inset: 0;
}
.pgb-event-showcase__placeholder { background: var(--pgb-green-dark); }
.pgb-event-showcase__media img { transition: transform .4s ease; }
.pgb-event-showcase__image--frontage { object-position: 50% 50%; }
.pgb-event-showcase:hover .pgb-event-showcase__media img,
.pgb-event-showcase:focus-within .pgb-event-showcase__media img { transform: scale(1.018); }
.pgb-event-showcase__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(34px, 3.4vw, 52px);
  background: #f8f3e9;
}
.pgb-event-showcase__date {
  margin-bottom: 15px;
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.pgb-event-showcase h3 {
  max-width: 15ch;
  margin: 0 0 18px;
  color: var(--pgb-ink);
  font-size: clamp(30px, 2.8vw, 42px);
  line-height: 1.02;
  letter-spacing: .09em;
}
.pgb-event-showcase p {
  max-width: 32ch;
  margin: 0 0 30px;
  color: var(--pgb-ink);
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: -.5px;
}
.pgb-event-showcase__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(78,95,84,.22);
  color: var(--pgb-green-dark);
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.pgb-event-showcase__link span {
  font-family: Arial, sans-serif;
  font-size: 18px;
  transition: transform .2s ease;
}
.pgb-event-showcase:hover .pgb-event-showcase__link span,
.pgb-event-showcase:focus-within .pgb-event-showcase__link span { transform: translateX(4px); }

/* Subtle entrance / flow polish */
.pgb-has-motion .pgb-reveal {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition:
    opacity .56s cubic-bezier(.22,.61,.36,1) var(--pgb-reveal-delay, 0ms),
    transform .56s cubic-bezier(.22,.61,.36,1) var(--pgb-reveal-delay, 0ms);
  will-change: opacity, transform;
}
.pgb-has-motion .pgb-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0,0,0);
}
@keyframes pgb-mark-in {
  from { opacity: 0; transform: translateY(-8px) scale(.94); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.pgb-has-motion .pgb-card.pgb-reveal.is-visible:hover,
.pgb-has-motion .pgb-card.pgb-reveal.is-visible:focus-within { transform: translateY(-5px); }
.pgb-has-motion .pgb-event-showcase.pgb-reveal.is-visible:hover,
.pgb-has-motion .pgb-event-showcase.pgb-reveal.is-visible:focus-within { transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
  .pgb-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Signup (integrated into footer) */
.pgb-signup { display: none; }
.pgb-newsletter-form {
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: transparent;
  border: 0;
}
.pgb-newsletter-form input[type="email"] {
  width: 100%;
  min-width: 0;
  height: 60px;
  padding: 0 22px;
  border: 1px solid rgba(239,230,214,.18);
  border-right: 0;
  background: rgba(255,253,250,.95);
  color: var(--pgb-ink);
  letter-spacing: -0.7px;
  outline: none;
}
.pgb-newsletter-form input[type="email"]::placeholder { color: rgba(25,56,74,.56); }
.pgb-newsletter-form button {
  flex: 0 0 auto;
  height: 60px;
  border: 1px solid var(--pgb-green);
  min-width: 142px;
  padding: 0 30px;
  background: var(--pgb-green);
  color: var(--pgb-white);
  font-family: var(--pgb-heading);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.pgb-newsletter-form button:hover { background: var(--pgb-paper); border-color: var(--pgb-paper); color: var(--pgb-ink); }

/* Footer */
.site-footer {
  background: var(--pgb-ink-deep);
  color: var(--pgb-paper);
  padding: clamp(58px, 4.2vw, 72px) 0 clamp(56px, 3.4vw, 70px);
}
/* The footer deliberately breaks out of the site's standard wrapper to keep the approved open composition. */
.site-footer .site-footer__inner {
  width: calc(100% - clamp(44px, 6.1vw, 124px));
  max-width: none;
  margin-inline: auto;
}
.site-footer__signup {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(24px, 42px) minmax(0, .97fr);
  gap: clamp(30px, 3.8vw, 56px);
  align-items: center;
  padding-bottom: clamp(46px, 3.8vw, 56px);
  margin-bottom: clamp(50px, 4.2vw, 64px);
  border-bottom: 1px solid rgba(239,230,214,.16);
}
.site-footer__signup-copy { min-width: 0; }
.site-footer__signup-kicker {
  margin-bottom: 11px;
  font-family: var(--pgb-heading);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(239,230,214,.72);
}
.site-footer__signup-copy h2 {
  margin: 0 0 10px;
  font-size: clamp(31px, 2.8vw, 44px);
  color: var(--pgb-paper);
}
.site-footer__signup-copy p {
  margin: 0;
  max-width: 46ch;
  font-size: 19px;
  line-height: 1.55;
  color: rgba(239,230,214,.84);
  letter-spacing: -0.7px;
}
.site-footer__signup-divider {
  width: 1px;
  height: 58px;
  background: rgba(239,230,214,.16);
  justify-self: center;
}
.site-footer__signup-form { min-width: 0; width: 100%; max-width: 680px; justify-self: end; }
.site-footer__layout {
  display: grid;
  grid-template-columns: minmax(350px, 500px) minmax(250px, 1fr) minmax(245px, 325px);
  grid-template-rows: auto minmax(76px, 1fr) auto auto;
  column-gap: clamp(52px, 4.4vw, 92px);
  min-height: clamp(250px, 17vw, 305px);
  width: 100%;
}
.site-footer__brand {
  grid-column: 1;
  grid-row: 1;
}
.site-footer__meta {
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-family: var(--pgb-body);
  font-size: 19px;
  line-height: 1.35;
  letter-spacing: -0.7px;
  opacity: .9;
}
.site-footer__meta-line--brand {
  margin-bottom: 2px;
  font-size: clamp(20px, 1.25vw, 24px);
  font-weight: 700;
}
.site-footer__meta-line--contact {
  font-size: 19px;
}
.site-footer__meta-sep {
  opacity: .56;
}
.site-footer__meta a {
  text-decoration: none;
}
.site-footer__meta a:hover,
.site-footer__meta a:focus-visible { opacity: .72; }
.site-footer__rule {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  width: 100%;
  height: 1px;
  background: rgba(239,230,214,.16);
  margin-top: 16px;
}
.site-footer__signature {
  grid-column: 3;
  grid-row: 1 / 4;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  min-width: 0;
  padding-top: 4px;
}
.site-footer__note {
  max-width: 350px;
  font-family: var(--pgb-hand);
  font-size: clamp(31px, 2.1vw, 41px);
  font-weight: 500;
  line-height: .96;
  text-align: right;
  transform: translateY(-7px) rotate(-2deg);
  opacity: .90;
}
.footer-menu {
  grid-column: 1 / 3;
  grid-row: 3;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(34px, 3.4vw, 66px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-menu a {
  font-family: var(--pgb-heading);
  font-weight: 700;
  font-size: clamp(14px, 1.02vw, 21px);
  line-height: 1;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .98;
  transition: opacity .2s ease;
}
.footer-menu a:hover,
.footer-menu a:focus-visible { opacity: .68; }

.site-footer__legal {
  grid-column: 1 / 3;
  grid-row: 4;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 24px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(239,230,214,.13);
  font-family: var(--pgb-body);
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: -.15px;
  color: rgba(239,230,214,.66);
}
.site-footer__legal a { transition: color .2s ease, opacity .2s ease; }
.site-footer__legal a:hover,
.site-footer__legal a:focus-visible { color: var(--pgb-paper); opacity: 1; }
.site-footer__social {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  margin-top: 28px;
  padding-right: 2px;
}
.site-footer__social a,
.site-footer__social span {
  display: inline-grid;
  place-items: center;
  width: 25px;
  height: 25px;
  color: var(--pgb-paper);
  opacity: .94;
}
.site-footer__social a {
  transition: opacity .2s ease, transform .2s ease;
}
.site-footer__social a:hover,
.site-footer__social a:focus-visible { opacity: .65; transform: translateY(-1px); }
.site-footer__social svg {
  width: 22px;
  height: 22px;
  display: block;
  overflow: visible;
}
.site-footer__social rect,
.site-footer__social circle { fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-footer__social circle:last-child { fill: currentColor; stroke: none; }
.site-footer__social path { fill: currentColor; }



/* Contact page */
.pgb-contact-hero {
  background: var(--pgb-paper);
  border-bottom: 1px solid rgba(78,95,84,.18);
  padding: clamp(76px, 9vw, 118px) 0 clamp(58px, 7vw, 88px);
}
.pgb-contact-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: clamp(42px, 7vw, 110px);
  align-items: end;
}
.pgb-contact-hero__kicker {
  margin: 0 0 17px;
  color: var(--pgb-ink);
  font-family: var(--pgb-body);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .68;
}
.pgb-contact-hero h1 {
  margin: 0;
  max-width: 8ch;
  font-size: clamp(48px, 7.5vw, 92px);
  letter-spacing: .11em;
}
.pgb-contact-hero__lead {
  max-width: 34ch;
  margin: 0 0 3px;
  font-size: clamp(16px, 1.35vw, 19px);
  line-height: 1.65;
  letter-spacing: -.45px;
}
.pgb-contact-main {
  padding: clamp(70px, 8vw, 112px) 0 clamp(84px, 9vw, 126px);
}
.pgb-contact-layout {
  display: grid;
  grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
  gap: clamp(54px, 8vw, 118px);
  align-items: start;
}
.pgb-contact-details {
  position: sticky;
  top: 130px;
}
.pgb-contact-details__group {
  padding: 0 0 28px;
  margin: 0 0 28px;
  border-bottom: 1px solid var(--pgb-line);
}
.pgb-contact-details__group:last-child { margin-bottom: 0; }
.pgb-contact-details__label {
  margin-bottom: 10px;
  color: var(--pgb-ink);
  font-family: var(--pgb-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
  opacity: .68;
}
.pgb-contact-details__value {
  margin: 0;
  font-size: 17px;
  line-height: 1.65;
}
.pgb-contact-details__value a {
  text-decoration: none;
  transition: opacity .18s ease;
}
.pgb-contact-details__value a:hover,
.pgb-contact-details__value a:focus-visible { opacity: .62; }
.pgb-contact-form-wrap {
  padding: clamp(32px, 4vw, 54px);
  background: #f8f3e9;
  border: 1px solid rgba(78,95,84,.14);
}
.pgb-contact-form-wrap__head {
  margin-bottom: 34px;
  padding-bottom: 27px;
  border-bottom: 1px solid rgba(78,95,84,.18);
}
.pgb-contact-form-wrap__head h2 {
  margin: 0 0 12px;
  font-size: clamp(29px, 3vw, 43px);
}
.pgb-contact-form-wrap__head p {
  max-width: 42ch;
  margin: 0;
  font-size: 16.5px;
}
.pgb-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 22px;
}
.pgb-contact-field { display: block; }
.pgb-contact-field--full { grid-column: 1 / -1; }
.pgb-contact-field label {
  display: block;
  margin-bottom: 8px;
  color: var(--pgb-ink);
  font-family: var(--pgb-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.pgb-contact-field input,
.pgb-contact-field textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(25,56,74,.38);
  border-radius: 0;
  background: transparent;
  color: var(--pgb-ink);
  padding: 12px 0 13px;
  outline: 0;
  box-shadow: none;
}
.pgb-contact-field textarea {
  min-height: 126px;
  resize: vertical;
}
.pgb-contact-field input:focus,
.pgb-contact-field textarea:focus { border-bottom-color: var(--pgb-ink); }
.pgb-contact-form__footer {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 7px;
}
.pgb-contact-form__note {
  max-width: 32ch;
  margin: 0;
  color: var(--pgb-green-dark);
  font-size: 13px;
  line-height: 1.5;
}
.pgb-contact-submit {
  min-width: 164px;
  border: 1px solid var(--pgb-ink);
  background: var(--pgb-ink);
  color: var(--pgb-paper);
  padding: 15px 22px;
  font-family: var(--pgb-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.pgb-contact-submit:hover,
.pgb-contact-submit:focus-visible {
  background: transparent;
  color: var(--pgb-ink);
}
.pgb-contact-notice {
  margin: 0 0 28px;
  padding: 14px 17px;
  border-left: 3px solid var(--pgb-green-dark);
  background: rgba(208,222,205,.35);
  font-size: 14px;
}
.pgb-contact-notice--error {
  border-left-color: #8b493c;
  background: rgba(139,73,60,.08);
}
.pgb-contact-hp {
  position: absolute !important;
  left: -9999px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 900px) {
  .pgb-contact-hero__inner,
  .pgb-contact-layout { grid-template-columns: 1fr; }
  .pgb-contact-hero__inner { gap: 28px; }
  .pgb-contact-hero h1 { max-width: none; }
  .pgb-contact-details { position: static; }
  .pgb-contact-layout { gap: 48px; }
}

@media (max-width: 680px) {
  .pgb-contact-hero { padding: 58px 0 50px; }
  .pgb-contact-hero h1 { font-size: clamp(42px, 13vw, 58px); }
  .pgb-contact-hero--legal h1 { font-size: clamp(31px, 9vw, 46px); letter-spacing: .07em; white-space: nowrap; }
  .pgb-contact-main { padding: 54px 0 68px; }
  .pgb-contact-form-wrap { padding: 28px 22px; }
  .pgb-contact-form { grid-template-columns: 1fr; gap: 22px; }
  .pgb-contact-field--full,
  .pgb-contact-form__footer { grid-column: 1; }
  .pgb-contact-form__footer {
    align-items: stretch;
    flex-direction: column;
  }
  .pgb-contact-submit { width: 100%; }
}

/* Internal pages */
.pgb-page-hero { padding: clamp(85px, 11vw, 150px) 0 clamp(70px, 9vw, 120px); background: var(--pgb-mist); text-align: center; }
.pgb-page-hero h1 { margin: 0; font-size: clamp(38px, 5.7vw, 72px); }
.pgb-page-content { padding-block: var(--pgb-section); }
.pgb-prose { max-width: 800px; margin-inline: auto; }
.pgb-prose h2, .pgb-prose h3 { margin-top: 2em; }
.pgb-prose a { text-decoration: underline; text-underline-offset: 3px; }
.post-type-archive-pgb_event .pgb-page-hero,
.single-pgb_event .pgb-page-hero { background: var(--pgb-paper); border-bottom: 1px solid rgba(78,95,84,.18); }
.pgb-event-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(36px, 4vw, 58px); }
.pgb-event-card { border-top: 3px solid var(--pgb-green); padding-top: 16px; }
.pgb-event-card img { width: 100%; aspect-ratio: 1.55/1; object-fit: cover; margin-bottom: 22px; }
.pgb-event-card__content { padding-right: 8px; }
.pgb-event-card__date { margin: 0 0 10px; font-size: 17px; line-height: 1.45; letter-spacing: -0.7px; color: var(--pgb-green-dark); }
.pgb-event-card h2 { font-size: clamp(24px, 2.05vw, 30px); margin: 0 0 12px; }
.pgb-event-card__copy { margin: 0 0 20px; font-size: 17px; line-height: 1.62; letter-spacing: -0.7px; }
.pgb-event-hero .pgb-kicker { margin-bottom: 18px; color: var(--pgb-green-dark); }
.pgb-single-event__meta { margin: 22px 0 0; font-size: 19px; line-height: 1.5; letter-spacing: -0.7px; color: var(--pgb-green-dark); }
.pgb-single-event .pgb-prose { max-width: 860px; }

@media (max-width: 900px) {
  .site-header__inner { min-height: 90px; }
  .site-header.is-scrolled .site-header__inner { min-height: 82px; }
  .site-branding { min-width: 0; gap: 11px; }
  .site-brand-mark { width: 54px; height: 54px; }
  .site-title { font-size: 19px; }
  .site-tagline { font-size: 12px; margin-top: 7px; }
  .site-header__nav-group { padding-left: 0; border-left: 0; gap: 0; }
  .site-header__social { position: fixed; z-index: 52; left: 50%; bottom: 42px; transform: translateX(-50%); padding-left: 0; border-left: 0; opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; }
  body.nav-open .site-header__social { opacity: 1; visibility: visible; }
  .site-header__social a, .site-header__social span { width: 40px; height: 40px; }

  .pgb-events__layout { grid-template-columns: 1fr; gap: 34px; }
  .pgb-events__intro { max-width: 620px; padding-block: 0; }
  .pgb-events .pgb-section-title { max-width: none; }
  .pgb-events__intro-copy { max-width: 34ch; }
  .pgb-event-showcase > a { grid-template-columns: 1.15fr .85fr; min-height: 420px; }

  :root { --pgb-section: clamp(68px, 10vw, 90px); }
  .site-header .pgb-wrap { width: min(calc(100% - (var(--pgb-gutter) * 2)), var(--pgb-max)); }
  .site-header__inner { min-height: 88px; }
  .site-branding { min-width: 0; }
  .site-title { font-size: clamp(17px, 3vw, 19px); }
  .site-tagline { font-size: 11px; margin-top: 6px; letter-spacing: .07em; }
  .pgb-hero-slide { flex-basis: min(92vw, 920px); }
  .site-nav { padding-left: 0; border-left: 0; }
  .menu-toggle { display: block; z-index: 50; }
  .site-nav { position: fixed; inset: 0; background: var(--pgb-paper); color: var(--pgb-ink); display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; }
  body.nav-open { overflow: hidden; }
  body.nav-open .site-nav { opacity: 1; visibility: visible; }
  .site-nav ul { flex-direction: column; gap: 28px; text-align: center; }
  .site-nav a { font-size: 20px; letter-spacing: .14em; }
  .pgb-card-grid { gap: 20px; }
  .pgb-card__content { min-height: 240px; padding: 28px 26px 26px; }
  .pgb-card__title { font-size: 26px; }
  .pgb-card__copy { font-size: 16px; }
  .pgb-events__head { margin-inline: 0; }
  .pgb-event-feature { grid-template-columns: 1fr; gap: 0; min-height: 0; margin-inline: 0; }
  .pgb-event-feature__media { min-height: 0; }
  .pgb-event-feature__image { min-height: 0; height: auto; aspect-ratio: 1.7/1; }
  .pgb-event-feature__media--placeholder { aspect-ratio: 1.7/1; }
  .pgb-event-feature__content { max-width: none; min-height: 0; margin: 0; padding: 34px; padding-right: 34px; }
  .pgb-event-feature__date, .pgb-event-feature__title, .pgb-event-feature__copy { max-width: none; }
  .site-footer__signup { grid-template-columns: 1fr; gap: 24px; padding-bottom: 38px; margin-bottom: 40px; }
  .site-footer__signup-divider { display: none; }
  .site-footer__signup-form { max-width: none; justify-self: stretch; border-top: 1px solid rgba(239,230,214,.12); padding-top: 22px; }
  .site-footer__layout {
    grid-template-columns: minmax(290px, 1fr) minmax(180px, .8fr) minmax(215px, 250px);
    column-gap: 34px;
    min-height: 245px;
  }
 .site-footer__meta { font-size: 18px; }
  .site-footer__note { font-size: 29px; }
  .pgb-event-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 680px) {
  .site-brand-mark { width: 48px; height: 48px; }
  .site-title { font-size: 17px; }
  .site-tagline { font-size: 11px; }

  .pgb-events { padding-block: 62px; }
  .pgb-event-showcase > a { grid-template-columns: 1fr; min-height: 0; }
  .pgb-event-showcase__media { min-height: 0; aspect-ratio: 1.45 / 1; }
  .pgb-event-showcase__media img, .pgb-event-showcase__placeholder { height: 100%; min-height: 0; aspect-ratio: auto; }
  .pgb-event-showcase__content { padding: 30px 26px 28px; }
  .pgb-event-showcase h3 { max-width: none; }
  .pgb-event-showcase p { max-width: none; }
  .pgb-events__all { margin-top: 26px; }

  :root { --pgb-gutter: 22px; }
  body { font-size: 16px; }
  .site-branding { min-width: 0; }
  .site-title { font-size: 16px; letter-spacing: .12em; }
  .site-tagline { font-size: 10px; letter-spacing: .06em; }
  .custom-logo { max-height: 44px; max-width: 230px; }
  .pgb-hero-slider { padding-top: 16px; }
  .pgb-hero-slider__viewport { width: 100%; }
  .pgb-hero-slide { flex-basis: calc(100vw - 44px); aspect-ratio: 1.14 / 1; }
  .pgb-hero-slider__controls { padding-top: 14px; }
  .pgb-hero-slider__button { font-size: 11px; letter-spacing: .16em; }
  .pgb-rule-title { gap: 15px; }
  .pgb-rule-title::before, .pgb-rule-title::after { width: 28px; }
  .pgb-actions { flex-direction: column; align-items: stretch; max-width: 330px; margin-inline: auto; margin-top: 26px; }
  .pgb-card-grid { grid-template-columns: 1fr; gap: 30px; }
  .pgb-card__image, .pgb-card__placeholder { aspect-ratio: 1.35 / 1; }
  .pgb-card__content { min-height: 245px; padding: 30px 28px 28px; }
  .pgb-card__title { font-size: 30px; }
  .pgb-card__copy { max-width: none; font-size: 16.5px; }
  .pgb-intro__strap { font-size: 10px; }
  .pgb-intro__body { margin-top: 30px; padding-top: 0; }
  .pgb-intro__copy p { max-width: 36ch; margin-inline: auto; font-size: 17px; line-height: 1.58; }
  .pgb-intro__actions { margin-top: 40px; }
  .pgb-testimonial { padding: 58px 0 62px; }
  .pgb-testimonial__meta { align-items: flex-start; flex-direction: column; gap: 9px; margin-bottom: 28px; padding-bottom: 16px; }
  .pgb-testimonial__source { text-align: left; }
  .pgb-testimonial__quote { max-width: none; font-size: 25px; text-align: left; }
  .pgb-private-promo { padding: 68px 0 72px; }
  .pgb-private-promo__inner { width: calc(100% - 44px); }
  .pgb-private-promo__title { font-size: clamp(38px, 12vw, 52px); }
  .pgb-private-promo__lead { font-size: 19px; }
  .pgb-private-promo__copy { font-size: 17px; }
  .pgb-events-more { grid-template-columns: 1fr; }
  .pgb-events-more__item > a { min-height: 0; }
  .pgb-events__head { align-items: flex-start; margin-bottom: 34px; }
  .pgb-events__all { margin-top: 4px; }
  .pgb-events__head { flex-direction: column; gap: 20px; }
  .pgb-events__all { align-self: flex-start; margin-top: 0; }
  .pgb-event-feature__image { aspect-ratio: 1.45/1; }
  .pgb-event-feature__content { margin: 0; padding: 28px 24px 30px; padding-right: 24px; }
  .pgb-event-feature__copy { max-width: none; font-size: 16.5px; line-height: 1.5; }
  .pgb-event-feature__date { font-size: 12px; }
  .pgb-events .pgb-subtitle { font-size: 18px; }
  .site-footer__signup { text-align: center; }
  .site-footer__signup-kicker { text-align: center; }
  .site-footer__signup-copy p { max-width: none; }
  .site-footer__signup-form { padding-top: 18px; }
  .pgb-newsletter-form { flex-direction: column; gap: 10px; }
  .pgb-newsletter-form input[type="email"] { border-right: 1px solid rgba(239,230,214,.18); }
  .pgb-newsletter-form button { width: 100%; }
  .site-footer { padding-top: 48px; }
  .site-footer .site-footer__inner { width: calc(100% - 44px); }
  .site-footer__layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto auto auto;
    row-gap: 28px;
    min-height: 0;
  }
  .site-footer__brand { grid-column: 1; grid-row: 1; }
 .site-footer__meta { gap: 10px; }
  .site-footer__rule { grid-column: 1; grid-row: 2; width: 100%; margin-top: 0; }
  .site-footer__signature {
    grid-column: 1;
    grid-row: 3;
    align-items: flex-start;
    gap: 18px;
    padding-top: 0;
  }
  .site-footer__note { max-width: 225px; text-align: left; }
  .site-footer__social { justify-content: flex-start; margin-top: 0; }
  .footer-menu { grid-column: 1; grid-row: 4; gap: 20px 25px; margin-top: 18px; }
  .footer-menu a { font-size: 13px; }
  .site-footer__legal { grid-column: 1; grid-row: 5; margin-top: 0; gap: 9px 18px; font-size: 11px; }
  .pgb-event-grid { grid-template-columns: 1fr; }
}


/* v1.0.77 — mobile refinement sweep */
@media (max-width: 900px) {
  .site-header { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
  .site-header__inner { gap: 14px; }
  .menu-toggle { flex: 0 0 44px; }
  .site-nav { padding: 96px 24px 110px; overflow-y: auto; }
  .site-nav ul { width: 100%; max-width: 360px; margin-inline: auto; }
  .site-nav a { display: inline-block; padding: 6px 0; }
  .site-nav a::after { bottom: -3px; }

  .pgb-hero-slider__track { touch-action: pan-y; }
  .pgb-hero-slider__button { min-height: 44px; padding-top: 9px; padding-bottom: 9px; }
  .pgb-hero-slider__meta { min-height: 44px; }

  .pgb-intro { padding-top: 64px; padding-bottom: 58px; }
  .pgb-intro .pgb-title { font-size: clamp(38px, 8.6vw, 54px); }
  .pgb-intro__body { max-width: 700px; }

  .pgb-card:hover,
  .pgb-card:focus-within,
  .pgb-event-showcase:hover,
  .pgb-event-showcase:focus-within { box-shadow: 0 10px 26px rgba(25,56,74,.055); }

  .pgb-private-promo__lead { flex-wrap: nowrap; }
  .pgb-events__layout { align-items: start; }
  .pgb-events__intro-copy { max-width: 42ch; }

  .pgb-page-hero { padding: 72px 0 60px; }
  .pgb-page-hero h1 { font-size: clamp(34px, 7vw, 52px); }
  .pgb-page-content { padding-block: 68px; }
}

@media (max-width: 680px) {
  body { overflow-x: hidden; }
  .site-header .pgb-wrap { width: calc(100% - 32px); }
  .site-header__inner,
  .site-header.is-scrolled .site-header__inner { min-height: 78px; }
  .site-branding { gap: 10px; }
  .site-brand-mark { width: 46px; height: 46px; }
  .site-brand-copy { min-width: 0; }
  .site-title { font-size: 15px; letter-spacing: .11em; }
  .site-tagline { margin-top: 5px; font-size: 9.5px; letter-spacing: .055em; }
  .menu-toggle { margin-right: -6px; }

  .site-nav { padding-top: 86px; }
  .site-nav ul { gap: 22px; }
  .site-nav a { font-size: 18px; }
  .site-header__social { bottom: 26px; }

  .pgb-hero-slider { padding-top: 12px; }
  .pgb-hero-slider__viewport { width: 100%; }
  .pgb-hero-slider__track { gap: 12px; }
  .pgb-hero-slide { flex-basis: calc(100vw - 38px); aspect-ratio: 1.08 / 1; }
  .pgb-hero-slide:nth-child(1) img { object-position: center 58%; }
  .pgb-hero-slide:nth-child(2) img { object-position: center center; }
  .pgb-hero-slide:nth-child(3) img { object-position: center center; }
  .pgb-hero-slider__controls { width: calc(100% - 44px); padding-top: 8px; padding-bottom: 0; }
  .pgb-hero-slider__button { font-size: 10px; letter-spacing: .15em; }
  .pgb-hero-slider__meta { font-size: 10px; }

  .pgb-intro { padding-top: 54px; padding-bottom: 52px; }
  .pgb-intro .pgb-title { font-size: clamp(35px, 10.8vw, 46px); letter-spacing: .105em; }
  .pgb-intro__strap { margin-top: 11px; line-height: 1.45; }
  .pgb-intro__copy p { max-width: 34ch; font-size: 16.5px; }
  .pgb-intro__actions { margin-top: 34px; }

  .pgb-cards { padding-bottom: 56px; }
  .pgb-cards > .pgb-wrap { width: calc(100% - 32px); }
  .pgb-card-grid { gap: 22px; }
  .pgb-card__content { min-height: 0; padding: 27px 24px 24px; }
  .pgb-card__title { font-size: 28px; margin-bottom: 13px; }
  .pgb-card__copy { margin-bottom: 24px; font-size: 16px; line-height: 1.55; }
  .pgb-card__link { padding-top: 17px; }

  .pgb-private-promo { padding: 60px 0 62px; }
  .pgb-private-promo__title { font-size: clamp(36px, 11.2vw, 48px); letter-spacing: .065em; }
  .pgb-private-promo__lead { gap: 9px; margin-top: 24px; font-size: 17px; letter-spacing: .06em; }
  .pgb-private-promo__lead::before,
  .pgb-private-promo__lead::after { width: 18px; }
  .pgb-private-promo__copy { margin-top: 16px; font-size: 16.5px; line-height: 1.58; }
  .pgb-private-promo__link { margin-top: 28px; }

  .pgb-events { padding: 56px 0 62px; }
  .pgb-events > .pgb-wrap { width: calc(100% - 32px); }
  .pgb-events__layout { gap: 28px; }
  .pgb-events .pgb-section-title { margin-bottom: 15px; font-size: clamp(35px, 10vw, 46px); }
  .pgb-events__intro-copy { max-width: none; font-size: 16.5px; }
  .pgb-events__all { margin-top: 22px; }
  .pgb-event-showcase__media { aspect-ratio: 1.32 / 1; }
  .pgb-event-showcase__content { padding: 26px 23px 24px; }
  .pgb-event-showcase h3 { font-size: 30px; margin-bottom: 14px; }
  .pgb-event-showcase p { margin-bottom: 24px; font-size: 15.5px; }

  .site-footer { padding: 44px 0 46px; }
  .site-footer__signup { gap: 20px; padding-bottom: 32px; margin-bottom: 34px; }
  .site-footer__signup-copy h2 { font-size: 30px; }
  .site-footer__signup-copy p { font-size: 17px; line-height: 1.5; }
  .pgb-newsletter-form input[type="email"],
  .pgb-newsletter-form button { height: 54px; }
  .site-footer__layout { row-gap: 24px; }
  .site-footer__meta { font-size: 17px; }
  .site-footer__meta-line--brand { font-size: 19px; }
  .site-footer__meta-line--contact { font-size: 17px; }
  .site-footer__note { max-width: 250px; font-size: 29px; transform: rotate(-1.5deg); }
  .footer-menu { gap: 16px 22px; margin-top: 12px; }

  .pgb-page-hero { padding: 58px 0 48px; }
  .pgb-page-hero h1 { font-size: clamp(32px, 10vw, 44px); letter-spacing: .11em; }
  .pgb-page-content { padding-block: 54px; }
  .pgb-prose { font-size: 16px; }
  .pgb-event-card { padding-top: 13px; }
  .pgb-event-card img { margin-bottom: 18px; }
  .pgb-event-card h2 { font-size: 27px; }
  .pgb-event-card__copy { font-size: 16px; }

  .pgb-has-motion .pgb-reveal {
    transform: translate3d(0, 9px, 0);
    transition-duration: .46s;
  }
}

@media (max-width: 380px) {
  .site-header .pgb-wrap { width: calc(100% - 24px); }
  .site-brand-mark { width: 42px; height: 42px; }
  .site-title { font-size: 13.5px; letter-spacing: .095em; }
  .site-tagline { font-size: 8.5px; }
  .pgb-hero-slide { flex-basis: calc(100vw - 30px); }
  .pgb-intro .pgb-title { font-size: 33px; }
  .pgb-private-promo__lead { font-size: 16px; }
}

@media (hover: none) {
  .pgb-card:hover,
  .pgb-event-showcase:hover,
  .site-header__social a:hover,
  .site-footer__social a:hover { transform: none; }
  .pgb-card:hover .pgb-card__image,
  .pgb-event-showcase:hover .pgb-event-showcase__media img { transform: none; }
}


/* v1.0.78 — mobile navigation rebuild + nested menus */
.site-nav__submenu-toggle { display: none; }

@media (min-width: 901px) {
  .site-nav .menu-item-has-children { position: relative; }
  .site-nav .sub-menu {
    position: absolute;
    z-index: 70;
    top: calc(100% + 19px);
    left: 50%;
    display: block;
    width: max-content;
    min-width: 210px;
    margin: 0;
    padding: 10px 0;
    background: rgba(239,230,214,.99);
    border: 1px solid rgba(25,56,74,.12);
    box-shadow: 0 16px 34px rgba(25,56,74,.1);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%,8px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  .site-nav .sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -20px;
    height: 20px;
  }
  .site-nav .sub-menu li { display: block; width: 100%; }
  .site-nav .sub-menu a {
    display: block;
    padding: 10px 18px;
    font-size: 14px;
    letter-spacing: .11em;
    white-space: nowrap;
  }
  .site-nav .sub-menu a::after { display: none; }
  .site-nav .menu-item-has-children:hover > .sub-menu,
  .site-nav .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%,0);
  }
}

@media (max-width: 900px) {
  .site-header__inner { position: relative; }
  .site-branding { position: relative; z-index: 80; flex: 1 1 auto; min-width: 0; }
  .menu-toggle {
    position: relative;
    z-index: 80;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin: 0 0 0 auto;
    padding: 8px;
  }
  .menu-toggle > span:not(.screen-reader-text) {
    width: 27px;
    margin: 6px auto;
    transform-origin: center;
    transition: transform .22s ease, opacity .16s ease;
  }
  body.nav-open .menu-toggle > span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.nav-open .menu-toggle > span:nth-child(2) { opacity: 0; }
  body.nav-open .menu-toggle > span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .site-header__nav-group {
    flex: 0 0 0;
    width: 0;
    min-width: 0;
    gap: 0;
    padding: 0;
    border: 0;
  }
  .site-nav {
    inset: 0;
    align-items: flex-start;
    padding: 112px max(24px,6vw) 116px;
  }
  .site-nav > ul {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    width: min(100%,420px);
    max-width: 420px;
    margin: 0 auto;
    text-align: left;
  }
  .site-nav > ul > li {
    position: relative;
    width: 100%;
    border-bottom: 1px solid rgba(25,56,74,.14);
  }
  .site-nav > ul > li:first-child { border-top: 1px solid rgba(25,56,74,.14); }
  .site-nav > ul > li > a {
    display: block;
    width: 100%;
    padding: 18px 48px 17px 0;
    font-size: clamp(20px,5vw,24px);
    line-height: 1.15;
    letter-spacing: .12em;
    text-align: left;
  }
  .site-nav a::after { display: none; }
  .site-nav__submenu-toggle {
    position: absolute;
    top: 8px;
    right: -8px;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pgb-ink);
    cursor: pointer;
  }
  .site-nav__submenu-icon {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
  }
  .site-nav__submenu-icon::before,
  .site-nav__submenu-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 1px;
    background: currentColor;
    transform: translate(-50%,-50%);
    transition: transform .18s ease, opacity .18s ease;
  }
  .site-nav__submenu-icon::after { transform: translate(-50%,-50%) rotate(90deg); }
  .site-nav .submenu-open > .site-nav__submenu-toggle .site-nav__submenu-icon::after { opacity: 0; }

  .site-nav .sub-menu {
    position: static;
    display: block;
    width: 100%;
    max-width: none;
    max-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    list-style: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    transform: none;
    transition: max-height .28s ease, opacity .2s ease, padding .2s ease;
  }
  .site-nav .submenu-open > .sub-menu {
    max-height: 720px;
    padding: 0 0 13px;
    opacity: 1;
    visibility: visible;
  }
  .site-nav .sub-menu li { width: 100%; }
  .site-nav .sub-menu a {
    display: block;
    width: 100%;
    padding: 8px 18px 8px 16px;
    font-family: var(--pgb-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: -.3px;
    text-transform: none;
    white-space: normal;
  }
  .site-nav .sub-menu .site-nav__submenu-toggle { top: 1px; right: 0; width: 38px; height: 38px; }
  .site-nav .sub-menu .sub-menu a { padding-left: 32px; font-size: 14px; }

  .site-header__social {
    left: max(24px,6vw);
    right: auto;
    bottom: 28px;
    transform: none;
  }
}

@media (max-width: 680px) {
  .site-header .pgb-wrap { width: calc(100% - 32px); }
  .site-header__inner,
  .site-header.is-scrolled .site-header__inner { min-height: 82px; }
  .site-brand-mark { width: 46px; height: 46px; }
  .site-branding { gap: 10px; }
  .site-title { font-size: 15px; }
  .site-tagline { font-size: 9.5px; }
  .menu-toggle { margin-left: auto; margin-right: -4px; }
  .site-nav { padding-top: 100px; }
  .site-nav > ul > li > a { padding-top: 16px; padding-bottom: 15px; font-size: 20px; }
  .site-nav__submenu-toggle { top: 5px; }
}

@media (max-width: 380px) {
  .site-header .pgb-wrap { width: calc(100% - 24px); }
  .site-brand-mark { width: 42px; height: 42px; }
  .site-title { font-size: 13.5px; }
  .site-tagline { font-size: 8.5px; }
  .site-nav { padding-left: 20px; padding-right: 20px; }
}


/* v1.0.79 — full-screen mobile navigation */
@media (max-width: 900px) {
  body.nav-open .site-header {
    position: fixed;
    inset: 0;
    z-index: 1000;
    width: 100%;
    height: 100dvh;
    overflow: hidden;
    border-bottom: 0;
    background: var(--pgb-paper);
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  body.admin-bar.nav-open .site-header {
    top: 32px;
    height: calc(100dvh - 32px);
  }
  .site-header__inner {
    position: relative;
    z-index: 2;
  }
  body.nav-open .site-header__inner,
  body.nav-open .site-header.is-scrolled .site-header__inner {
    min-height: 96px;
  }
  .site-branding,
  .menu-toggle { position: relative; z-index: 1003; }
  .site-header__nav-group {
    position: fixed;
    inset: 0;
    z-index: 1001;
    display: block;
    width: 100%;
    height: 100dvh;
    padding: 0;
    border: 0;
    background: var(--pgb-paper);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity .24s ease, transform .28s cubic-bezier(.22,.61,.36,1), visibility .24s ease;
  }
  body.admin-bar .site-header__nav-group {
    top: 32px;
    height: calc(100dvh - 32px);
  }
  body.nav-open .site-header__nav-group {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
  .site-nav {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 122px max(24px,6vw) 150px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: transparent;
    color: var(--pgb-ink);
    opacity: 1;
    visibility: visible;
    -webkit-overflow-scrolling: touch;
  }
  .site-nav::before {
    content: "EXPLORE";
    display: block;
    width: min(100%, 520px);
    margin: 0 auto 12px;
    color: var(--pgb-green-dark);
    font-family: var(--pgb-body);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .16em;
  }
  .site-nav > ul {
    counter-reset: pgb-menu;
    width: min(100%,520px);
    max-width: 520px;
    margin: 0 auto;
    padding: 0;
    text-align: left;
  }
  .site-nav > ul > li {
    counter-increment: pgb-menu;
    border-bottom: 1px solid rgba(25,56,74,.16);
  }
  .site-nav > ul > li:first-child { border-top: 1px solid rgba(25,56,74,.16); }
  .site-nav > ul > li > a {
    display: grid;
    grid-template-columns: 42px minmax(0,1fr);
    align-items: baseline;
    width: 100%;
    padding: 19px 54px 18px 0;
    font-size: clamp(25px,7vw,33px);
    line-height: .98;
    letter-spacing: .095em;
    text-align: left;
  }
  .site-nav > ul > li > a::before {
    content: "0" counter(pgb-menu);
    display: block;
    color: var(--pgb-green-dark);
    font-family: var(--pgb-body);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .08em;
  }
  .site-nav > ul > li > a::after { display: none; }
  .site-nav__submenu-toggle {
    top: 10px;
    right: -9px;
    width: 48px;
    height: 48px;
  }
  .site-nav__submenu-icon { width: 18px; height: 18px; }
  .site-nav__submenu-icon::before,
  .site-nav__submenu-icon::after { width: 16px; }
  .site-nav .sub-menu {
    margin: 0 0 0 42px;
    width: calc(100% - 42px);
    border-radius: 2px;
    background: rgba(208,222,205,.42);
  }
  .site-nav .submenu-open > .sub-menu {
    max-height: 900px;
    margin-bottom: 15px;
    padding: 10px 0;
  }
  .site-nav .sub-menu li { border: 0; }
  .site-nav .sub-menu a {
    padding: 9px 16px;
    color: var(--pgb-ink);
    font-family: var(--pgb-body);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -.25px;
  }
  .site-nav .sub-menu .sub-menu {
    margin-left: 16px;
    width: calc(100% - 16px);
    background: rgba(248,241,229,.58);
  }
  .site-header__social {
    position: absolute;
    z-index: 1002;
    left: max(24px,6vw);
    right: max(24px,6vw);
    bottom: 28px;
    display: flex;
    justify-content: flex-start;
    width: auto;
    padding-top: 18px;
    border-top: 1px solid rgba(25,56,74,.14);
    opacity: 0;
    visibility: hidden;
    transform: none;
  }
  body.nav-open .site-header__social { opacity: 1; visibility: visible; }
  .site-header__social::after {
    content: "THE ESPLANADE · SIDMOUTH";
    margin-left: auto;
    align-self: center;
    color: var(--pgb-green-dark);
    font-family: var(--pgb-body);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
  }
  body.nav-open .site-branding { opacity: 1; }
  body.nav-open .menu-toggle { margin-left: auto; }
}

@media (max-width: 782px) {
  body.admin-bar.nav-open .site-header,
  body.admin-bar .site-header__nav-group {
    top: 46px;
    height: calc(100dvh - 46px);
  }
}

@media (max-width: 680px) {
  body.nav-open .site-header__inner,
  body.nav-open .site-header.is-scrolled .site-header__inner { min-height: 86px; }
  .site-nav { padding: 105px 24px 142px; }
  .site-nav::before,
  .site-nav > ul { width: 100%; }
  .site-nav > ul > li > a {
    grid-template-columns: 35px minmax(0,1fr);
    padding: 17px 48px 16px 0;
    font-size: clamp(23px,7.1vw,29px);
  }
  .site-nav .sub-menu {
    margin-left: 35px;
    width: calc(100% - 35px);
  }
  .site-header__social {
    left: 24px;
    right: 24px;
    bottom: 22px;
  }
  .site-header__social::after { font-size: 8.5px; letter-spacing: .07em; }
}

@media (max-width: 400px) {
  .site-header__social::after { content: "SIDMOUTH SEAFRONT"; }
  .site-nav { padding-left: 20px; padding-right: 20px; }
}


/* v1.0.94 — internal page system */
.pgb-inner-hero {
  padding: clamp(72px, 8vw, 112px) 0 clamp(56px, 6.5vw, 88px);
  background: var(--pgb-paper);
  border-bottom: 1px solid rgba(25,56,74,.12);
}
.pgb-inner-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .72fr);
  gap: clamp(42px, 7vw, 110px);
  align-items: end;
}
.pgb-inner-hero__kicker,
.pgb-inner-section__kicker {
  margin-bottom: 18px;
  color: var(--pgb-green-dark);
  font-family: var(--pgb-body);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.pgb-inner-hero h1 {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(48px, 7vw, 92px);
  line-height: .94;
  letter-spacing: .105em;
}
.pgb-inner-hero__lead {
  max-width: 32ch;
  margin: 0;
  color: var(--pgb-ink);
  font-size: clamp(18px, 1.55vw, 22px);
  line-height: 1.55;
  letter-spacing: -.65px;
}
.pgb-inner-media {
  width: min(calc(100% - (var(--pgb-gutter) * 2)), 1380px);
  margin: clamp(34px, 4vw, 58px) auto 0;
}
.pgb-inner-media img {
  width: 100%;
  height: clamp(350px, 48vw, 680px);
  object-fit: cover;
}
.pgb-inner-section { padding: clamp(72px, 8vw, 112px) 0; }
.pgb-inner-section--sage { background: var(--pgb-sage); }
.pgb-inner-section--mist { background: var(--pgb-mist); }
.pgb-inner-section--ink { background: var(--pgb-ink); color: var(--pgb-paper); }
.pgb-inner-section--ink .pgb-inner-section__kicker { color: var(--pgb-sage); }
.pgb-inner-split {
  display: grid;
  grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
  gap: clamp(50px, 8vw, 122px);
  align-items: start;
}
.pgb-inner-title {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(34px, 4vw, 56px);
}
.pgb-inner-copy { max-width: 700px; }
.pgb-inner-copy p { font-size: clamp(17px, 1.45vw, 19px); line-height: 1.67; }
.pgb-inner-copy > *:last-child { margin-bottom: 0; }
.pgb-inner-copy h2,
.pgb-inner-copy h3 { margin: 1.7em 0 .7em; font-size: clamp(25px, 2.6vw, 34px); }
.pgb-inner-copy a { text-decoration: underline; text-underline-offset: 4px; }
.pgb-inner-copy ul { padding-left: 1.25em; }
.pgb-inner-copy li { margin-bottom: .55em; }
.pgb-inner-image-pair {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: clamp(15px, 2vw, 28px);
  align-items: end;
}
.pgb-inner-image-pair img { width: 100%; object-fit: cover; }
.pgb-inner-image-pair img:first-child { height: clamp(390px, 48vw, 650px); }
.pgb-inner-image-pair img:last-child { height: clamp(290px, 36vw, 480px); }
.pgb-inner-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  margin-top: clamp(48px, 6vw, 82px);
  border-top: 1px solid rgba(25,56,74,.28);
}
.pgb-inner-fact { padding: 28px 28px 12px 0; border-right: 1px solid rgba(25,56,74,.22); }
.pgb-inner-fact + .pgb-inner-fact { padding-left: 28px; }
.pgb-inner-fact:last-child { border-right: 0; }
.pgb-inner-fact__label { margin-bottom: 8px; color: var(--pgb-green-dark); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pgb-inner-fact__value { margin: 0; font-family: var(--pgb-heading); font-size: clamp(23px, 2.4vw, 32px); font-weight: 700; line-height: 1.15; letter-spacing: .08em; text-transform: uppercase; }
.pgb-menu-intro { max-width: 790px; }
.pgb-menu-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: clamp(18px, 2.2vw, 30px);
  margin-top: clamp(44px, 5vw, 68px);
}
.pgb-menu-panel { min-height: 320px; padding: clamp(28px, 3vw, 40px); background: #f8f3e9; border-top: 3px solid var(--pgb-green); }
.pgb-menu-panel__number { margin-bottom: 42px; color: var(--pgb-green-dark); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.pgb-menu-panel h2 { margin: 0 0 18px; font-size: clamp(26px, 2.8vw, 36px); }
.pgb-menu-panel p { margin: 0; font-size: 17px; line-height: 1.62; }
.pgb-menu-current {
  display: grid;
  grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
  gap: clamp(40px, 7vw, 100px);
  align-items: start;
}
.pgb-menu-current__note { padding-top: 12px; border-top: 1px solid rgba(239,230,214,.38); font-size: 15px; opacity: .82; }
.pgb-private-hero-image { object-position: center 58%; }
.pgb-private-options {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1px;
  margin-top: clamp(44px, 5vw, 66px);
  background: rgba(25,56,74,.18);
}
.pgb-private-option { padding: clamp(28px, 3vw, 42px); background: var(--pgb-paper); }
.pgb-private-option h3 { margin: 0 0 14px; font-size: 25px; }
.pgb-private-option p { margin: 0; font-size: 16.5px; line-height: 1.6; }
.pgb-inner-cta { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.pgb-inner-cta h2 { margin: 0; max-width: 12ch; font-size: clamp(38px, 5vw, 66px); }
.pgb-inner-cta__button {
  display: inline-flex; align-items: center; gap: 15px; padding-bottom: 7px;
  border-bottom: 1px solid currentColor; font-family: var(--pgb-heading); font-weight: 700;
  font-size: 14px; letter-spacing: .18em; text-transform: uppercase;
}
.pgb-webcam-frame {
  position: relative;
  min-height: clamp(420px, 58vw, 720px);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--pgb-ink);
}
.pgb-webcam-frame > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .58; }
.pgb-webcam-frame::after { content:""; position:absolute; inset:0; background: linear-gradient(to top, rgba(23,51,67,.48), rgba(23,51,67,.08)); }
.pgb-webcam-placeholder { position: relative; z-index: 2; max-width: 580px; padding: 34px; color: var(--pgb-white); text-align: center; }
.pgb-webcam-placeholder__live { display: inline-flex; align-items:center; gap:10px; margin-bottom: 20px; font-size: 12px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.pgb-webcam-placeholder__live::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--pgb-sage); }
.pgb-webcam-placeholder h2 { margin:0 0 16px; font-size:clamp(34px,4vw,52px); }
.pgb-webcam-placeholder p { margin:0; font-size:18px; line-height:1.6; }
.pgb-webcam-embed iframe,
.pgb-webcam-embed video { width:100%; min-height: clamp(420px,58vw,720px); border:0; display:block; }
.pgb-opening-card { max-width: 760px; padding: clamp(32px,4vw,54px); background:#f8f3e9; border-top:3px solid var(--pgb-green); }
.pgb-opening-card p:last-child { margin-bottom:0; }

@media (max-width: 900px) {
  .pgb-inner-hero__grid, .pgb-inner-split, .pgb-menu-current { grid-template-columns: 1fr; gap: 34px; }
  .pgb-inner-hero h1 { max-width: none; }
  .pgb-inner-hero__lead { max-width: 40ch; }
  .pgb-menu-grid, .pgb-private-options { grid-template-columns: 1fr; }
  .pgb-menu-panel { min-height: 0; }
  .pgb-inner-facts { grid-template-columns: 1fr; }
  .pgb-inner-fact { border-right:0; border-bottom:1px solid rgba(25,56,74,.18); padding:22px 0; }
  .pgb-inner-fact + .pgb-inner-fact { padding-left:0; }
  .pgb-inner-fact:last-child { border-bottom:0; }
}
@media (max-width: 680px) {
  .pgb-inner-hero { padding: 52px 0 42px; }
  .pgb-inner-hero h1 { font-size: clamp(42px,13vw,58px); }
  .pgb-inner-hero__lead { font-size:17px; }
  .pgb-inner-media { width: calc(100% - 32px); margin-top:24px; }
  .pgb-inner-media img { height: 360px; }
  .pgb-inner-section { padding: 56px 0; }
  .pgb-inner-image-pair { grid-template-columns:1fr; }
  .pgb-inner-image-pair img:first-child, .pgb-inner-image-pair img:last-child { height:330px; }
  .pgb-inner-title { font-size: clamp(32px,10vw,44px); }
  .pgb-inner-cta { align-items:flex-start; flex-direction:column; }
  .pgb-webcam-frame { min-height:430px; }
  .pgb-webcam-placeholder { padding:28px 24px; }
}



/* v1.0.98 — simplified legal page headers */
.pgb-contact-hero--legal .pgb-contact-hero__inner {
  grid-template-columns: 1fr;
}

/* v1.0.96 — legal navigation + cleaner legal page titles */
.pgb-contact-hero--legal h1 {
  max-width: none;
  white-space: nowrap;
  font-size: clamp(44px, 6.2vw, 80px);
  letter-spacing: .09em;
}

/* v1.0.95 — contact-led internal page headers, legal pages and 404 */
.pgb-legal-page { background: var(--pgb-paper); }
.pgb-legal-page .pgb-prose {
  max-width: 850px;
  margin-inline: auto;
}
.pgb-legal-page .pgb-prose > p:first-child {
  font-size: clamp(19px, 1.65vw, 22px);
  line-height: 1.62;
}
.pgb-legal-page .pgb-prose h2 {
  margin: 2.25em 0 .65em;
  padding-top: 1.25em;
  border-top: 1px solid rgba(25,56,74,.18);
  font-size: clamp(25px, 2.6vw, 35px);
}
.pgb-legal-page .pgb-prose p,
.pgb-legal-page .pgb-prose li {
  font-size: 17px;
  line-height: 1.72;
}
.pgb-legal-page .pgb-prose a { text-decoration-thickness: 1px; }

.pgb-404-main {
  padding: clamp(70px, 8vw, 112px) 0 clamp(88px, 10vw, 140px);
  background: var(--pgb-sage);
}
.pgb-404-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  gap: clamp(50px, 8vw, 120px);
  align-items: end;
}
.pgb-404-number {
  color: rgba(25,56,74,.13);
  font-family: var(--pgb-heading);
  font-size: clamp(130px, 24vw, 330px);
  font-weight: 700;
  line-height: .72;
  letter-spacing: -.04em;
}
.pgb-404-links h2 {
  margin: 0 0 30px;
  max-width: 10ch;
  font-size: clamp(36px, 4.5vw, 58px);
}
.pgb-404-actions {
  display: grid;
  border-top: 1px solid rgba(25,56,74,.28);
}
.pgb-404-actions a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 17px 0;
  border-bottom: 1px solid rgba(25,56,74,.28);
  font-family: var(--pgb-heading);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.pgb-404-actions a span:last-child { font-family: Arial,sans-serif; font-size: 20px; transition: transform .2s ease; }
.pgb-404-actions a:hover span:last-child,
.pgb-404-actions a:focus-visible span:last-child { transform: translateX(5px); }

@media (max-width: 900px) {
  .pgb-404-layout { grid-template-columns: 1fr; gap: 48px; }
  .pgb-404-number { font-size: clamp(130px, 38vw, 250px); }
}
@media (max-width: 680px) {
  .pgb-legal-page .pgb-prose h2 { margin-top: 1.8em; }
  .pgb-404-main { padding: 56px 0 76px; }
}
