/* Olive & Oscar's — ink on paper, v2 (Ink & Paper concept + Graeme's notes 15 Sep 2026).
   v0.7 (Sarah, 25 Sep): back to the original O&O palette from the old site: jade blue, deep teal, black buttons, cool white.
   Token names kept so nothing else moves: --moss is now the primary button (black), --forest the deep teal, --sand the light jade. */
:root{
  --paper:#f5f1ea; --paper-2:#ebe4d8; --paper-3:#e0d7c7;
  --ink:#161514; --ink-2:#403c38; --ink-3:#6d6660;
  --forest:#2b434d; --forest-2:#304a55; --sea:#2f4f5a;
  --moss:#6a9cb0; --moss-deep:#2b5160; --on-moss:#161514;
  --jade:#6a9cb0; --jade-light:#7eb8cf;
  --slate:#3f6b7b; --slate-deep:#2b5160; --slate-tint:#d6e2e6;
  --sand:#b3dccf; --sun:#e9c777;
  --line:rgba(22,21,20,.16);
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Source Sans Pro",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1180px; --gutter:clamp(16px,5vw,48px);
  --r:18px; --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:1rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.6 var(--sans);font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;overflow-x:hidden;
  background-image:radial-gradient(ellipse at 20% -10%,rgba(63,107,123,.10),transparent 55%),radial-gradient(ellipse at 100% 0%,rgba(216,196,163,.28),transparent 45%);background-repeat:no-repeat}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--slate-deep);text-decoration-color:rgba(63,107,123,.4);text-underline-offset:.16em;transition:color .2s}
a:hover{color:var(--ink)}
h1,h2,h3,h4{font-family:var(--serif);font-optical-sizing:auto;font-weight:500;line-height:1.08;letter-spacing:-.015em;margin:0 0 .5em;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2.5rem,5.4vw,4.5rem);line-height:1;letter-spacing:-.025em}
h2{font-size:clamp(1.85rem,3.2vw,2.75rem)}
h3{font-size:clamp(1.3rem,1.9vw,1.6rem);font-weight:600}
p{margin:0 0 1.1em}
/* Emphasis in headings: upright, coloured, with the ink underline (Graeme: less italic, clarity and calm). */
h1 em,h2 em,h3 em,.hero__title em,.cta-band__t em,em{font-style:normal;font-weight:500;color:var(--slate-deep);position:relative;white-space:nowrap}
/* Only heading emphasis stays on one line; a whole italic sentence in body text must wrap (it ran off phones) */
p em,li em{white-space:normal}
h1 em::after,h2 em::after,.cta-band__t em::after{content:"";position:absolute;left:-.04em;right:-.04em;bottom:-.06em;height:.3em;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'><path d='M3 16c40-8 78-9 118-6 30 2 60 6 92 3 30-3 55-8 84-9' fill='none' stroke='%233f6b7b' stroke-width='3.2' stroke-linecap='round' opacity='.75'/><path d='M8 20c50-6 96-7 140-4 34 2 68 4 104 1' fill='none' stroke='%233f6b7b' stroke-width='2' stroke-linecap='round' opacity='.45'/></svg>") no-repeat center/100% 100%;pointer-events:none;z-index:-1}
.cta-band__t em::after,.band--forest h2 em::after{filter:brightness(0) invert(1);opacity:.7}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.sr,.skip:not(:focus){position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;top:8px;left:8px;z-index:100;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:8px}
.kicker{font:600 .82rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--slate-deep);margin:0 0 1.1rem}
.kicker a{text-decoration:none}

