/* =======================================================================
   FLAZIZ CATERING — the whole look of the site, in one file.

   HOW TO READ THIS FILE
   It runs top to bottom, in four parts, and the ORDER is the important bit:

     1. THE PALETTE        every colour, named once (right below)
     2. ELEMENTOR'S RESET  its defaults pushed out of the way
     3. THE DESIGN         buttons, cards, headings, the form, the footer
     4. SCREEN SIZES       the phone and tablet adjustments, last

   WHY :where() IS EVERYWHERE
   Nearly every rule is written :where(.thing){…} instead of .thing{…}. That
   makes the rule ZERO STRENGTH. When two CSS rules both apply, the stronger
   one wins no matter what order they are in — so a normal rule here would beat
   whatever you pick in the Elementor panel, and your colour choice would
   silently do nothing. Zero strength means Elementor always wins, which is
   what makes the site editable without touching code.

   DO NOT EDIT THIS FILE ON THE LIVE SITE. A theme update replaces it. Put your
   own CSS in Flaziz > My own CSS, which survives every update.
   ======================================================================= */

/* -----------------------------------------------------------------------
   1. THE PALETTE

   Every colour on the site is named here, once. Nothing further down ever
   writes a colour directly — it asks for the name with var(--gold). So
   changing the gold across the whole site is one edit, right here.

   :root means "the very top of the document", so these names are readable
   from anywhere below.
   ----------------------------------------------------------------------- */
:root{
  --ground:#FDF9F6;   /* the cream page background */
  --ground-2:#F7F1EA; /* a slightly darker cream, for alternating bands */
  --forest:#152B1A;   /* the dark green — most text and the solid buttons */
  --band:#0B291D;     /* the deep green strip and the footer */
  --gold:#B18845;     /* the gold from the logo — labels, icons, small accents */
  --gold-soft:#D9BE8C; /* a paler gold, for text sitting on dark green */
  --ink:#152B1A;      /* body text */
  --muted:#5E6A5C;    /* grey-green, for small print and captions */
  --hair:rgba(21,43,26,.14);     /* the faint line between rows and cards */
  --glass:rgba(255,253,250,.72);    /* the frosted panel background */
  --glass-2:rgba(255,253,250,.55);  /* a fainter frosted panel */
  --glass-line:rgba(255,255,255,.75); /* the light edge on a frosted panel */
  --shadow:0 24px 60px -30px rgba(11,41,29,.45);   /* the soft drop shadow under cards */
  --veil:rgba(253,249,246,.86);     /* the cream wash laid over the background video */
  --tint:rgba(21,43,26,.10);     /* the colour wash on top of that */
  --on-band:#F4EDE2;  /* text colour when it sits on the green strip */
  --max:1160px;      /* the widest the content ever gets, in px */
}




/* =========================================================================
   Elementor's own defaults, cleared out of the way FIRST so the design
   below wins, and so anything you set in the Elementor panel wins over
   both. Nothing here has any specificity, on purpose.
   ========================================================================= */
:where(body.flz .elementor-section),:where(body.flz .elementor-container),:where(body.flz .elementor-column-wrap),:where(body.flz .elementor-widget-wrap){background-color:transparent}
:where(body.flz .elementor-widget-wrap){padding:0}
:where(body.flz .elementor-section.elementor-inner-section){padding:0}
:where(body.flz .elementor-inner-section .elementor-widget-wrap){padding:0}
:where(body.flz .elementor-section.elementor-inner-section){padding-top:0;padding-bottom:0}
:where(body.flz .elementor-column){min-height:0}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
:where(body){
  margin:0;background:var(--ground);color:var(--ink);
  font-family:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.7;overflow-x:clip;-webkit-font-smoothing:antialiased;
}
:where(img,video){display:block;max-width:100%}
:where(a){color:inherit}
:where(h1,h2,h3){font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;
  margin:0;text-wrap:balance;line-height:1.12}
:where(h1,h2,h3){color:var(--forest)}
:where(p){margin:0}
:where(body.flz){color:var(--ink)}
:where(.elementor-widget-text-editor,:where(.elementor-widget-flaziz-markets),:where(.elementor-widget-flaziz-faq),:where(.elementor-widget-flaziz-contact-cards),:where(.elementor-widget-flaziz-feature),:where(.elementor-widget-flaziz-defs)){color:var(--muted)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}

/* ---------- background video, kept faint so panels read as glass ---------- */
#bg{position:fixed;inset:0;z-index:-10;pointer-events:none;background:var(--ground)}
#bg video{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
#bg .veil{position:absolute;inset:0;background:var(--veil)}
#bg .tint{position:absolute;inset:0;background:var(--tint)}/* ---------- shared ---------- */



:where(.wrap){max-width:var(--max);margin:0 auto;padding:0 22px}
:where(section){padding:84px 0}
@media(max-width:700px){:where(section){padding:56px 0}}
/* -----------------------------------------------------------------------
   THE SMALL GOLD CAPITALS above a heading. letter-spacing is what gives them
   that spread-out look; text-transform makes them capitals without you having
   to type in caps.
   ----------------------------------------------------------------------- */
:where(.eyebrow){font-size:11px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;
  margin:0}
:where(.eyebrow){color:var(--gold)}
:where(.lede){font-size:17px;max-width:34rem}
:where(.script){font-family:"Italianno",cursive;font-size:34px;line-height:1.2}
:where(.script){color:var(--forest)}

:where(.leaf){display:block;width:46px;height:14px;margin:14px auto;opacity:.85}
:where(.rule){display:flex;align-items:center;gap:16px;justify-content:center;color:var(--gold)}
:where(.rule)::before,:where(.rule)::after{content:"";height:1px;background:var(--gold);opacity:.45;flex:1;max-width:180px}

:where(.center){text-align:center}
:where(.h-sec){font-size:clamp(26px,4vw,40px)}
:where(.h-page){font-size:clamp(30px,6vw,58px)}/* ---------- glass ---------- */



/* -----------------------------------------------------------------------
   FROSTED PANELS
   backdrop-filter blurs whatever is behind the panel — which is the
   background video. That is the whole effect.
   ----------------------------------------------------------------------- */
:where(.glass){
  background:var(--glass);
  -webkit-backdrop-filter:blur(18px) saturate(120%);
  backdrop-filter:blur(18px) saturate(120%);
  border:1px solid var(--glass-line);
  box-shadow:var(--shadow);
  border-radius:4px;
}
:where(.glass-soft){
  background:var(--glass-2);
  -webkit-backdrop-filter:blur(12px) saturate(115%);
  backdrop-filter:blur(12px) saturate(115%);
  border:1px solid var(--glass-line);
  box-shadow:0 18px 40px -28px rgba(11,41,29,.5);
  border-radius:4px;
}
@supports not (backdrop-filter:blur(1px)){
  :where(.glass){background:var(--ground)}
  :where(.glass-soft){background:var(--ground-2)}
}
:where(.pad){padding:28px}
@media(min-width:700px){:where(.pad){padding:40px}}/* ---------- buttons ---------- */



/* -----------------------------------------------------------------------
   BUTTONS
   .btn is the shared shape. .btn-solid fills it in, .btn-line outlines it.
   Add either in Elementor: select the button > Advanced > CSS Classes.
   ----------------------------------------------------------------------- */
:where(.btn){display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 28px;font-size:12px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid transparent;
  font-family:inherit;transition:background .25s,color .25s,border-color .25s}
