/** Shopify CDN: Minification failed

Line 2069:11 Expected identifier but found whitespace
Line 2070:4 Unexpected "0"

**/
/* ==========================================================================
   The Pressoir editorial design system
   Paste into: Online Store > Themes > Customise > Theme settings > Custom CSS
   Everything is namespaced under .tpx so it cannot affect anything else.
   ========================================================================== */

/* Hide the theme's own page/article title only where a .tpx hero supplies one */
.shopify-section:has(.tpx-hero) .main-page-title { display: none !important; }
.article-template:has(.tpx-hero) > header { display: none !important; }

/* ---------- tokens ---------- */
.tpx {
  --serif: var(--font-heading-family, Georgia, "Times New Roman", serif);
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --hs: var(--font-heading-scale, 1);
  --fg: var(--color-foreground, 37 70 32);
  --bg: var(--color-background, 242 239 221);
  --w: 64rem;
  --p: .5;
  --lum: 1;
  --ease: cubic-bezier(.22, .7, .28, 1);
  --gfill: rgba(var(--fg), .05);
  --gbd: rgba(var(--fg), .16);
  --gin: 0 1px 0 rgba(var(--fg), .16) inset;
  --gsh: none;
  font-family: var(--serif);
  color: rgb(var(--fg));
  max-width: none;
  margin: 0;
  text-align: center;
  overflow-x: clip;
}
.tpx * { box-sizing: border-box; }
.tpx ul, .tpx ol {
  list-style: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.tpx li { list-style: none !important; margin-left: 0 !important; }
.tpx p { font-family: var(--serif); line-height: 1.62; margin: 0 0 1.2rem; text-wrap: pretty; }
.tpx h1, .tpx h2, .tpx h3 {
  font-family: var(--serif);
  font-weight: var(--font-heading-weight, 400);
  font-style: var(--font-heading-style, normal);
  text-wrap: balance;
  margin: 0;
}
.tpx h1 {
  font-size: clamp(calc(var(--hs) * 3rem), 3.6vw, calc(var(--hs) * 4.4rem));
  line-height: 1.14; letter-spacing: -.008em;
  margin: 0 0 clamp(1.5rem, 2vw, 2rem); color: rgb(var(--fg));
}
.tpx h2 {
  font-size: clamp(calc(var(--hs) * 2.2rem), 2.6vw, calc(var(--hs) * 3.2rem));
  line-height: 1.18; letter-spacing: -.006em;
  margin: 0 0 clamp(1.4rem, 2vw, 1.8rem); color: rgb(var(--fg));
}

/* ---------- eyebrow, diamond rule, lede, note ---------- */
.tpx-brow {
  font-family: var(--sans); font-size: clamp(1.15rem, 1vw, 1.35rem);
  letter-spacing: .26em; text-transform: uppercase; font-weight: 600;
  line-height: 1.5; margin: 0 0 1.5rem; text-indent: .26em;
  color: rgba(var(--fg), .72);
}
.tpx-rule {
  display: flex; align-items: center; justify-content: center; gap: 1.1rem;
  margin: 0 auto clamp(2rem, 3.2vw, 2.9rem); max-width: 20rem;
}
.tpx-rule::before, .tpx-rule::after {
  content: ""; flex: 1 1 auto; height: 1px;
  background: linear-gradient(90deg, rgba(var(--fg), 0), rgba(var(--fg), .28), rgba(var(--fg), 0));
}
.tpx-dia {
  font-size: .9rem; letter-spacing: .55em; line-height: 1;
  text-indent: .55em; color: rgba(var(--fg), .42);
}
.tpx-lede {
  color: rgba(var(--fg), .9); font-size: clamp(1.7rem, 1.4vw, 2rem);
  line-height: 1.62; max-width: 52rem;
  margin: 0 auto clamp(2.6rem, 4.4vw, 3.6rem);
}
.tpx-note {
  max-width: 48rem; margin: 0 auto; font-size: clamp(1.5rem, 1.2vw, 1.65rem);
  color: rgba(var(--fg), .85); line-height: 1.7;
}
.tpx-cap {
  font-family: var(--sans); font-size: clamp(1.1rem, .95vw, 1.25rem);
  letter-spacing: .1em; text-transform: uppercase;
  color: rgba(var(--fg), .58); line-height: 1.6; margin: 1.4rem 0 0; text-align: center;
}

/* ---------- layout ---------- */
.tpx-sec {
  margin: 0 auto clamp(3.4rem, 6vw, 5.4rem);
  padding: 0 clamp(1.6rem, 4vw, 2rem);
  max-width: var(--w); text-align: center;
}
.tpx-sec > * { margin-left: auto; margin-right: auto; }
.tpx-rows, .tpx-fine, .tpx-grid2, .tpx-grid3, .tpx-bento { margin-left: auto !important; margin-right: auto !important; }
/* panels sit at content width, on the same centre axis as everything else */
.tpx .tpx-bleed { width: 100%; margin-left: auto; margin-right: auto; transform: none; }
.tpx-inner {
  position: relative; z-index: 3; max-width: var(--w); margin: 0 auto; width: 100%;
  display: flex; flex-direction: column; align-items: center; text-align: center;
}
.tpx-inner > * { width: 100%; margin-left: auto; margin-right: auto; text-align: center; }

/* ---------- dark panel ---------- */
.tpx-dark .tpx-v { text-shadow: 0 1px 3px rgba(0, 0, 0, .3); }
.tpx-dark {
  --fg: 242 239 221; --bg: 37 70 32;
  --gfill: rgba(var(--fg), .07); --gbd: rgba(var(--fg), .16);
  --gin: 0 1px 0 rgba(var(--fg), .16) inset;
  --gsh: 0 24px 48px rgba(0, 0, 0, .30);
  position: relative; isolation: isolate; overflow: hidden;
  background: #254620; color: rgb(var(--fg)); text-align: center;
  padding: clamp(4.2rem, 8vw, 7.5rem) clamp(1.6rem, 4vw, 3rem);
  margin: 0 0 clamp(3.4rem, 6vw, 5.4rem);
  border-radius: 18px;
}
.tpx-glow {
  position: absolute; inset: -20% -10%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(58% 42% at 50% calc(8% + var(--p) * 78%), rgba(150,196,120,.28) 0%, rgba(96,148,74,.14) 34%, rgba(37,70,32,0) 72%),
    radial-gradient(90% 70% at 50% 50%, #2d5427 0%, #254620 48%, #1b3317 100%);
  opacity: calc(.55 + var(--lum) * .45);
  transition: opacity .9s var(--ease);
}
.tpx-vig {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(78% 62% at 50% 46%, rgba(0,0,0,0) 42%, rgba(0,0,0,.42) 100%);
}
.tpx-grain {
  position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .05;
  background-image: radial-gradient(rgba(242,239,221,.9) .5px, transparent .6px);
  background-size: 3px 3px; mix-blend-mode: overlay;
}
.tpx-frame {
  position: absolute; z-index: 1; pointer-events: none;
  inset: clamp(1rem, 2vw, 1.8rem);
  border: 1px solid rgba(var(--fg), .13); border-radius: 10px;
}

/* ---------- reveals ---------- */
.tpx-el {
  opacity: 0; transform: translateY(20px);
  transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.tpx-panel.is-in .tpx-el { opacity: 1; transform: none; }
.tpx-panel.is-in .tpx-el:nth-child(1) { transition-delay: .04s; }
.tpx-panel.is-in .tpx-el:nth-child(2) { transition-delay: .14s; }
.tpx-panel.is-in .tpx-el:nth-child(3) { transition-delay: .24s; }
.tpx-panel.is-in .tpx-el:nth-child(4) { transition-delay: .34s; }
.tpx-panel.is-in .tpx-el:nth-child(5) { transition-delay: .46s; }
.tpx-panel.is-in .tpx-el:nth-child(n+6) { transition-delay: .62s; }
.tpx-line { display: block; overflow: hidden; padding-bottom: .06em; }
.tpx-line > span {
  display: block; transform: translateY(105%);
  transition: transform 1.1s cubic-bezier(.16, .78, .22, 1);
}
.tpx-panel.is-in .tpx-line > span { transform: translateY(0); }
/* content must never depend on JS to become visible */
.tpx:not(.tpx-js) .tpx-el { opacity: 1; transform: none; }
.tpx:not(.tpx-js) .tpx-line > span { transform: none; }

/* ---------- glass stats plate ---------- */
.tpx-glass {
  display: grid; grid-template-columns: repeat(4, 1fr);
  max-width: min(52rem, 100%); margin: 0 auto;
  border-radius: 14px; overflow: hidden;
  background: var(--gfill); border: 1px solid var(--gbd);
  box-shadow: var(--gin), var(--gsh);
}
.tpx-glass--2 { grid-template-columns: repeat(2, 1fr); max-width: min(40rem, 100%); }
.tpx-glass--3 { grid-template-columns: repeat(3, 1fr); }
.tpx-cell {
  padding: clamp(1.6rem, 3vw, 2.4rem) clamp(.6rem, 1.4vw, 1.2rem);
  border-right: 1px solid rgba(var(--fg), .12);
  transition: background .4s ease;
}
.tpx-cell:last-child { border-right: 0; }
.tpx-glass:hover .tpx-cell { background: rgba(var(--fg), .03); }
.tpx-k {
  display: block; font-family: var(--sans);
  font-size: clamp(.85rem, 1.7vw, 1.15rem);
  letter-spacing: clamp(.1em, .6vw, .22em); text-transform: uppercase;
  color: rgba(var(--fg), .6); margin: 0 0 .7rem; line-height: 1.4;
}
.tpx-v {
  display: block; font-family: var(--serif);
  font-size: clamp(1.7rem, 1.9vw, 2.2rem); line-height: 1.2;
  color: rgb(var(--fg));
}
.tpx-v small {
  display: block; font-family: var(--sans);
  font-size: clamp(.8rem, 1.4vw, 1.05rem); letter-spacing: .12em;
  text-transform: uppercase; color: rgba(var(--fg), .58);
  margin-top: .6rem; line-height: 1.4; text-shadow: none;
}

/* ---------- bento cards ---------- */
.tpx-bento {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 1.8vw, 1.4rem); text-align: left;
}
.tpx-bento--2 { grid-template-columns: repeat(2, 1fr); }
.tpx-bento--4 { grid-template-columns: repeat(4, 1fr); }
.tpx-bento > li {
  position: relative; overflow: hidden; border-radius: 14px;
  background: var(--gfill); border: 1px solid var(--gbd);
  box-shadow: var(--gin), var(--gsh);
  padding: clamp(2rem, 3vw, 2.6rem) clamp(1.6rem, 2.2vw, 2rem);
  transition: transform .5s var(--ease), border-color .5s ease, background .5s ease;
}
.tpx-bento > li:hover {
  transform: translateY(-4px);
  border-color: rgba(var(--fg), .34);
  background: rgba(var(--fg), .08);
}
.tpx-num {
  display: block; font-family: var(--serif);
  font-size: clamp(2.4rem, 2.6vw, 3rem); line-height: 1;
  color: rgba(var(--fg), .28); margin: 0 0 clamp(1.2rem, 1.8vw, 1.6rem);
}
.tpx-bento h3 {
  font-size: clamp(1.6rem, 1.35vw, 1.85rem); line-height: 1.3;
  margin: 0 0 .8rem; color: rgb(var(--fg));
}
.tpx-bento p {
  margin: 0; font-size: clamp(1.4rem, 1.1vw, 1.55rem);
  line-height: 1.62; color: rgba(var(--fg), .8);
}
.tpx-bento p + p { margin-top: .9rem; }

/* ---------- dot-leader rows (menus, price lists, service lists) ---------- */
.tpx-rows {
  max-width: 56rem; margin: 0 auto !important; width: 100%;
  border-top: 1px solid rgba(var(--fg), .18); text-align: left;
}
.tpx-row {
  padding: 1.7rem .4rem;
  border-bottom: 1px solid rgba(var(--fg), .18);
  transition: transform .4s var(--ease);
}
.tpx-row:hover { transform: translateX(.5rem); }
.tpx-rowtop { display: flex; align-items: baseline; gap: 1rem; }
.tpx-rowname {
  font-family: var(--serif); font-size: clamp(1.75rem, 1.5vw, 2rem);
  line-height: 1.3; margin: 0; color: rgb(var(--fg));
}
.tpx-lead {
  flex: 1 1 auto; border-bottom: 1px dotted rgba(var(--fg), .4);
  transform: translateY(-.4rem); min-width: 2rem;
}
.tpx-rowval {
  font-family: var(--serif); font-size: clamp(1.6rem, 1.35vw, 1.85rem);
  white-space: nowrap; color: rgb(var(--fg));
}
.tpx-rowdesc {
  font-family: var(--serif); font-size: clamp(1.4rem, 1.1vw, 1.55rem);
  line-height: 1.6; color: rgba(var(--fg), .78);
  margin: .7rem 0 0 !important; max-width: 44rem;
}
.tpx-rowtag {
  font-family: var(--sans); font-size: clamp(1rem, .85vw, 1.15rem);
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(var(--fg), .55); margin-left: .8rem;
}
.tpx-group {
  font-family: var(--sans); font-size: clamp(1.15rem, 1vw, 1.35rem);
  letter-spacing: .3em; text-transform: uppercase; font-weight: 600;
  color: rgba(var(--fg), .6); text-align: center;
  margin: clamp(3rem, 4vw, 4.5rem) auto 1.6rem;
}
.tpx-group:first-child { margin-top: 0; }

/* ---------- plain column grids (for grouped row lists) ---------- */
.tpx-grid2, .tpx-grid3 {
  display: grid; gap: clamp(2.4rem, 3.4vw, 4rem);
  max-width: 76rem; margin: 0 auto; width: 100%; text-align: center;
}
.tpx-grid2 { grid-template-columns: repeat(2, 1fr); }
.tpx-grid3 { grid-template-columns: repeat(3, 1fr); }

/* ---------- newsletter field ---------- */
.tpx-form { max-width: 46rem; margin: 0 auto; width: 100%; }
.tpx-form .field {
  position: relative; display: flex; align-items: stretch;
  border: 1px solid rgba(var(--fg), .42); border-radius: 999px; overflow: hidden;
  transition: border-color .45s ease, box-shadow .45s ease;
}
.tpx-form .field:focus-within {
  border-color: rgb(var(--fg));
  box-shadow: 0 0 0 3px rgba(var(--fg), .12);
}
.tpx-form input[type=email] {
  flex: 1 1 auto; min-width: 0; background: transparent; border: 0; outline: 0;
  color: rgb(var(--fg)); font-family: var(--serif);
  font-size: clamp(1.6rem, 1.3vw, 1.8rem);
  padding: clamp(1.5rem, 1.7vw, 1.9rem) 2.2rem;
  line-height: 1.3; text-align: left;
}
.tpx-form input[type=email]::placeholder { color: rgba(var(--fg), .55); opacity: 1; }
.tpx-form .field__label { display: none; }
.tpx-form button {
  flex: 0 0 auto; background: transparent; border: 0; cursor: pointer;
  color: rgb(var(--fg)); padding: 0 2.2rem 0 1.2rem;
  display: flex; align-items: center; transition: opacity .35s ease;
}
.tpx-form button:hover { opacity: .75; }
.tpx-form svg { width: 2.2rem; height: auto; }

/* ---------- fine print list ---------- */
.tpx-fine {
  max-width: 48rem; margin: 0 auto !important;
  border-top: 1px solid rgba(var(--fg), .2);
}
.tpx-fine > li {
  padding: 1.4rem .4rem;
  border-bottom: 1px solid rgba(var(--fg), .2);
  font-size: clamp(1.4rem, 1.1vw, 1.55rem);
  color: rgba(var(--fg), .85); line-height: 1.62;
}

/* ---------- figure, split, map ---------- */
.tpx-fig {
  margin: 0 0 clamp(1.6rem, 2.4vw, 2.2rem);
  position: relative; border-radius: 16px; overflow: hidden;
  border: 1px solid rgba(var(--fg), .2);
}
.tpx-fig img { display: block; width: 100%; height: auto; }
.tpx-split {
  display: grid; grid-template-columns: 1fr 1.05fr;
  gap: clamp(3rem, 4.5vw, 6rem); align-items: center; text-align: left;
}
.tpx-split--reverse .tpx-fig { order: 2; }
.tpx-split .tpx-fig { margin: 0; }
.tpx-map { position: relative; padding-bottom: 60%; height: 0; overflow: hidden; }
.tpx-map iframe {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; border: 0; display: block;
}

/* ---------- buttons ---------- */
.tpx-btns {
  display: flex; flex-wrap: wrap; gap: 1.2rem; justify-content: center;
  margin: 0 0 clamp(1rem, 1.6vw, 1.4rem);
}
.tpx a.tpx-btn {
  position: relative; overflow: hidden; display: inline-flex; align-items: center;
  white-space: nowrap;
  background: rgb(var(--fg)); color: rgb(var(--bg));
  border: 1px solid rgb(var(--fg)); border-radius: 999px;
  font-family: var(--sans); font-size: clamp(1.3rem, 1.05vw, 1.5rem);
  letter-spacing: .18em; text-transform: uppercase; font-weight: 600;
  text-indent: .18em;
  padding: clamp(1.4rem, 1.4vw, 1.8rem) clamp(2.6rem, 2.6vw, 3.6rem);
  text-decoration: none; line-height: 1;
  transition: background .45s var(--ease), color .45s var(--ease), letter-spacing .45s var(--ease);
}
.tpx a.tpx-btn:hover, .tpx a.tpx-btn:focus {
  background: transparent; color: rgb(var(--fg)); letter-spacing: .22em;
}
.tpx a.tpx-btn--ghost { background: transparent; color: rgb(var(--fg)); }
.tpx a.tpx-btn--ghost:hover, .tpx a.tpx-btn--ghost:focus {
  background: rgb(var(--fg)); color: rgb(var(--bg));
}
.tpx a.tpx-btn:focus-visible { outline: 2px solid rgb(var(--fg)); outline-offset: 4px; }
.tpx a:not(.tpx-btn):not(.tpx-chip) {
  color: rgb(var(--fg)); text-decoration: underline; text-underline-offset: 2px;
}

/* ---------- chips ---------- */
.tpx-chips {
  display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center;
  margin: 0 auto clamp(2.2rem, 3vw, 2.8rem) !important; max-width: 56rem;
}
.tpx-chips > li { display: block; }
.tpx a.tpx-chip {
  display: inline-flex; align-items: center; justify-content: center;
  text-align: center; padding: 1.2rem 2rem; text-decoration: none;
  font-family: var(--serif); font-size: clamp(1.45rem, 1.2vw, 1.6rem);
  line-height: 1.2; color: rgb(var(--fg));
  background: var(--gfill); border: 1px solid rgba(var(--fg), .24);
  border-radius: 999px;
  transition: background .4s ease, color .4s ease, border-color .4s ease, transform .4s var(--ease);
}
.tpx a.tpx-chip:hover, .tpx a.tpx-chip:focus-visible {
  background: rgb(var(--fg)); color: rgb(var(--bg));
  border-color: rgb(var(--fg)); transform: translateY(-3px);
}
.tpx a.tpx-chip:focus-visible { outline: 2px solid rgb(var(--fg)); outline-offset: 3px; }

/* ---------- frosted glass, only where the browser supports it ---------- */
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .tpx { --gfill: rgba(var(--fg), .04); }
  .tpx-dark { --gfill: rgba(var(--fg), .055); }
  .tpx-glass, .tpx-bento > li, .tpx a.tpx-chip {
    -webkit-backdrop-filter: blur(16px) saturate(1.25);
    backdrop-filter: blur(16px) saturate(1.25);
  }
}

/* ---------- mobile ---------- */
@media (max-width: 900px) {
  .tpx-bento, .tpx-bento--2, .tpx-bento--4 { grid-template-columns: 1fr; text-align: center; }
  .tpx-split { grid-template-columns: 1fr; gap: 2.8rem; text-align: center; }
  .tpx-split .tpx-fig, .tpx-split--reverse .tpx-fig { order: -1; }
  .tpx-grid2, .tpx-grid3 { grid-template-columns: 1fr; gap: 3.4rem; }
  .tpx-glass { grid-template-columns: 1fr 1fr; }
  .tpx-glass--3 { grid-template-columns: 1fr; }
  .tpx-cell { border-right: 0; border-bottom: 1px solid rgba(var(--fg), .12); }
  .tpx-cell:last-child { border-bottom: 0; }
  .tpx-glass:not(.tpx-glass--3) .tpx-cell:nth-child(odd) {
    border-right: 1px solid rgba(var(--fg), .12);
  }
  /* a dot leader across a narrow screen just looks broken */
  .tpx-row { text-align: center; }
  .tpx-row:hover { transform: none; }
  .tpx-rowtop { flex-direction: column; align-items: center; gap: .4rem; }
  .tpx-lead { display: none; }
  .tpx-rowval { order: 3; margin-top: .5rem; }
  .tpx-rowdesc { margin-left: auto !important; margin-right: auto !important; }
  .tpx-map { padding-bottom: 82%; }
}

/* ---------- accessibility preferences ---------- */
@media (hover: none) {
  .tpx-bento > li:hover, .tpx a.tpx-chip:hover { transform: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .tpx-glass, .tpx-bento > li, .tpx a.tpx-chip {
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .tpx-dark .tpx-glass, .tpx-dark .tpx-bento > li { background: #2d5427; }
}
@media (prefers-reduced-motion: reduce) {
  .tpx-el { opacity: 1; transform: none; transition: none; }
  .tpx-line > span { transform: none; transition: none; }
  .tpx-bento > li:hover, .tpx-row:hover, .tpx a.tpx-chip:hover { transform: none !important; }
}

/* ==========================================================================
   Booking page (.tpb) — glass card, segmented controls, inline validation
   ========================================================================== */

.tpb-stage { position: relative; isolation: isolate; overflow: hidden;
  background: #254620; color: rgb(242 239 221);
  padding: clamp(3.4rem,6vw,6rem) clamp(1.4rem,4vw,3rem) clamp(4rem,7vw,7rem);
  margin: 0 0 clamp(3.4rem,6vw,5.4rem); border-radius: 18px; }

/* illumination + highlight + shadow, the three depth layers */
.tpb-lum { position: absolute; inset: -25% -12%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(46% 38% at 50% calc(4% + var(--p,.5) * 62%), rgba(168,206,140,.30) 0%, rgba(96,148,74,.13) 38%, rgba(37,70,32,0) 74%),
    radial-gradient(92% 72% at 50% 50%, #2d5427 0%, #254620 46%, #17300f 100%); }
.tpb-spec { position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(148deg, rgba(242,239,221,.10) 0%, rgba(242,239,221,0) 34%); }
.tpb-shade { position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(80% 64% at 50% 44%, rgba(0,0,0,0) 44%, rgba(0,0,0,.44) 100%); }

.tpb-head { position: relative; z-index: 2; max-width: 60rem; margin: 0 auto clamp(2.8rem,4vw,4rem); text-align: center; }
.tpb-head h1 { font-size: clamp(3.2rem,4.4vw,5.2rem); line-height: 1.1; letter-spacing: -.012em;
  margin: 0 0 1.4rem; color: rgb(242 239 221); }
.tpb-head p { color: rgba(242,239,221,.86); font-size: clamp(1.6rem,1.3vw,1.85rem); line-height: 1.6; margin: 0; }

/* the floating card */
.tpb-card { position: relative; z-index: 3; max-width: 62rem; margin: 0 auto; width: 100%;
  border-radius: 22px; padding: clamp(2.4rem,3.4vw,3.6rem);
  background: rgba(242,239,221,.09); border: 1px solid rgba(242,239,221,.20);
  box-shadow: 0 1px 0 rgba(242,239,221,.22) inset, 0 30px 60px rgba(0,0,0,.34);
  text-align: left; }
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .tpb-card { background: rgba(242,239,221,.065);
    -webkit-backdrop-filter: blur(22px) saturate(1.3); backdrop-filter: blur(22px) saturate(1.3); } }

.tpb-field { margin: 0 0 clamp(1.8rem,2.2vw,2.2rem); }
.tpb-field:last-of-type { margin-bottom: 0; }
.tpb-row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.2rem,1.8vw,1.8rem); }
.tpb-lab { display: block; font-family: var(--sans,-apple-system,sans-serif);
  font-size: 1.25rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600;
  color: rgba(242,239,221,.66); margin: 0 0 .9rem; }
.tpb-req { color: rgba(242,239,221,.44); margin-left: .5rem; letter-spacing: 0; }

.tpb input[type=text], .tpb input[type=email], .tpb input[type=tel],
.tpb input[type=date], .tpb select, .tpb textarea {
  width: 100% !important; display: block; min-height: 4.8rem;
  background: rgba(0,0,0,.20) !important; color: rgb(242 239 221) !important;
  border: 1px solid rgba(242,239,221,.26) !important; border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.22) inset !important;
  font-family: var(--font-body-family, sans-serif) !important; font-size: 1.7rem !important;
  padding: 1.4rem 1.6rem !important; margin: 0 !important; line-height: 1.4;
  transition: border-color .3s ease, box-shadow .3s ease, background .3s ease; }
.tpb textarea { min-height: 10rem; resize: vertical; }
.tpb select { appearance: none; -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, rgba(242,239,221,.7) 50%), linear-gradient(135deg, rgba(242,239,221,.7) 50%, transparent 50%) !important;
  background-position: calc(100% - 2.1rem) 50%, calc(100% - 1.6rem) 50% !important;
  background-size: .6rem .6rem, .6rem .6rem !important; background-repeat: no-repeat !important;
  padding-right: 4rem !important; }
.tpb ::placeholder { color: rgba(242,239,221,.46); opacity: 1; }
.tpb input:focus, .tpb select:focus, .tpb textarea:focus { outline: none;
  border-color: rgba(242,239,221,.72) !important;
  box-shadow: 0 0 0 3px rgba(242,239,221,.14), 0 1px 2px rgba(0,0,0,.22) inset !important;
  background: rgba(0,0,0,.26) !important; }
.tpb [aria-invalid="true"] { border-color: #e8a49a !important; }
.tpb-err { display: none; font-family: var(--sans,sans-serif); font-size: 1.3rem;
  color: #f0b7ae; margin: .7rem 0 0; line-height: 1.4; }
.tpb-field.has-err .tpb-err { display: block; }

/* guest count as tap targets, 44px minimum */
.tpb-seg { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.tpb-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tpb-seg label { display: flex; align-items: center; justify-content: center;
  min-width: 5.2rem; min-height: 4.8rem; padding: 0 1.4rem; cursor: pointer;
  border-radius: 12px; border: 1px solid rgba(242,239,221,.26);
  background: rgba(0,0,0,.16); color: rgba(242,239,221,.9);
  font-family: var(--font-body-family, sans-serif); font-size: 1.7rem; line-height: 1;
  transition: background .28s ease, border-color .28s ease, color .28s ease, transform .28s cubic-bezier(.22,.7,.28,1); }
.tpb-seg label:hover { border-color: rgba(242,239,221,.5); transform: translateY(-2px); }
.tpb-seg input:checked + label { background: rgb(242 239 221); color: #254620;
  border-color: rgb(242 239 221); font-weight: 600; }
.tpb-seg input:focus-visible + label { outline: 2px solid rgb(242 239 221); outline-offset: 3px; }

/* honeypot */
.tpb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.tpb-submit { width: 100%; min-height: 5.4rem; margin: clamp(2.2rem,3vw,2.8rem) 0 0;
  cursor: pointer; border-radius: 999px; border: 1px solid rgb(242 239 221);
  background: rgb(242 239 221); color: #254620;
  font-family: var(--sans,sans-serif); font-size: 1.45rem; font-weight: 600;
  letter-spacing: .18em; text-transform: uppercase; text-indent: .18em;
  transition: background .4s cubic-bezier(.22,.7,.28,1), color .4s cubic-bezier(.22,.7,.28,1), letter-spacing .4s ease; }
.tpb-submit:hover { background: transparent; color: rgb(242 239 221); letter-spacing: .22em; }
.tpb-submit:focus-visible { outline: 2px solid rgb(242 239 221); outline-offset: 4px; }
.tpb-legal { font-size: 1.3rem; color: rgba(242,239,221,.6); line-height: 1.6; margin: 1.6rem 0 0; text-align: center; }
.tpb-legal a { color: rgba(242,239,221,.85); }

/* success */
.tpb-done { position: relative; z-index: 3; max-width: 52rem; margin: 0 auto; text-align: center;
  border-radius: 22px; padding: clamp(3rem,4vw,4.4rem);
  background: rgba(242,239,221,.09); border: 1px solid rgba(242,239,221,.22);
  box-shadow: 0 1px 0 rgba(242,239,221,.22) inset, 0 30px 60px rgba(0,0,0,.34); }
.tpb-done h2 { color: rgb(242 239 221); font-size: clamp(2.4rem,2.6vw,3.2rem); margin: 0 0 1.4rem; }
.tpb-done p { color: rgba(242,239,221,.86); font-size: 1.7rem; line-height: 1.62; margin: 0 0 1.2rem; }

/* sticky mobile action */
.tpb-sticky { display: none; }
@media (max-width: 749px) {
  .tpb-row { grid-template-columns: 1fr; }
  .tpb-stage { border-radius: 14px; }
  .tpb-sticky { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    padding: 1rem 1.4rem calc(1rem + env(safe-area-inset-bottom));
    background: rgba(37,70,32,.92); border-top: 1px solid rgba(242,239,221,.18);
    transform: translateY(110%); transition: transform .45s cubic-bezier(.22,.7,.28,1); }
  @supports (backdrop-filter: blur(1px)) { .tpb-sticky { background: rgba(37,70,32,.78);
    -webkit-backdrop-filter: blur(20px) saturate(1.3); backdrop-filter: blur(20px) saturate(1.3); } }
  .tpb-sticky.is-on { transform: translateY(0); }
  .tpb-sticky a { display: flex; align-items: center; justify-content: center; min-height: 5rem;
    border-radius: 999px; background: rgb(242 239 221); color: #254620; text-decoration: none;
    font-family: var(--sans,sans-serif); font-size: 1.4rem; font-weight: 600;
    letter-spacing: .18em; text-transform: uppercase; text-indent: .18em; }
}

/* FAQ */
.tpb-faq { max-width: 56rem; margin: 0 auto !important; text-align: left; }
.tpb-faq details { border-bottom: 1px solid rgba(var(--fg),.2); }
.tpb-faq summary { cursor: pointer; list-style: none; padding: 1.8rem .4rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1.6rem;
  font-family: var(--serif, serif); font-size: clamp(1.65rem,1.4vw,1.9rem); color: rgb(var(--fg)); }
.tpb-faq summary::-webkit-details-marker { display: none; }
.tpb-faq summary::after { content: "+"; font-size: 2.2rem; line-height: 1; color: rgba(var(--fg),.5);
  transition: transform .35s cubic-bezier(.22,.7,.28,1); }
.tpb-faq details[open] summary::after { transform: rotate(45deg); }
.tpb-faq details > div { padding: 0 .4rem 1.8rem; font-size: clamp(1.45rem,1.15vw,1.6rem);
  line-height: 1.65; color: rgba(var(--fg),.82); }

@media (prefers-reduced-transparency: reduce) {
  .tpb-card, .tpb-done { background: #2d5427; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  .tpb-seg label:hover { transform: none; }
  .tpb-sticky { transition: none; }
  .tpb-faq summary::after { transition: none; }
}

/* ---------- booking: quick dates, live summary, party size, states ---------- */
.tpb-quick { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0 0 1.2rem; padding: 0; list-style: none; }
.tpb-quick button { min-height: 4rem; padding: 0 1.6rem; cursor: pointer; border-radius: 999px;
  border: 1px solid rgba(242,239,221,.24); background: rgba(0,0,0,.14); color: rgba(242,239,221,.88);
  font-family: var(--font-body-family, sans-serif); font-size: 1.45rem; line-height: 1;
  transition: background .28s ease, border-color .28s ease, color .28s ease; }
.tpb-quick button:hover { border-color: rgba(242,239,221,.55); }
.tpb-quick button[aria-pressed="true"] { background: rgba(242,239,221,.92); color: #254620; border-color: rgba(242,239,221,.92); }
.tpb-quick button:focus-visible { outline: 2px solid rgb(242 239 221); outline-offset: 3px; }

.tpb-exact { margin: 1.2rem 0 0; }
.tpb-exact[hidden] { display: none; }

.tpb-sum { margin: clamp(2rem,2.6vw,2.6rem) 0 0; padding: 1.6rem 1.8rem; border-radius: 14px;
  background: rgba(0,0,0,.18); border: 1px solid rgba(242,239,221,.16);
  font-family: var(--font-body-family, sans-serif); font-size: 1.55rem; line-height: 1.5;
  color: rgba(242,239,221,.92); text-align: center; }
.tpb-sum strong { font-weight: 600; }
.tpb-sum span { color: rgba(242,239,221,.6); }

.tpb fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.tpb legend { padding: 0; }

.tpb-submit[data-busy="true"] { opacity: .6; pointer-events: none; }
.tpb-note-closed { margin: 1rem 0 0; font-family: var(--sans, sans-serif); font-size: 1.3rem;
  color: rgba(242,239,221,.66); line-height: 1.5; }

@media (prefers-contrast: more) {
  .tpb-card, .tpb-done { background: #1f3a1a; border-color: rgba(242,239,221,.6); }
  .tpb input, .tpb select, .tpb textarea { border-color: rgba(242,239,221,.7) !important; }
  .tpb-lab { color: rgb(242 239 221); }
}

/* ---------- booking: guest stepper ---------- */
.tpb-step { display: inline-flex; align-items: stretch; border-radius: 999px; overflow: hidden;
  border: 1px solid rgba(242,239,221,.26); background: rgba(0,0,0,.18); }
.tpb-step button { width: 5.2rem; min-height: 5.2rem; cursor: pointer; border: 0;
  background: transparent; color: rgb(242 239 221); font-size: 2.4rem; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  transition: background .25s ease, opacity .25s ease; }
.tpb-step button:hover { background: rgba(242,239,221,.12); }
.tpb-step button:disabled { opacity: .3; cursor: default; background: transparent; }
.tpb-step button:focus-visible { outline: 2px solid rgb(242 239 221); outline-offset: -3px; }
.tpb-step output { min-width: 11rem; display: flex; align-items: center; justify-content: center;
  gap: .7rem; padding: 0 1.2rem; font-family: var(--font-body-family, sans-serif);
  font-size: 1.9rem; color: rgb(242 239 221);
  border-left: 1px solid rgba(242,239,221,.18); border-right: 1px solid rgba(242,239,221,.18); }
.tpb-step output span { font-size: 1.45rem; color: rgba(242,239,221,.6); }
.tpb-big { margin: 1.1rem 0 0; font-family: var(--sans, sans-serif); font-size: 1.3rem;
  color: rgba(242,239,221,.66); line-height: 1.5; }
.tpb-big[hidden] { display: none; }

/* links inside the booking stage sit on green, so they must use the light foreground.
   .tpx.tpb matches the same specificity as the general .tpx a:not() rule and comes later. */
.tpx.tpb .tpb-stage a { color: rgba(242,239,221,.88); text-decoration: underline; text-underline-offset: 2px; }
.tpx.tpb .tpb-stage a:hover, .tpx.tpb .tpb-stage a:focus-visible { color: rgb(242 239 221); }

/* ---------- centring, made structural rather than margin-dependent ----------
   auto margins can be beaten by inherited padding or a stray margin from the
   theme's .rte styles. flex alignment cannot. */
.tpx .tpx-sec { display: flex; flex-direction: column; align-items: center; }
.tpx .tpx-sec > * { width: 100%; margin-left: auto !important; margin-right: auto !important; }
.tpx .tpx-inner > * { margin-left: auto !important; margin-right: auto !important; }
.tpx .tpx-note, .tpx .tpx-lede, .tpx .tpx-cap, .tpx .tpx-brow,
.tpx .tpx-rule, .tpx .tpx-glass, .tpx .tpx-rows, .tpx .tpx-fine,
.tpx .tpx-bento, .tpx .tpx-chips, .tpx .tpx-grid2, .tpx .tpx-grid3,
.tpx .tpb-faq, .tpx h1, .tpx h2, .tpx h3 {
  padding-left: 0; padding-right: 0;
  margin-left: auto !important; margin-right: auto !important;
}
.tpx .tpx-brow { text-indent: 0; padding-left: .26em; }

/* ==========================================================================
   Blog listing (.tpxb) — pairs with sections/main-blog.liquid
   ========================================================================== */
.tpxb-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.4rem, 2.2vw, 2.2rem);
  max-width: 108rem; margin: 0 auto clamp(3rem, 5vw, 4.4rem) !important;
  padding: 0; list-style: none; text-align: left;
}
.tpxb-card {
  border-radius: 16px; overflow: hidden;
  border: 1px solid rgba(var(--fg), .16);
  background: var(--gfill);
  box-shadow: var(--gin), var(--gsh);
  transition: transform .5s var(--ease), border-color .5s ease, background .5s ease;
}
.tpxb-card:hover { transform: translateY(-5px); border-color: rgba(var(--fg), .34); background: rgba(var(--fg), .08); }
.tpx a.tpxb-link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: rgb(var(--fg)); }
.tpxb-media { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background: rgba(var(--fg), .06); }
.tpxb-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s var(--ease); }
.tpxb-card:hover .tpxb-media img { transform: scale(1.04); }
.tpxb-media--tall { aspect-ratio: 3 / 4; }
.tpxb-media--wide { aspect-ratio: 16 / 9; }
.tpxb-body { padding: clamp(1.8rem, 2.4vw, 2.4rem); display: flex; flex-direction: column; flex: 1 1 auto; }
.tpxb-meta {
  font-family: var(--sans); font-size: 1.2rem; letter-spacing: .2em;
  text-transform: uppercase; color: rgba(var(--fg), .58);
  margin: 0 0 1rem !important; line-height: 1.4;
}
.tpx .tpxb-title {
  font-family: var(--serif); font-size: clamp(1.9rem, 1.55vw, 2.25rem);
  line-height: 1.25; letter-spacing: -.004em; margin: 0 0 1rem !important;
  text-align: left; text-wrap: balance;
}
.tpxb-ex {
  font-family: var(--serif); font-size: clamp(1.45rem, 1.15vw, 1.6rem);
  line-height: 1.62; color: rgba(var(--fg), .82); margin: 0 0 1.8rem !important; flex: 1 1 auto;
}
.tpxb-more {
  font-family: var(--sans); font-size: 1.25rem; letter-spacing: .2em;
  text-transform: uppercase; font-weight: 600; color: rgb(var(--fg));
  display: inline-flex; align-items: center; gap: .7rem; margin-top: auto;
}
.tpxb-more::after { content: "\2192"; transition: transform .4s var(--ease); }
.tpxb-card:hover .tpxb-more::after { transform: translateX(.4rem); }

/* pagination */
.tpxb .pagination-wrapper { margin: 0 auto; }
.tpxb .pagination__list { justify-content: center; }

@supports (backdrop-filter: blur(1px)) {
  .tpxb-card { -webkit-backdrop-filter: blur(16px) saturate(1.25); backdrop-filter: blur(16px) saturate(1.25); }
}
@media (max-width: 989px) { .tpxb-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 749px) { .tpxb-grid { grid-template-columns: 1fr; } }
@media (hover: none) { .tpxb-card:hover { transform: none; } .tpxb-card:hover .tpxb-media img { transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .tpxb-card, .tpxb-media img, .tpxb-more::after { transition: none; }
  .tpxb-card:hover { transform: none; }
  .tpxb-card:hover .tpxb-media img, .tpxb-card:hover .tpxb-more::after { transform: none; }
}

/* the whole card is one link, so it must not inherit the underlined link style */
.tpx a.tpxb-link, .tpx a.tpxb-link:hover { text-decoration: none; }
.tpx a.tpxb-link .tpxb-title { text-decoration: none; }
.tpxb-card:hover .tpxb-title { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- blog: featured post ---------- */
.tpxb-feature {
  display: grid; grid-template-columns: 1.05fr 1fr; align-items: stretch;
  max-width: 108rem; margin: 0 auto clamp(1.4rem, 2.2vw, 2.2rem) !important;
  border-radius: 18px; overflow: hidden;
  border: 1px solid rgba(var(--fg), .18); background: var(--gfill);
  box-shadow: var(--gin), var(--gsh);
  transition: transform .5s var(--ease), border-color .5s ease;
}
.tpxb-feature:hover { transform: translateY(-4px); border-color: rgba(var(--fg), .34); }
.tpx a.tpxb-feature__link { display: contents; text-decoration: none; color: rgb(var(--fg)); }
.tpxb-feature .tpxb-media { aspect-ratio: auto; min-height: 32rem; height: 100%; }
.tpxb-feature .tpxb-body { padding: clamp(2.4rem, 3.4vw, 4rem); justify-content: center; text-align: left; }
.tpxb-feature .tpxb-title { font-size: clamp(2.4rem, 2.4vw, 3.4rem); line-height: 1.18; }
.tpxb-feature .tpxb-ex { font-size: clamp(1.55rem, 1.25vw, 1.75rem); flex: 0 0 auto; }
.tpxb-flag {
  font-family: var(--sans); font-size: 1.15rem; letter-spacing: .24em;
  text-transform: uppercase; font-weight: 600; color: rgba(var(--fg), .62);
  margin: 0 0 1.2rem !important; display: flex; align-items: center; gap: .8rem;
}
.tpxb-flag::before { content: "◆"; font-size: .7rem; letter-spacing: 0; color: rgba(var(--fg), .45); }

/* ---------- blog: cards with no featured image ---------- */
.tpxb-media--none {
  display: flex; align-items: center; justify-content: center;
  background: #254620;
  background-image:
    radial-gradient(52% 40% at 50% 34%, rgba(168,206,140,.22) 0%, rgba(37,70,32,0) 72%),
    radial-gradient(92% 74% at 50% 50%, #2d5427 0%, #254620 48%, #17300f 100%);
  position: relative;
}
.tpxb-media--none::before {
  content: "◆◆◆";
  font-size: 1rem; letter-spacing: .55em; text-indent: .55em;
  color: rgba(242,239,221,.42); line-height: 1;
}
.tpxb-media--none::after {
  content: ""; position: absolute; inset: 1.4rem;
  border: 1px solid rgba(242,239,221,.14); border-radius: 8px;
}

/* ---------- blog: filters ---------- */
.tpxb-filters {
  display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center;
  max-width: 76rem; margin: 0 auto clamp(2.6rem, 4vw, 3.6rem) !important;
  padding: 0; list-style: none;
}
.tpxb-filters button {
  cursor: pointer; min-height: 4.4rem; padding: 0 2rem;
  font-family: var(--serif); font-size: clamp(1.4rem, 1.15vw, 1.55rem); line-height: 1;
  color: rgb(var(--fg)); background: var(--gfill);
  border: 1px solid rgba(var(--fg), .24); border-radius: 999px;
  transition: background .4s ease, color .4s ease, border-color .4s ease, transform .4s var(--ease);
}
.tpxb-filters button:hover { transform: translateY(-3px); border-color: rgba(var(--fg), .45); }
.tpxb-filters button[aria-pressed="true"] {
  background: rgb(var(--fg)); color: rgb(var(--bg)); border-color: rgb(var(--fg));
}
.tpxb-filters button:focus-visible { outline: 2px solid rgb(var(--fg)); outline-offset: 3px; }
.tpxb-card[hidden], .tpxb-feature[hidden] { display: none; }

/* ---------- blog: meta and pagination ---------- */
.tpxb-meta .tpxb-dot { margin: 0 .7rem; opacity: .5; }
.tpxb .pagination-wrapper { margin: clamp(1rem, 2vw, 2rem) auto 0; }
.tpxb .pagination__list { display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; }
.tpxb .pagination__item {
  min-width: 4.4rem; min-height: 4.4rem; display: flex; align-items: center; justify-content: center;
  border-radius: 999px; border: 1px solid rgba(var(--fg), .2);
  font-family: var(--sans); font-size: 1.35rem; text-decoration: none; color: rgb(var(--fg));
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}
.tpxb .pagination__item:hover { border-color: rgba(var(--fg), .5); }
.tpxb .pagination__item--current {
  background: rgb(var(--fg)); color: rgb(var(--bg)); border-color: rgb(var(--fg));
}
.tpxb .pagination__item .svg-wrapper { width: 1.6rem; height: 1.6rem; }

@media (max-width: 749px) {
  .tpxb-feature { grid-template-columns: 1fr; }
  .tpxb-feature .tpxb-media { min-height: 0; aspect-ratio: 3 / 2; }
}
@media (hover: none) {
  .tpxb-feature:hover, .tpxb-filters button:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .tpxb-feature, .tpxb-filters button { transition: none; }
  .tpxb-feature:hover, .tpxb-filters button:hover { transform: none; }
}

/* an element can be both the panel and the revealed item (the featured blog card,
   the filter row). the descendant rule never matches itself, so it would stay
   invisible while still taking up space. */
.tpx .tpx-el.is-in { opacity: 1; transform: none; }
.tpx .tpx-line.is-in > span { transform: none; }

/* belt and braces on the card underlines */
.tpx .tpxb-link, .tpx .tpxb-link:hover, .tpx .tpxb-link:focus,
.tpx .tpxb-feature__link, .tpx .tpxb-feature__link:hover,
.tpx .tpxb-link .tpxb-meta, .tpx .tpxb-link .tpxb-ex,
.tpx .tpxb-link .tpxb-title, .tpx .tpxb-link .tpxb-more,
.tpx .tpxb-feature__link .tpxb-meta, .tpx .tpxb-feature__link .tpxb-ex,
.tpx .tpxb-feature__link .tpxb-title, .tpx .tpxb-feature__link .tpxb-more,
.tpx .tpxb-link time, .tpx .tpxb-feature__link time { text-decoration: none !important; }
.tpxb-card:hover .tpxb-title, .tpxb-feature:hover .tpxb-title {
  text-decoration: underline !important; text-underline-offset: 3px;
}

/* any media box with nothing in it gets the designed panel, not a blank gap */
.tpxb-media:empty, .tpxb-media--none {
  display: flex; align-items: center; justify-content: center; position: relative;
  background: #254620;
  background-image:
    radial-gradient(52% 40% at 50% 34%, rgba(168,206,140,.22) 0%, rgba(37,70,32,0) 72%),
    radial-gradient(92% 74% at 50% 50%, #2d5427 0%, #254620 48%, #17300f 100%);
  min-height: 18rem;
}
.tpxb-media:empty::before, .tpxb-media--none::before {
  content: "◆◆◆"; font-size: 1rem; letter-spacing: .55em; text-indent: .55em;
  color: rgba(242,239,221,.42); line-height: 1;
}
.tpxb-media:empty::after, .tpxb-media--none::after {
  content: ""; position: absolute; inset: 1.4rem;
  border: 1px solid rgba(242,239,221,.14); border-radius: 8px;
}

/* ---------- blog: spacing and the newsletter field ---------- */
.tpxb .pagination-wrapper { margin-bottom: clamp(3rem, 5vw, 4.6rem) !important; }

/* Dawn's own .field styles were winning, so the pill had no visible edge.
   These are scoped tighter and mirror the booking card inputs. */
.tpx-dark .tpx-form { max-width: 46rem; margin-left: auto !important; margin-right: auto !important; }
.tpx-dark .tpx-form .field {
  display: flex !important; align-items: stretch !important;
  width: 100%; position: relative;
  background: rgba(0, 0, 0, .22) !important;
  border: 1px solid rgba(242, 239, 221, .45) !important;
  border-radius: 999px !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .22) inset !important;
  overflow: hidden;
  transition: border-color .4s ease, box-shadow .4s ease;
}
.tpx-dark .tpx-form .field:focus-within {
  border-color: rgb(242 239 221) !important;
  box-shadow: 0 0 0 3px rgba(242, 239, 221, .14), 0 1px 2px rgba(0, 0, 0, .22) inset !important;
}
.tpx-dark .tpx-form .field::before,
.tpx-dark .tpx-form .field::after { display: none !important; content: none !important; }
.tpx-dark .tpx-form .field__label { display: none !important; }
.tpx-dark .tpx-form input[type="email"] {
  flex: 1 1 auto; min-width: 0;
  background: transparent !important; border: 0 !important; outline: 0 !important;
  box-shadow: none !important;
  color: rgb(242 239 221) !important;
  font-family: var(--font-body-family, sans-serif) !important;
  font-size: 1.65rem !important;
  padding: 1.6rem 1rem 1.6rem 2.4rem !important;
  margin: 0 !important; line-height: 1.3; text-align: left;
}
.tpx-dark .tpx-form input[type="email"]::placeholder { color: rgba(242, 239, 221, .58); opacity: 1; }
.tpx-dark .tpx-form button {
  flex: 0 0 auto; background: transparent; border: 0; cursor: pointer;
  color: rgb(242 239 221); padding: 0 2.2rem 0 1.4rem;
  display: flex; align-items: center; transition: opacity .35s ease;
}
.tpx-dark .tpx-form button:hover { opacity: .72; }
.tpx-dark .tpx-form button:focus-visible { outline: 2px solid rgb(242 239 221); outline-offset: -4px; }
.tpx-dark .tpx-form svg { width: 2.2rem; height: auto; display: block; }

/* ---------- blog: centring ---------- */
.tpxb { text-align: center; }
.tpxb .tpx-inner, .tpxb .tpx-inner > * { text-align: center; }
.tpxb-filters { justify-content: center; }
.tpxb-grid { justify-content: center; }
/* a final row that does not fill the grid should sit centred, not left */
.tpxb-grid { justify-items: stretch; }
.tpxb-feature { margin-left: auto !important; margin-right: auto !important; }
.tpxb .pagination__list { justify-content: center; }
.tpxb-empty, #tpxb-empty { text-align: center; margin-left: auto !important; margin-right: auto !important; }

/* .tpx ul resets list margins with !important and outranks .tpxb-grid,
   which pinned the grid to the left. these are more specific again. */
.tpx .tpxb-grid, .tpx ul.tpxb-grid {
  margin-left: auto !important; margin-right: auto !important;
}
.tpx .tpxb-filters, .tpx ul.tpxb-filters {
  margin-left: auto !important; margin-right: auto !important;
}

/* the current page number was inheriting the foreground colour on a
   foreground-filled pill, so it vanished. force the contrast both ways. */
.tpxb .pagination__item--current,
.tpxb .pagination__item--current * {
  color: rgb(var(--color-background, 242 239 221)) !important;
  text-decoration: none !important;
}
.tpxb .pagination__item--current {
  background: rgb(var(--fg)) !important;
  border-color: rgb(var(--fg)) !important;
  font-weight: 600;
}
.tpxb .pagination__item:not(.pagination__item--current) { text-decoration: none; }
.tpxb .pagination__item:not(.pagination__item--current):hover {
  background: rgba(var(--fg), .10);
  border-color: rgba(var(--fg), .5);
}
.tpxb .pagination__item svg, .tpxb .pagination__item .icon { color: rgb(var(--fg)); }
.tpxb .pagination__item--current svg { color: rgb(var(--color-background, 242 239 221)) !important; }

/* === BEGIN THE PRESSOIR ARTICLE DETAIL (.tpxa) === */
/*
  The article view uses the same illuminated panels, diamond rules, glass
  surfaces and restrained pill controls as the blog index and editorial pages.
  It lives here, rather than in Dawn's section stylesheet, so every article
  follows the same design system.
*/

.tpxa {
  --tpa-serif: var(--font-heading-family, Georgia, "Times New Roman", serif);
  --tpa-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --tpa-ease: cubic-bezier(.22, .7, .28, 1);
  padding: clamp(2.6rem, 5vw, 5rem) 0 0;
  color: rgb(var(--fg));
  font-family: var(--tpa-serif);
  text-align: left;
  overflow-x: clip;
}

.tpxa > * { box-sizing: border-box; }

/* The legacy content-page rule hides headers containing .tpx-hero.
   This is the article hero itself, so keep it visible. */
.article-template.tpxa > .article-template__header {
  display: block !important;
}

.tpxa .article-template__header,
.tpxa .article-template__hero-container,
.tpxa .article-template__footer {
  max-width: 118rem;
  margin-left: auto;
  margin-right: auto;
}

.tpxa .article-template__header-inner {
  margin: 0 !important;
  min-height: clamp(38rem, 48vw, 58rem);
  padding: clamp(5rem, 9vw, 9rem) clamp(2.2rem, 7vw, 7rem);
  display: flex;
  align-items: center;
  box-shadow:
    0 1px 0 rgba(242, 239, 221, .14) inset,
    0 30px 60px rgba(37, 70, 32, .17);
}

.tpxa .article-template__header-inner .tpx-inner { max-width: 88rem; }

.tpxa .article-template__eyebrow {
  width: auto;
  margin: 0 auto 1.5rem;
  color: rgba(242, 239, 221, .74);
  text-decoration-color: rgba(242, 239, 221, .32);
  text-underline-offset: .5rem;
}

.tpxa .article-template__eyebrow:hover,
.tpxa .article-template__eyebrow:focus-visible {
  color: rgb(242, 239, 221);
  text-decoration-color: currentColor;
}

.tpxa .article-template__header .tpx-rule {
  margin-bottom: clamp(2rem, 3vw, 2.8rem);
}

.tpxa .article-template__title {
  max-width: 86rem;
  margin: 0 auto;
  color: rgb(242, 239, 221);
  font-family: var(--tpa-serif);
  font-size: clamp(4.2rem, 6.1vw, 7rem);
  font-weight: var(--font-heading-weight, 400);
  font-style: var(--font-heading-style, normal);
  line-height: 1.06;
  letter-spacing: -.012em;
  text-align: center;
  text-wrap: balance;
}

.tpxa .tpxa-meta {
  width: auto;
  margin: clamp(2.4rem, 4vw, 3.4rem) auto 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .8rem 2.8rem;
  color: rgba(242, 239, 221, .68);
  font-family: var(--tpa-sans);
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .18em;
  text-align: center;
  text-transform: uppercase;
}

.tpxa .tpxa-meta > span { position: relative; width: auto; }

.tpxa .tpxa-meta > span + span::before {
  content: "◆";
  position: absolute;
  top: 50%;
  left: -1.8rem;
  color: rgba(242, 239, 221, .38);
  font-size: .55rem;
  transform: translateY(-50%);
}

.tpxa .article-template__hero-container {
  margin-top: clamp(3.8rem, 6vw, 6rem);
}

.tpxa .article-template__hero-container .tpxa-media {
  position: relative;
  padding-bottom: 0 !important;
  min-height: 28rem;
  max-height: 66rem;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid rgba(var(--fg), .18);
  border-radius: 18px;
  background: rgba(var(--fg), .05);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .5) inset,
    0 24px 48px rgba(37, 70, 32, .14);
}

.tpxa .article-template__hero-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tpxa .article-template__social-sharing {
  max-width: 72.6rem;
  margin-top: clamp(2.4rem, 4vw, 3.4rem);
  display: flex;
  justify-content: flex-end;
}

.tpxa .article-template__social-sharing .share-button { min-height: 4.6rem; }

.tpxa .article-template__social-sharing .share-button__button {
  min-height: 4.6rem;
  padding: 1rem 1.9rem;
  border: 1px solid rgba(var(--fg), .24) !important;
  border-radius: 999px !important;
  background: var(--gfill) !important;
  box-shadow: var(--gin), var(--gsh) !important;
  color: rgb(var(--fg)) !important;
  font-family: var(--tpa-sans);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .4s var(--tpa-ease), border-color .4s ease, background .4s ease;
}

.tpxa .article-template__social-sharing .share-button__button:hover {
  transform: translateY(-3px);
  border-color: rgba(var(--fg), .5) !important;
}

.tpxa .article-template__social-sharing .share-button__button:focus-visible {
  outline: 2px solid rgb(var(--fg));
  outline-offset: 3px;
}

.tpxa .article-template__social-sharing .share-button__fallback {
  right: 0;
  left: auto;
  border: 1px solid rgba(var(--fg), .22);
  border-radius: 18px;
  background: rgba(242, 239, 221, .96);
  box-shadow: 0 24px 48px rgba(37, 70, 32, .18);
}

.tpxa .article-template__content {
  max-width: 72.6rem;
  margin-top: clamp(3rem, 5vw, 4.8rem);
  margin-bottom: clamp(6rem, 10vw, 10rem);
  color: rgba(var(--fg), .88);
  font-family: var(--tpa-serif);
  font-size: clamp(1.75rem, 1.5vw, 1.9rem);
  line-height: 1.72;
  text-align: left;
}

.tpxa .article-template__social-sharing + .article-template__content { margin-top: 2.6rem; }
.tpxa .article-template__content > *:first-child { margin-top: 0; }

.tpxa .article-template__content > p:first-child {
  color: rgba(var(--fg), .94);
  font-size: clamp(2rem, 1.8vw, 2.25rem);
  line-height: 1.58;
}

.tpxa .article-template__content p {
  margin: 0 0 1.8rem;
  text-wrap: pretty;
}

.tpxa .article-template__content h2,
.tpxa .article-template__content h3,
.tpxa .article-template__content h4 {
  color: rgb(var(--fg));
  font-family: var(--tpa-serif);
  font-weight: var(--font-heading-weight, 400);
  font-style: var(--font-heading-style, normal);
  text-wrap: balance;
}

.tpxa .article-template__content h2 {
  margin: clamp(5rem, 8vw, 7.2rem) 0 2rem;
  font-size: clamp(3rem, 4vw, 4rem);
  line-height: 1.16;
  letter-spacing: -.008em;
}

.tpxa .article-template__content h2::before {
  content: "◆◆◆";
  display: block;
  margin-bottom: 1.4rem;
  color: rgba(var(--fg), .42);
  font-family: var(--tpa-serif);
  font-size: .65rem;
  line-height: 1;
  letter-spacing: .5em;
}

.tpxa .article-template__content h3 {
  margin: 3.8rem 0 1.4rem;
  font-size: clamp(2.35rem, 3vw, 2.9rem);
  line-height: 1.22;
}

.tpxa .article-template__content h4 {
  margin: 3rem 0 1rem;
  font-size: 2.05rem;
  line-height: 1.28;
}

.tpxa .article-template__content strong { color: rgb(var(--fg)); font-weight: 600; }

.tpxa .article-template__content a {
  color: rgb(var(--fg));
  text-decoration-thickness: 1px;
  text-underline-offset: .35rem;
}

.tpxa .article-template__content a:hover { text-decoration-thickness: 2px; }

.tpxa .article-template__content ul {
  list-style: disc !important;
  padding-left: 2.2rem !important;
}

.tpxa .article-template__content ol {
  list-style: decimal !important;
  padding-left: 2.2rem !important;
}

.tpxa .article-template__content li { list-style: inherit !important; }

.tpxa .article-template__content > ul,
.tpxa .article-template__content > ol {
  margin: 3rem 0 3.8rem !important;
  padding: clamp(2.4rem, 4vw, 3.2rem) clamp(2.2rem, 4vw, 3.4rem)
    clamp(2.4rem, 4vw, 3.2rem) clamp(4.5rem, 7vw, 5.8rem) !important;
  border: 1px solid rgba(var(--fg), .18);
  border-radius: 18px;
  background: var(--gfill);
  box-shadow: var(--gin), var(--gsh);
}

.tpxa .article-template__content li + li { margin-top: 1rem; }

.tpxa .article-template__content li::marker {
  color: rgba(var(--fg), .72);
  font-weight: 600;
}

.tpxa .article-template__content blockquote {
  position: relative;
  isolation: isolate;
  margin: clamp(4rem, 7vw, 6rem) 0;
  padding: clamp(3.2rem, 6vw, 5rem);
  overflow: hidden;
  border: 1px solid rgba(242, 239, 221, .18);
  border-radius: 18px;
  background:
    radial-gradient(58% 54% at 50% 28%, rgba(150, 196, 120, .23), rgba(37, 70, 32, 0) 70%),
    radial-gradient(90% 70% at 50% 50%, #2d5427 0%, #254620 52%, #1b3317 100%);
  box-shadow: 0 28px 56px rgba(37, 70, 32, .22);
  color: rgb(242, 239, 221);
  font-size: clamp(2rem, 2vw, 2.35rem);
  line-height: 1.55;
  text-align: center;
}

.tpxa .article-template__content blockquote::after {
  content: "";
  position: absolute;
  inset: 1.2rem;
  z-index: -1;
  border: 1px solid rgba(242, 239, 221, .13);
  border-radius: 10px;
}

.tpxa .article-template__content blockquote > *:last-child { margin-bottom: 0; }

.tpxa .article-template__content img,
.tpxa .article-template__content video,
.tpxa .article-template__content iframe {
  max-width: 100%;
  border-radius: 18px;
}

.tpxa .article-template__content img {
  height: auto;
  margin: 2.8rem auto;
  border: 1px solid rgba(var(--fg), .16);
  box-shadow: 0 22px 44px rgba(37, 70, 32, .13);
}

.tpxa .article-template__content table {
  display: block;
  width: 100%;
  margin: 3rem 0;
  overflow-x: auto;
  border: 1px solid rgba(var(--fg), .18);
  border-radius: 18px;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--gfill);
}

.tpxa .article-template__content th,
.tpxa .article-template__content td {
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid rgba(var(--fg), .14);
  text-align: left;
}

.tpxa .article-template__content hr {
  height: 1px;
  margin: 5rem 0;
  border: 0;
  background: linear-gradient(90deg, rgba(var(--fg), 0), rgba(var(--fg), .3), rgba(var(--fg), 0));
}

.tpxa .article-template__footer { margin-bottom: clamp(4rem, 8vw, 8rem); }

.tpxa .article-template__footer-inner {
  margin: 0 !important;
  padding: clamp(4.6rem, 8vw, 7rem) clamp(2.2rem, 6vw, 5rem);
  box-shadow: 0 28px 56px rgba(37, 70, 32, .18);
}

.tpxa .article-template__footer-inner .tpx-inner { max-width: 90rem; }

.tpxa .article-template__topics {
  width: 100%;
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  text-align: center;
}

.tpxa .article-template__topics-label {
  display: block;
  width: auto;
  margin: 0 auto 1.4rem;
}

.tpxa .article-template__tag-list { margin-bottom: 0 !important; }

.tpxa .article-template__footer .tpx-btns {
  width: auto;
  margin: 0;
}

.tpxa .article-template__link { gap: 1rem; }

.tpxa .article-template__link .icon-wrap {
  display: flex;
  transform: rotate(180deg);
}

.tpxa .article-template__link .svg-wrapper { width: 1.6rem; height: 1.6rem; }

.tpxa .article-template__comment-wrapper {
  margin-top: 5rem;
  padding: clamp(3.6rem, 6vw, 6rem) 0;
  background: rgba(var(--fg), .045);
}

.tpxa .article-template__comment-wrapper h2 { margin-top: 0; }
.tpxa .article-template__comments { margin-bottom: 5rem; }

.tpxa .article-template__comments-comment {
  margin-bottom: 1.5rem;
  padding: 2.2rem 2.5rem;
  border: 1px solid rgba(var(--fg), .18);
  border-radius: 18px;
  background: var(--gfill);
  box-shadow: var(--gin), var(--gsh);
  color: rgba(var(--fg), .84);
}

.tpxa .article-template__comments-comment p { margin: 0 0 1rem; }
.tpxa .article-template__comments-fields { margin-bottom: 4rem; }
.tpxa .article-template__comment-fields > * { margin-bottom: 3rem; }
.tpxa .article-template__comment-warning { margin: 2rem 0 2.5rem; }

@media screen and (min-width: 750px) {
  .tpxa .article-template__comment-fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4rem;
  }
}

@media screen and (max-width: 749px) {
  .tpxa { padding-top: 2.2rem; }

  .tpxa .article-template__header,
  .tpxa .article-template__hero-container,
  .tpxa .article-template__footer {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .tpxa .article-template__header-inner {
    min-height: 36rem;
    padding: 4.8rem 2.2rem;
  }

  .tpxa .article-template__title { font-size: clamp(3.6rem, 12vw, 5.2rem); }

  .tpxa .tpxa-meta { gap: .7rem 2.2rem; }

  .tpxa .tpxa-meta > span + span::before { left: -1.45rem; }

  .tpxa .article-template__hero-container .tpxa-media {
    min-height: 22rem;
    aspect-ratio: 4 / 3;
  }

  .tpxa .article-template__social-sharing { margin-top: 2.4rem; }

  .tpxa .article-template__content {
    font-size: 1.75rem;
    line-height: 1.68;
  }

  .tpxa .article-template__content > p:first-child { font-size: 1.95rem; }

  .tpxa .article-template__content > ul,
  .tpxa .article-template__content > ol {
    padding: 2.3rem 2rem 2.3rem 4.3rem !important;
  }

  .tpxa .article-template__footer-inner { padding: 4.2rem 2rem; }

  .tpxa .article-template__footer .tpx-btns,
  .tpxa .article-template__link { width: 100%; }

  .tpxa .article-template__link {
    justify-content: center;
    white-space: normal;
  }
}

@media (hover: none) {
  .tpxa .article-template__social-sharing .share-button__button:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .tpxa .article-template__social-sharing .share-button__button {
    transition: none;
    transform: none !important;
  }
}
/* === END THE PRESSOIR ARTICLE DETAIL (.tpxa) === */

/* ==========================================================================
   Footer (.tpf)
   Glass needs something behind it. The glow sits under the panels so the
   blur has variation to work with, and each panel carries its own sheen.
   ========================================================================== */
.tpf {
  --serif: var(--font-heading-family, Georgia, serif);
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --fg: 242 239 221;
  --ease: cubic-bezier(.22, .7, .28, 1);
  position: relative; isolation: isolate; overflow: hidden;
  background: #1f3b1a; color: rgb(var(--fg));
}
.tpf * { box-sizing: border-box; }

/* the light source, sitting under the panels */
.tpf-glow { position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(38% 46% at 22% 18%, rgba(168,206,140,.30) 0%, rgba(96,148,74,.12) 42%, rgba(37,70,32,0) 76%),
    radial-gradient(34% 44% at 78% 26%, rgba(140,190,120,.22) 0%, rgba(37,70,32,0) 72%),
    radial-gradient(60% 60% at 50% 96%, rgba(96,148,74,.16) 0%, rgba(28,55,23,0) 74%),
    linear-gradient(180deg, #2a5024 0%, #254620 46%, #1a3315 100%); }
.tpf-grain { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .05;
  background-image: radial-gradient(rgba(242,239,221,.9) .5px, transparent .6px);
  background-size: 3px 3px; mix-blend-mode: overlay; }
.tpf-in { position: relative; z-index: 2; max-width: 122rem; margin: 0 auto;
  padding: clamp(3.4rem,5vw,5.4rem) clamp(2rem,4vw,4rem) clamp(2.4rem,3vw,3rem); }

.tpf-el { opacity: 0; transform: translateY(18px);
  transition: opacity .9s var(--ease), transform .9s var(--ease); }
.tpf.is-in .tpf-el { opacity: 1; transform: none; }
.tpf.is-in .tpf-el:nth-child(2) { transition-delay: .09s; }
.tpf.is-in .tpf-nav { transition-delay: .18s; }
.tpf:not(.tpf-js) .tpf-el { opacity: 1; transform: none; }

/* ---------- the glass material ---------- */
.tpf-glass {
  position: relative; overflow: hidden; border-radius: 20px;
  background: rgba(242,239,221,.10);
  border: 1px solid rgba(242,239,221,.24);
  box-shadow:
    0 1px 0 rgba(242,239,221,.30) inset,
    0 -1px 0 rgba(0,0,0,.18) inset,
    0 28px 56px rgba(0,0,0,.34);
}
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .tpf-glass { background: rgba(242,239,221,.075);
    -webkit-backdrop-filter: blur(24px) saturate(1.6); backdrop-filter: blur(24px) saturate(1.6); }
}
/* specular highlight, top left, the way light actually falls on glass */
.tpf-glass::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background: linear-gradient(142deg, rgba(242,239,221,.16) 0%, rgba(242,239,221,.04) 26%, rgba(242,239,221,0) 52%); }
.tpf-glass > * { position: relative; z-index: 1; }
.tpf-frame { position: absolute; inset: clamp(.9rem,1.4vw,1.3rem); pointer-events: none; z-index: 1;
  border: 1px solid rgba(242,239,221,.12); border-radius: 13px; }

/* ---------- band A ---------- */
.tpf-act { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(1.6rem,2vw,2.2rem);
  margin: 0 0 clamp(1.6rem,2vw,2.2rem); }
.tpf-card { padding: clamp(2.6rem,3.4vw,3.8rem); }
.tpf-card h2 { font-family: var(--serif); font-weight: 400;
  font-size: clamp(2.1rem,2.2vw,2.8rem); line-height: 1.16; margin: 0 0 1rem; color: rgb(var(--fg)); }
.tpf-card p { font-family: var(--serif); font-size: clamp(1.5rem,1.15vw,1.65rem);
  line-height: 1.62; margin: 0 0 2.2rem; color: rgba(var(--fg),.82); }
.tpf-brow { font-family: var(--sans); font-size: 1.1rem; letter-spacing: .24em;
  text-transform: uppercase; font-weight: 600; color: rgba(var(--fg),.66);
  margin: 0 0 1.1rem !important; padding-left: .24em; }

.tpf a.tpf-btn { display: inline-flex; align-items: center; white-space: nowrap; text-decoration: none;
  background: rgb(var(--fg)); color: #254620; border: 1px solid rgb(var(--fg)); border-radius: 999px;
  font-family: var(--sans); font-size: 1.3rem; letter-spacing: .18em; text-transform: uppercase;
  font-weight: 600; text-indent: .18em; padding: 1.6rem 3.2rem; line-height: 1;
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
  transition: background .45s var(--ease), color .45s var(--ease), letter-spacing .45s var(--ease), box-shadow .45s ease; }
.tpf a.tpf-btn:hover { background: transparent; color: rgb(var(--fg));
  letter-spacing: .22em; box-shadow: 0 0 0 rgba(0,0,0,0); }
.tpf a.tpf-btn:focus-visible { outline: 2px solid rgb(var(--fg)); outline-offset: 4px; }

.tpf-field { display: flex !important; align-items: stretch; width: 100%; position: relative;
  background: rgba(0,0,0,.26) !important; border: 1px solid rgba(var(--fg),.4) !important;
  border-radius: 999px !important; overflow: hidden;
  box-shadow: 0 2px 4px rgba(0,0,0,.26) inset !important;
  transition: border-color .4s ease, box-shadow .4s ease; }
.tpf-field:focus-within { border-color: rgb(var(--fg)) !important;
  box-shadow: 0 0 0 3px rgba(var(--fg),.16), 0 2px 4px rgba(0,0,0,.26) inset !important; }
.tpf-field::before, .tpf-field::after { display: none !important; content: none !important; }
.tpf-field .field__label { display: none !important; }
.tpf-field input[type="email"] { flex: 1 1 auto; min-width: 0; background: transparent !important;
  border: 0 !important; outline: 0 !important; box-shadow: none !important; color: rgb(var(--fg)) !important;
  font-family: var(--font-body-family, sans-serif) !important; font-size: 1.6rem !important;
  padding: 1.6rem 1rem 1.6rem 2.4rem !important; margin: 0 !important; }
.tpf-field input[type="email"]::placeholder { color: rgba(var(--fg),.6); opacity: 1; }
.tpf-field button { flex: 0 0 auto; background: transparent; border: 0; cursor: pointer;
  color: rgb(var(--fg)); padding: 0 2.2rem 0 1.2rem; display: flex; align-items: center;
  transition: opacity .3s ease, transform .3s var(--ease); }
.tpf-field button:hover { opacity: .78; transform: translateX(.25rem); }
.tpf-field svg { width: 2.1rem; height: auto; display: block; }
.tpf-micro { font-family: var(--sans); font-size: 1.15rem; color: rgba(var(--fg),.55);
  margin: 1.4rem 0 0 !important; line-height: 1.65; }

/* ---------- band B ---------- */
.tpf-nav { padding: clamp(2.8rem,3.4vw,4rem) clamp(2.4rem,3vw,3.4rem);
  display: grid; grid-template-columns: 1.45fr repeat(4, minmax(0,1fr));
  gap: clamp(2.4rem,3vw,3.6rem); text-align: left; align-items: start; }
/* nav: Visit on the left, dropdown stack on the right */
.tpf .tpf-nav { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.5fr); align-items: start; }
.tpf .tpf-stack { display: flex; flex-direction: column; }

.tpf .tpf-col {
  border: 0; border-bottom: 1px solid rgba(242,239,221,.16);
}
.tpf .tpf-col:last-of-type { border-bottom: 0; }

.tpf summary.tpf-h {
  display: flex; align-items: center; justify-content: space-between; gap: 1.6rem;
  font-family: var(--sans); font-size: 1.15rem; letter-spacing: .2em; text-transform: uppercase;
  font-weight: 600; color: rgba(242,239,221,.86); margin: 0;
  padding: 1.7rem .2rem; border-bottom: 0;
  list-style: none; cursor: pointer; user-select: none;
  transition: color .3s ease, padding-left .35s var(--ease);
}
.tpf summary.tpf-h::-webkit-details-marker { display: none; }
.tpf summary.tpf-h:hover { color: rgb(242 239 221); padding-left: .6rem; }
.tpf summary.tpf-h:focus-visible { outline: 2px solid rgb(242 239 221); outline-offset: 2px; }
.tpf details[open] > summary.tpf-h { color: rgb(242 239 221); }

/* plus that becomes a minus */
.tpf .tpf-chev { display: block; width: 1.1rem; height: 1.1rem; flex: 0 0 auto; position: relative; }
.tpf .tpf-chev::before, .tpf .tpf-chev::after {
  content: ""; position: absolute; top: 50%; left: 0; width: 100%; height: 1px;
  background: currentColor; opacity: .8;
  transition: transform .4s var(--ease), opacity .4s ease;
}
.tpf .tpf-chev::after { transform: rotate(90deg); }
.tpf details[open] .tpf-chev::after { transform: rotate(0deg); opacity: 0; }

@keyframes tpfReveal { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.tpf details[open] .tpf-list { animation: tpfReveal .45s var(--ease) both; }

.tpf-list { list-style: none; margin: 0; padding: 0; }
.tpf-list li { margin: 0 0 1rem; }
.tpf-list li:last-child { margin-bottom: 0; }
.tpf a.tpf-link { font-family: var(--serif); font-size: 1.55rem; line-height: 1.4;
  color: rgba(var(--fg),.78); text-decoration: none; display: inline-block;
  transition: color .3s ease, transform .3s var(--ease); }
.tpf a.tpf-link:hover { color: rgb(var(--fg)); transform: translateX(.4rem); }
.tpf a.tpf-link:focus-visible { outline: 2px solid rgb(var(--fg)); outline-offset: 3px; }

/* visit column: opening hours as a contained unit */
.tpf .tpf-open {
  border-radius: 14px; padding: 1.8rem 1.8rem 1.4rem;
  background: rgba(0,0,0,.16); border: 1px solid rgba(242,239,221,.14);
  margin: 0 0 1.8rem; max-width: 32rem;
}
.tpf .tpf-status {
  display: inline-flex !important; align-items: center; gap: .8rem;
  font-family: var(--sans); font-size: 1.1rem; letter-spacing: .16em; text-transform: uppercase;
  color: rgb(242 239 221) !important; padding: .8rem 1.5rem; border-radius: 999px;
  border: 1px solid rgba(242,239,221,.4); background: rgba(242,239,221,.14);
  margin: 0 0 1.6rem !important; text-align: left; line-height: 1;
}
.tpf .tpf-dot { width: .7rem; height: .7rem; border-radius: 50%;
  background: rgba(242,239,221,.5); flex: 0 0 auto; }
.tpf .tpf-status[data-open="true"] { border-color: rgba(168,206,140,.6); background: rgba(168,206,140,.14); }
.tpf .tpf-status[data-open="true"] .tpf-dot { background: #a8ce8c; box-shadow: 0 0 0 4px rgba(168,206,140,.25); }

.tpf .tpf-hours { margin: 0; padding: 0; }
.tpf .tpf-hrow {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1.2rem;
  padding: .7rem 0; border-bottom: 1px solid rgba(242,239,221,.10);
}
.tpf .tpf-hrow:last-child { border-bottom: 0; }
.tpf .tpf-hrow dt, .tpf .tpf-hrow dd {
  margin: 0; font-family: var(--serif); font-size: 1.42rem; line-height: 1.4;
  color: rgba(242,239,221,.66);
}
.tpf .tpf-hrow dd { text-align: right; white-space: nowrap; }
.tpf .tpf-hrow[data-today="true"] dt, .tpf .tpf-hrow[data-today="true"] dd { color: rgb(242 239 221); }
.tpf .tpf-hrow[data-today="true"] dt::before {
  content: "\25C6"; font-size: .6rem; vertical-align: middle;
  margin-right: .7rem; color: #a8ce8c;
}

.tpf .tpf-addr p { font-family: var(--serif); font-size: 1.5rem; line-height: 1.62;
  color: rgba(242,239,221,.78); margin: 0 0 1rem; max-width: 30rem; }
.tpf .tpf-addr p:last-child { margin-bottom: 0; }
.tpf a.tpf-mail, .tpf .tpf-addr a, .tpf .tpf-visit a {
  color: rgb(242 239 221) !important; text-decoration: none !important;
  border-bottom: 1px solid rgba(242,239,221,.35);
  transition: border-color .3s ease;
}
.tpf a.tpf-mail:hover, .tpf .tpf-addr a:hover, .tpf .tpf-visit a:hover {
  border-bottom-color: rgb(242 239 221);
}
.tpf a.tpf-mail:focus-visible { outline: 2px solid rgb(242 239 221); outline-offset: 3px; }

/* ---------- band C ---------- */
.tpf-legal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1.4rem 2.4rem; margin: clamp(2.4rem,3vw,3rem) 0 0;
  padding: clamp(2rem,2.6vw,2.6rem) clamp(1rem,1.6vw,1.6rem);
  border-top: 1px solid rgba(var(--fg),.16); }
.tpf-policies { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.8rem;
  font-family: var(--sans); font-size: 1.2rem; color: rgba(var(--fg),.55); margin: 0; list-style: none; padding: 0; }
.tpf-policies a { color: rgba(var(--fg),.68); text-decoration: none; }
.tpf-policies a:hover { color: rgb(var(--fg)); text-decoration: underline; text-underline-offset: 2px; }
.tpf-social { display: flex; align-items: center; gap: .7rem; list-style: none; margin: 0; padding: 0; }
.tpf-social a { display: flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem;
  border-radius: 50%; border: 1px solid rgba(var(--fg),.3); color: rgba(var(--fg),.88);
  background: rgba(var(--fg),.08);
  transition: background .35s ease, border-color .35s ease, color .35s ease, transform .35s var(--ease); }
.tpf-social a:hover { background: rgb(var(--fg)); border-color: rgb(var(--fg)); color: #254620; transform: translateY(-3px); }
.tpf-social a:focus-visible { outline: 2px solid rgb(var(--fg)); outline-offset: 3px; }
.tpf-social svg { width: 1.85rem; height: 1.85rem; }

.tpf-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1.2rem 2.4rem; padding: clamp(1.6rem,2vw,2rem) clamp(1rem,1.6vw,1.6rem) 0;
  border-top: 1px solid rgba(var(--fg),.1); }
.tpf-pay { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; opacity: .55; }
.tpf-pay svg, .tpf-pay img { height: 2rem; width: auto; display: block; }
.tpf-credit { font-family: var(--sans); font-size: 1.15rem; letter-spacing: .1em;
  color: rgba(var(--fg),.5); margin: 0; line-height: 1.7; }
.tpf-credit a { color: rgba(var(--fg),.72); text-decoration: none;
  border-bottom: 1px solid rgba(var(--fg),.28); padding-bottom: .1rem;
  transition: color .35s ease, border-color .35s ease; }
.tpf-credit a:hover { color: rgb(var(--fg)); border-color: rgb(var(--fg)); }
.tpf-credit a:focus-visible { outline: 2px solid rgb(var(--fg)); outline-offset: 3px; }

@media (max-width: 1200px) { .tpf-nav { grid-template-columns: 1fr 1fr 1fr; } .tpf-visit { grid-column: 1 / -1; } }
@media (max-width: 749px) {
  .tpf-act { grid-template-columns: 1fr; }
  .tpf-nav { grid-template-columns: 1fr 1fr; }
  .tpf-visit { grid-column: 1 / -1; }
  .tpf-legal, .tpf-foot { flex-direction: column; text-align: center; justify-content: center; }
  .tpf-policies, .tpf-social, .tpf-pay { justify-content: center; }
}
@media (max-width: 460px) { .tpf-nav { grid-template-columns: 1fr; } }
@media (hover: none) { .tpf a.tpf-link:hover, .tpf-social a:hover, .tpf-field button:hover { transform: none; } }
@media (prefers-reduced-transparency: reduce) {
  .tpf-glass { background: #2d5427 !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .tpf-glass::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .tpf-el { opacity: 1; transform: none; transition: none; }
  .tpf a, .tpf-social a, .tpf-field button { transition: none !important; transform: none !important; }
}

/* dropdown lists, all widths */
.tpf .tpf-list { padding: 0 .2rem 1.8rem; }
.tpf .tpf-list li { margin: 0 0 1.1rem; }
.tpf .tpf-list li:last-child { margin-bottom: 0; }
@media (max-width: 749px) {
  .tpf .tpf-nav { grid-template-columns: 1fr; }
  .tpf summary.tpf-h:hover { padding-left: .2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .tpf details[open] .tpf-list { animation: none; }
  .tpf summary.tpf-h:hover { padding-left: .2rem; }
}

/* ==========================================================================
   Product page (.tpp) — restyles Dawn's main-product and related-products
   to match the editorial system. No template changes, CSS only.
   ========================================================================== */

.product,
.related-products {
  --serif: var(--font-heading-family, Georgia, "Times New Roman", serif);
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --fg: var(--color-foreground, 37 70 32);
  --bg: var(--color-background, 242 239 221);
  --ease: cubic-bezier(.22, .7, .28, 1);
}

/* ---------- layout: give the two columns room and let media stick ---------- */
.product--large:not(.product--no-media) .product__media-wrapper,
.product--medium:not(.product--no-media) .product__media-wrapper { padding-right: clamp(2rem, 4vw, 5rem); }
.product__info-container { max-width: 52rem; }

@media screen and (min-width: 990px) {
  .product__media-wrapper { position: sticky; top: 3rem; align-self: start; }
}

/* ---------- media ---------- */
.product__media-item .media,
.product__media-wrapper .global-media-settings {
  border-radius: 16px !important;
  border: 1px solid rgba(var(--fg), .18) !important;
  box-shadow: 0 18px 44px rgba(37, 70, 32, .10) !important;
  overflow: hidden;
}
.product__media img { transition: transform 1.2s var(--ease); }
.product__media:hover img { transform: scale(1.02); }
.thumbnail { border-radius: 10px !important; }
.thumbnail-list__item .thumbnail[aria-current] { border-color: rgb(var(--fg)); box-shadow: 0 0 0 2px rgb(var(--fg)); }

/* ---------- vendor line, used as an eyebrow ---------- */
.product__text.caption-with-letter-spacing,
.product__info-container .product__text {
  font-family: var(--sans);
  font-size: clamp(1.15rem, 1vw, 1.3rem);
  letter-spacing: .26em; text-transform: uppercase; font-weight: 600;
  color: rgba(var(--fg), .6); margin: 0 0 1.4rem; text-indent: .26em;
}

/* ---------- title ---------- */
.product__title > h1,
.product__title > .h1 {
  font-family: var(--serif);
  font-size: clamp(2.8rem, 3.2vw, 4rem) !important;
  line-height: 1.12; letter-spacing: -.01em;
  margin: 0 0 1.6rem; text-wrap: balance;
  color: rgb(var(--fg));
}

/* ---------- price ---------- */
.product__info-container .price {
  font-family: var(--serif);
  font-size: clamp(2rem, 1.8vw, 2.4rem) !important;
  line-height: 1.2; color: rgb(var(--fg));
}
.product__info-container .price--on-sale .price-item--regular { opacity: .5; }
.product__tax,
.product__info-container .product__tax a {
  font-family: var(--sans); font-size: 1.25rem; letter-spacing: .06em;
  color: rgba(var(--fg), .58);
}

/* a hairline under the price block, the way the rest of the site separates ideas */
.product__info-container .product__tax { padding-bottom: 2rem; border-bottom: 1px solid rgba(var(--fg), .16); margin-bottom: 2.2rem; }

/* ---------- option labels ---------- */
.product-form__input .form__label,
.product__info-container legend.form__label {
  font-family: var(--sans);
  font-size: clamp(1.05rem, .9vw, 1.2rem);
  letter-spacing: .22em; text-transform: uppercase; font-weight: 600;
  color: rgba(var(--fg), .55); margin: 0 0 1.2rem; text-indent: .22em;
}

/* ---------- variant pills, matched to .tpx-chip ---------- */
.product-form__input--pill input[type=radio] + label {
  font-family: var(--serif) !important;
  font-size: clamp(1.45rem, 1.2vw, 1.6rem) !important;
  line-height: 1.2;
  padding: 1.2rem 2rem !important;
  border-radius: 999px !important;
  border: 1px solid rgba(var(--fg), .24) !important;
  background: rgba(var(--fg), .04) !important;
  color: rgb(var(--fg)) !important;
  letter-spacing: 0 !important;
  transition: background .4s ease, color .4s ease, border-color .4s ease, transform .4s var(--ease);
}
.product-form__input--pill input[type=radio] + label:hover {
  border-color: rgba(var(--fg), .5) !important;
  transform: translateY(-3px);
}
.product-form__input--pill input[type=radio]:checked + label {
  background: rgb(var(--fg)) !important;
  color: rgb(var(--bg)) !important;
  border-color: rgb(var(--fg)) !important;
}
.product-form__input--pill input[type=radio]:focus-visible + label {
  outline: 2px solid rgb(var(--fg)); outline-offset: 3px;
}
@supports (backdrop-filter: blur(1px)) {
  .product-form__input--pill input[type=radio] + label {
    -webkit-backdrop-filter: blur(16px) saturate(1.25); backdrop-filter: blur(16px) saturate(1.25);
  }
}

/* ---------- quantity ---------- */
.product-form__quantity .form__label { margin-bottom: 1.2rem; }
.quantity {
  border-radius: 999px !important;
  border: 1px solid rgba(var(--fg), .3) !important;
  overflow: hidden; width: 15rem; min-height: 5rem;
  background: rgba(var(--fg), .03);
}
.quantity::after { display: none !important; }
.quantity__input { font-family: var(--serif) !important; font-size: 1.7rem !important; color: rgb(var(--fg)); }
.quantity__button { color: rgb(var(--fg)); transition: background .3s ease; }
.quantity__button:hover { background: rgba(var(--fg), .08); }

/* ---------- buttons ---------- */
.product-form__submit,
.product__info-container .shopify-payment-button__button--unbranded {
  border-radius: 999px !important;
  min-height: 5.4rem;
  font-family: var(--sans) !important;
  font-size: clamp(1.3rem, 1.05vw, 1.45rem) !important;
  letter-spacing: .18em !important; text-transform: uppercase; font-weight: 600;
  text-indent: .18em;
  background: rgb(var(--fg)) !important;
  color: rgb(var(--bg)) !important;
  border: 1px solid rgb(var(--fg)) !important;
  box-shadow: none !important;
  transition: background .45s var(--ease), color .45s var(--ease), letter-spacing .45s var(--ease);
}
.product-form__submit:hover:not([disabled]),
.product__info-container .shopify-payment-button__button--unbranded:hover {
  background: transparent !important;
  color: rgb(var(--fg)) !important;
  letter-spacing: .22em !important;
}
.product-form__submit[disabled] { opacity: .45; }
.product-form__submit::after,
.product-form__submit::before { display: none !important; }
.shopify-payment-button__more-options {
  font-family: var(--sans) !important; font-size: 1.25rem !important;
  letter-spacing: .12em; text-transform: uppercase; color: rgba(var(--fg), .6) !important;
}

/* ---------- subscription / purchase options block ---------- */
.product__info-container .product-form__input--dropdown select,
.product__info-container fieldset.js.product-form__input {
  border-radius: 14px;
}

/* ---------- description and accordions ---------- */
.product__description {
  font-family: var(--serif);
  font-size: clamp(1.55rem, 1.2vw, 1.7rem);
  line-height: 1.68; color: rgba(var(--fg), .88);
}
.product__accordion .accordion__title,
.product__accordion summary {
  font-family: var(--serif) !important;
  font-size: clamp(1.65rem, 1.35vw, 1.85rem) !important;
  color: rgb(var(--fg));
}
.product__accordion { border-top: 1px solid rgba(var(--fg), .18); border-bottom: 1px solid rgba(var(--fg), .18); }

/* ---------- related products ---------- */
.related-products h2,
.related-products .h2 {
  font-family: var(--serif);
  font-size: clamp(2.2rem, 2.6vw, 3.2rem) !important;
  line-height: 1.18; letter-spacing: -.006em;
  margin: 0 0 clamp(2.4rem, 3.4vw, 3.4rem);
  text-align: center; color: rgb(var(--fg));
}

/* every tile the same shape, which is what makes the row read as a row */
.related-products .card__inner,
.related-products .card__media,
.related-products .card .media {
  aspect-ratio: 1 / 1 !important;
  padding-bottom: 0 !important;
  border-radius: 14px !important;
  overflow: hidden;
}
.related-products .card__inner { border: 1px solid rgba(var(--fg), .16); background: rgba(var(--fg), .04); }
.related-products .card__media img,
.related-products .card .media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.related-products .card:hover .card__media img { transform: scale(1.04); }

.related-products .card-wrapper { transition: transform .5s var(--ease); }
.related-products .card-wrapper:hover { transform: translateY(-5px); }

/* titles sit on one baseline no matter how long they run */
.related-products .card__content { padding-top: 1.6rem; }
.related-products .card__information { padding: 0; }
.related-products .card__heading,
.related-products .card__heading a {
  font-family: var(--serif) !important;
  font-size: clamp(1.55rem, 1.25vw, 1.75rem) !important;
  line-height: 1.35; color: rgb(var(--fg));
  text-decoration: none;
}
.related-products .card__heading a:hover { text-decoration: underline; text-underline-offset: 3px; }
.related-products .card-information > .card__heading { min-height: 4.8rem; }
.related-products .price {
  font-family: var(--serif) !important;
  font-size: clamp(1.4rem, 1.15vw, 1.55rem) !important;
  color: rgba(var(--fg), .78);
}

@supports (backdrop-filter: blur(1px)) {
  .related-products .card__inner {
    -webkit-backdrop-filter: blur(16px) saturate(1.25); backdrop-filter: blur(16px) saturate(1.25);
  }
}

/* ---------- preferences ---------- */
@media (hover: none) {
  .related-products .card-wrapper:hover,
  .product-form__input--pill input[type=radio] + label:hover { transform: none; }
  .product__media:hover img,
  .related-products .card:hover .card__media img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .product__media img, .related-products .card__media img,
  .related-products .card-wrapper, .product-form__submit,
  .product-form__input--pill input[type=radio] + label { transition: none !important; transform: none !important; }
}

/* ==========================================================================
   Header mega menu — editorial panel, constrained, hover-opened
   ========================================================================== */

.header details.mega-menu > .mega-menu__content {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 2rem 3rem !important;
  overflow: visible !important;
}

.header details.mega-menu > .mega-menu__content > .mega-menu__list,
.header details.mega-menu > .mega-menu__content > .mega-menu__list--condensed {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-content: flex-start !important;
  gap: 0 clamp(3rem, 4vw, 5rem) !important;
  width: fit-content !important;
  max-width: 92vw !important;
  margin: 0 auto !important;
  padding: clamp(2.4rem, 2.8vw, 3.2rem) clamp(3rem, 3.5vw, 4rem) !important;
  border: 1px solid rgba(37, 70, 32, .14) !important;
  border-radius: 4px !important;
 background: rgb(var(--color-background, 242 239 221)) !important;
  box-shadow:
    0 1px 2px rgba(37, 70, 32, .04),
    0 10px 20px rgba(37, 70, 32, .06),
    0 30px 60px rgba(37, 70, 32, .12) !important;
  animation: tpmmPanel .5s cubic-bezier(.22, .7, .28, 1) both;
  transform-origin: 50% 0;
}
@keyframes tpmmPanel {
  from { opacity: 0; transform: translateY(-1.2rem); clip-path: inset(0 0 100% 0); }
  to   { opacity: 1; transform: none; clip-path: inset(0 0 0 0); }
}

/* two fixed columns */
.header details.mega-menu .mega-menu__list > li {
  flex: 0 0 25rem !important;
  width: 25rem !important;
  max-width: 25rem !important;
  display: block !important;
  border-bottom: 1px solid rgba(37, 70, 32, .11);
}
.header details.mega-menu .mega-menu__list > li:nth-last-child(1),
.header details.mega-menu .mega-menu__list > li:nth-last-child(2) { border-bottom: 0; }

.header details.mega-menu .mega-menu__list a.mega-menu__link {
  position: relative !important;
  display: block !important;
  padding: 1.5rem 2.6rem 1.5rem .2rem !important;
  font-family: var(--font-heading-family, Georgia, serif) !important;
  font-size: 1.75rem !important;
  font-weight: 400 !important;
  line-height: 1.32 !important;
  letter-spacing: -.002em !important;
  color: rgba(37, 70, 32, .8) !important;
  text-decoration: none !important;
  transition:
    color .4s cubic-bezier(.22, .7, .28, 1),
    padding-left .5s cubic-bezier(.22, .7, .28, 1) !important;
}
.header details.mega-menu .mega-menu__list a.mega-menu__link:hover,
.header details.mega-menu .mega-menu__list a.mega-menu__link:focus-visible {
  color: rgb(37, 70, 32) !important;
  padding-left: 1.4rem !important;
}

/* hairline draws in from the left */
.header details.mega-menu .mega-menu__list a.mega-menu__link::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
  height: 1px; background: rgb(37, 70, 32);
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .55s cubic-bezier(.22, .7, .28, 1);
}
.header details.mega-menu .mega-menu__list a.mega-menu__link:hover::before { transform: scaleX(1); }

/* arrow slides in on the right */
.header details.mega-menu .mega-menu__list a.mega-menu__link::after {
  content: "→";
  position: absolute; right: .2rem; top: 50%;
  font-size: 1.45rem; line-height: 1;
  color: rgba(37, 70, 32, .6);
  opacity: 0; transform: translate(-.8rem, -50%);
  transition: opacity .4s ease, transform .45s cubic-bezier(.22, .7, .28, 1);
}
.header details.mega-menu .mega-menu__list a.mega-menu__link:hover::after,
.header details.mega-menu .mega-menu__list a.mega-menu__link:focus-visible::after {
  opacity: 1; transform: translate(0, -50%);
}

.header details.mega-menu .mega-menu__list a.mega-menu__link--active { color: rgb(37, 70, 32) !important; }
.header details.mega-menu .mega-menu__list a.mega-menu__link:focus-visible { outline: none; }

/* rows rise in */
.header details.mega-menu[open] > .mega-menu__content .mega-menu__list > li {
  animation: tpmmRow .55s cubic-bezier(.22, .7, .28, 1) both;
}
@keyframes tpmmRow {
  from { opacity: 0; transform: translateY(1.1rem); }
  to   { opacity: 1; transform: none; }
}
.header details.mega-menu[open] .mega-menu__list > li:nth-child(1) { animation-delay: .10s; }
.header details.mega-menu[open] .mega-menu__list > li:nth-child(2) { animation-delay: .15s; }
.header details.mega-menu[open] .mega-menu__list > li:nth-child(3) { animation-delay: .20s; }
.header details.mega-menu[open] .mega-menu__list > li:nth-child(4) { animation-delay: .25s; }
.header details.mega-menu[open] .mega-menu__list > li:nth-child(5) { animation-delay: .30s; }
.header details.mega-menu[open] .mega-menu__list > li:nth-child(6) { animation-delay: .35s; }
.header details.mega-menu[open] .mega-menu__list > li:nth-child(7) { animation-delay: .40s; }

/* ---------- top level ---------- */
.header .header__inline-menu .header__menu-item { position: relative; padding: 1.2rem 1.6rem !important; }
.header .header__inline-menu .header__menu-item span { text-decoration: none !important; }
.header .header__inline-menu .header__menu-item::after {
  content: ""; position: absolute; left: 1.6rem; right: 1.6rem; bottom: .4rem;
  height: 1px; background: rgb(37, 70, 32);
  transform: scaleX(0); transform-origin: 50% 50%;
  transition: transform .5s cubic-bezier(.22, .7, .28, 1);
}
.header .header__inline-menu .header__menu-item:hover::after,
.header .header__inline-menu details[open] > .header__menu-item::after { transform: scaleX(1); }
.header .header__inline-menu .icon-caret {
  height: .6rem;
  transition: transform .45s cubic-bezier(.22, .7, .28, 1);
}
.header .header__inline-menu details[open] > .header__menu-item .icon-caret { transform: rotate(180deg); }

@media screen and (max-width: 989px) {
  .header details.mega-menu .mega-menu__list > li { flex: 0 0 22rem !important; width: 22rem !important; max-width: 22rem !important; }
}
@media (hover: none) {
  .header details.mega-menu .mega-menu__list a.mega-menu__link:hover { padding-left: .2rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  .header .header__inline-menu .header__menu-item::after,
  .header .header__inline-menu .icon-caret,
  .header details.mega-menu .mega-menu__list a.mega-menu__link,
  .header details.mega-menu .mega-menu__list a.mega-menu__link::before,
  .header details.mega-menu .mega-menu__list a.mega-menu__link::after { transition: none !important; }
  .header details.mega-menu > .mega-menu__content > .mega-menu__list,
  .header details.mega-menu[open] .mega-menu__list > li { animation: none !important; }
}
box-shadow:
    0 1px 2px rgba(37, 70, 32, .05),
    0 12px 24px rgba(37, 70, 32, .08),
    0 36px 70px rgba(37, 70, 32, .16) !important;

/* === BEGIN BLOG TOPIC PILL VISIBILITY FIX === */
.tpxa .tpxa-footer-panel a.tpx-chip,
.tpxa .tpxa-footer-panel a.tpx-chip:visited {
  color: rgb(var(--fg));
  background: rgba(var(--fg), .13);
  border-color: rgba(var(--fg), .42);
  box-shadow:
    0 1px 0 rgba(var(--fg), .12) inset,
    0 8px 18px rgba(0, 0, 0, .08);
}
.tpxa .tpxa-footer-panel a.tpx-chip:hover,
.tpxa .tpxa-footer-panel a.tpx-chip:focus-visible,
.tpxa .tpxa-footer-panel a.tpx-chip:active {
  color: rgb(var(--bg));
  background: rgb(var(--fg));
  border-color: rgb(var(--fg));
}
/* === END BLOG TOPIC PILL VISIBILITY FIX === */

/* === BEGIN THE PRESSOIR SUBSCRIPTION COLLECTION (.tpsub) === */
.tpsub {
  --sub-green: 37 70 32;
  --sub-cream: 242 239 221;
  background: rgb(var(--sub-cream));
  color: rgb(var(--sub-green));
}

.tpsub-banner {
  padding: clamp(1.6rem, 3vw, 3.2rem) 0 0;
}

.tpsub-banner > .page-width {
  max-width: 124rem;
}

.tpx.tpsub .tpsub-hero {
  margin: 0;
  min-height: min(76rem, calc(100svh - 14rem));
  display: flex;
  align-items: center;
  padding: clamp(5.4rem, 9vw, 9rem) clamp(2rem, 6vw, 6rem);
  box-shadow: 0 30px 70px rgba(37, 70, 32, .2);
}

.tpsub-hero .tpx-inner {
  max-width: 96rem;
}

.tpx.tpsub .tpsub-hero h1 {
  max-width: 78rem;
  margin-bottom: clamp(1.6rem, 2.4vw, 2.4rem);
  font-size: clamp(calc(var(--hs) * 3.8rem), 6vw, calc(var(--hs) * 7rem));
  line-height: 1.02;
  color: rgb(var(--fg));
}

.tpsub-lede {
  max-width: 66rem;
  margin: 0 auto 1.2rem !important;
  font-size: clamp(2rem, 2.2vw, 2.8rem);
  line-height: 1.42 !important;
  color: rgb(var(--fg));
}

.tpsub-intro {
  max-width: 62rem;
  margin: 0 auto clamp(2.8rem, 4vw, 4rem) !important;
  font-size: clamp(1.55rem, 1.45vw, 1.8rem);
  line-height: 1.65 !important;
  color: rgba(var(--fg), .78);
}

.tpsub-stats {
  max-width: 88rem;
  margin-bottom: clamp(2.6rem, 4vw, 3.8rem);
}

.tpsub-stats .tpx-cell {
  min-width: 0;
}

.tpsub-stats .tpx-v {
  font-size: clamp(1.9rem, 2vw, 2.5rem);
}

.tpsub-stats .tpx-v small {
  max-width: 14rem;
  margin-left: auto;
  margin-right: auto;
}

.tpsub-hero .tpx-btns {
  margin-bottom: 0;
}

.tpsub-products {
  padding-top: clamp(4.8rem, 7vw, 7.6rem) !important;
  background: rgb(var(--sub-cream)) !important;
}

.tpsub-guide,
.tpsub-choice-heading,
.tpsub-levels {
  scroll-margin-top: 11rem;
}

.tpsub-guide {
  max-width: 112rem;
  padding-bottom: clamp(6rem, 9vw, 9.6rem);
}

.tpsub-guide h2,
.tpsub-choice-heading h2,
.tpsub-levels h2 {
  max-width: 76rem;
  margin-left: auto;
  margin-right: auto;
  color: rgb(var(--sub-green));
}

.tpsub-guide-lede,
.tpsub-choice-heading > p:last-child,
.tpsub-levels-intro {
  max-width: 64rem;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: clamp(1.55rem, 1.4vw, 1.8rem);
  line-height: 1.65 !important;
  color: rgba(var(--sub-green), .76);
}

.tpsub-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 2rem);
  max-width: 108rem;
  margin: clamp(3.4rem, 5vw, 5rem) auto 0 !important;
}

.tpsub-steps > li {
  min-width: 0;
  padding: clamp(2.4rem, 3.2vw, 3.4rem) clamp(1.8rem, 2.6vw, 2.8rem);
  border: 1px solid rgba(var(--sub-green), .18);
  border-radius: 18px;
  background: rgba(255, 255, 255, .28);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .65) inset,
    0 18px 38px rgba(var(--sub-green), .07);
}

.tpsub-step-number {
  display: block;
  margin-bottom: 1.8rem;
  font-family: var(--serif);
  font-size: clamp(2.6rem, 3vw, 3.8rem);
  line-height: 1;
  color: rgba(var(--sub-green), .32);
}

.tpsub-steps h3 {
  margin: 0 0 .9rem;
  font-size: clamp(1.8rem, 1.7vw, 2.2rem);
  color: rgb(var(--sub-green));
}

.tpsub-steps p {
  margin: 0;
  font-size: clamp(1.4rem, 1.15vw, 1.6rem);
  color: rgba(var(--sub-green), .72);
}

.tpsub-products .tpsub-choices {
  overflow: visible;
}

.tpsub-choice-heading {
  max-width: 94rem;
  padding-bottom: clamp(3.4rem, 5vw, 5rem);
}

.tpsub-products .collection.page-width {
  max-width: 124rem;
}

.tpsub-products .tpsub-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(1.6rem, 2.2vw, 2.6rem) !important;
  max-width: 116rem;
  margin: 0 auto !important;
  padding: 0 !important;
}

.tpsub-products .tpsub-card.grid__item {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 1.2rem;
  border: 1px solid rgba(var(--sub-green), .2);
  border-radius: 22px;
  background: rgba(255, 255, 255, .34);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .7) inset,
    0 24px 52px rgba(var(--sub-green), .09);
  transition: transform .5s var(--ease), border-color .5s ease, box-shadow .5s ease;
}

.tpsub-products .tpsub-card.grid__item:hover {
  transform: translateY(-5px);
  border-color: rgba(var(--sub-green), .38);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .75) inset,
    0 30px 64px rgba(var(--sub-green), .14);
}

.tpsub-card-intro {
  padding: clamp(1.6rem, 2.3vw, 2.2rem) 1.2rem 1.5rem;
  text-align: center;
}

.tpsub-choice-word {
  display: block;
  margin-bottom: .6rem;
  font-family: var(--serif);
  font-size: clamp(2.8rem, 3.4vw, 4rem);
  line-height: 1;
  color: rgb(var(--sub-green));
}

.tpsub-card-intro p {
  margin: 0 !important;
  font-family: var(--sans);
  font-size: clamp(1.1rem, .95vw, 1.25rem);
  line-height: 1.45 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(var(--sub-green), .64);
}

.tpsub-card .card-wrapper {
  flex: 1 1 auto;
  width: 100%;
}

.tpsub-card .card,
.tpsub-card .card__inner {
  height: 100%;
}

.tpsub-card .card__inner {
  overflow: hidden;
  border: 0;
  border-radius: 15px;
  background: rgba(var(--sub-green), .05);
}

.tpsub-card .card__media {
  margin: 0 !important;
  width: 100% !important;
}

.tpsub-card .card__content {
  text-align: center;
}

.tpsub-card .card__information {
  padding: 2.2rem 1.4rem 1.4rem;
}

.tpsub-card .card__heading {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 1.55vw, 2.15rem);
  line-height: 1.28;
  color: rgb(var(--sub-green));
}