/* Buttons. Primary is black, as on the original O&O site; hover goes slate. */
.btn{display:inline-flex;align-items:center;gap:.5em;font:600 1rem/1 var(--sans);letter-spacing:.01em;padding:.95em 1.5em;border-radius:999px;border:1.5px solid transparent;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),background .2s,color .2s,box-shadow .25s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--moss,.btn--ink,.btn--slate{background:var(--moss);color:var(--on-moss);border-color:var(--moss);box-shadow:0 10px 24px -14px rgba(22,21,20,.55)}
.btn--moss:hover,.btn--ink:hover,.btn--slate:hover{background:var(--moss-deep);color:#fff;border-color:var(--moss-deep)}
.btn--forest{background:var(--forest);color:var(--paper);border-color:var(--forest)}
.btn--forest:hover{background:var(--forest-2);color:var(--paper)}
.btn--paper{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn--paper:hover{background:#fff;color:var(--ink)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.wp-block-button__link{display:inline-flex;align-items:center;gap:.5em;font:600 1rem/1 var(--sans);letter-spacing:.01em;padding:.95em 1.5em;border-radius:999px;border:1.5px solid var(--moss);background:var(--moss);color:var(--on-moss);text-decoration:none;transition:transform .25s var(--ease),background .2s}
.wp-block-button__link:hover{transform:translateY(-2px);background:var(--moss-deep);border-color:var(--moss-deep);color:#fff}
.is-style-outline .wp-block-button__link,.btn--ghost .wp-block-button__link{background:transparent;color:var(--ink);border-color:var(--ink)}
.is-style-outline .wp-block-button__link:hover,.btn--ghost .wp-block-button__link:hover{background:var(--ink);color:var(--paper)}
.link-arrow{font-weight:600;text-decoration:none;margin-left:1rem;white-space:nowrap}
.link-arrow::after{content:" →";transition:transform .2s;display:inline-block}
.link-arrow:hover::after{transform:translateX(4px)}

/* Header */
.site-head{padding-block:1rem .5rem;position:relative;z-index:20}
.site-head__in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand img{width:clamp(96px,10vw,150px);height:auto;transition:transform .35s var(--ease)}
.brand:hover img{transform:rotate(-2deg) scale(1.03)}
.nav{display:flex;align-items:center;gap:1.75rem}
.nav__list{list-style:none;margin:0;padding:0;display:flex;gap:clamp(.9rem,2vw,1.75rem)}
.nav__list a{font:600 .95rem/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--ink-2);padding:.5rem 0;position:relative}
.nav__list a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--slate);transition:right .3s var(--ease)}
.nav__list a:hover::after,.nav__list .current-menu-item a::after,.nav__list .current_page_item a::after{right:0}
.nav__list a:hover{color:var(--ink)}
.nav-toggle{display:none;background:none;border:1.5px solid var(--ink);border-radius:999px;width:48px;height:48px;padding:0;position:relative;cursor:pointer}
.nav-toggle span:not(.sr){position:absolute;left:14px;right:14px;height:2px;background:var(--ink);top:19px;transition:transform .3s var(--ease),top .3s var(--ease)}
.nav-toggle span:nth-child(2){top:27px}
.nav-toggle[aria-expanded=true] span:nth-child(1){top:23px;transform:rotate(45deg)}
.nav-toggle[aria-expanded=true] span:nth-child(2){top:23px;transform:rotate(-45deg)}
@media (max-width:899px){
  .nav-toggle{display:block}
  .nav{position:absolute;left:var(--gutter);right:var(--gutter);top:calc(100% + .25rem);flex-direction:column;align-items:flex-start;gap:1rem;background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--r);padding:1.25rem;box-shadow:0 24px 48px -24px rgba(22,21,20,.5);transform:translateY(-8px);opacity:0;visibility:hidden;transition:.25s var(--ease)}
  .nav.is-open{transform:none;opacity:1;visibility:visible}
  .nav__list{flex-direction:column;gap:.25rem;width:100%}
  .nav__list a{display:block;padding:.6rem 0;font-size:1.05rem}
  .nav__cta{width:100%;justify-content:center}
}