:where(.btn-solid){background:var(--band);color:var(--on-band)}
:where(.btn-solid:hover){background:var(--forest)}
:where(.btn-gold){background:var(--gold);color:#1B1206}
:where(.btn-gold:hover){background:var(--gold-soft)}
:where(.btn-line){background:transparent;color:var(--gold);border-color:var(--gold)}
:where(.btn-line:hover){background:var(--gold);color:#1B1206}
:where(.btn:disabled){opacity:.4;cursor:not-allowed}
:where(.btn-row){display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}/* ---------- header ---------- */


header{position:fixed;inset:0 0 auto 0;z-index:60;transition:background .3s,border-color .3s;
  border-bottom:1px solid transparent}
header.stuck{background:var(--veil);-webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);border-bottom-color:var(--hair)}
.bar{max-width:var(--max);margin:0 auto;padding:12px 22px;display:flex;align-items:center;
  justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0}
.brand img{width:44px;height:44px;object-fit:contain;mix-blend-mode:multiply}
:root[data-theme="dark"] .brand img,
:root:not([data-theme="light"]) .brand img{mix-blend-mode:normal}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) .brand img{mix-blend-mode:multiply}}
.brand .wm{font-family:"Cormorant Garamond",serif;font-size:21px;letter-spacing:.22em;
  color:var(--forest);line-height:1}
.brand .sub{font-size:8.5px;letter-spacing:.34em;color:var(--gold);text-transform:uppercase}
nav.main{display:none;gap:26px;align-items:center}
@media(min-width:1080px){nav.main{display:flex}}
nav.main a{font-size:11px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  color:var(--ink);opacity:.75;padding:6px 0;border-bottom:1px solid transparent;transition:.2s}
nav.main a:hover{opacity:1}
nav.main a.on{opacity:1;border-bottom-color:var(--gold);color:var(--gold)}
.hdr-right{display:flex;align-items:center;gap:12px}
.burger{display:flex;width:42px;height:42px;align-items:center;justify-content:center;
  border:1px solid var(--hair);background:var(--glass);color:var(--ink);cursor:pointer;
  font-size:17px;line-height:1;border-radius:2px}
@media(min-width:1080px){.burger{display:none}}
.hdr-cta{display:none}
@media(min-width:620px){.hdr-cta{display:inline-flex}}
.drawer{display:none;background:var(--ground);border-top:1px solid var(--hair)}
.drawer.open{display:block}
@media(min-width:1080px){.drawer.open{display:none}}
.drawer a{display:block;padding:15px 24px;text-decoration:none;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid var(--hair)}/* ---------- pages ---------- */


:where(main){position:relative}
.page{display:block}

/* ---------- hero ---------- */
.hero{padding-top:132px;padding-bottom:60px}
:where(.hero-grid){display:grid;gap:36px;align-items:center}
@media(min-width:900px){:where(.hero-grid){grid-template-columns:0.92fr 1.08fr;gap:52px}}
:where(.hero .elementor-widget-heading){font-size:clamp(34px,5.4vw,62px)}
:where(.hero h1){font-size:inherit}
:where(.hero h1 .gold){color:var(--gold)}
:where(.kicker){color:var(--muted)}
:where(.kicker){font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  margin-top:16px}
:where(.hero-img){border-radius:4px;overflow:hidden;border:1px solid var(--glass-line);
  box-shadow:var(--shadow)}
:where(.hero-img img){width:100%;aspect-ratio:4/3;object-fit:cover}/* ---------- specialities ---------- */



:where(.trio){display:grid;gap:22px;margin-top:44px}
@media(min-width:820px){:where(.trio){grid-template-columns:repeat(3,1fr)}}
:where(.spec){overflow:hidden;display:flex;flex-direction:column}
.spec .ph{position:relative}
:where(.spec img){width:100%;aspect-ratio:16/10;object-fit:cover}
:where(.spec .medal){position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);
  width:52px;height:52px;border-radius:50%;background:var(--ground);border:1px solid var(--gold);
  display:flex;align-items:center;justify-content:center;color:var(--gold)}
:where(.spec .body){padding:44px 24px 26px;text-align:center;display:flex;flex-direction:column;
  gap:12px;flex:1}
:where(.spec .elementor-widget-heading){font-size:22px;letter-spacing:.06em}
:where(.spec h3){font-size:inherit;letter-spacing:inherit}
:where(.spec .body){font-size:14px}
:where(.spec p){font-size:inherit}
:where(.spec .more){margin-top:auto;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);text-decoration:none;padding-top:8px}/* ---------- green band ---------- */



:where(.band){background:var(--band)}
:where(.band){color:var(--on-band)}
:where(.band h2),:where(.band h3){color:var(--on-band)}
:where(.band .elementor-widget-text-editor,:where(.band .elementor-widget-flaziz-feature)){color:rgba(244,237,226,.75)}
:where(.band .eyebrow){color:var(--gold-soft)}
:where(.band-grid){display:grid;gap:38px;align-items:start}
@media(min-width:960px){:where(.band-grid){grid-template-columns:0.85fr 1.15fr;gap:56px}}
:where(.four){display:grid;gap:26px}
@media(min-width:560px){:where(.four){grid-template-columns:1fr 1fr}}
@media(min-width:960px){:where(.four){grid-template-columns:repeat(4,1fr);gap:0}}
:where(.four>div),:where(.four>.elementor-column){padding:0 20px}
@media(min-width:960px){.four>div+div{border-left:1px solid rgba(244,237,226,.18)}}
:where(.four h3){font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-family:"Jost",sans-serif;
  font-weight:500;margin-top:12px}
:where(.four p){font-size:13px;margin-top:8px}
.ico{width:40px;height:40px;color:var(--gold-soft)}/* ---------- story ---------- */



:where(.story-grid){display:grid;gap:34px;align-items:center}
@media(min-width:900px){:where(.story-grid){grid-template-columns:1fr 1.15fr;gap:48px}}
:where(.story-imgs){display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:12px}
:where(.story-imgs img){width:100%;height:100%;object-fit:cover;border-radius:3px}
.story-imgs .tall{grid-row:span 2}
:where(.defs){display:grid;gap:8px;margin-top:22px}
:where(.defs div){display:flex;gap:16px;align-items:baseline}
:where(.defs dt){font-family:"Cormorant Garamond",serif;font-size:24px;letter-spacing:.2em;
  color:var(--forest);min-width:74px}
:where(.defs dd){margin:0;font-size:14px}
:where(.defs dd){color:var(--muted)}/* ---------- markets ---------- */



