/*
Theme Name: Tiffany Frances
Theme URI: https://www.tiffanyfrances.co.uk/
Author: Tiffany Frances Salon
Description: Bespoke theme for Tiffany Frances hair & make-up salon, Gravesend. Editable prices, team, offers, reviews, gallery, opening hours and contact details, with a one-click salon content installer (Appearance → Salon Setup).
Version: 1.2.2
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tiffany-frances
Tags: custom-logo, custom-menu, featured-images, editor-style, block-styles, wide-blocks, translation-ready
*/

/* ---------- Tokens ---------- */
:root{
  --plum:#222222; --plum-deep:#151515; --plum-ink:#0d0d0d;
  --plum-deep:color-mix(in srgb,var(--plum) 62%,#000); --plum-ink:color-mix(in srgb,var(--plum) 38%,#000);
  --honey:#c39a6b; --honey-soft:#e3c9a6;
  --porcelain:#fbfaf8; --blush:#f1ede8; --blush-deep:#e2dcd5;
  --espresso:#1f1f1f; --mist:#67625d; --line:rgba(31,31,31,.16); --line-light:rgba(251,250,248,.22);
  --serif:"Bodoni Moda","Didot","Bodoni 72","Bodoni MT",Georgia,serif;
  --sans:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --wrap:1240px; --gutter:clamp(1.25rem,4vw,3rem);
  --radius-soft:2px; --radius-pill:999px;
  --step--1:clamp(.84rem,.8rem + .15vw,.92rem);
  --step-0:clamp(1rem,.96rem + .2vw,1.08rem);
  --step-1:clamp(1.2rem,1.1rem + .45vw,1.4rem);
  --step-2:clamp(1.5rem,1.3rem + .9vw,2rem);
  --step-3:clamp(2rem,1.6rem + 1.8vw,3rem);
  --step-4:clamp(2.6rem,1.9rem + 3.2vw,4.6rem);
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:env(safe-area-inset-top,0px)}
body{overflow-x:clip;margin:0;background:var(--porcelain);color:var(--espresso);font-family:var(--sans);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--plum);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{color:var(--plum-deep)}
:focus-visible{outline:2px solid var(--honey);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0 0 .5em;letter-spacing:-.01em;color:inherit;font-optical-sizing:auto}
h1{font-size:var(--step-4)} h2{font-size:var(--step-3)} h3{font-size:var(--step-1);line-height:1.25} h4{font-size:var(--step-0)}
p{margin:0 0 1em}
.screen-reader-text,.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:1rem;left:1rem;z-index:1000;width:auto;height:auto;clip:auto;background:var(--porcelain);padding:.75rem 1rem}
.tf-wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}
.tf-section{padding-block:clamp(4rem,9vw,8rem)}
.tf-section--blush{background:var(--blush)}
.tf-section--plum{background:var(--plum-deep);color:var(--porcelain)}
.tf-section--plum a:not(.tf-btn){color:var(--honey-soft)}
.tf-section--plum .tf-muted{color:rgba(251,250,248,.66)}
.tf-section--plum .tf-btn--outline-light{color:var(--porcelain)}
.tf-lede{font-family:var(--serif);font-size:var(--step-1);line-height:1.45;font-style:italic;max-width:34ch}
.tf-muted{color:var(--mist)}

/* ---------- Buttons & links ---------- */
.tf-btn,.wp-block-button__link,.tf-form button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:600 var(--step--1)/1 var(--sans);letter-spacing:.02em;padding:1em 1.6em;border-radius:var(--radius-pill);border:1px solid var(--plum);background:var(--plum);color:var(--porcelain);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.tf-btn:hover,.wp-block-button__link:hover,.tf-form button:hover{background:var(--plum-deep);border-color:var(--plum-deep);color:var(--porcelain)}
.tf-btn--ghost{background:transparent;color:var(--plum)}
.tf-btn--ghost:hover{background:var(--plum);color:var(--porcelain)}
.tf-btn--light{background:var(--porcelain);border-color:var(--porcelain);color:var(--plum-deep)}
.tf-btn--light:hover{background:var(--honey-soft);border-color:var(--honey-soft);color:var(--plum-ink)}
.tf-btn--outline-light{background:transparent;border-color:var(--line-light);color:var(--porcelain)}
.tf-btn--outline-light:hover{border-color:var(--porcelain);background:transparent}
.tf-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.tf-link{font-weight:600;font-size:var(--step--1);color:var(--plum);text-decoration:underline;text-decoration-color:var(--honey);text-underline-offset:.35em}
.tf-section--plum .tf-link{color:var(--honey-soft)}