.tpsub-card .card__heading a {
  text-decoration: none !important;
}

.tpsub-card .card__heading a::after {
  border-radius: 15px;
}

.tpsub-card .price {
  margin-top: 1rem;
  font-family: var(--sans);
  font-size: 1.25rem;
  letter-spacing: .08em;
  color: rgba(var(--sub-green), .66);
}

.tpsub-card-action {
  padding: .4rem 1.2rem 1.2rem;
  margin-top: auto;
}

.tpsub-card-action p {
  margin: 0 0 1.2rem !important;
  font-family: var(--sans);
  font-size: 1.25rem;
  line-height: 1.45 !important;
  color: rgba(var(--sub-green), .7);
}

.tpsub-card-action p strong {
  color: rgb(var(--sub-green));
}

.tpsub a.tpsub-card-button {
  width: 100%;
  min-height: 5.2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 1.3rem 1.8rem;
  border: 1px solid rgb(var(--sub-green));
  border-radius: 999px;
  background: rgb(var(--sub-green));
  color: rgb(var(--sub-cream));
  font-family: var(--sans);
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .4s var(--ease), color .4s var(--ease), gap .4s var(--ease);
}

.tpsub a.tpsub-card-button:hover,
.tpsub a.tpsub-card-button:focus-visible {
  gap: 1.5rem;
  background: transparent;
  color: rgb(var(--sub-green));
}