/* Hero (inner pages: split) */
.hero{padding-block:clamp(1.5rem,4vw,3.5rem) clamp(2rem,5vw,4rem)}
.hero__grid{display:grid;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.has-img .hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.hero__text{max-width:36rem}
.hero--big .hero__title{font-size:clamp(2.7rem,6vw,5.2rem)}
.hero__lede{font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.5;color:var(--ink-2);max-width:32rem;margin-top:1.25rem}
.hero__cta{margin-top:1.75rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 0}
.hero__media{margin:0;position:relative;isolation:isolate}
.hero__media img{width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:var(--r) var(--r) var(--r) 4.5rem;position:relative;z-index:1}
.hero__media::after{content:"";position:absolute;inset:0;border:1.5px solid var(--ink);border-radius:var(--r) var(--r) var(--r) 4.5rem;transform:translate(14px,14px) rotate(.6deg);z-index:0;opacity:.85}
.hero__media::before{content:"";position:absolute;inset:-6%;background:radial-gradient(closest-side,rgba(63,107,123,.18),transparent);z-index:0;filter:blur(20px)}
.no-img .hero__text{max-width:44rem}
.hero--post .hero__title{font-size:clamp(2.1rem,4.2vw,3.4rem)}
@media (max-width:899px){.has-img .hero__grid{grid-template-columns:1fr}.hero__media{order:-1}.hero__media img{aspect-ratio:4/3}}

/* Ticker: straight, deep teal, upright type (Graeme: straight not slanted, dark green not black) */
.ticker{background:var(--forest);color:var(--paper);overflow:hidden;padding-block:.9rem;margin-block:0 clamp(2.5rem,6vw,4.5rem)}
.ticker__track{display:flex;width:max-content;animation:tick 40s linear infinite}
.ticker__track>div{display:flex;align-items:center;gap:1.6rem;padding-right:1.6rem;font:500 clamp(1.1rem,1.9vw,1.4rem)/1 var(--serif);letter-spacing:.01em;white-space:nowrap}
.ticker i{font-style:normal;color:var(--sand);font-size:.8em}
@keyframes tick{to{transform:translateX(-50%)}}
.ticker:hover .ticker__track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.ticker__track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}.ticker__track>div+div{display:none}}