/* ---------- Media / hair-tone swatches ---------- */
.tf-media{position:relative;overflow:hidden;background:var(--blush-deep);margin:0}
.tf-media img{width:100%;height:100%;object-fit:cover}
.tf-media--portrait{aspect-ratio:4/5} .tf-media--tall{aspect-ratio:3/5} .tf-media--sq{aspect-ratio:1} .tf-media--wide{aspect-ratio:16/10}
.tf-swatch{position:absolute;inset:0}
.tf-swatch::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(97deg,rgba(255,255,255,.07) 0 1px,transparent 1px 5px),repeating-linear-gradient(93deg,rgba(0,0,0,.06) 0 1px,transparent 1px 9px);mix-blend-mode:overlay}

/* ---------- Announcement + header ---------- */
.tf-announce{background:var(--honey-soft);color:var(--plum-ink);font-size:var(--step--1);text-align:center;padding:.6rem var(--gutter)}
.tf-announce a{color:var(--plum-ink);font-weight:600;margin-left:.4em}
.tf-header{position:sticky;top:0;z-index:50;background:rgba(251,250,248,.94);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.admin-bar .tf-header{top:32px}
.tf-utility{border-bottom:1px solid var(--line);font-size:var(--step--1);color:var(--mist)}
.tf-utility .tf-wrap{display:flex;gap:1.5rem;align-items:center;justify-content:space-between;min-height:2.4rem}
.tf-utility a{color:var(--espresso);text-decoration:none}
.tf-utility a:hover{color:var(--plum)}
.tf-utility__links{display:flex;gap:1.25rem;align-items:center}
.tf-today::before{content:"";display:inline-block;width:.5em;height:.5em;border-radius:50%;background:var(--mist);margin-right:.55em;vertical-align:.1em}
.tf-today.is-open::before{background:#5f8f5a}
.tf-masthead{display:flex;align-items:center;gap:2rem;min-height:4.75rem}
.tf-logo{display:flex;flex-direction:column;text-decoration:none;color:var(--plum-ink);line-height:1;margin-right:auto}
.tf-logo__name{font-family:var(--serif);font-size:1.6rem;font-weight:500;letter-spacing:.01em}
.tf-logo__place{font-size:.72rem;letter-spacing:.14em;color:var(--mist);margin-top:.35rem}
.tf-logo img,.custom-logo{max-height:56px;width:auto}
.tf-nav ul{list-style:none;margin:0;padding:0}
.tf-nav>ul{display:flex;gap:.25rem;align-items:center}
.tf-nav li{position:relative}
.tf-nav a{display:block;padding:.6rem .7rem;text-decoration:none;color:var(--espresso);font-size:.94rem;font-weight:500;border-radius:var(--radius-soft)}
.tf-nav a:hover,.tf-nav .current-menu-item>a,.tf-nav .current-menu-ancestor>a{color:var(--plum)}
.tf-nav .current-menu-item>a{text-decoration:underline;text-decoration-color:var(--honey);text-underline-offset:.45em}
.tf-nav .menu-item-has-children>a::after{content:"";display:inline-block;width:.38em;height:.38em;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:.5em;vertical-align:.2em}
.tf-nav .sub-menu{position:absolute;left:0;top:100%;min-width:15rem;background:var(--porcelain);border:1px solid var(--line);padding:.5rem;box-shadow:0 18px 40px -20px rgba(21,21,21,.35);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.tf-nav li:hover>.sub-menu,.tf-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.tf-nav .sub-menu a{padding:.55rem .75rem}
.tf-nav .sub-menu a:hover{background:var(--blush)}
.tf-burger{display:none;background:none;border:1px solid var(--line);border-radius:var(--radius-pill);padding:.6rem 1rem;font:600 .9rem var(--sans);color:var(--espresso);cursor:pointer}
@media (max-width:1100px){
  .tf-burger{display:inline-flex}
  .tf-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--porcelain)}
  .tf-header:has(.tf-nav.is-open),.tf-nav-open .tf-header{z-index:70}
  .tf-masthead .tf-btn--book{padding:.8em 1.1em}
  .tf-nav{position:fixed;inset:0 0 0 auto;width:min(88vw,400px);background:var(--porcelain);z-index:60;padding:calc(5rem + env(safe-area-inset-top,0px)) 1.5rem 2rem;overflow-y:auto;transform:translateX(100%);visibility:hidden;transition:transform .3s ease,visibility 0s linear .3s;box-shadow:-30px 0 60px -30px rgba(0,0,0,.4)}
  .tf-nav.is-open{transform:none;visibility:visible;transition:transform .3s ease}
  .tf-nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .tf-nav>ul>li{border-bottom:1px solid var(--line)}
  .tf-nav a{font-size:1.05rem;padding:.9rem .25rem}
  .tf-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 .5rem 1rem;display:none;background:none}
  .tf-nav li.is-expanded>.sub-menu{display:block}
  .tf-nav__close{position:absolute;top:calc(1.25rem + env(safe-area-inset-top,0px));right:1.25rem}
  .tf-utility__social{display:none}
}
@media (min-width:1101px){.tf-nav__close{display:none}}
.tf-scrim{position:fixed;inset:0;background:rgba(13,13,13,.45);z-index:55;opacity:0;visibility:hidden;transition:opacity .3s}
.tf-scrim.is-open{opacity:1;visibility:visible}
@media (max-width:560px){.tf-utility__hours-extra,.tf-masthead .tf-btn--book{display:none}.tf-logo__name{font-size:1.35rem}}