.tpsub a.tpsub-card-button:focus-visible {
  outline: 2px solid rgb(var(--sub-green));
  outline-offset: 3px;
}

.tpsub-levels {
  max-width: 112rem;
  margin: clamp(6rem, 9vw, 10rem) auto 0;
  padding: clamp(3.6rem, 5vw, 5.6rem) clamp(1.8rem, 4vw, 4rem);
  border: 1px solid rgba(var(--sub-green), .18);
  border-radius: 22px;
  background:
    radial-gradient(circle at 50% 0%, rgba(150, 196, 120, .13), transparent 48%),
    rgba(255, 255, 255, .28);
  box-shadow: 0 24px 52px rgba(var(--sub-green), .08);
}

.tpsub-level-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 100rem;
  margin: clamp(3rem, 4vw, 4rem) auto 0 !important;
  border: 1px solid rgba(var(--sub-green), .18);
  border-radius: 16px;
  overflow: hidden;
  background: rgba(var(--sub-green), .035);
}

.tpsub-level-grid > li {
  min-width: 0;
  padding: clamp(1.8rem, 2.6vw, 2.6rem) 1.4rem;
  border-right: 1px solid rgba(var(--sub-green), .15);
}

.tpsub-level-grid > li:last-child {
  border-right: 0;
}