:where(.markets){display:grid;gap:16px;margin-top:36px}
@media(min-width:760px){:where(.markets){grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){:where(.markets){grid-template-columns:repeat(4,1fr)}}
:where(.mkt){display:flex;gap:16px;align-items:flex-start;padding:20px}
:where(.date){flex-shrink:0;width:52px;text-align:center;background:var(--band);color:var(--on-band);
  padding:8px 0;border-radius:2px}
:where(.date b){display:block;font-family:"Cormorant Garamond",serif;font-size:22px;line-height:1}
:where(.date span){font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
:where(.mkt h3){font-size:16px;font-family:"Jost",sans-serif;font-weight:500;letter-spacing:.02em}
:where(.mkt p){font-size:13px;margin-top:2px}
:where(.mkt .hrs){font-size:13px;margin-top:6px}
:where(.mkt .hrs){color:var(--gold)}/* ---------- social strip ---------- */



:where(.handles){display:flex;gap:26px;justify-content:center;flex-wrap:wrap;margin-top:14px}
:where(.handles a){display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.1em;
  text-decoration:none;color:var(--muted)}
:where(.handles svg){width:16px;height:16px;fill:var(--gold)}
:where(.strip){display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:26px}
@media(min-width:820px){:where(.strip){grid-template-columns:repeat(6,1fr)}}
:where(.strip img){width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px;transition:transform .6s}
.strip a:hover img{transform:scale(1.05)}
:where(.strip a){overflow:hidden;border-radius:2px;display:block}/* ---------- footer ---------- */


footer{background:var(--band);color:var(--on-band);padding:56px 0 26px}
footer h3{color:var(--on-band);font-family:"Jost",sans-serif;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;margin-bottom:16px}
footer p,footer li{color:rgba(244,237,226,.72);font-size:13px}
footer a,header a,.drawer a{color:inherit;text-decoration:none}
footer a{text-decoration:none}
footer a:hover{color:var(--gold-soft)}
.f-grid{display:grid;gap:34px}
@media(min-width:700px){:where(.f-grid){grid-template-columns:1.4fr 1fr 1fr 1fr}}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.f-legal{margin-top:40px;padding-top:22px;border-top:1px solid rgba(244,237,226,.18);
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:11.5px;
  color:rgba(244,237,226,.55)}
.f-logo img{width:88px;filter:brightness(0) invert(1);opacity:.92}
.socials{display:flex;gap:10px;margin-top:14px}
.socials a{width:34px;height:34px;border:1px solid rgba(244,237,226,.3);display:flex;
  align-items:center;justify-content:center;border-radius:50%}
.socials svg{width:15px;height:15px;fill:var(--on-band)}/* ---------- food page ---------- */



:where(.dish){display:grid;gap:30px;align-items:center;padding:34px 0}
@media(min-width:900px){:where(.dish){grid-template-columns:1fr 1fr;gap:48px}}
.dish.flip .ph{order:2}
@media(max-width:899px){.dish.flip .ph{order:0}}
:where(.dish img){width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:3px}
:where(.dish .sub-logo){width:150px;margin-bottom:14px;mix-blend-mode:multiply}
:root[data-theme="dark"] .dish .sub-logo{mix-blend-mode:normal;filter:brightness(0) invert(.92)}
:where(.chips){display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
:where(.chip){font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--gold);
  color:var(--gold);padding:5px 11px;border-radius:2px}/* ---------- gallery ---------- */



:where(.gal){display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:36px}
@media(min-width:820px){:where(.gal){grid-template-columns:repeat(3,1fr)}}
:where(.gal img){width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px}/* ---------- contact ---------- */



:where(.cards3){display:grid;gap:18px;margin-top:36px}
@media(min-width:760px){:where(.cards3){grid-template-columns:repeat(3,1fr)}}
:where(.ccard){padding:28px;text-decoration:none;display:block}
:where(.ccard h3){font-size:19px;margin-bottom:6px}
:where(.ccard p){font-size:13px}
:where(.ccard b){display:block;margin-top:10px;font-weight:500;word-break:break-word}
:where(.ccard b){color:var(--gold)}
:where(.faq){display:grid;gap:0;margin-top:10px}
:where(.faq details){border-bottom:1px solid var(--hair);padding:14px 0}
:where(.faq summary){cursor:pointer;font-family:"Cormorant Garamond",serif;font-size:19px;
  color:var(--forest);list-style:none;display:flex;justify-content:space-between;gap:16px}
:where(.faq summary)::-webkit-details-marker{display:none}
:where(.faq summary)::after{content:"+";color:var(--gold);font-family:"Jost",sans-serif}
.faq details[open] summary::after{content:"–"}
:where(.faq p){font-size:14px;margin-top:10px}/* ---------- booking form ---------- */



:where(.form-wrap){max-width:46rem;margin:0 auto}
.pips{display:flex;gap:7px;margin-bottom:26px}
.pips div{flex:1;height:2px;background:var(--hair)}
.pips div.on{background:var(--gold)}
:where(label){display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin:20px 0 7px;font-weight:500}
:where(input,select,textarea){width:100%;padding:13px 15px;font-family:inherit;font-size:15px;
  color:var(--ink);background:var(--glass-2);border:1px solid var(--hair);border-radius:2px;
  outline:none;transition:border-color .2s}
input:focus,select:focus,textarea:focus{border-color:var(--gold)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.6}
select option{background:var(--ground);color:var(--ink)}
:where(textarea){min-height:92px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.packs{display:grid;gap:12px;margin-top:10px}
@media(min-width:620px){.packs{grid-template-columns:1fr 1fr}}
.pack{text-align:left;padding:20px;cursor:pointer;background:var(--glass-2);
  border:1px solid var(--hair);border-radius:3px;font-family:inherit;transition:.2s;color:var(--ink)}
.pack:hover{border-color:var(--gold-soft)}
.pack.sel{border-color:var(--gold);background:var(--glass);box-shadow:0 0 0 1px var(--gold)}
.pack .nm{font-family:"Cormorant Garamond",serif;font-size:21px;color:var(--forest);
  display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pack .pr{font-size:15px;color:var(--gold);font-family:"Jost",sans-serif;white-space:nowrap}
.pack .ds{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.55}
.pack .inc{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);
  margin-top:10px}

.total{margin-top:24px;padding:24px;text-align:center;border:1px solid var(--gold);
  border-radius:3px;background:var(--glass-2)}
.total .amt{font-family:"Cormorant Garamond",serif;font-size:42px;color:var(--forest);line-height:1}
.total .cap{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  margin-top:8px}
.total .cap2{font-size:13px;color:var(--muted);margin-top:4px}

.remain{margin-top:18px;padding:14px;text-align:center;font-size:14px;border-radius:2px;
  border:1px solid var(--hair);background:var(--glass-2);color:var(--muted)}
.remain.ok{border-color:#4B7F52;color:#3E7146;background:rgba(75,127,82,.10)}
.remain.over{border-color:#A8432F;color:#A8432F;background:rgba(168,67,47,.10)}
:root[data-theme="dark"] .remain.ok{color:#9CCBA2}
:root[data-theme="dark"] .remain.over{color:#E8A092}

.combo{border:1px solid var(--hair);border-radius:3px;padding:18px;margin-top:16px;
  background:var(--glass-2)}
.combo h3{font-size:17px;margin-bottom:6px}
.seg{display:flex;gap:9px;margin-top:8px;flex-wrap:wrap}
.seg button{flex:1 1 130px;padding:11px;border:1px solid var(--hair);background:transparent;
  color:var(--ink);font-family:inherit;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  cursor:pointer;border-radius:2px;transition:.2s}
.seg button:hover{border-color:var(--gold-soft)}
.seg button.sel{background:var(--gold);border-color:var(--gold);color:#1B1206}
.note{font-size:12.5px;color:var(--muted);text-align:right;margin-top:8px}
.linkish{background:none;border:0;color:#A8432F;font-size:12px;text-decoration:underline;
  cursor:pointer;padding:0;margin-top:12px;font-family:inherit}
.nav-btns{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.nav-btns .btn{flex:1 1 150px}
.tick{font-size:38px;color:var(--gold)}
.summary{border:1px solid var(--hair);border-radius:3px;padding:20px;margin-top:24px;
  text-align:left;font-size:14px;display:grid;gap:9px}
.summary span{color:var(--muted)}
.summary b{font-weight:500}

/* ---------- reveal ---------- */
/* Blocks fade in as you scroll. The hidden state only applies once the
   theme's own script has run and put .flz-anim on the page — so if the
   script is blocked, or we are inside the Elementor editor, nothing is
   ever hidden and everything stays clickable. */
.flz-anim .rev{opacity:0;transform:translateY(24px);
  transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.flz-anim .rev.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .flz-anim .rev{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  #bg video{display:none}
}

/* ---------- preview banner ---------- */
#pv{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:80;
  background:var(--band);color:var(--on-band);padding:10px 16px;border-radius:2px;
  font-size:11.5px;letter-spacing:.08em;display:flex;gap:14px;align-items:center;
  max-width:calc(100vw - 28px);box-shadow:var(--shadow)}
#pv button{background:none;border:0;color:rgba(244,237,226,.6);cursor:pointer;font-size:15px}

/* =======================================================================
   QUOTE BUILDER — the original two-mode layout, extended
   ======================================================================= */
.flz-pips{display:flex;gap:7px;margin-bottom:26px}
.flz-pips div{flex:1;height:2px;background:var(--hair)}
.flz-pips div.on{background:var(--gold)}

.flz-seg{display:flex;gap:9px;margin-top:8px;flex-wrap:wrap}
.flz-seg button{flex:1 1 140px;padding:12px;border:1px solid var(--hair);background:transparent;
  color:var(--ink);font-family:inherit;font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;border-radius:2px;transition:.2s}
.flz-seg button:hover{border-color:var(--gold-soft)}
.flz-seg button.sel{background:var(--gold);border-color:var(--gold);color:#1B1206}

.flz-row{border:1px solid var(--hair);border-radius:3px;padding:20px;margin-top:16px;
  background:var(--glass-2)}
.flz-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--hair)}
.flz-row-head strong{font-family:"Cormorant Garamond",serif;font-size:19px;color:var(--forest);
  font-weight:600}
.flz-row-name{display:flex;flex-direction:column;gap:3px}
.flz-row-sub{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.55}
.flz-row-price{font-size:13px;color:var(--gold);white-space:nowrap;padding-top:4px}
.flz-row-x{background:none;border:1px solid var(--hair);color:var(--muted);width:28px;height:28px;
  border-radius:50%;cursor:pointer;font-size:12px;line-height:1;flex-shrink:0;transition:.2s}
.flz-row-x:hover{border-color:#A8432F;color:#A8432F}
.flz-row-warn{font-size:12.5px;color:#A8432F;margin-top:10px}
:root[data-theme="dark"] .flz-row-warn{color:#E8A092}
.flz-line-total{font-size:12.5px;color:var(--muted);text-align:right;margin-top:8px;
  font-variant-numeric:tabular-nums}

.flz-add{width:100%;margin-top:16px;padding:14px;border:1px dashed var(--gold);background:transparent;
  color:var(--gold);font-family:inherit;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;border-radius:2px;transition:.2s}
.flz-add:hover{background:var(--gold);color:#1B1206;border-style:solid}

.flz-remain{margin-top:20px;padding:15px;text-align:center;font-size:14px;border-radius:2px;
  border:1px solid var(--hair);background:var(--glass-2);color:var(--muted)}
.flz-remain.ok{border-color:#4B7F52;color:#3E7146;background:rgba(75,127,82,.10)}
.flz-remain.over{border-color:#A8432F;color:#A8432F;background:rgba(168,67,47,.10)}
:root[data-theme="dark"] .flz-remain.ok{color:#9CCBA2}
:root[data-theme="dark"] .flz-remain.over{color:#E8A092}
.flz-hint{font-size:13px;color:var(--muted);margin-top:12px}

.flz-rough{margin-top:16px;padding:16px 18px;border-radius:3px;font-size:15px;
  color:var(--muted);background:var(--glass-2);border:1px solid var(--hair);line-height:1.6}
.flz-rough.has{border-color:var(--gold);color:var(--ink)}
.flz-rough strong{font-family:"Cormorant Garamond",Georgia,serif;font-size:22px;
  color:var(--forest);font-weight:600}


/* =========================================================================
   WORDPRESS BRIDGE
   The stylesheet above is the preview's, unchanged. Everything below only
   deals with things WordPress adds that the preview never had.
   ========================================================================= */

/* the admin bar pushes the fixed header down when you are logged in */
body.admin-bar header{top:32px}
@media(max-width:782px){body.admin-bar header{top:46px}}/* Elementor wraps page content; make it get out of the way */



:where(body.flz .elementor-section.elementor-section-boxed>.elementor-container){max-width:none}
:where(body.flz .elementor-widget-shortcode),:where(body.flz .elementor-widget-container){margin:0}
:where(body.flz .elementor-widget:not(:last-child)){margin-bottom:0}

/* Hello Elementor's own page padding */
body.flz .site-main,body.flz #content,body.flz .page-content{padding:0;margin:0;max-width:none}
body.flz .entry-header,body.flz .page-header{display:none}

/* WordPress galleries and captions inside our sections */
body.flz figure{margin:0}
body.flz img{height:auto}

/* skip link */
body.flz .skip-link{position:absolute;left:-9999px}
body.flz .skip-link:focus{left:8px;top:8px;z-index:900;background:var(--ground);
  color:var(--forest);padding:10px 16px;border:1px solid var(--gold)}

/* WordPress menus come out as <ul><li><a>, where the preview had bare links */
body.flz nav.main ul{display:flex;gap:26px;align-items:center;list-style:none;margin:0;padding:0}
body.flz nav.main li{position:relative}
body.flz nav.main li a{padding:6px 0;display:block}
body.flz nav.main .current-menu-item>a,
body.flz nav.main .current-menu-ancestor>a{opacity:1;color:var(--gold);border-bottom:1px solid var(--gold)}
body.flz nav.main .sub-menu{display:none;position:absolute;top:100%;left:-14px;min-width:210px;
  flex-direction:column;gap:0;padding:8px 0;background:var(--ground);border:1px solid var(--hair);
  box-shadow:var(--shadow);z-index:10}
body.flz nav.main li:hover>.sub-menu,
body.flz nav.main li:focus-within>.sub-menu{display:flex}
body.flz nav.main .sub-menu a{padding:11px 18px;border-bottom:0}
body.flz nav.main .sub-menu a:hover{background:var(--ground-2);color:var(--gold)}
body.flz .drawer ul{list-style:none;margin:0;padding:0}
body.flz .drawer .sub-menu{background:var(--ground-2)}
body.flz .drawer .sub-menu a{padding-left:38px}
@media(max-width:1079px){body.flz nav.main{display:none}}/* =========================================================================
   ELEMENTOR BRIDGE — native widgets
   Every block on the site is built from real Elementor widgets so you can
   click any word, picture or button and change it. Elementor puts a few
   extra wrappers around whatever you drop in; these rules make those
   wrappers behave exactly like the plain markup the design was drawn with.
   Nothing here changes how the site looks.
   ========================================================================= */
/* Elementor's own spacing must not fight the design's */








/* the row inside a section carries the design's layout */



:where(body.flz .flzc-wrap>.elementor-container){max-width:var(--max);margin:0 auto;padding:0 22px;width:100%}
:where(body.flz .flzg>.elementor-container>.elementor-column){width:auto;max-width:none;flex:initial}

:where(body.flz .flzc-hero>.elementor-container){display:grid;gap:36px;align-items:center}
@media(min-width:900px){:where(body.flz .flzc-hero>.elementor-container){grid-template-columns:0.92fr 1.08fr;gap:52px}}

:where(body.flz .flzc-trio>.elementor-container){display:grid;gap:22px;margin-top:44px}
@media(min-width:820px){:where(body.flz .flzc-trio>.elementor-container){grid-template-columns:repeat(3,1fr)}}

:where(body.flz .flzc-band>.elementor-container){display:grid;gap:38px;align-items:start}
@media(min-width:960px){:where(body.flz .flzc-band>.elementor-container){grid-template-columns:0.85fr 1.15fr;gap:56px}}

:where(body.flz .flzc-four>.elementor-container){display:grid;gap:26px}
@media(min-width:560px){:where(body.flz .flzc-four>.elementor-container){grid-template-columns:1fr 1fr}}
@media(min-width:960px){:where(body.flz .flzc-four>.elementor-container){grid-template-columns:repeat(4,1fr);gap:0}}
:where(body.flz .flzc-four>.elementor-container>.elementor-column){padding:0 20px}
@media(min-width:960px){body.flz .flzc-four>.elementor-container>.elementor-column+.elementor-column{border-left:1px solid rgba(244,237,226,.18)}}

:where(body.flz .flzc-story>.elementor-container){display:grid;gap:34px;align-items:center}
@media(min-width:900px){:where(body.flz .flzc-story>.elementor-container){grid-template-columns:1fr 1.15fr;gap:48px}}

:where(body.flz .flzc-storyimgs>.elementor-container){display:grid;grid-template-columns:1.35fr 1fr;
  grid-template-rows:1fr 1fr;gap:12px}
body.flz .flzc-storyimgs .tall{grid-row:span 2}
:where(body.flz .flzc-storyimgs img){width:100%;height:100%;object-fit:cover;border-radius:3px}

:where(body.flz .flzc-dish>.elementor-container){display:grid;gap:30px;align-items:center}
@media(min-width:900px){:where(body.flz .flzc-dish>.elementor-container){grid-template-columns:1fr 1fr;gap:48px}}
@media(min-width:900px){body.flz .flzc-dish.flip>.elementor-container>.elementor-column:first-child{order:2}}

:where(body.flz .flzc-cards3>.elementor-container){display:grid;gap:18px;margin-top:36px}
@media(min-width:760px){:where(body.flz .flzc-cards3>.elementor-container){grid-template-columns:repeat(3,1fr)}}

:where(body.flz .btn-row>.elementor-container){display:flex;flex-wrap:wrap;gap:12px;align-items:center}
body.flz .btn-row.center>.elementor-container{justify-content:center}

/* Elementor's button widget, wearing the design's button */
body.flz .flz-btn .elementor-button-wrapper{line-height:0}
:where(body.flz .flz-btn .elementor-button){display:inline-flex;align-items:center;justify-content:center;
  gap:9px;padding:14px 28px;font-size:12px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid transparent;
  border-radius:0;font-family:inherit;background:none;color:inherit;
  transition:background .25s,color .25s,border-color .25s}
:where(body.flz .flz-btn .elementor-button-content-wrapper){gap:9px}
:where(body.flz .flz-btn-solid .elementor-button){background:var(--band);color:var(--on-band)}
:where(body.flz .flz-btn-solid .elementor-button:hover){background:var(--forest);color:var(--on-band)}
:where(body.flz .flz-btn-gold .elementor-button){background:var(--gold);color:#1B1206}
:where(body.flz .flz-btn-gold .elementor-button:hover){background:var(--gold-soft);color:#1B1206}
:where(body.flz .flz-btn-line .elementor-button){background:transparent;color:var(--gold);border-color:var(--gold)}
:where(body.flz .flz-btn-line .elementor-button:hover){background:var(--gold);color:#1B1206}/* the text link under a speciality card */



:where(body.flz .flz-more .elementor-button){padding:0;background:none;border:0;color:var(--gold);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase}

/* image widgets sit flush */
body.flz .elementor-widget-image{line-height:0}
:where(body.flz .elementor-widget-image figure),:where(body.flz .elementor-widget-image img){margin:0;display:block}
body.flz .elementor-widget-image .elementor-image{line-height:0}/* a column that is one of the design's panels */



:where(body.flz .spec>.elementor-widget-wrap){display:flex;flex-direction:column;height:100%}
:where(body.flz .spec .body>.elementor-container){display:flex;flex-direction:column;height:100%}
body.flz .spec .more{margin-top:auto}

/* text widgets must not add their own paragraph spacing */
body.flz .elementor-widget-text-editor p:last-child{margin-bottom:0}/* the narrow columns the story and questions panels sit in */



:where(body.flz .flz-narrow){max-width:900px;margin:0 auto}
:where(body.flz .flz-narrow .glass.pad){width:100%}/* Elementor's gallery widget, wearing the design's photo grid */



:where(body.flz .gal .gallery){display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0}
@media(min-width:760px){:where(body.flz .gal .gallery){grid-template-columns:repeat(3,1fr)}}
:where(body.flz .gal .gallery-item){margin:0!important;width:auto!important;float:none!important;padding:0}
:where(body.flz .gal .gallery img){width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px;border:0}
body.flz .gal .gallery-icon{line-height:0}
:where(body.flz .gal .gallery-caption){display:none}/* the numbered steps on the catering page */



:where(body.flz .step-no){font-size:18px}
:where(.step-no){color:var(--gold)}

/* inner sections never take the page's own section padding */
/* never hide anything while the page is being edited */



:where(body.elementor-editor-active .rev),:where(body.elementor-editor-preview .rev),:where(.elementor-editor-active .rev){opacity:1!important;transform:none!important;transition:none!important}/* the menu shown inside the enquiry form, purely as a reminder */



:where(.flz-menu-ref){display:grid;gap:18px;margin:22px 0 6px;padding:22px;border:1px solid var(--hair);
  border-radius:3px;background:var(--glass-2)}
:where(.flz-menu-group h3){font-family:"Jost",sans-serif;font-size:11px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;margin-bottom:10px}
:where(.flz-menu-group h3){color:var(--muted)}
.flz-menu-ref .chips{margin-top:0}

/* one column per social account, each with its logo underneath */
/* Follow the flavour, when it was built by hand out of two sections.
   The two sections become equal halves of one row, so what only lined up on a
   34" monitor now lines up on a laptop and a phone too. Plain classes, and
   !important on the nudges, because Elementor writes those margins itself. */
.flz-pair{display:grid;grid-template-columns:repeat(var(--flz-pair-cols,2),minmax(0,1fr));
  gap:40px;align-items:start;max-width:980px;margin:0 auto;padding:0 24px;width:100%}
.flz-pair .flz-pair-item{width:auto!important;max-width:none!important;
  margin-left:0!important;margin-right:0!important;left:auto!important;right:auto!important;
  float:none!important;position:relative!important;min-width:0}
.flz-pair .flz-pair-item .elementor-container{margin-left:auto!important;margin-right:auto!important}
/* Centre whatever is inside each half. */
.flz-pair .flz-pair-item .elementor-widget-wrap{align-content:start;justify-content:center}
.flz-pair .flz-pair-item .elementor-widget{width:100%;text-align:center}
.flz-pair .flz-pair-item .elementor-widget-image img{margin-left:auto;margin-right:auto;display:block;
  max-height:190px;width:auto;object-fit:contain}
.flz-pair .flz-pair-item .elementor-social-icons-wrapper,
.flz-pair .flz-pair-item .elementor-widget-social-icons .elementor-widget-container{
  display:flex;justify-content:center}
@media(max-width:900px){.flz-pair{gap:28px}
  .flz-pair .flz-pair-item .elementor-widget-image img{max-height:150px}}
/* A media query. Everything inside only applies when the window is 640px wide
   or narrower — a phone. These live at the bottom of the file so they win. */
@media(max-width:640px){.flz-pair{grid-template-columns:1fr;gap:34px}
  .flz-pair .flz-pair-item .elementor-widget-image img{max-height:130px}}

/* Follow the flavour — one equal column per account.
   These are plain classes, not :where(), on purpose. If the section ever
   renders before Elementor's own settings load, or a cache serves an old
   file, it must still come out level rather than as two giant pictures.
   Elementor's panel is more specific again, so its settings still win. */
/* -----------------------------------------------------------------------
   FOLLOW THE FLAVOUR
   display:grid with two equal columns. minmax(0,1fr) means "two halves, and
   never let a wide picture push its half wider than the other". Every logo
   gets the same height box and is centred in it, which is what keeps a round
   logo level with a wide one — sizing by width would not.
   ----------------------------------------------------------------------- */
.flz-accounts{display:grid;grid-template-columns:repeat(var(--flz-cols,2),minmax(0,1fr));
  column-gap:40px;row-gap:40px;margin-top:26px;align-items:start;
  max-width:860px;margin-left:auto;margin-right:auto}
.flz-account{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  gap:18px;text-align:center;min-width:0;text-decoration:none}
.flz-accounts.is-logo-first .flz-account{flex-direction:column-reverse}

.flz-account__tag{display:inline-flex;align-items:center;gap:8px;justify-content:center;
  font-family:"Jost",sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  text-decoration:none;color:var(--muted);transition:color .25s,background .25s}
.flz-account__tag svg{width:18px;height:18px;fill:var(--gold);flex-shrink:0}
a.flz-account__tag:hover,a.flz-account.is-link:hover .flz-account__tag{color:var(--gold)}

/* The shared box. Every logo is centred in the same height, which is what
   keeps a round logo level with a wide one. */
.flz-account__logo{height:150px;width:100%;display:flex;align-items:center;
  justify-content:center;min-width:0;text-decoration:none}
.flz-account__logo img{max-height:calc(100% * var(--flz-scale,1));max-width:100%;
  width:auto;height:auto;object-fit:contain;transition:transform .35s,opacity .35s}

.flz-accounts.hov-lift .flz-account:hover img{transform:translateY(-5px)}
.flz-accounts.hov-zoom .flz-account:hover img{transform:scale(1.06)}
.flz-accounts.hov-fade .flz-account:hover img{opacity:.72}

@media(max-width:900px){.flz-account__logo{height:130px}}
@media(max-width:640px){
  .flz-accounts{grid-template-columns:1fr}
  .flz-account__logo{height:120px}
}

/* postcode box with its Find button beside it */
/* -----------------------------------------------------------------------
   THE POSTCODE ROW — the box and its Find address button side by side.
   grid-template-columns: 1fr auto means "box takes the space left over,
   button takes exactly what it needs".
   ----------------------------------------------------------------------- */
:where(.flz-find){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
:where(.flz-find input){margin:0;text-transform:uppercase}
:where(.flz-find .btn){margin:0;white-space:nowrap;padding:12px 20px}
:where(.flz-find-note){margin-top:8px;font-size:13px;color:var(--muted)}
:where(.flz-find-note.is-bad){color:#B3261E}
:where(#flzAddrList){margin-top:10px}
:where(#flzAddrFields){margin-top:4px}
@media(max-width:520px){:where(.flz-find){grid-template-columns:1fr}}

/* the country code sits beside the number, not above it */
:where(.flz-phone){display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:10px;align-items:start}
:where(.flz-phone select){max-width:190px}
:where(.flz-phone input){margin:0}
@media(max-width:520px){:where(.flz-phone){grid-template-columns:1fr}
  :where(.flz-phone select){max-width:none}}

/* -----------------------------------------------------------------------
   THE WHATSAPP BUTTON on the thank-you step. WhatsApp green, because people
   recognise it instantly and a Flaziz-coloured one gets ignored.
   ----------------------------------------------------------------------- */
:where(.flz-wa){display:inline-flex;align-items:center;justify-content:center;gap:10px;
  margin-top:18px;background:#25D366;border-color:#25D366;color:#0B291D}
:where(.flz-wa:hover){background:#1EBE5A;border-color:#1EBE5A}
:where(.flz-wa svg){width:19px;height:19px;fill:currentColor;flex-shrink:0}
:where(.flz-wa-note){margin-top:9px;font-size:12.5px;color:var(--muted);text-align:center}

/* the date written out under the picker */
:where(#flzDateWords:empty){display:none}
:where(#flzDateWords){color:var(--gold);margin-top:8px}


/* =========================================================================
   THE SIDE DRAWER MENU — tablet and phone only.

   Laptops and desktops are not touched by a single line of this. Everything
   below sits inside @media (max-width:1024px), which is Elementor's own
   tablet breakpoint and the width at which your header already switches to
   the burger.

   What it does:
     · the logo moves to the middle of the header
     · the burger becomes a half-circle tab against the left edge
     · the menu slides in from the left as a full-height column
     · a dark veil covers the page behind it

   HOW THE SLIDING WORKS
   Elementor's own script opens the menu by sliding it down and sets
   display:none on it afterwards. We overrule that with display:block and
   !important — a stylesheet rule marked !important beats an inline style —
   and then do the movement ourselves with transform, driven entirely by the
   aria-expanded="true" that Elementor puts on the burger. Nothing here fights
   Elementor for control; it just reads what Elementor has already decided.
   ========================================================================= */
@media (max-width:1024px){

  /* --- the header bar: burger left, logo middle, button right ---

     Three grid tracks: 1fr | auto | 1fr. The two outer tracks are always the
     same width as each other, so whatever is in the middle sits dead centre
     of the bar on its own, with no absolute positioning and no arithmetic —
     and it can never ride over the burger or the button, because a grid track
     will not let it.

     One rule to be careful of: a transform on any parent of the drawer turns
     that parent into the anchor for position:fixed, and the drawer then
     measures itself against that parent instead of the screen. Grid needs no
     transforms, which is another reason it is the right tool here. */
  .elementor-location-header .elementor-top-section > .elementor-container{
    display:grid!important;grid-template-columns:1fr auto 1fr;grid-template-rows:auto;
    align-items:center;position:relative;min-height:64px;gap:0}
  /* Nothing may hold the bar away from the left edge, or the half circle
     would float instead of sitting against the side of the screen. */
  .elementor-location-header .elementor-top-section > .elementor-container{
    padding-left:0!important;margin-left:0!important;max-width:100%!important}
  .elementor-location-header .elementor-top-section{padding:0!important}
  .elementor-location-header .elementor-top-column:has(.elementor-widget-nav-menu)
    .elementor-element{margin:0!important;padding:0!important}
  /* Every column is pinned to row 1. The logo comes first in the page's code
     but belongs in the middle track, and without this the ones that follow it
     would be pushed onto a second row rather than back to the left. */

  /* the burger's column */
  .elementor-location-header .elementor-top-column:has(.elementor-widget-nav-menu){
    grid-column:1;grid-row:1;justify-self:start;
    position:static!important;transform:none!important;
    width:auto!important;max-width:none!important;margin:0!important}

  /* the logo, in the middle track */
  .elementor-location-header .elementor-top-column:has(.elementor-widget-theme-site-logo){
    grid-column:2;grid-row:1;justify-self:center;
    position:static!important;transform:none!important;
    width:auto!important;max-width:100%!important;margin:0!important;min-width:0}
  .elementor-location-header .elementor-top-column:has(.elementor-widget-theme-site-logo)
    .elementor-widget-wrap{justify-content:center;padding:0}
  /* The logo is what makes the bar tall, so its height is capped — but the
     width has to be released at the same time. Elementor sets an exact width
     on that picture; leaving it in place while shortening the height is what
     was squashing the logo flat. Both are handed back to the browser, and
     max-height alone decides the size. */
  .elementor-location-header .elementor-widget-theme-site-logo img{
    margin:0 auto;display:block;
    width:auto!important;height:auto!important;
    max-width:100%!important;max-height:52px!important;
    object-fit:contain}

  /* the Enquire button */
  .elementor-location-header .elementor-top-column:has(> .elementor-widget-wrap > .elementor-widget-button){
    grid-column:3;grid-row:1;justify-self:end;
    position:static!important;transform:none!important;
    width:auto!important;max-width:none!important;margin:0 8px 0 0!important}

  .elementor-location-header .elementor-top-column:has(.elementor-widget-nav-menu)
    .elementor-widget-wrap,
  .elementor-location-header .elementor-top-column:has(> .elementor-widget-wrap > .elementor-widget-button)
    .elementor-widget-wrap{padding:0;width:auto}
  .elementor-location-header .elementor-widget-button .elementor-button{
    padding:9px 14px;font-size:11px;letter-spacing:.08em;white-space:nowrap}

  /* On a narrow phone everything is given a little less room. */
  @media (max-width:480px){
    .elementor-location-header .elementor-top-section > .elementor-container{min-height:56px}
    .elementor-location-header .elementor-widget-theme-site-logo img{max-height:44px!important}
    .elementor:not(.elementor-location-header):not(.elementor-location-footer)
      > .elementor-top-section:first-child,
    .elementor:not(.elementor-location-header):not(.elementor-location-footer)
      > .e-con:first-child{padding-top:104px!important}
    .elementor-location-header .elementor-widget-button .elementor-button{
      padding:8px 10px;font-size:10px;letter-spacing:.05em}
  }

  /* --- the burger, as a half circle against the left edge --- */
  .elementor-location-header .elementor-menu-toggle{
    width:46px;height:46px;padding:0 6px 0 2px;
    margin-left:0!important;
    display:flex;align-items:center;justify-content:center;
    background:var(--band)!important;color:var(--on-band)!important;
    border:0;border-radius:0 999px 999px 0;
    box-shadow:0 6px 20px -8px rgba(11,41,29,.55);
    transition:background .25s,transform .25s}
  /* The three lines take the gold of the Enquire button, so they read against
     the dark green instead of disappearing into it. */
  .elementor-location-header .elementor-menu-toggle svg,
  .elementor-location-header .elementor-menu-toggle i,
  .elementor-location-header .elementor-menu-toggle svg path{
    width:21px;height:21px;font-size:21px;
    fill:var(--gold-soft)!important;color:var(--gold-soft)!important}
  .elementor-location-header .elementor-menu-toggle:hover{background:var(--forest)!important}
  /* Open or shut, the burger stays where it is — the drawer slides over it.
     Moving it would mean a transform on the drawer's own parent, and that
     would stop the drawer measuring itself against the screen. */

  /* --- the drawer --- */
  .elementor-location-header .elementor-menu-toggle ~ .elementor-nav-menu--dropdown{
    display:block!important;              /* beats the inline display:none */
    /* "~" not "+" — anything else landing between the burger and the drawer
       would stop a "+" matching, and the menu would silently stop opening. */
    position:fixed;top:0;left:0;
    width:min(64vw,272px);height:100%;height:100dvh;
    max-height:none;margin:0;padding:86px 0 30px;
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    background:var(--band);
    box-shadow:14px 0 40px -18px rgba(11,41,29,.7);
    /* !important because Elementor animates this same property itself — it
       squashes the menu vertically. Ours slides it in from the side instead,
       which is what a drawer should do. */
    transform:translateX(-101%)!important;
    transition:transform .32s cubic-bezier(.4,0,.2,1);
    z-index:10000;visibility:hidden}
  .elementor-location-header .elementor-menu-toggle[aria-expanded="true"] ~ .elementor-nav-menu--dropdown{
    transform:translateX(0)!important;visibility:visible}

  /* the links inside it, stacked down the page */
  .elementor-location-header .elementor-nav-menu--dropdown .elementor-nav-menu{
    display:block;width:100%}
  .elementor-location-header .elementor-nav-menu--dropdown .elementor-nav-menu li{
    display:block;width:100%;border-bottom:1px solid rgba(244,237,226,.12)}
  .elementor-location-header .elementor-nav-menu--dropdown .elementor-item{
    display:block;width:100%;text-align:left;
    padding:15px 26px!important;
    font-family:"Jost",sans-serif;font-size:13px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--on-band)!important;
    background:transparent!important;border:0}
  .elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover,
  .elementor-location-header .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{
    color:var(--gold)!important;background:rgba(244,237,226,.05)!important}
  /* the drop-down items under Our Food, indented */
  .elementor-location-header .elementor-nav-menu--dropdown .sub-menu .elementor-item{
    padding-left:44px!important;font-size:12px;
    color:var(--gold-soft)!important;text-transform:none;letter-spacing:.06em}

  /* The Enquire button, once it has been copied into the drawer. Its own
     column is hidden rather than moved, so the laptop header is untouched.
     "> wrap >" keeps this from matching the burger's column, which now holds
     the copy and would otherwise be sent to the wrong side of the header. */
  .elementor-location-header.flz-cta-moved
    .elementor-top-column:has(> .elementor-widget-wrap > .elementor-widget-button){
    display:none!important}
  .flz-drawer-cta{
    margin:26px 18px 10px!important;width:auto!important;display:block;
    padding-top:22px;border-top:1px solid rgba(244,237,226,.16)}
  .flz-drawer-cta .elementor-button{
    display:block!important;width:100%;text-align:center;
    background:var(--gold)!important;color:var(--band)!important;
    border:0!important;padding:15px 16px!important;border-radius:3px;
    font-size:12px!important;letter-spacing:.16em;font-weight:600;
    min-height:0;line-height:1.3}
  .flz-drawer-cta .elementor-button:hover{background:var(--gold-soft)!important}

  /* the veil behind it, added by flaziz-theme.js */
  .flz-drawer-veil{
    position:fixed;inset:0;z-index:9990;
    background:rgba(11,41,29,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
    opacity:0;pointer-events:none;transition:opacity .3s}
  .flz-drawer-veil.is-open{opacity:1;pointer-events:auto}
  /* stop the page behind scrolling while the drawer is open */
  body.flz-drawer-open{overflow:hidden}
}


/* =========================================================================
   TIDYING UP THE PAGE ON TABLET AND PHONE

   Everything here is inside a screen-size guard, so a laptop never sees it.

   THE PROBLEM IT SOLVES
   Sections built by hand carry pixel nudges. On the home page the two hero
   buttons carry margin-left:299px and margin-left:-32px — numbers typed while
   looking at a wide monitor. On a 390px phone those same numbers push one
   button off the side of the screen and drag the other on top of it, and the
   page then scrolls sideways, which is what makes everything look crooked.

   ":not(.elementor-location-header *)" means "not inside the header" — the
   header has its own rules above and must not be disturbed by these.
   ========================================================================= */
@media (max-width:1024px){

  /* Nothing may be wider than the screen. On its own this stops the sideways
     scrolling that makes a phone layout look broken. */
  .elementor-location-header,.elementor-location-footer,
  .elementor-section,.elementor-container,.elementor-column,
  .e-con,.e-con-inner,.elementor-widget-wrap,.elementor-widget{
    max-width:100%!important}

  /* --- the nudges, ignored ---
     A sideways nudge is always wrong on a narrow screen: it was measured
     against a wider one. Vertical spacing is left exactly as it is. */
  .elementor-element:not(.elementor-location-header *),
  .e-con:not(.elementor-location-header *){
    margin-left:0!important;margin-right:0!important;
    left:auto!important;right:auto!important;float:none!important}

  /* A widget given a width in pixels goes back to fitting its space. */
  .elementor-widget__width-initial:not(.elementor-location-header *),
  .elementor-widget__width-auto:not(.elementor-location-header *){
    width:auto!important;max-width:100%!important}

  /* --- centring --- */
  .elementor-widget-wrap:not(.elementor-location-header *){
    justify-content:center;align-content:flex-start}

  .elementor-widget-heading:not(.elementor-location-header *),
  .elementor-widget-text-editor:not(.elementor-location-header *),
  .elementor-widget-flaziz-rule:not(.elementor-location-header *),
  .elementor-widget-icon-list:not(.elementor-location-header *){text-align:center}
  .elementor-widget-heading:not(.elementor-location-header *) .elementor-heading-title,
  .elementor-widget-text-editor:not(.elementor-location-header *){text-align:center!important}

  .elementor-widget-image:not(.elementor-location-header *){text-align:center}
  .elementor-widget-image:not(.elementor-location-header *) img{
    margin-left:auto!important;margin-right:auto!important;
    display:block;max-width:100%;height:auto}

  .elementor-icon-list-items:not(.elementor-location-header *){
    display:flex;flex-direction:column;align-items:center}
  .elementor-icon-list-item:not(.elementor-location-header *){justify-content:center}

  /* --- containers ---
     An Elementor v4 container is a GRID, and its track sizes were worked out
     for a wide screen. Two buttons were being placed into the same track and
     landing on top of each other.

     Below a tablet the container goes back to plain block layout — one thing
     under another. Blocks cannot overlap; grid and flex both can, once
     something has been given a track or a position of its own. */
  .e-con:not(.elementor-location-header *) > .e-con-inner,
  .e-con-inner:not(.elementor-location-header *){
    display:block!important;
    grid-template-columns:none!important;grid-template-rows:none!important;
    grid-auto-flow:row!important;text-align:center}
  .e-con-inner:not(.elementor-location-header *) > *{
    grid-area:auto!important;grid-column:auto!important;grid-row:auto!important;
    position:static!important;
    width:100%!important;max-width:100%!important;
    margin:0 auto 12px!important;float:none!important}

  /* --- buttons --- */
  .elementor-widget-button:not(.elementor-location-header *){
    text-align:center;margin-left:auto!important;margin-right:auto!important}
  .elementor-widget-button:not(.elementor-location-header *) .elementor-button{
    display:inline-flex;align-items:center;justify-content:center;
    text-align:center;white-space:normal;line-height:1.25;max-width:100%}

  /* --- columns stack ---
     Side-by-side columns are what squeeze a heading into a narrow strip and
     leave it looking off centre. Below a tablet they stack, full width. */
  .elementor-section:not(.elementor-location-header *) > .elementor-container > .elementor-column{
    width:100%!important;flex:0 0 100%!important;max-width:100%!important}

  /* --- footer ---
     Its columns stack instead of squeezing into slivers, which is what makes
     the blurb, Quick links and Get in touch run into one another. */
  .elementor-location-footer .elementor-top-column,
  .elementor-location-footer .elementor-column{
    width:100%!important;flex:0 0 100%!important;max-width:100%!important}
  .elementor-location-footer .elementor-widget-wrap{padding:0 16px;justify-content:center}
  .elementor-location-footer .elementor-widget{margin-bottom:8px}
  .elementor-location-footer .elementor-widget-image img{max-width:190px}
}

/* --- phones only --- */
@media (max-width:767px){
  .elementor-widget-button:not(.elementor-location-header *){width:100%!important}
  .elementor-widget-button:not(.elementor-location-header *) .elementor-button{
    width:100%;max-width:300px}
}


/* =========================================================================
   THE LAST THREE, ON TABLET AND PHONE

   Still inside a screen-size guard — a laptop sees none of it.
   ========================================================================= */
@media (max-width:1024px){

  /* --- the gap under the header ---
     The first section on the home page carries padding-top:132px, which was
     measured against a tall desktop screen. On a phone that is most of what
     you can see before you scroll, so the logo ends up marooned above a page
     of empty space. */
  /* The header sits OVER the top of the first section rather than above it,
     so that padding is what stops the heading disappearing behind the logo.
     It cannot simply be removed — but it was set to 132px for a header that
     was 161px tall. The header is now about 90px, so this clears it with a
     little breathing room and nothing more. */
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-top-section:first-child,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .e-con:first-child{
    padding-top:112px!important}

  /* The heading in the hero carries padding-top:104px of its own, typed in
     Elementor against a tall desktop screen. Together with the space needed
     to clear the header that is most of a phone screen before you read a
     word. The section keeps the padding that clears the header; the heading
     inside it gives its own back. */
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .elementor-top-section:first-child .elementor-widget-heading,
  .elementor:not(.elementor-location-header):not(.elementor-location-footer)
    > .e-con:first-child .elementor-widget-heading{
    padding-top:0!important}

  /* --- centring, for every kind of widget ---
     The blocks under Catering & Events are a Flaziz widget of their own, and
     naming widgets one at a time will always miss one. Everything outside the
     header is centred, and the few things that must stay left are put back
     underneath. */
  .elementor-widget:not(.elementor-location-header *){text-align:center}
  .elementor-widget:not(.elementor-location-header *) .elementor-widget-container{
    text-align:center}

  /* the Flaziz widgets, whose insides lay themselves out */
  .elementor-widget-flaziz-feature:not(.elementor-location-header *) .feature,
  .elementor-widget-flaziz-feature:not(.elementor-location-header *) > *{
    text-align:center;align-items:center;justify-content:center}
  .elementor-widget-flaziz-feature:not(.elementor-location-header *) svg,
  .elementor-widget-flaziz-feature:not(.elementor-location-header *) img{
    margin-left:auto;margin-right:auto;display:block}
  .elementor-widget-flaziz-markets:not(.elementor-location-header *),
  .elementor-widget-flaziz-defs:not(.elementor-location-header *),
  .elementor-widget-flaziz-chips:not(.elementor-location-header *),
  .elementor-widget-flaziz-fillings:not(.elementor-location-header *),
  .elementor-widget-flaziz-contact-cards:not(.elementor-location-header *){
    text-align:center}
  .flz-chips:not(.elementor-location-header *),
  .chips:not(.elementor-location-header *){
    justify-content:center}

  /* The enquiry form is the one place where left-aligned reads better — a
     column of labels and boxes should not wander about. */
  #flz-bookform label,
  #flz-bookform .flz-row-warn,
  #flz-bookform input,
  #flz-bookform textarea,
  #flz-bookform select{text-align:left}
}