/* ---------- Hero: the swatch book ---------- */
.tf-hero{background:var(--plum-deep);color:var(--porcelain);overflow:hidden;padding-block:clamp(2.5rem,6vw,5rem) clamp(3.5rem,7vw,6rem)}
.tf-hero__grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:clamp(1rem,2vw,2rem);align-items:end}
.tf-hero__mark{grid-column:1/-1;font-family:var(--serif);font-weight:400;font-size:clamp(4.2rem,15.5vw,14.5rem);line-height:.84;letter-spacing:-.035em;margin:0;position:relative;z-index:2;color:var(--porcelain)}
.tf-hero__mark span{display:block}
.tf-hero__mark span+span{padding-left:clamp(1.5rem,17vw,16rem);font-style:italic}
.tf-hero__copy{grid-column:1/6;padding-top:2.5rem;align-self:start}
.tf-hero__copy .tf-lede{color:var(--honey-soft);margin-bottom:1rem}
.tf-hero__copy p{color:rgba(251,250,248,.82);max-width:42ch}
.tf-swatchbook{grid-column:6/-1;margin-top:clamp(-5rem,-6vw,-2.5rem);position:relative;z-index:1}
.tf-swatchbook__rail{height:1px;background:linear-gradient(90deg,transparent,var(--honey) 12%,var(--honey) 88%,transparent);margin-bottom:0}
.tf-swatchbook ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.6rem,1.2vw,1rem)}
.tf-swatchbook li{display:flex;flex-direction:column}
.tf-swatchbook li:nth-child(1){padding-top:1.5rem}.tf-swatchbook li:nth-child(2){padding-top:4.5rem}.tf-swatchbook li:nth-child(3){padding-top:.5rem}.tf-swatchbook li:nth-child(4){padding-top:3rem}
.tf-swatchbook li::before{content:"";width:1px;height:1.5rem;background:var(--honey);margin:0 auto;opacity:.7;flex:none}
.tf-swatchbook figure{margin:0}
.tf-swatchbook .tf-media{border-radius:var(--radius-soft)}
.tf-swatchbook figcaption{font-family:var(--serif);font-style:italic;font-size:.98rem;color:var(--honey-soft);margin-top:.7rem;text-align:center}
@media (max-width:900px){
  .tf-hero__copy{grid-column:1/-1;order:3}
  .tf-swatchbook{grid-column:1/-1;margin-top:1.5rem;margin-inline:calc(-1*var(--gutter));overflow-x:auto;scrollbar-width:none;padding-inline:var(--gutter)}
  .tf-swatchbook ul{grid-template-columns:repeat(4,minmax(38vw,1fr))}
  .tf-swatchbook__rail{min-width:calc(4*38vw)}
}
@media (prefers-reduced-motion:no-preference){
  .tf-hero__mark span{animation:tf-rise 1.1s cubic-bezier(.2,.7,.1,1) both}
  .tf-hero__mark span+span{animation-delay:.12s}
  .tf-swatchbook li{animation:tf-drop 1s cubic-bezier(.2,.7,.1,1) both}
  .tf-swatchbook li:nth-child(1){animation-delay:.35s}.tf-swatchbook li:nth-child(2){animation-delay:.45s}.tf-swatchbook li:nth-child(3){animation-delay:.55s}.tf-swatchbook li:nth-child(4){animation-delay:.65s}
}
@keyframes tf-rise{from{opacity:0;transform:translateY(.25em);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 -10% 0)}}
@keyframes tf-drop{from{opacity:0;transform:translateY(-1.5rem)}to{opacity:1;transform:none}}

/* ---------- Perks strip ---------- */
.tf-perks{border-bottom:1px solid var(--line)}
.tf-perks ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.tf-perks li{padding:1.6rem 1.5rem 1.6rem 0;display:flex;flex-direction:column;gap:.2rem}
.tf-perks li+li{padding-left:1.5rem;border-left:1px solid var(--line)}
.tf-perks strong{font-family:var(--serif);font-weight:500;font-size:1.08rem;line-height:1.3}
.tf-perks span{color:var(--mist);font-size:var(--step--1)}
@media (max-width:900px){.tf-perks ul{grid-template-columns:1fr 1fr}.tf-perks li:nth-child(3){padding-left:0;border-left:0}.tf-perks li:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:520px){.tf-perks ul{grid-template-columns:1fr}.tf-perks li,.tf-perks li+li{padding:1.1rem 0;border-left:0}.tf-perks li+li{border-top:1px solid var(--line)}}