.tpsub-level-grid span,
.tpsub-level-grid strong {
  display: block;
}

.tpsub-level-grid span {
  min-height: 3.6rem;
  margin-bottom: .7rem;
  font-family: var(--sans);
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(var(--sub-green), .62);
}

.tpsub-level-grid strong {
  font-family: var(--serif);
  font-size: clamp(1.55rem, 1.45vw, 1.85rem);
  font-weight: 400;
  line-height: 1.35;
  color: rgb(var(--sub-green));
}

@media screen and (max-width: 989px) {
  .tpsub-products .tpsub-grid {
    grid-template-columns: 1fr !important;
    max-width: 72rem;
  }

  .tpsub-products .tpsub-card.grid__item {
    max-width: 72rem !important;
    margin-left: auto;
    margin-right: auto;
  }

  .tpsub-steps {
    grid-template-columns: 1fr;
    max-width: 72rem;
  }

  .tpsub-level-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tpsub-level-grid > li:nth-child(2) {
    border-right: 0;
  }

  .tpsub-level-grid > li:nth-child(-n+2) {
    border-bottom: 1px solid rgba(var(--sub-green), .15);
  }
}

@media screen and (max-width: 749px) {
  .tpsub-banner {
    padding-top: 1.2rem;
  }

  .tpsub-banner > .page-width {
    padding-left: 1.2rem;
    padding-right: 1.2rem;
  }

  .tpx.tpsub .tpsub-hero {
    min-height: 0;
    padding: 5.6rem 1.8rem 4.8rem;
  }

  .tpx.tpsub .tpsub-hero h1 {
    font-size: clamp(3.7rem, 13vw, 5.2rem);
  }

  .tpsub-lede {
    font-size: 2rem;
  }

  .tpsub-stats {
    grid-template-columns: 1fr 1fr;
  }

  .tpsub-stats .tpx-cell:nth-child(odd) {
    border-right: 1px solid rgba(var(--fg), .12);
  }

  .tpsub-stats .tpx-cell:nth-child(-n+2) {
    border-bottom: 1px solid rgba(var(--fg), .12);
  }

  .tpsub-hero .tpx-btns {
    width: 100%;
  }

  .tpsub-hero .tpx-btns .tpx-btn {
    width: 100%;
  }

  .tpsub-products {
    padding-top: 5.2rem !important;
  }

  .tpsub-guide,
  .tpsub-choice-heading {
    padding-left: 1.6rem;
    padding-right: 1.6rem;
  }

  .tpsub-products .collection.page-width {
    padding-left: 1.2rem;
    padding-right: 1.2rem;
  }

  .tpsub-products .tpsub-card.grid__item {
    padding: .9rem;
    border-radius: 18px;
  }

  .tpsub-levels {
    margin-top: 6rem;
    padding: 3.4rem 1.2rem;
    border-radius: 18px;
  }

  .tpsub-level-grid {
    grid-template-columns: 1fr;
  }

  .tpsub-level-grid > li {
    border-right: 0;
    border-bottom: 1px solid rgba(var(--sub-green), .15);
  }

  .tpsub-level-grid > li:last-child {
    border-bottom: 0;
  }
}

@media (hover: none) {
  .tpsub-products .tpsub-card.grid__item:hover {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tpsub-products .tpsub-card.grid__item,
  .tpsub a.tpsub-card-button {
    transition: none;
  }
}
/* === END THE PRESSOIR SUBSCRIPTION COLLECTION (.tpsub) === */