/* Prose / blocks */
.prose{padding-block:0 clamp(2.5rem,6vw,5rem)}
.prose>*:not(.band):not(.alignfull):not(.alignwide):not(.wp-block-columns):not(.wp-block-media-text):not(.enquiry):not(.quotes):not(.steps):not(.ethos):not(.wp-block-group):not(.faq){max-width:66ch}
.prose>h2,.prose>h3{margin-top:2.2em}
.prose>h2:first-child{margin-top:0}
.prose--narrow>*{max-width:66ch;margin-inline:auto}
.prose ul:not([class]),.prose ol:not([class]){padding-left:1.25em}
.prose ul:not([class]) li{list-style:none;position:relative;padding-left:.35em;margin-bottom:.4em}
.prose ul:not([class]) li::before{content:"";position:absolute;left:-1.1em;top:.62em;width:.5em;height:.5em;border:1.5px solid var(--slate-deep);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.prose figure{margin:2rem 0}
.prose img{border-radius:var(--r)}
.prose blockquote{margin:2rem 0;padding:0 0 0 1.25rem;border-left:3px solid var(--slate);font-family:var(--serif);font-size:1.3rem;color:var(--ink-2)}
.prose blockquote cite{display:block;margin-top:.5rem;font:600 .8rem/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;font-style:normal;color:var(--slate-deep)}
.wp-block-image img{border-radius:var(--r)}
.wp-block-image.is-style-sketch img,.sketch img{border-radius:var(--r) var(--r) var(--r) 3rem;outline:1.5px solid var(--ink);outline-offset:10px}
.wp-block-columns{margin:2.5rem 0}
.wp-block-column>h3:first-child{margin-top:0}
.wp-block-media-text{display:grid;gap:clamp(1.5rem,4vw,3rem);align-items:center;margin:3rem 0}
@media (min-width:800px){.wp-block-media-text{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media{order:2}}
.wp-block-media-text__media img{border-radius:var(--r) var(--r) var(--r) 3rem;aspect-ratio:4/3;object-fit:cover;width:100%}
.wp-block-media-text__content>h2:first-child{margin-top:0}
.band,.wp-block-group.band{margin-inline:calc(50% - 50vw);padding:clamp(2.5rem,6vw,5rem) var(--gutter);margin-block:clamp(2.5rem,6vw,4.5rem);background:var(--paper-2)}
.band--slate,.wp-block-group.band--slate,.band--forest,.wp-block-group.band--forest{background:var(--forest-2);color:var(--paper)}
.band--slate h2,.band--slate h3,.band--slate a,.band--forest h2,.band--forest h3,.band--forest a{color:var(--paper)}
.band--slate h2 em,.band--forest h2 em{color:var(--sand)}
.band--slate .kicker,.band--forest .kicker{color:var(--sand)}
.band--ink,.wp-block-group.band--ink{background:var(--forest);color:var(--paper)}
.band--ink h2,.band--ink h3{color:var(--paper)}
.band>*{max-width:var(--wrap);margin-inline:auto}
.band>p,.band>h2,.band>h3,.band>ul{max-width:min(66ch,var(--wrap))}
.band .wp-block-columns{max-width:var(--wrap);margin-inline:auto}
.lede{font-size:1.3rem;line-height:1.5;color:var(--ink-2)}
.band--slate .lede,.band--forest .lede{color:var(--paper)}
/* Timeline (day structure) */
.day{list-style:none;padding:0;margin:1.5rem 0;border-left:1.5px solid var(--ink);max-width:40rem;display:grid;grid-template-columns:max-content 1fr;column-gap:1rem}
/* Times share one column across the whole list, so the descriptions line up (Sarah, 25 Sep) */
.day li{position:relative;padding:0 0 1.1rem 1.75rem;display:grid;grid-column:1/-1;grid-template-columns:8.5rem 1fr;column-gap:1rem;align-items:baseline}
@supports (grid-template-columns:subgrid){.day li{grid-template-columns:subgrid}}
.day li::before{content:"";position:absolute;left:-7px;top:.45em;width:12px;height:12px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink)}
.day li:first-child::before,.day li:last-child::before{background:var(--jade)}
.day time,.day b,.day strong{font-family:var(--serif);font-weight:600;font-size:1.15rem;color:var(--slate-deep);white-space:nowrap;min-width:5.5rem}
.day span{color:var(--ink-2)}
/* Steps (columns block with className steps) */
.wp-block-columns.steps{margin:2rem 0}
.steps > .wp-block-column{padding:1.5rem;border:1.5px solid var(--ink);border-radius:var(--r) var(--r) var(--r) 3rem;background:rgba(255,255,255,.4);position:relative}
.steps > .wp-block-column::after{content:"";position:absolute;inset:0;border:1.5px solid var(--ink);border-radius:inherit;transform:translate(8px,8px) rotate(.4deg);z-index:-1;opacity:.5;pointer-events:none}
.steps .num{font:500 3rem/1 var(--serif);color:var(--slate);margin:0 0 .5rem}
.steps h3{font-size:1.25rem;margin:0 0 .4rem}
.steps p:last-child{margin:0}
/* Phones: where a section has both the three steps and the full day list, show only the list (Sarah, 25 Sep: fewer repeats) */
@media (max-width:699px){.band:has(.day) .wp-block-columns.steps{display:none}}
/* FAQ (core/details) */
.faq{margin:2rem 0;max-width:66ch}
.faq h2{margin-bottom:1rem}
details.wp-block-details,.faq details{border-top:1.5px solid var(--line);padding:0}
.faq details:last-of-type,.wp-block-details:last-of-type{border-bottom:1.5px solid var(--line)}
details.wp-block-details summary{list-style:none;cursor:pointer;padding:1.1rem 3rem 1.1rem 0;font:600 1.2rem/1.3 var(--serif);position:relative}
details.wp-block-details summary::-webkit-details-marker{display:none}
details.wp-block-details summary::after{content:"";position:absolute;right:.4rem;top:50%;width:14px;height:14px;transform:translateY(-50%);background:linear-gradient(currentColor,currentColor) center/100% 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 100% no-repeat;transition:transform .3s var(--ease)}
details.wp-block-details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
details.wp-block-details>*:not(summary){padding-bottom:1.1rem;color:var(--ink-2);max-width:60ch}
/* Quotes (upright, calm) */
.quotes{margin:clamp(2.5rem,6vw,4.5rem) 0}
.quotes__kicker{font:600 .82rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--slate-deep);margin:0 0 .6rem}
.quotes__list{list-style:none;padding:0;margin:0;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}
.quote{display:flex}
.quote__card{margin:0;display:flex;flex-direction:column;width:100%;padding:1.5rem 1.5rem 1.25rem;border:1.5px solid var(--ink);border-radius:var(--r) var(--r) var(--r) 2.5rem;background:rgba(255,255,255,.55);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.quote__card:hover{transform:translateY(-3px);box-shadow:0 18px 32px -24px rgba(22,21,20,.55)}
.quote__stars{display:flex;gap:.15rem;margin-bottom:.9rem}
.quote__stars svg{width:1rem;height:1rem;fill:var(--slate-deep)}
.quote__text{margin:0;font:400 1.12rem/1.5 var(--serif);color:var(--ink)}
.quote__text p{margin:0}
.js .quote--long .quote__text{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.js .quote--long .quote__text.is-open{display:block;overflow:visible}
.quote__more{display:none}
.js .quote--long .quote__more{display:inline-flex}
.quote__more{align-self:flex-start;align-items:center;gap:.45rem;margin-top:.85rem;min-height:44px;padding:.55rem .95rem;border:1.5px solid var(--slate-deep);border-radius:999px;background:none;cursor:pointer;font:600 .78rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--slate-deep);transition:background .2s var(--ease),color .2s var(--ease)}
.quote__more svg{width:.7rem;height:.7rem;transition:transform .2s var(--ease)}
.quote__more:hover,.quote__more:focus-visible{background:var(--slate-deep);color:#fff}
.quote__more[aria-expanded="true"] svg{transform:rotate(180deg)}
.quote__card figcaption{margin-top:auto;padding-top:1.1rem}
.quote__who{display:flex;align-items:center;gap:.7rem}
.quote__badge{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50% 50% 50% .6rem;background:var(--slate);color:#fff;font:600 .95rem/1 var(--sans)}
.quote__names{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.quote__names cite{font:600 .85rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;font-style:normal;color:var(--ink)}
.quote__dog{font:400 .85rem/1.2 var(--sans);color:var(--ink-2);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.quote__place{position:relative;padding-left:.6rem;color:var(--slate-deep)}
.quote__place::before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:currentColor;transform:translateY(-50%)}
@media (prefers-reduced-motion:reduce){.quote__card{transition:none}.quote__card:hover{transform:none}}
/* Phones: reviews sit in one swipeable row instead of a long stack (Sarah, 25 Sep). The next card peeks in so the swipe is obvious. */
@media (max-width:699px){
  .quotes__list{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gutter) * -1);padding:0 var(--gutter) .75rem;scroll-padding-inline:var(--gutter);align-items:flex-start;scrollbar-width:thin}
  .quote{flex:0 0 84%;scroll-snap-align:start}
  .quote__card:hover{transform:none}
}
/* Google reviews */
.greviews-section:not(:has(.greviews)){display:none}
.greviews__head{margin-bottom:1.4rem}
.greviews__score{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.6rem 0 0;font:400 .95rem/1.3 var(--sans);color:var(--ink-2)}
.greviews__stars{display:flex;gap:.15rem}
.greviews__stars svg{width:1.05rem;height:1.05rem;fill:var(--slate-deep)}
.greviews__score strong{font-size:1.05rem;color:var(--ink)}
.quote__badge--photo{padding:0;object-fit:cover;border-radius:50% 50% 50% .6rem}
.greviews__link{margin:1.25rem 0 0}
.greviews__link a{font:600 .8rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--slate-deep)}
/* Enquiry */
.enquiry{margin:clamp(2.5rem,6vw,4.5rem) 0;display:grid;gap:clamp(1.5rem,4vw,3rem);padding:clamp(1.5rem,4vw,3rem);border:1.5px solid var(--ink);border-radius:var(--r) var(--r) var(--r) 4rem;background:linear-gradient(135deg,rgba(255,255,255,.55),rgba(214,226,230,.45))}
@media (min-width:900px){.enquiry{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}}
.enquiry__title{margin-top:0}
.enquiry__form{display:grid;gap:1rem 1.25rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.field{display:flex;flex-direction:column;gap:.35rem;border:0;padding:0;margin:0;min-width:0}
.field--wide{grid-column:1/-1}
.field label,.field legend{font:600 .85rem/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.field input,.field textarea{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:.8rem .9rem;width:100%;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--jade);box-shadow:0 0 0 3px rgba(106,156,176,.3)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0}
.chip span{display:inline-block;padding:.5rem 1rem;border:1.5px solid var(--ink);border-radius:999px;font-weight:600;cursor:pointer;transition:.2s}
.chip input:checked+span{background:var(--moss);border-color:var(--moss);color:var(--on-moss)}
.chip input:focus-visible+span{box-shadow:0 0 0 3px rgba(106,156,176,.45)}
.enquiry__actions{flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}
.enquiry__actions small{color:var(--ink-3);max-width:28rem}
.hp{position:absolute;left:-9999px}
.notice{padding:.9rem 1rem;border-radius:10px;font-weight:600}
.notice--ok{background:#e4efe0;color:#2f4a24}
.notice--err{background:#f5e1dc;color:#6b2a1e}
@media (max-width:560px){.enquiry__form{grid-template-columns:1fr}}
/* Hours / address */
.hours{margin:1.5rem 0;max-width:24rem}
.hours div{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--line)}
.hours dt{font-weight:600}.hours dd{margin:0;color:var(--ink-2)}
.vcard{font-style:normal;font-size:1.15rem}
/* Cards */
.cards{display:grid;gap:2rem;margin:1rem 0 3rem}
@media (min-width:700px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.card__media img{aspect-ratio:1;object-fit:cover;width:100%;border-radius:var(--r) var(--r) var(--r) 3rem;transition:transform .4s var(--ease)}
.card:hover .card__media img{transform:scale(1.02) rotate(-.5deg)}
.card__body{padding-top:1rem}
.card__meta{font:600 .78rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--slate-deep);margin-bottom:.5rem}
.card__title{font-size:1.5rem;margin-bottom:.4rem}
.card__title a{color:var(--ink);text-decoration:none}
.card__title a:hover{color:var(--slate-deep)}
.card__x{color:var(--ink-2);margin:0}
.pagination{margin:2rem 0}
.pagination .nav-links{display:flex;gap:.5rem;flex-wrap:wrap}
.pagination .page-numbers{padding:.5rem .9rem;border:1.5px solid var(--line);border-radius:999px;text-decoration:none;font-weight:600}
.pagination .current{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.post__media{margin:0 auto 2.5rem}
.post__media img{border-radius:var(--r) var(--r) var(--r) 4rem;width:100%;aspect-ratio:16/9;object-fit:cover}
.post__foot{padding-bottom:3rem}
.post__by{color:var(--ink-3)}
.post__nav{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-weight:600}
/* CTA band (deep teal) */
.cta-band{background:var(--forest-2);color:var(--paper);padding-block:clamp(3rem,7vw,5.5rem);position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;right:-10%;top:-40%;width:50%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(126,184,207,.2),transparent)}
.cta-band__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 3rem;position:relative}
.cta-band__t{font:400 clamp(1.9rem,4vw,3.2rem)/1.05 var(--serif);margin:0;letter-spacing:-.02em;max-width:22ch;color:var(--paper)}
.cta-band__t em{color:var(--sand)}
.cta-band__b{margin:0;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.cta-band__tel{color:var(--paper);font-weight:600;text-decoration-color:rgba(245,241,234,.4)}
/* Footer */
.site-foot{background:var(--paper-2);border-top:1.5px solid var(--ink);padding-block:clamp(2.5rem,6vw,4.5rem) 1.5rem;font-size:1rem}
.site-foot__grid{display:grid;gap:2rem}
@media (min-width:800px){.site-foot__grid{grid-template-columns:1.2fr 1fr 1fr .8fr}}
.site-foot__h{font-size:1.25rem;margin-bottom:.6rem}
.site-foot__strap{font:500 1.3rem/1.25 var(--serif);margin-top:1rem;color:var(--ink)}
.site-foot p{margin-bottom:.8em;color:var(--ink-2)}
.site-foot__list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.site-foot__list a{text-decoration:none;font-weight:600}
.site-foot__legal{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.9rem}
.site-foot__legal p{margin:0;color:var(--ink-3)}
.site-foot__credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
/* Consent */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:26rem;background:var(--paper);border:1.5px solid var(--ink);border-radius:var(--r) var(--r) var(--r) 2.5rem;padding:1.25rem 1.5rem;box-shadow:0 30px 60px -30px rgba(22,21,20,.6);font-size:.98rem;animation:pop .5s var(--ease) both}
.consent[hidden]{display:none}
.consent__t{font:600 1.15rem/1.2 var(--serif);margin-bottom:.4rem}
.consent__b{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.consent .btn{padding:.7em 1.1em;font-size:.92rem}
@keyframes pop{from{opacity:0;transform:translateY(12px)}}
/* Reveal */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.hero .reveal:nth-child(2){transition-delay:.08s}.hero .reveal:nth-child(3){transition-delay:.16s}.hero .reveal:nth-child(4){transition-delay:.24s}.hero__media.reveal{transition-delay:.12s}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.btn,.brand img{transition:none}}
::selection{background:var(--slate-tint);color:var(--ink)}