/* ---------- Split layout (sticky aside) ---------- */
.tf-split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(2rem,6vw,6rem);align-items:start}
.tf-split__aside{position:sticky;top:9rem}
.tf-split__aside p{color:var(--mist);max-width:36ch}
@media (max-width:900px){.tf-split{grid-template-columns:1fr}.tf-split__aside{position:static}}

/* ---------- Service list ---------- */
.tf-servicelist{list-style:none;margin:0;padding:0}
.tf-service{display:grid;grid-template-columns:clamp(7rem,16vw,12rem) 1fr;gap:clamp(1.25rem,3vw,2.5rem);padding-block:2rem;border-top:1px solid var(--line);align-items:start}
.tf-service:last-child{border-bottom:1px solid var(--line)}
.tf-service h3{font-size:var(--step-2);margin-bottom:.4em}
.tf-service h3 a{color:inherit;text-decoration:none}
.tf-service h3 a:hover{color:var(--plum)}
.tf-service p{color:var(--mist);max-width:52ch}

/* ---------- Lookbook ---------- */
.tf-sectionhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:2.5rem}
.tf-sectionhead h2{margin:0}
.tf-sectionhead p{margin:.6rem 0 0;color:var(--mist);max-width:48ch}
.tf-section--plum .tf-sectionhead p{color:rgba(251,250,248,.72)}
.tf-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem}
.tf-filters button{font:500 var(--step--1) var(--sans);padding:.55em 1.1em;border-radius:var(--radius-pill);border:1px solid var(--line);background:transparent;color:var(--espresso);cursor:pointer}
.tf-filters button[aria-pressed="true"]{background:var(--plum);border-color:var(--plum);color:var(--porcelain)}
.tf-looks{columns:4 15rem;column-gap:1rem}
.tf-look{break-inside:avoid;margin:0 0 1rem}
.tf-look[hidden]{display:none}
.tf-look .tf-media{aspect-ratio:4/5}
.tf-look.is-tall .tf-media{aspect-ratio:3/4.4}
.tf-look figcaption{display:flex;flex-direction:column;gap:.1rem;padding:.65rem 0 .2rem;font-size:var(--step--1)}
.tf-look figcaption span{color:var(--mist);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}

/* ---------- Prices ---------- */
.tf-prices__tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:2rem;border-bottom:1px solid var(--line);padding-bottom:1rem}
.tf-prices__tabs button{font:500 var(--step--1) var(--sans);background:none;border:0;padding:.55em .9em;border-radius:var(--radius-pill);cursor:pointer;color:var(--mist)}
.tf-prices__tabs button:hover{color:var(--plum)}
.tf-prices__tabs button[aria-selected="true"]{background:var(--plum);color:var(--porcelain)}
.tf-prices__panel[hidden]{display:none}
.tf-prices__panel h3{font-size:var(--step-1);margin:2rem 0 .6rem;font-style:italic;color:var(--plum)}
.tf-prices__panel h3:first-child{margin-top:0}
.tf-price{display:flex;align-items:baseline;gap:.75rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.tf-price__name{flex:0 1 auto}
.tf-price__dots{flex:1 1 2rem;border-bottom:1px dotted var(--honey);transform:translateY(-.3em);min-width:1.5rem}
.tf-price__cost{font-family:var(--serif);font-size:1.15rem;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;text-align:right}
.tf-price__cost--text{font-family:var(--sans);font-size:var(--step--1);color:var(--mist)}
.tf-price--brand .tf-price__dots,.tf-price--brand .tf-price__cost{display:none}
.tf-prices__note{background:var(--porcelain);border-left:2px solid var(--honey);padding:.9rem 1.1rem;font-size:var(--step--1);color:var(--mist);margin:0 0 1.25rem}
.tf-section--blush .tf-prices__note{background:rgba(251,250,248,.7)}

/* ---------- Team ---------- */
.tf-team{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,3vw,2.5rem) clamp(1rem,2.5vw,2rem)}
.tf-member h3{font-size:var(--step-2);margin:1rem 0 .1rem}
.tf-member__role{color:var(--mist);font-size:var(--step--1);margin:0 0 .75rem}
.tf-member blockquote{margin:0 0 .75rem;font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.45;color:var(--plum)}
.tf-member details summary{cursor:pointer;font-weight:600;font-size:var(--step--1);color:var(--plum);text-decoration:underline;text-decoration-color:var(--honey);text-underline-offset:.35em;list-style:none}
.tf-member details summary::-webkit-details-marker{display:none}
.tf-member details[open] summary{margin-bottom:.6rem}
.tf-member details p{font-size:var(--step--1);color:var(--mist)}
.tf-team--compact{grid-template-columns:repeat(6,1fr)}
.tf-team--compact h3{font-size:var(--step-1)}
@media (max-width:1000px){.tf-team--compact{grid-template-columns:repeat(3,1fr)}}
@media (max-width:800px){.tf-team{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.tf-team:not(.tf-team--compact){grid-template-columns:1fr}.tf-team--compact{grid-template-columns:1fr 1fr}}

/* ---------- Offers ---------- */
.tf-offers{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.25rem,3vw,2.5rem)}
.tf-offer{display:flex;flex-direction:column;border-top:1px solid var(--line-light);padding-top:1.25rem}
.tf-section--plum .tf-offer{border-color:var(--line-light)}
.tf-offer .tf-media{aspect-ratio:5/4;margin-bottom:1.25rem}
.tf-offer__badge{font-family:var(--serif);font-size:var(--step-3);line-height:1;color:var(--honey-soft);margin-bottom:.4rem}
.tf-section:not(.tf-section--plum) .tf-offer{border-color:var(--line)}
.tf-section:not(.tf-section--plum) .tf-offer__badge{color:var(--plum)}
.tf-offer h3{margin-bottom:.4rem}
.tf-offer p{opacity:.85;flex:1}
@media (max-width:900px){.tf-offers{grid-template-columns:1fr}.tf-offer{display:grid;grid-template-columns:minmax(8rem,34%) 1fr;column-gap:1.25rem}.tf-offer .tf-media{grid-row:span 4;margin:0}}

/* ---------- Reviews ---------- */
.tf-rating{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}
.tf-rating__score{font-family:var(--serif);font-size:clamp(4rem,10vw,7.5rem);line-height:.9;color:var(--plum)}
.tf-rating__meta{color:var(--mist);max-width:32ch}
.tf-stars{color:var(--honey);letter-spacing:.15em;font-size:1.1rem}
.tf-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem);margin-top:3rem}
.tf-review{margin:0;border-top:1px solid var(--line);padding-top:1.25rem}
.tf-review blockquote{margin:0 0 1rem;font-family:var(--serif);font-size:1.18rem;line-height:1.5}
.tf-review figcaption{font-size:var(--step--1);color:var(--mist)}
.tf-review figcaption strong{color:var(--espresso);display:block;font-weight:600}
@media (max-width:900px){.tf-reviews{grid-template-columns:1fr}}

/* ---------- Visit / hours ---------- */
.tf-visit{display:grid;grid-template-columns:5fr 4fr 3fr;gap:clamp(2rem,5vw,4rem)}
.tf-visit h2{font-size:var(--step-3)}
.tf-visit address{font-style:normal;font-family:var(--serif);font-size:var(--step-1);line-height:1.4;margin-bottom:1.25rem}
.tf-hours{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tf-hours th,.tf-hours td{text-align:left;padding:.6rem 0;border-bottom:1px solid var(--line);font-weight:400}
.tf-section--plum .tf-hours th,.tf-section--plum .tf-hours td{border-color:var(--line-light)}
.tf-hours td{text-align:right}
.tf-hours tr.is-today th,.tf-hours tr.is-today td{font-weight:600}
.tf-hours tr.is-today th::after{content:"today";font:italic 400 .85em var(--serif);color:var(--honey);margin-left:.6em}
.tf-hours .is-closed td{opacity:.6}
.tf-contactlist{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.tf-contactlist small{display:block;opacity:.7;font-size:.8rem}
.tf-contactlist a{font-size:1.05rem;text-decoration:none}
.tf-contactlist a:hover{text-decoration:underline}
@media (max-width:900px){.tf-visit{grid-template-columns:1fr}}

/* ---------- Forms ---------- */
.tf-form{display:grid;gap:1rem}
.tf-form--inline{grid-template-columns:1fr 1fr auto;align-items:end}
.tf-form label{display:grid;gap:.35rem;font-size:var(--step--1);font-weight:500}
.tf-form input,.tf-form textarea,.tf-form select{font:inherit;padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--radius-soft);background:#fff;color:var(--espresso);width:100%}
.tf-form input:focus,.tf-form textarea:focus{outline:2px solid var(--honey);outline-offset:0;border-color:transparent}
.tf-form .tf-hp{position:absolute;left:-9999px}
.tf-form__note{font-size:.8rem;color:var(--mist);margin:0}
.tf-notice{padding:1rem 1.25rem;background:#e7f0e4;border-left:3px solid #5f8f5a;margin:0 0 1.5rem}
.tf-notice--error{background:#f6e3e1;border-color:#a2463b}
@media (max-width:700px){.tf-form--inline{grid-template-columns:1fr}}

/* ---------- Newsletter / voucher band ---------- */
.tf-band{display:grid;grid-template-columns:7fr 5fr;border-top:1px solid var(--line)}
.tf-band>div{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem)}
.tf-band__voucher{background:var(--plum);color:var(--porcelain);display:flex;flex-direction:column;justify-content:center}
.tf-band__voucher h2{font-style:italic}
.tf-band h2{font-size:var(--step-3)}
@media (max-width:900px){.tf-band{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.tf-footer{background:var(--plum-ink);color:rgba(251,250,248,.78);font-size:var(--step--1);padding:clamp(3.5rem,7vw,5.5rem) 0 calc(2rem + env(safe-area-inset-bottom,0px))}
.tf-footer a{color:var(--porcelain);text-decoration:none}
.tf-footer a:hover{text-decoration:underline;text-decoration-color:var(--honey)}
.tf-footer__grid{display:grid;grid-template-columns:4fr 3fr 3fr 3fr;gap:2.5rem}
.tf-footer h2{font-size:1.25rem;color:var(--porcelain);margin-bottom:1rem}
.tf-footer__brand{margin-bottom:1rem}
.tf-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.tf-footer .tf-hours th,.tf-footer .tf-hours td{padding:.35rem 0;border-color:rgba(251,250,248,.12)}
.tf-klarna{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.25rem;padding:.5rem .9rem;border:1px solid rgba(251,250,248,.2);border-radius:var(--radius-pill)}
.tf-klarna b{background:#ffb3c7;color:#17120f;border-radius:4px;padding:.1rem .45rem;font-size:.8rem}
.tf-klarna img{max-height:28px;width:auto}
.tf-footer__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid rgba(251,250,248,.12)}
.tf-footer__base ul{display:flex;gap:1.25rem;flex-wrap:wrap}
.tf-social{display:flex;gap:.6rem;margin-top:1rem}
.tf-social a{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid rgba(251,250,248,.25);border-radius:50%}
.tf-social svg{width:1.05rem;height:1.05rem;fill:currentColor}
@media (max-width:900px){.tf-footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tf-footer__grid{grid-template-columns:1fr}}

/* ---------- Inner page header ---------- */
.tf-pagehead{background:var(--blush);border-bottom:1px solid var(--line)}
.tf-pagehead__grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,5vw,4rem);align-items:end;padding-block:clamp(3rem,7vw,6rem) 0}
.tf-pagehead h1{font-size:clamp(2.8rem,7vw,6.2rem);line-height:.92;letter-spacing:-.03em;margin-bottom:.35em}
.tf-pagehead .tf-lede{color:var(--plum);margin-bottom:clamp(2rem,5vw,4rem)}
.tf-pagehead .tf-media{aspect-ratio:4/3;margin-bottom:-1px}
.tf-pagehead--noimage .tf-pagehead__grid{grid-template-columns:1fr}
@media (max-width:800px){.tf-pagehead__grid{grid-template-columns:1fr}.tf-pagehead .tf-media{margin-inline:calc(-1*var(--gutter))}}

/* ---------- Entry content (block editor output) ---------- */
.tf-content{padding-block:clamp(3rem,7vw,6rem)}
.entry-content{max-width:none}
.entry-content>:is(p,h2,h3,h4,ul,ol,blockquote,.tf-note,.wp-block-buttons,details,table){max-width:72ch}
.entry-content>*+*{margin-top:0}
.entry-content h2{margin-top:2.2em}
.entry-content h3{margin-top:1.8em;color:var(--plum)}
.entry-content ul,.entry-content ol{padding-left:1.2em;margin:0 0 1.2em}
.entry-content li{margin-bottom:.4em}
.entry-content li::marker{color:var(--honey)}
.entry-content .alignwide,.entry-content :is(.tf-feature,.is-style-tf-feature),.entry-content .tf-wide{max-width:none;width:100%}
.entry-content .alignfull{width:100vw;max-width:none;margin-left:calc(50% - 50vw)}
.entry-content blockquote{margin:2rem 0;padding-left:1.5rem;border-left:2px solid var(--honey);font-family:var(--serif);font-size:var(--step-1);font-style:italic}
.entry-content .wp-block-image img{border-radius:var(--radius-soft)}
.entry-content .wp-block-buttons{margin:2rem 0}
.tf-content--wide .entry-content{max-width:none}
.tf-note,.entry-content .is-style-tf-note{background:var(--blush);border-left:2px solid var(--honey);padding:1rem 1.25rem;font-size:var(--step--1)}
:is(.tf-feature,.is-style-tf-feature){display:grid;grid-template-columns:5fr 6fr;column-gap:clamp(1.5rem,5vw,5rem);row-gap:0;align-items:start;align-content:center;padding-block:clamp(2rem,5vw,3.5rem);border-top:1px solid var(--line);margin-block:1rem}
:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>figure,:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>.wp-block-image{margin:0;grid-row:1/span 30;align-self:stretch}
:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>figure img,:is(.tf-feature,.is-style-tf-feature) .tf-media{width:100%;height:100%;min-height:22rem;max-height:34rem;object-fit:cover;aspect-ratio:4/5}
:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>:not(figure):not(.wp-block-image){grid-column:2;max-width:60ch}
:is(.tf-feature,.is-style-tf-feature) h2{font-size:var(--step-3);margin-top:0}
:is(.tf-feature,.is-style-tf-feature):nth-of-type(even){grid-template-columns:6fr 5fr}
:is(.tf-feature,.is-style-tf-feature):nth-of-type(even) figure,:is(.tf-feature,.is-style-tf-feature):nth-of-type(even) .wp-block-image{grid-column:2}
:is(.tf-feature,.is-style-tf-feature):nth-of-type(even) :not(figure):not(.wp-block-image){grid-column:1}
@media (max-width:800px){:is(.tf-feature,.is-style-tf-feature),:is(.tf-feature,.is-style-tf-feature):nth-of-type(even){grid-template-columns:1fr}:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>*,:is(.tf-feature,.is-style-tf-feature):nth-of-type(even) *{grid-column:1!important;grid-row:auto!important}:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>figure img,:is(.tf-feature,.is-style-tf-feature) .tf-media{min-height:0;aspect-ratio:4/3}}

/* ---------- Blog ---------- */
.tf-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem 2rem}
.tf-post h2,.tf-post h3{font-size:var(--step-2);margin:1rem 0 .5rem}
.tf-post h2 a,.tf-post h3 a{color:inherit;text-decoration:none}
.tf-post .tf-media{aspect-ratio:4/3}
.tf-post time{font-size:var(--step--1);color:var(--mist)}
@media (max-width:900px){.tf-posts{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tf-posts{grid-template-columns:1fr}}
.tf-pagination{margin-top:3rem;display:flex;gap:.5rem}
.tf-pagination .page-numbers{padding:.5rem .9rem;border:1px solid var(--line);text-decoration:none;border-radius:var(--radius-pill)}
.tf-pagination .current{background:var(--plum);color:var(--porcelain);border-color:var(--plum)}

/* ---------- Mobile booking bar ---------- */
.tf-mobilebar{display:none}
@media (max-width:700px){
  .tf-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom,0px));background:rgba(251,250,248,.96);border-top:1px solid var(--line);backdrop-filter:blur(8px)}
  .tf-mobilebar .tf-btn{padding:.9em}
  body{padding-bottom:4.5rem}
}

/* WordPress core helpers */
.alignleft{float:left;margin:0 1.5rem 1rem 0}.alignright{float:right;margin:0 0 1rem 1.5rem}.aligncenter{margin-inline:auto}
.wp-caption-text,.wp-element-caption{font-size:var(--step--1);color:var(--mist)}
.sticky,.bypostauthor,.gallery-caption{}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- Contact page ---------- */
.entry-content>.tf-section--plum.alignfull{margin-top:0;margin-bottom:clamp(3rem,6vw,5rem)}
.tf-content:has(.tf-section--plum.alignfull:first-child){padding-top:0}
.tf-contactwrap{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.tf-map{border-radius:var(--radius-soft);overflow:hidden;background:var(--blush)}
.tf-map iframe{display:block;width:100%;min-height:420px;border:0}
@media (max-width:860px){.tf-contactwrap{grid-template-columns:1fr}.tf-map iframe{min-height:300px}}

/* Swatch behind content images, shown if a photo is missing */
.wp-block-image[class*="tf-sw-"]{background:var(--blush)}
.tf-sw-honey{background:linear-gradient(172deg,#3a2419 0%,#6b4428 34%,#b98a58 70%,#e6c794 100%)!important}
.tf-sw-copper{background:linear-gradient(172deg,#2f1a14 0%,#7a3a22 45%,#c0673a 80%,#e39a62 100%)!important}
.tf-sw-platinum{background:linear-gradient(172deg,#5d5249 0%,#a79b8e 40%,#dcd3c6 75%,#f4efe6 100%)!important}
.tf-sw-espresso{background:linear-gradient(172deg,#150d0b 0%,#2e1c17 50%,#4d3027 100%)!important}
.tf-sw-rose{background:linear-gradient(172deg,#4a2a33 0%,#8e5663 45%,#d59da3 85%,#f1cfd0 100%)!important}
.tf-sw-plum{background:linear-gradient(172deg,#1f0b19 0%,#4a1d3a 55%,#7d3f66 100%)!important}
.tf-sw-caramel{background:linear-gradient(172deg,#2b1a12 0%,#5a3620 40%,#9a6a42 75%,#c9a071 100%)!important}
.tf-sw-blush{background:linear-gradient(172deg,#6d4a44 0%,#b88c83 50%,#ecd3cb 100%)!important}
:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>figure[class*="tf-sw-"]{min-height:22rem;border-radius:var(--radius-soft);overflow:hidden;position:relative}
:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>figure[class*="tf-sw-"]::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,rgba(255,255,255,.05) 0 1px,transparent 1px 7px);pointer-events:none}
@media (max-width:800px){:is(.tf-feature,.is-style-tf-feature,.tf-feature>.wp-block-group__inner-container,.is-style-tf-feature>.wp-block-group__inner-container)>figure[class*="tf-sw-"]{min-height:0;aspect-ratio:4/3}}
@media (max-width:640px){.tf-looks{columns:2;column-gap:.7rem}.tf-look{margin-bottom:.8rem}.tf-look figcaption{font-size:.85rem}}
:is(.tf-feature,.is-style-tf-feature)>.wp-block-group__inner-container{display:contents}
:is(.tf-feature,.is-style-tf-feature) :is(h2,p){margin-bottom:1rem}
:is(.tf-feature,.is-style-tf-feature) figure:first-child+*{margin-top:1rem}
@media (max-width:800px){:is(.tf-feature,.is-style-tf-feature) figure{margin-bottom:1.5rem!important}}
@media (min-width:1101px){.tf-utility__social{display:inline-flex;align-items:center;gap:1.1rem}}

/* ---------- Logo ---------- */
.tf-logo__text{display:flex;flex-direction:column}
.tf-logo:has(.tf-logo__img) .tf-logo__text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tf-logo__img{display:block;height:auto;width:auto;max-height:64px;max-width:min(240px,50vw)}
.tf-footer__brand .tf-logo{color:var(--porcelain)}
.tf-footer__brand .tf-logo__name{font-size:clamp(2.2rem,4vw,3rem);line-height:.95}
.tf-footer__brand .tf-logo__place{color:rgba(251,250,248,.6)}
.tf-logo--footer .tf-logo__img{max-height:90px;max-width:260px}
@media (max-width:560px){.tf-logo__img{max-height:48px}}

/* ---------- Blog posts ---------- */
.tf-dash{font-optical-sizing:none;font-variation-settings:"opsz" 14}
.single-post .tf-pagehead h1{font-size:clamp(2.4rem,5.2vw,4.6rem);line-height:1;letter-spacing:-.02em;text-wrap:balance}
.single-post .tf-pagehead time{display:block}
.single-post .entry-content{max-width:44rem}
.single-post .entry-content h2{font-size:var(--step-2);line-height:1.15;margin-top:2em;text-wrap:balance}
.single-post .entry-content h3{font-size:var(--step-1);margin-top:1.6em}
.entry-content .wp-block-table{overflow-x:auto;margin:1.5em 0}
.entry-content .wp-block-table table{border-collapse:collapse;width:100%;font-size:var(--step--1)}
.entry-content .wp-block-table th,.entry-content .wp-block-table td{border-bottom:1px solid var(--line);padding:.6em .8em;text-align:left;vertical-align:top}
.entry-content .wp-block-table th{font-weight:600}

/* ---------- Dark logo bar (the gold logo needs a dark ground to read) ---------- */
.tf-masthead{position:relative;isolation:isolate;color:var(--porcelain)}
.tf-masthead::before{content:"";position:absolute;inset:0 -100vmax;background:var(--plum-deep);z-index:-1}
.tf-masthead .tf-logo{color:var(--porcelain)}
.tf-masthead .tf-logo__place{color:rgba(251,250,248,.62)}
.tf-masthead .tf-btn--book{background:var(--porcelain);border-color:var(--porcelain);color:var(--plum-ink)}
.tf-masthead .tf-btn--book:hover{background:var(--honey-soft);border-color:var(--honey-soft);color:var(--plum-ink)}
.tf-masthead>.tf-burger{color:var(--porcelain);border-color:var(--line-light)}
.tf-masthead>.tf-burger:hover{border-color:var(--porcelain)}
@media (min-width:1101px){
  .tf-masthead .tf-nav>ul>li>a{color:rgba(251,250,248,.86)}
  .tf-masthead .tf-nav>ul>li>a:hover,.tf-masthead .tf-nav>ul>li.current-menu-item>a,.tf-masthead .tf-nav>ul>li.current-menu-ancestor>a{color:var(--honey-soft)}
}
