/*!
Theme Name: nFuze
Theme URI: https://www.kadencewp.com/kadence-theme/
Template: kadence
Author: Kadence WP
Author URI: https://www.kadencewp.com/
Description: Palmy's Cafe — a sun-bleached Pacific Beach cafe child theme for Kadence. Tokens sourced from the Palmys Cafe Design System.
Version: 2.4.15
License: GNU General Public License v3.0 (or later)
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: kadence-child
*/

/* ============================================================
   Brand webfonts
   Cream is LICENSED. The Sunscreen family is currently the DEMO/trial
   cut — approved for build, must be licensed before launch.
   ============================================================ */
@font-face{font-family:"Cream";src:url("fonts/cream-Regular.otf") format("opentype");font-weight:400;font-display:swap;}
@font-face{font-family:"Sunscreen";src:url("fonts/Sunscreen.otf") format("opentype");font-weight:400;font-display:swap;}
@font-face{font-family:"Sunscreen Script";src:url("fonts/Sunscreen-Script.otf") format("opentype");font-weight:400;font-display:swap;}
@font-face{font-family:"Sunscreen Dingbats";src:url("fonts/Sunscreen-Dingbats.otf") format("opentype");font-weight:400;font-display:swap;}

/* ============================================================
   Palmy's design tokens
   Colors alias the Kadence global palette so Customizer edits stay in sync.
   ============================================================ */
:root{
  /* ---- Base palette ---- */
  --green-900:#04322e; --green-700:#075751; --green-500:#0e6b63;
  --sage-400:#bed09c;  --sage-200:#d9e4c2;
  --peach-500:#f8d5ac; --peach-300:#fbe6cd;
  --cream-100:#f7efe0; --cream-050:#fbf7ee;
  --sand-500:#ead683;  --gold-500:#bcad5a; --gold-600:#a2933f;
  --lavender-400:#b8b6d7;
  --ink-900:#2b2a24;   --ink-600:#5f5b4f;  --ink-400:#938d7c;
  --line-200:#e7dcc6;  --white:#ffffff;

  /* ---- Semantic aliases (tied to the Kadence palette) ---- */
  --color-ink:        var(--global-palette1,#075751);
  --color-ink-body:   var(--global-palette4,#2b2a24);
  --color-ink-muted:  var(--global-palette5,#5f5b4f);
  --color-ink-faint:  var(--ink-400);

  --surface-page: var(--global-palette9,#f7efe0);
  --surface-card: var(--global-palette8,#fbf7ee);
  --surface-warm: var(--global-palette7,#f8d5ac);
  --surface-ink:  var(--global-palette1,#075751);
  --surface-sage: var(--global-palette10,#bed09c);
  --on-ink:       var(--peach-300);
  --on-ink-strong:var(--cream-050);

  --brand-primary: var(--global-palette1,#075751);
  --brand-accent:  var(--global-palette6,#bcad5a);
  --brand-sun:     var(--sand-500);
  --brand-cool:    var(--lavender-400);

  --border-hairline: var(--line-200);
  --border-ink: var(--green-700);
  --focus-ring: 0 0 0 3px rgba(7,87,81,.28);

  /* ---- Type families ---- */
  --font-display:"Cream","Sunscreen",Georgia,serif;
  --font-slab:"Sunscreen","Arial Black",sans-serif;
  --font-script:"Sunscreen Script","Brush Script MT",cursive;
  --font-dingbat:"Sunscreen Dingbats",sans-serif;
  --font-body:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;

  /* ---- Fluid type scale ---- */
  --text-display-xl:clamp(3.5rem,8vw,6.5rem);
  --text-display-lg:clamp(2.75rem,5.5vw,4.5rem);
  --text-display-md:clamp(2rem,3.6vw,3rem);
  --text-h1:clamp(2rem,3.2vw,2.75rem);
  --text-h2:clamp(1.5rem,2.4vw,2rem);
  --text-h3:1.375rem;
  --text-lead:1.1875rem;
  --text-body:1.0625rem;
  --text-sm:.9375rem;
  --text-xs:.8125rem;
  --text-eyebrow:.8125rem;

  --weight-regular:400; --weight-medium:500; --weight-semibold:600;
  --weight-bold:700;    --weight-extrabold:800;

  --leading-tight:1.05; --leading-snug:1.2; --leading-normal:1.6; --leading-relaxed:1.75;
  --tracking-eyebrow:.16em; --tracking-slab:.04em; --tracking-tight:-.01em; --tracking-normal:0;

  /* ---- Spacing & layout (4px rhythm) ---- */
  --space-0:0; --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.5rem; --space-6:2rem; --space-7:3rem; --space-8:4rem; --space-9:6rem; --space-10:8rem;
  --section-y:clamp(3.5rem,7vw,7rem);
  --gutter:clamp(1.25rem,4vw,3rem);
  --container:1200px; --container-wide:1360px; --container-narrow:720px;
}

/* ============================================================
   Brand helper classes — usable via Kadence "Advanced > CSS class"
   ============================================================ */
.pl-display{ font-family:var(--font-display)!important; font-weight:400; line-height:var(--leading-tight); }
.pl-slab{ font-family:var(--font-slab)!important; letter-spacing:var(--tracking-slab); text-transform:uppercase; }
.pl-script{ font-family:var(--font-script)!important; }
.pl-dingbat{ font-family:var(--font-dingbat)!important; }
.pl-eyebrow{
  font-family:var(--font-slab)!important; font-size:var(--text-eyebrow)!important;
  letter-spacing:var(--tracking-eyebrow)!important; text-transform:uppercase;
  color:var(--brand-primary);
  margin-bottom:var(--space-4)!important;
}
/* An eyebrow and the heading it introduces are one unit. Kadence gives headings
   a 48px top margin, which is right between sections but far too much here --
   collapse it so the pairing reads the same everywhere it appears. */
.pl-eyebrow + .wp-block-kadence-advancedheading{ margin-top:0!important; }
.pl-lead{ font-size:var(--text-lead); color:var(--color-ink-muted); }

/* Section grounds */
.bg-cream{ background:var(--surface-page); }
.bg-card{ background:var(--surface-card); }
.bg-peach{ background:var(--surface-warm); }
.bg-sage{ background:var(--surface-sage); }
.bg-green{ background:var(--surface-ink); }
.on-green .wp-block-kadence-advancedheading,
.on-green h1,.on-green h2,.on-green h3,.on-green p,
.on-green .pl-lead{ color:var(--on-ink-strong)!important; }
.on-green .pl-eyebrow{ color:var(--on-ink)!important; }
.sec-y > .kt-row-column-wrap{ padding-top:var(--section-y)!important; padding-bottom:var(--section-y)!important; }

::selection{ background:var(--sand-500); color:var(--green-900); }
h1,h2,h3,.entry-title{ letter-spacing:var(--tracking-tight); }

/* ============================================================
   Home page
   ============================================================ */
/* Script-accent emphasis inside display headings */
.wp-block-kadence-advancedheading em, h1 em, h2 em, h3 em{
  font-family:var(--font-script); font-style:normal; color:var(--brand-accent);
  font-size:1.06em; line-height:1;
}
.on-green .wp-block-kadence-advancedheading em{ color:var(--sand-500); }

/* ---- Hero: full-bleed looping video, caps + script lockup ---- */
.home-hero{ position:relative; background:var(--green-900); background-size:cover; background-position:center; overflow:hidden; }
.home-hero__video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  z-index:0; pointer-events:none; border:0;
}
.home-hero > .kt-row-column-wrap{
  position:relative; z-index:2; min-height:min(88vh,780px); align-content:center;
  padding-top:calc(var(--section-y) + 40px)!important; padding-bottom:var(--section-y)!important;
}
/* Scrim: darkest bottom-left so the type always holds, video still readable */
.home-hero::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    var(--texture-grain-light) repeat 0 0 / var(--texture-size) var(--texture-size),
    linear-gradient(105deg, rgba(4,50,46,.78) 0%, rgba(4,50,46,.45) 42%, rgba(4,50,46,.12) 70%),
    linear-gradient(180deg, rgba(4,50,46,.28) 0%, rgba(4,50,46,0) 40%, rgba(4,50,46,.55) 100%);
}
.home-hero .kt-inside-inner-col{ max-width:min(620px,58%); }
.home-hero .wp-block-kadence-advancedheading{ color:var(--cream-050)!important; }

.home-hero .pl-eyebrow{ color:var(--sand-500)!important; }
/* the eyebrow's palms mark reads as a rule at this size */
.home-hero .pl-eyebrow::before{ width:26px; height:2px; background:var(--sand-500); mask:none; -webkit-mask:none; }

/* "CRUISE IN," — airy uppercase; "chill out." — script, tucked under and left */
.hero-title{
  font-family:var(--font-body)!important; font-weight:200!important;
  text-transform:uppercase; letter-spacing:.005em;
  font-size:clamp(3rem,7.4vw,6.2rem)!important; line-height:.92!important;
  margin:0 0 var(--space-5)!important;
}
.hero-title em{
  display:block; font-family:var(--font-script)!important; font-style:normal;
  text-transform:none; letter-spacing:0; color:var(--sand-500)!important;
  font-size:.52em; line-height:.9; margin-top:.06em; margin-left:.06em;
}
.hero-lead{ font-size:var(--text-lead)!important; max-width:44ch; opacity:.95;
  margin-bottom:var(--space-6)!important; }
.home-hero .kb-buttons-wrap{ gap:14px; flex-wrap:wrap; }

@media (max-width:860px){
  .home-hero .kt-inside-inner-col{ max-width:100%; }
  .home-hero::after{ background:
    var(--texture-grain-light) repeat 0 0 / var(--texture-size) var(--texture-size),
    linear-gradient(180deg, rgba(4,50,46,.35) 0%, rgba(4,50,46,.62) 55%, rgba(4,50,46,.88) 100%); }
}
@media (prefers-reduced-motion:reduce){ .home-hero__video{ display:none; } }

/* ---- Marquee band ---- */
.marquee-band{ background:var(--green-900); }
.marquee-band > .kt-row-column-wrap{
  padding-top:18px!important; padding-bottom:18px!important;
  align-items:center; justify-items:center; row-gap:10px!important;
}
.marq-item{
  position:relative; font-family:var(--font-slab)!important; text-transform:uppercase;
  letter-spacing:.14em; font-size:.7rem!important; color:var(--peach-300)!important;
  margin:0!important; white-space:nowrap; text-align:center;
}
/* dot doodle as the separator, not a bullet character */
.marquee-band .kt-inside-inner-col{ position:relative; }
.marquee-band > .kt-row-column-wrap > *:not(:last-child) .kt-inside-inner-col::after{
  content:""; position:absolute; right:calc(var(--gutter) * -.5); top:50%;
  transform:translateY(-50%); width:7px; height:7px;
  background-color:var(--sand-500);
  -webkit-mask:url("icons/dot.svg") no-repeat center/contain;
          mask:url("icons/dot.svg") no-repeat center/contain;
}
@media (max-width:860px){
  .marquee-band > .kt-row-column-wrap > *:not(:last-child) .kt-inside-inner-col::after{ display:none; }
}

/* Feature cards */
.feat-card > .kt-row-column-wrap{ border-radius:18px; padding:var(--space-6) var(--space-5)!important; height:100%; }
.feat-card.tone-card > .kt-row-column-wrap{ background:var(--surface-card); border:1px solid var(--border-hairline); }
.feat-card.tone-peach > .kt-row-column-wrap{ background:var(--surface-warm); }
.feat-card .ttl{ margin-bottom:var(--space-2)!important; }

/* Story photos + food stack */
.story-photos .kb-image, .photo-stack .kb-image{ margin:0; }
.story-photos img{ border-radius:18px; box-shadow:0 18px 40px -24px rgba(4,50,46,.5); }
.photo-stack img{ border-radius:16px; box-shadow:0 14px 34px -22px rgba(4,50,46,.45); }
.photo-stack > .kt-row-column-wrap{ gap:var(--space-4)!important; }
.photo-stack .wp-block-kadence-image + .wp-block-kadence-image{ margin-top:var(--space-4); }

/* Event cards */
.event-card > .kt-row-column-wrap{
  background:var(--surface-card); border:1px solid var(--border-hairline);
  border-radius:16px; padding:var(--space-5)!important; height:100%;
}
.ev-tag{
  display:inline-block; background:var(--sand-500); color:var(--green-900)!important;
  font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.1em;
  font-size:.62rem!important; padding:4px 10px; border-radius:99px; margin-bottom:var(--space-3)!important;
}
.ev-date{ font-family:var(--font-slab)!important; text-transform:uppercase;
  letter-spacing:.1em; font-size:.7rem!important; color:var(--brand-primary)!important; }
.ev-time{ color:var(--color-ink-muted)!important; font-size:var(--text-sm)!important; }

/* Reviews */
.review-quote{
  font-family:var(--font-display)!important; font-size:var(--text-display-md)!important;
  line-height:1.15!important; color:var(--green-900)!important; max-width:22ch; margin:0 auto var(--space-4)!important;
}
.review-by{ font-family:var(--font-slab)!important; text-transform:uppercase;
  letter-spacing:.1em; font-size:.72rem!important; color:var(--color-ink-muted)!important; }

/* Hours */
.hours-row > .kt-row-column-wrap{ border-bottom:1px solid rgba(251,230,205,.22); padding:12px 0!important; }
.hours-row .wp-block-kadence-advancedheading{ color:var(--on-ink-strong)!important; font-family:var(--font-body)!important;
  font-size:var(--text-sm)!important; margin:0!important; }
/* Default to muted ink for light grounds; peach only where it sits on green.
   The old peach default rendered near-invisible (1.06:1) on the sage sections. */
.wp-block-kadence-advancedheading.hours-note{ color:var(--color-ink-muted)!important; font-size:var(--text-xs)!important;
  margin-top:var(--space-4)!important; }
.on-green .wp-block-kadence-advancedheading.hours-note,
.bg-green .wp-block-kadence-advancedheading.hours-note{ color:var(--on-ink)!important; opacity:.9; }

/* Tagline band */
.tagline-band > .kt-row-column-wrap{ padding-top:var(--space-8)!important; padding-bottom:var(--space-8)!important; }
.tagline-band .wp-block-kadence-image img{ max-width:min(560px,74%)!important; width:100%; margin:0 auto; display:block; }

/* Button variants */
.btn-ghost{ background:transparent!important; border:none!important;
  color:var(--brand-primary)!important; padding-left:0!important; box-shadow:none!important; }
.btn-ghost:hover{ background:transparent!important; color:var(--green-900)!important; }
.on-green .btn-ghost{ color:var(--peach-300)!important; }
.on-green .btn-ghost:hover{ color:var(--sand-500)!important; }

/* Centered section headers */
.sec-head, .sec-head .wp-block-kadence-advancedheading{ text-align:center; }
.sec-head .kb-buttons-wrap{ justify-content:center; }
.sec-head .pl-lead{ max-width:52ch; margin-left:auto; margin-right:auto; }
.feat-card .wp-block-kadence-advancedheading{ text-align:left; }

/* ============================================================
   Header & footer
   ============================================================ */
/* The nav logo already contains the wordmark. */
.site-branding .site-title-wrap{ display:none; }
.site-header-item .custom-logo{ height:auto; }

.header-button{ border-radius:99px!important; padding:.55rem 1.1rem!important; }
#masthead .primary-menu-container > ul > li > a{ border-radius:8px; }

/* Footer brand column */
.pm-foot-logo{ margin:0 0 1rem; }
.pm-foot-logo img{ height:66px; width:auto; max-width:100%; display:block; }
.pm-foot-tag{ font-family:var(--font-script)!important; font-size:1.6rem!important;
  color:var(--peach-300)!important; margin:0 0 .6rem; line-height:1.1; }
.site-footer .widget-title{ margin-bottom:.9rem!important; }
.site-footer .widget_nav_menu ul{ list-style:none; margin:0; padding:0; }
.site-footer .widget_nav_menu li{ margin:0 0 .5rem; }

/* ============================================================
   Interior pages
   ============================================================ */
/* Page hero */
.page-hero > .kt-row-column-wrap{ padding-top:calc(var(--section-y) * .8)!important;
  padding-bottom:calc(var(--section-y) * .8)!important; }
.page-hero-title{ font-size:var(--text-display-md)!important; line-height:var(--leading-snug)!important; }
.page-hero .pl-lead{ color:var(--peach-300)!important; max-width:60ch; margin-inline:auto; }

/* Catering packages */
.pkg-card > .kt-row-column-wrap{ background:var(--surface-card); border:1px solid var(--border-hairline);
  border-radius:18px; padding:var(--space-6) var(--space-5)!important; height:100%; }
.pkg-price{ font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.08em;
  font-size:.78rem!important; color:var(--gold-600)!important; margin:.25rem 0 .75rem!important; }

/* Catering steps — the 01/02/03 is a real sequence, so the numbering carries meaning */
.step-card > .kt-row-column-wrap{ padding:var(--space-5) 0!important; height:100%; }
.step-num{ font-family:var(--font-display)!important; font-size:2.5rem!important;
  color:var(--gold-500)!important; line-height:1; margin-bottom:var(--space-2)!important; }

/* Press */
.press-card > .kt-row-column-wrap{ background:var(--surface-card); border:1px solid var(--border-hairline);
  border-radius:18px; padding:var(--space-6) var(--space-5)!important; height:100%; }
.press-outlet{ font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.1em;
  font-size:.7rem!important; color:var(--brand-primary)!important; margin-bottom:var(--space-3)!important; }
.press-card .press-quote{ font-family:var(--font-display)!important; font-size:1.25rem!important;
  line-height:1.3!important; color:var(--green-900)!important; margin-bottom:var(--space-3)!important; }
.press-meta{ font-size:var(--text-xs)!important; color:var(--color-ink-muted)!important; }
.outlet-row > .kt-row-column-wrap{ align-items:center; row-gap:var(--space-4)!important; }
.outlet-name{ font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.06em;
  font-size:.8rem!important; color:var(--color-ink-muted)!important; text-align:center; opacity:.75; }

/* Reviews */
.stat-card > .kt-row-column-wrap{ padding:var(--space-5)!important; text-align:center; }
.stat-num{ font-family:var(--font-display)!important; font-size:var(--text-display-md)!important;
  color:var(--brand-primary)!important; line-height:1; }
.stat-label{ font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.08em;
  font-size:.7rem!important; color:var(--color-ink-muted)!important; margin-top:var(--space-2)!important; }
.review-card > .kt-row-column-wrap{ background:var(--surface-card); border:1px solid var(--border-hairline);
  border-radius:18px; padding:var(--space-5)!important; height:100%; }
.review-stars{ color:var(--gold-700)!important; letter-spacing:.12em; font-size:.95rem!important;
  margin-bottom:var(--space-3)!important; }
.review-card .review-by{ margin-top:var(--space-3)!important; }

/* Gallery */
.gallery-grid > .kt-row-column-wrap{ gap:var(--space-4)!important; row-gap:var(--space-4)!important; }
.gallery-grid img{ border-radius:16px; aspect-ratio:4/3; object-fit:cover; width:100%;
  box-shadow:0 14px 34px -24px rgba(4,50,46,.45); }

/* Visit page */
.addr-card > .kt-row-column-wrap{ background:var(--surface-card); border:1px solid var(--border-hairline);
  border-radius:18px; padding:var(--space-6) var(--space-5)!important; }
.hours-row--light > .kt-row-column-wrap{ border-bottom-color:var(--border-hairline); }
.hours-row--light .wp-block-kadence-advancedheading{ color:var(--color-ink-body)!important; }
.pl-lbl{ font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.1em;
  font-size:.7rem!important; color:var(--brand-primary)!important; margin-bottom:var(--space-2)!important; }
.pl-badge{ display:inline-block; background:var(--sage-200); color:var(--green-900)!important;
  border-radius:99px; padding:6px 14px; font-size:var(--text-xs)!important; }
.tag-row > .kt-row-column-wrap{ gap:var(--space-2)!important; margin-top:var(--space-5); }
.res-card > .kt-row-column-wrap{ background:var(--surface-card); border:1px solid var(--border-hairline);
  border-radius:18px; padding:var(--space-6)!important; }
.form-fine{ font-size:var(--text-xs)!important; color:var(--color-ink-muted)!important;
  margin-top:var(--space-4)!important; }
.form-fine a, .wp-block-kadence-advancedheading a{ color:var(--brand-primary); text-decoration:underline; }
.on-green .wp-block-kadence-advancedheading a{ color:var(--sand-500); }
/* Dark tone for the third House-rules card */
.feat-card.tone-ink > .kt-row-column-wrap{ background:var(--green-700); }
.feat-card.tone-ink .wp-block-kadence-advancedheading{ color:var(--cream-050)!important; }
.feat-card.tone-sage > .kt-row-column-wrap{ background:var(--sage-200); }

/* Menu & drinks — slots stay collapsed until Square products sync in */
.sync-slot > .kt-row-column-wrap{ padding:0!important; }
.sync-slot:empty{ display:none; }
.menu-note{ font-size:var(--text-sm)!important; color:var(--color-ink-muted)!important;
  text-align:center; margin-top:var(--space-5)!important; }
.pl-badge strong{ font-family:var(--font-slab); letter-spacing:.06em; }

/* Order page helper columns */
.order-slot > .kt-row-column-wrap{ min-height:0; }

/* Link-in-bio */
.linkhub{ background:var(--green-700); min-height:100vh; }
/* narrower than the 1200px theme content width every row now inherits */
.linkhub > .kt-row-column-wrap{ max-width:520px!important; margin:0 auto;
  padding:var(--space-8) var(--gutter)!important; }
.linkhub .wp-block-kadence-image img{ max-width:230px!important; margin:0 auto var(--space-5); display:block; }
.link-tagline{ font-family:var(--font-script)!important; font-size:1.9rem!important;
  color:var(--peach-300)!important; margin-bottom:var(--space-2)!important; }
.link-addr{ font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.1em;
  font-size:.68rem!important; color:var(--sage-400)!important; margin-bottom:var(--space-6)!important; }
.linkhub .kb-buttons-wrap{ margin-bottom:.75rem; }
/* Kadence puts className on the <a class="kb-button"> itself -- targeting a
   descendant .kb-button matches nothing. */
.linkhub .kb-buttons-wrap{ display:block; }
.link-btn{ width:100%; justify-content:center; border-radius:99px!important;
  background:transparent!important; border:2px solid var(--sage-400)!important;
  color:var(--cream-050)!important; padding:.85rem 1.25rem!important; }
.link-btn:hover{ background:rgba(255,255,255,.1)!important; color:var(--cream-050)!important; }
.link-btn--primary{ background:var(--sand-500)!important; border-color:var(--sand-500)!important;
  color:var(--green-900)!important; }
.link-btn--primary:hover{ background:var(--peach-300)!important; border-color:var(--peach-300)!important;
  color:var(--green-900)!important; }

/* ============================================================
   Forms (SureForms)
   ============================================================ */
.enquiry-card > .kt-row-column-wrap{ background:var(--cream-050); border-radius:20px;
  padding:var(--space-6)!important; max-width:760px; margin:var(--space-6) auto 0; text-align:left; }
.res-card .srfm-form-container{ padding:0!important; }

.srfm-form-container{ background:transparent!important; padding:0!important; }
.srfm-label, .srfm-block-label, .srfm-block-legend{ font-family:var(--font-slab)!important;
  text-transform:uppercase; letter-spacing:.08em; font-size:.7rem!important;
  color:var(--brand-primary)!important; }
.srfm-input-common, .srfm-input-field, .srfm-input-textarea, .srfm-input-dropdown,
.srfm-form-container input[type="text"], .srfm-form-container input[type="email"],
.srfm-form-container input[type="tel"], .srfm-form-container input[type="number"],
.srfm-form-container input[type="date"], .srfm-form-container textarea, .srfm-form-container select{
  border:1.5px solid var(--border-hairline)!important; border-radius:12px!important;
  background:var(--white)!important; color:var(--ink-900)!important;
  font-family:var(--font-body)!important; font-size:var(--text-body)!important;
  padding:.7rem .9rem!important; }
.srfm-form-container :where(input,textarea,select):focus{
  outline:none!important; border-color:var(--brand-primary)!important; box-shadow:var(--focus-ring)!important; }
.srfm-button, .srfm-submit-button, .srfm-form-container button[type="submit"]{
  background:var(--brand-primary)!important; color:var(--cream-050)!important;
  border:none!important; border-radius:99px!important; padding:.8rem 1.6rem!important;
  font-family:var(--font-slab)!important; text-transform:uppercase; letter-spacing:.08em;
  font-size:.75rem!important; cursor:pointer; }
.srfm-button:hover, .srfm-submit-button:hover, .srfm-form-container button[type="submit"]:hover{
  background:var(--green-900)!important; }
/* On the green grounds the label green would disappear */
.on-green .srfm-label, .on-green .srfm-block-label, .on-green .srfm-block-legend{ color:var(--sand-500)!important; }
.news-card .srfm-button, .news-card .srfm-form-container button[type="submit"]{
  background:var(--sand-500)!important; color:var(--green-900)!important; }
.news-card .srfm-button:hover{ background:var(--peach-300)!important; }
.enquiry-card .srfm-label, .enquiry-card .srfm-block-label, .enquiry-card .srfm-block-legend,
.res-card .srfm-label, .res-card .srfm-block-label, .res-card .srfm-block-legend{ color:var(--brand-primary)!important; }

/* ============================================================
   Brand doodles
   Drawn with CSS masks rather than <img>, so one SVG serves every
   tone: the mask takes the shape, currentColor supplies the ink.
   Kadence puts a block's className on the element itself, not a
   wrapper -- so each context is targeted explicitly rather than
   with one blanket [class*="doodle--"] rule.
   ============================================================ */
.doodle--beermug   { --doodle:url("icons/beermug.svg"); }
.doodle--cocktail  { --doodle:url("icons/cocktail.svg"); }
.doodle--dot       { --doodle:url("icons/dot.svg"); }
.doodle--hibiscus  { --doodle:url("icons/hibiscus.svg"); }
.doodle--jellyfish { --doodle:url("icons/jellyfish.svg"); }
.doodle--lightning { --doodle:url("icons/lightning.svg"); }
.doodle--palms     { --doodle:url("icons/palms.svg"); }
.doodle--pineapple { --doodle:url("icons/pineapple.svg"); }
.doodle--seagull   { --doodle:url("icons/seagull.svg"); }
.doodle--sparkly   { --doodle:url("icons/sparkly.svg"); }
.doodle--sunset    { --doodle:url("icons/sunset.svg"); }
.doodle--surfboard { --doodle:url("icons/surfboard.svg"); }

/* Cards: the mark belongs INSIDE the padded, coloured box, so it hangs
   off the inner column wrap rather than the row's outer wrapper. */
.feat-card[class*="doodle--"] > .kt-row-column-wrap::before,
.pkg-card[class*="doodle--"]  > .kt-row-column-wrap::before{
  content:""; display:block; width:52px; height:52px; margin-bottom:var(--space-4);
  background-color:var(--brand-primary);
  -webkit-mask:var(--doodle) no-repeat center/contain;
          mask:var(--doodle) no-repeat center/contain;
}
.feat-card.tone-ink[class*="doodle--"] > .kt-row-column-wrap::before,
.on-green .feat-card[class*="doodle--"] > .kt-row-column-wrap::before{
  background-color:var(--peach-300);
}

/* Link hub: an inline bullet inside the pill, inheriting the pill's ink.
   NOTE: Kadence owns .kb-button::before for its hover-fill wipe and sets it
   position:absolute; left:0 — hanging the icon there gets it clipped by the
   pill's overflow. Put it on the inner text span instead. */
.link-btn[class*="doodle--"]{ display:inline-flex; align-items:center; }
.link-btn[class*="doodle--"] .kt-btn-inner-text{ display:inline-flex; align-items:center; }
.link-btn[class*="doodle--"] .kt-btn-inner-text::before{
  content:""; flex:none; width:22px; height:22px; margin-right:.6rem;
  background-color:currentColor;
  -webkit-mask:var(--doodle) no-repeat center/contain;
          mask:var(--doodle) no-repeat center/contain;
}

/* Palms is the eyebrow accent — small, gold, inline before the label */
.pl-eyebrow{ display:flex; align-items:center; gap:.5rem; }
.sec-head .pl-eyebrow{ justify-content:center; }
.pl-eyebrow::before{
  content:""; flex:none; width:18px; height:18px;
  background-color:var(--gold-500);
  -webkit-mask:url("icons/palms.svg") no-repeat center/contain;
          mask:url("icons/palms.svg") no-repeat center/contain;
}
.on-green .pl-eyebrow::before, .home-hero .pl-eyebrow::before{ background-color:var(--sand-500); }


/* Tagline band: palms flanking the wordmark */
.tagline-band .kt-inside-inner-col{ display:flex; align-items:center; justify-content:center; gap:clamp(1rem,4vw,3rem); }
.tagline-band .kt-inside-inner-col::before,
.tagline-band .kt-inside-inner-col::after{
  content:""; flex:none; width:clamp(38px,6vw,64px); height:clamp(38px,6vw,64px);
  background-color:var(--sand-500);
  -webkit-mask:url("icons/palms.svg") no-repeat center/contain;
          mask:url("icons/palms.svg") no-repeat center/contain;
}
.tagline-band .kt-inside-inner-col::after{ transform:scaleX(-1); }

/* ============================================================
   Effects tokens — radii, shadows, motion, texture
   From tokens/effects.css. The two grain tiles are generated with
   SVG feTurbulence (stitchTiles keeps them seamless) rather than the
   design system's grain-light/grain-dark PNGs, which were never
   exported locally. Swap --texture-grain-* for the real files when
   they land; nothing else needs to change.
   ============================================================ */
:root{
  --radius-xs:6px; --radius-sm:10px; --radius-md:16px;
  --radius-lg:24px; --radius-xl:32px; --radius-pill:999px;
  --radius-blob:42% 58% 60% 40% / 45% 45% 55% 55%;
  --border-width:1.5px; --border-width-bold:2.5px;

  --shadow-xs:0 1px 2px rgba(43,42,36,.06);
  --shadow-sm:0 2px 8px rgba(43,42,36,.08);
  --shadow-md:0 10px 24px -8px rgba(7,87,81,.18);
  --shadow-lg:0 24px 48px -16px rgba(7,87,81,.24);
  --shadow-glow-sun:0 8px 30px -6px rgba(234,214,131,.55);

  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-in-out:cubic-bezier(.65,.05,.36,1);
  --dur-fast:140ms; --dur-base:240ms; --dur-slow:480ms;

  --texture-size:220px;
  --pattern-flat:url("https://palmys:7890/wp-content/uploads/2026/07/palmys-pattern-flat-scaled.png");
  --texture-grain-dark:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27220%27%20height%3D%27220%27%3E%3Cfilter%20id%3D%27g%27%20x%3D%270%27%20y%3D%270%27%20width%3D%27100%25%27%20height%3D%27100%25%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.9%27%20numOctaves%3D%274%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27matrix%27%20values%3D%270%200%200%200%200.027%200%200%200%200%200.341%200%200%200%200%200.318%200%200%200%200.17%200%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url%28%23g%29%27%2F%3E%3C%2Fsvg%3E");
  --texture-grain-light:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27220%27%20height%3D%27220%27%3E%3Cfilter%20id%3D%27g%27%20x%3D%270%27%20y%3D%270%27%20width%3D%27100%25%27%20height%3D%27100%25%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.9%27%20numOctaves%3D%274%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27matrix%27%20values%3D%270%200%200%200%200.984%200%200%200%200%200.969%200%200%200%200%200.933%200%200%200%200.15%200%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url%28%23g%29%27%2F%3E%3C%2Fsvg%3E");
}

/* ---- Canvas grain on section grounds ----
   Light grounds take the green tooth, dark grounds the cream fibers.
   The overlay sits behind content via z-index, and never eats clicks. */
.bg-cream, .bg-card, .bg-peach, .bg-sage, .bg-green, .page-hero, .linkhub{
  position:relative; isolation:isolate;
}
.bg-cream::after, .bg-card::after, .bg-peach::after, .bg-sage::after,
.bg-green::after, .page-hero::after, .linkhub::after{
  content:""; display:block; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:var(--texture-grain-dark);
  background-size:var(--texture-size) var(--texture-size);
  background-repeat:repeat;
}
.bg-green::after, .page-hero::after, .linkhub::after{
  background-image:var(--texture-grain-light);
}
/* Keep the row's own content above the grain */
.bg-cream > .kt-row-column-wrap, .bg-card > .kt-row-column-wrap,
.bg-peach > .kt-row-column-wrap, .bg-sage > .kt-row-column-wrap,
.bg-green > .kt-row-column-wrap, .page-hero > .kt-row-column-wrap,
.linkhub > .kt-row-column-wrap{ position:relative; z-index:1; }

/* Hero already owns ::after for its scrim — layer the grain into it */
.home-hero::after{
  background:
    var(--texture-grain-light) repeat 0 0 / var(--texture-size) var(--texture-size),
    linear-gradient(180deg, rgba(4,50,46,.30) 0%, rgba(4,50,46,.55) 55%, rgba(4,50,46,.88) 100%);
}

/* ---- Doodle print wash across the footer ---- */
.site-footer .site-middle-footer-wrap{ position:relative; overflow:hidden; }
.site-footer .site-middle-footer-wrap::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:var(--pattern-flat);
  background-size:360px auto; background-repeat:repeat;
  opacity:.06; mix-blend-mode:screen;
}
.site-footer .site-middle-footer-wrap > *{ position:relative; z-index:1; }

/* Warm the existing card shadows onto the token scale */
.story-photos img{ box-shadow:var(--shadow-lg); }
.photo-stack img, .gallery-grid img{ box-shadow:var(--shadow-md); }

@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; }
}

/* Section imagery on the menu/drinks pages — a wide, calm band under the header */
.menu-sec .wp-block-kadence-image, .bg-sage .wp-block-kadence-image{ margin:var(--space-6) 0 0; }
.menu-sec .wp-block-kadence-image img,
.bg-peach .wp-block-kadence-image img{ border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.menu-sec img{ width:100%; max-height:420px; object-fit:cover; object-position:center; }

/* ============================================================
   Doodle-print ground
   The pattern PNG is green doodles on an OPAQUE peach ground, so it can't
   simply be tiled over green — multiply blends the peach down into the
   section colour and leaves the doodles reading a shade darker.
   ============================================================ */
.pattern-ground{ position:relative; isolation:isolate; background:var(--green-700)!important; }
.pattern-ground.kb-row-layout-wrap::before, .pattern-ground::before{
  /* display:block is REQUIRED — Kadence's clearfix (.kb-row-layout-wrap::before
     {clear:both;display:table}) otherwise shrink-wraps this layer to 0x0.
     Kadence's rule has equal specificity and loads later, so the selector is
     compounded with .kb-row-layout-wrap to win outright. */
  content:""; display:block; position:absolute; inset:0; z-index:-2; pointer-events:none;
  background-image:var(--pattern-flat);
  background-size:clamp(380px,34vw,560px) auto; background-repeat:repeat;
  mix-blend-mode:multiply;
}
/* keep the canvas grain, just sit it above the print */
.pattern-ground::after{ z-index:-1; }

/* Reusable airy-caps display treatment (shared with the hero title) */
.display-caps{
  font-family:var(--font-body)!important; font-weight:200!important;
  text-transform:uppercase; letter-spacing:.08em;
  font-size:clamp(2rem,4.6vw,3.5rem)!important; line-height:1.02!important;
  margin-bottom:var(--space-4)!important;
}

/* ---- Newsletter ---- */
.news-doodle::before{
  content:""; display:block; width:clamp(52px,6vw,72px); height:clamp(52px,6vw,72px);
  margin:0 auto var(--space-4);
  background-color:var(--cream-050);
  -webkit-mask:var(--doodle) no-repeat center/contain;
          mask:var(--doodle) no-repeat center/contain;
}
/* every row now carries .kb-theme-content-width (1200px) — this narrower cap
   has to win for the signup to stay a tidy single line */
.news-card > .kt-row-column-wrap{ max-width:620px!important; margin:var(--space-6) auto 0; padding:0!important; }
.news-card .srfm-form-container, .news-card .srfm-form{ background:transparent!important; padding:0!important; }
/* one line: field + button */
.news-card form{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; align-items:center; }
/* SureForms sets .srfm-block{flex:0 1 100%}, which forces the field onto its
   own line — override it so the field and button share one row. */
.news-card form .srfm-block{ flex:1 1 260px!important; min-width:0; margin:0!important; width:auto!important; }
.news-card .srfm-block-wrap{ margin:0!important; }
.news-card .srfm-submit-container, .news-card .srfm-submit-richtext{
  flex:0 0 auto; width:auto!important; margin:0!important; }
.news-card .srfm-error-message{ flex:1 0 100%; margin:0; }
/* the placeholder carries the label here */
.news-card .srfm-block-label, .news-card .srfm-block-legend{
  position:absolute!important; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap;
}
.news-card input[type="email"]{
  width:100%; border-radius:99px!important;
  background:rgba(4,50,46,.5)!important;
  border:1.5px solid rgba(251,247,238,.34)!important;
  color:var(--cream-050)!important; padding:.95rem 1.4rem!important;
}
.news-card input[type="email"]::placeholder{ color:rgba(251,247,238,.6); }
.news-card input[type="email"]:focus{
  border-color:var(--sand-500)!important; box-shadow:0 0 0 3px rgba(234,214,131,.25)!important;
}
.news-card .hours-note, .pattern-ground .hours-note{ margin-top:var(--space-4)!important; }

/* ---- What's Cooking ---- */
/* the script half of an airy-caps heading drops to its own line */
.caps-script em{
  display:block; font-family:var(--font-script)!important; font-style:normal;
  text-transform:none; letter-spacing:0; font-size:.62em; line-height:1;
  color:var(--brand-primary)!important; margin-top:.08em;
}
.photo-stack > .kt-row-column-wrap{ gap:var(--space-4)!important; row-gap:var(--space-4)!important; }
.photo-pair > .kt-row-column-wrap{ gap:var(--space-4)!important; }
.photo-stack img{ border-radius:var(--radius-md); box-shadow:var(--shadow-md); width:100%; }
.photo-stack .kt-inside-inner-col > .wp-block-kadence-image:first-child img{ aspect-ratio:16/10; object-fit:cover; }
.photo-pair img{ aspect-ratio:1/1; object-fit:cover; }

/* ---- Tagline band ---- */
.tagline-band > .kt-row-column-wrap{
  padding-top:var(--space-8)!important; padding-bottom:var(--space-8)!important;
}
.tagline-text{
  font-family:var(--font-display)!important; color:var(--cream-050)!important;
  font-size:clamp(2rem,5.4vw,4rem)!important; line-height:1.05!important;
  text-align:center; margin:0!important;
}
.tagline-bolt{
  display:inline-block; width:.42em; height:.82em; margin:0 .3em;
  vertical-align:-.06em; background-color:var(--cream-050);
  -webkit-mask:url("icons/lightning.svg") no-repeat center/contain;
          mask:url("icons/lightning.svg") no-repeat center/contain;
}

/* ---- Script set inline with the caps, rather than dropping to its own line ---- */
.caps-script-inline em{
  font-family:var(--font-script)!important; font-style:normal;
  text-transform:none; letter-spacing:0; font-size:1.05em;
  color:var(--brand-primary)!important; margin-left:.18em;
}

/* ============================================================
   Event cards — colour-coded by how you get in
   ============================================================ */
.ev-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-4);
  margin-top:var(--space-6);
}
@media (max-width:1024px){ .ev-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .ev-grid{ grid-template-columns:1fr; } }

.ev-card{
  display:flex; flex-direction:column; gap:.35rem; text-decoration:none;
  background:var(--surface-card); border:1px solid var(--border-hairline);
  border-radius:var(--radius-md); padding:var(--space-5) var(--space-4);
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.ev-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.ev-card__top{ display:flex; align-items:flex-start; justify-content:space-between;
  gap:var(--space-3); margin-bottom:var(--space-4); }
.ev-card__doodle{
  flex:none; width:34px; height:34px; background-color:var(--brand-primary);
  -webkit-mask:var(--doodle) no-repeat center/contain;
          mask:var(--doodle) no-repeat center/contain;
}
.ev-tag{
  flex:none; font-family:var(--font-slab); text-transform:uppercase; letter-spacing:.1em;
  font-size:.62rem; padding:5px 11px; border-radius:var(--radius-pill);
  color:var(--green-900); background:var(--sand-500); white-space:nowrap;
}
.ev-tag--ticketed{ background:var(--lavender-400); }
.ev-tag--rsvp{ background:var(--sage-400); }
.ev-tag--free{ background:var(--sand-500); }

.ev-card__date{
  font-family:var(--font-slab); text-transform:uppercase; letter-spacing:.12em;
  font-size:.66rem; color:var(--gold-600);
}
.ev-card__title{
  font-family:var(--font-body); font-weight:200; text-transform:uppercase;
  letter-spacing:.05em; font-size:1.18rem; line-height:1.15; color:var(--green-700);
}
.ev-card__time{ font-size:var(--text-sm); color:var(--color-ink-muted); margin-top:.15rem; }

/* header row: title left, "all events" link right */
.on-green .ev-card__title{ color:var(--green-700); }

/* ---- Header polish ---- */
/* The design's nav is a translucent cream bar that frosts what scrolls beneath. */
.site-main-header-wrap.kadence-sticky-header .site-header-row-container-inner,
#masthead .site-main-header-wrap .site-header-row-container-inner{
  -webkit-backdrop-filter:saturate(1.1) blur(8px);
          backdrop-filter:saturate(1.1) blur(8px);
}
/* Give the wordmark's descender breathing room inside the bar */
.site-header-item .custom-logo{ height:auto; max-height:56px; width:auto; }
.site-branding{ padding-block:4px; }

/* Nav hover: a soft tinted pill, matching .pm-nav__link:hover */
#masthead .primary-menu-container > ul > li > a{
  border-radius:var(--radius-sm); padding:.55rem .7rem;
  transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

/* ---- Event cards are links; nothing inside them should underline ---- */
.ev-card, .ev-card:hover, .ev-card *{ text-decoration:none!important; }

/* ============================================================
   Printed-menu listings (display only — ordering lives on /order/)
   ============================================================ */
.menu-cols > .kt-row-column-wrap{ column-gap:clamp(2rem,5vw,5rem)!important; row-gap:var(--space-8)!important; }
.menu-embed + .menu-embed, .wp-block-kadence-image + .menu-embed{ margin-top:var(--space-7); }

.pl-menu-head{ margin-bottom:var(--space-5); }
.pl-menu-title{
  font-family:var(--font-body); font-weight:200; text-transform:uppercase;
  letter-spacing:.08em; font-size:clamp(1.5rem,2.6vw,2rem); line-height:1.05;
  color:var(--green-700); margin:0;
}
.pl-menu-secprice{ font-family:var(--font-slab); font-size:.5em; letter-spacing:.06em;
  color:var(--gold-600); vertical-align:.35em; margin-left:.4em; }
.pl-menu-note{
  font-family:var(--font-slab); text-transform:uppercase; letter-spacing:.12em;
  font-size:.66rem; color:var(--gold-600); margin:.55rem 0 0;
}
.pl-menu-add{
  font-size:var(--text-xs); color:var(--color-ink-muted);
  border-top:1px solid var(--border-hairline); padding-top:var(--space-3);
  margin-top:var(--space-4);
}

.pl-menu-list{ list-style:none; margin:0; padding:0; }
.pl-item + .pl-item{ margin-top:var(--space-5); }
.pl-item__row{ display:flex; align-items:baseline; gap:.5rem; }
.pl-item__name{
  font-family:var(--font-display); font-size:1.0625rem; line-height:1.25;
  color:var(--green-900); flex:0 1 auto;
}
/* leader dots keep the eye travelling to the price, like the printed menu */
.pl-item__dots{
  flex:1 1 auto; min-width:1.5rem; align-self:center; height:0;
  border-bottom:1px dotted var(--line-200); transform:translateY(-2px);
}
.pl-item__price{
  flex:none; font-family:var(--font-slab); font-size:.82rem; letter-spacing:.04em;
  color:var(--gold-600); font-variant-numeric:tabular-nums;
}
.pl-item__desc{
  display:block; margin-top:.3rem; max-width:52ch;
  font-size:var(--text-sm); line-height:1.5; color:var(--color-ink-muted);
}
.pl-item__desc em{ font-style:normal; font-size:.92em; color:var(--gold-600); }

/* short lists (sides, espresso, tea, extras) sit tighter and two-up */
.pl-menu-list--compact{ columns:2; column-gap:var(--space-6); }
.pl-menu-list--compact .pl-item{ break-inside:avoid; margin-top:0; padding:.42rem 0; }
.pl-menu-list--compact .pl-item + .pl-item{ margin-top:0; }
@media (max-width:560px){ .pl-menu-list--compact{ columns:1; } }

/* imagery inside the listing columns */
.menu-cols .wp-block-kadence-image img{
  border-radius:var(--radius-md); box-shadow:var(--shadow-md);
  aspect-ratio:4/3; object-fit:cover; width:100%;
}
.on-green .pl-menu-title{ color:var(--cream-050); }

/* ---- Mobile ---- */
/* comfortable tap targets in the drawer */
#mobile-drawer .mobile-navigation li > a{ padding-block:.85rem; min-height:48px; display:flex; align-items:center; }
#mobile-drawer .drawer-inner{ padding-top:var(--space-6); }
#mobile-drawer .header-social-wrap a{ min-width:44px; min-height:44px; }
.mobile-toggle-open-container .menu-toggle-open{ min-width:44px; min-height:44px; }

@media (max-width:860px){
  /* two-up card grids collapse cleanly */
  .menu-cols > .kt-row-column-wrap{ row-gap:var(--space-7)!important; }
  .pl-menu-list--compact{ columns:2; }
  /* the hero lockup needs a touch more room at small sizes */
  .hero-title{ font-size:clamp(2.6rem,13vw,3.6rem)!important; }
  .home-hero > .kt-row-column-wrap{ min-height:min(76vh,620px); }
  .display-caps{ letter-spacing:.05em; }
  /* stacked photo pairs shouldn't get tiny */
  .photo-pair > .kt-row-column-wrap{ gap:var(--space-3)!important; }
}
@media (max-width:560px){
  .pl-menu-list--compact{ columns:1; }
  .pl-item__desc{ max-width:100%; }
  .tag-row > .kt-row-column-wrap{ justify-items:center; }
}

@media (max-width:768px){
  /* slab micro-labels get uncomfortably small on phones — floor them at ~12px */
  .pl-eyebrow{ font-size:.75rem!important; }
  .pl-menu-note, .ev-card__date, .review-by, .press-outlet, .outlet-name,
  .stat-label, .pl-lbl, .link-addr{ font-size:.72rem!important; }
  .hours-note, .menu-note, .pl-menu-add, .form-fine{ font-size:.8125rem!important; }
  .marq-item{ font-size:.72rem!important; }
  /* ghost/text links need a real tap area */
  .btn-ghost{ min-height:44px; display:inline-flex; align-items:center; }
  /* section rhythm tightens up so pages aren't endless */
  .sec-y > .kt-row-column-wrap{
    padding-top:calc(var(--section-y) * .72)!important;
    padding-bottom:calc(var(--section-y) * .72)!important;
  }
}

/* ============================================================
   Accessibility — WCAG AA contrast corrections
   ============================================================ */
:root{ --gold-700:#7a6a2b; }   /* text-safe gold for small labels on light grounds */

/* Footer nav links & copyright were inheriting dark ink on dark green */
/* every footer link/text sits on dark green — force the readable sage/peach.
   Covers nav-menu widgets AND custom-html widgets (the "Say hi" column). */
.site-footer .site-middle-footer-wrap a,
.site-footer .site-middle-footer-wrap p,
.site-footer .footer-html-inner,
.site-footer .footer-html-inner p{ color:var(--sage-400)!important; }
.site-footer .site-middle-footer-wrap a:hover{ color:var(--peach-300)!important; }

/* Muted lead is too faint on the sage ground (4.1:1) */
.bg-sage .pl-lead, .bg-sage .wp-block-kadence-advancedheading.pl-lead{ color:var(--ink-900)!important; }

/* Gold date label on cream cards was 2.9:1 */
.ev-card__date{ color:var(--gold-700)!important; }
.menu-sec-note, .pl-menu-note{ color:var(--gold-700)!important; }

/* Required asterisk: red-on-green is invisible; use peach on dark grounds */
.on-green .srfm-required, .bg-green .srfm-required{ color:var(--peach-300)!important; }

/* ---- Keyboard focus (WCAG 2.4.7 / 2.4.11) ----
   A strong, consistent focus ring for every interactive element. Uses outline
   + offset rather than box-shadow so it can't be clipped by overflow:hidden
   (the pill buttons, cards and hero all clip). Mouse users are unaffected —
   :focus-visible only fires for keyboard/programmatic focus. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.kb-button:focus-visible, .link-btn:focus-visible, .ev-card:focus-visible,
.srfm-input-common:focus-visible{
  outline:3px solid var(--brand-primary)!important;
  outline-offset:2px!important;
  border-radius:var(--radius-sm);
}
/* On dark-green grounds the green ring disappears — switch to sand */
.bg-green :where(a,button,[tabindex]):focus-visible,
.on-green :where(a,button,[tabindex]):focus-visible,
.home-hero :where(a,button):focus-visible,
.pattern-ground :where(a,button):focus-visible,
.site-footer :where(a,button):focus-visible,
.link-btn:focus-visible{
  outline-color:var(--sand-500)!important;
}

/* ---- More AA contrast corrections (catering & forms) ---- */
/* gold on light cards/peach was 2.9:1 (price) and 1.63:1 (step numbers) */
.pkg-price{ color:var(--gold-700)!important; }
.step-num{ color:var(--gold-700)!important; }
/* SureForms required asterisk: its default red (#dc2626) fails on cream (2.6)
   and vanishes on green (1.1). Darken for light grounds, peach on dark. */
.srfm-required{ color:#a01e1e!important; }
.on-green .srfm-required, .bg-green .srfm-required, .pattern-ground .srfm-required{ color:var(--peach-300)!important; }
/* ...but the catering/reservation forms are CREAM cards inside a green section,
   so peach would vanish on them — restore the dark red there. */
.enquiry-card .srfm-required, .res-card .srfm-required{ color:#a01e1e!important; }


/* ===== A11Y-FOCUS-VISIBLE — WCAG 2.4.7 visible keyboard focus ===== */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{ outline:3px solid var(--brand-primary,#075751)!important; outline-offset:2px!important; border-radius:4px; }
.on-green :focus-visible,.bg-green :focus-visible,.home-hero :focus-visible,.linkhub :focus-visible,.marquee-band :focus-visible,.pattern-ground :focus-visible{ outline-color:var(--sand-500,#ead683)!important; }
.kb-button:focus-visible,.link-btn:focus-visible,.ev-card:focus-visible{ outline-offset:3px!important; }

/* ===== PALMYS-MENU-AND-WPCAFE ===== (managed block — safe to regenerate) */

/* ---- Live menu listings (Square categories in the styled layout) ---- */
.menu-cols > .kt-row-column-wrap{ column-gap:clamp(2rem,5vw,5rem)!important; row-gap:2rem!important; }
.menu-embed + .menu-embed, .wp-block-kadence-image + .menu-embed{ display:block; margin-top:2.5rem; }
.menu-sec-head{ margin-bottom:1.25rem; }
.menu-sec-title{ font-family:var(--font-body,"Hanken Grotesk","Helvetica Neue",Arial,sans-serif); font-weight:200; text-transform:uppercase; letter-spacing:.08em; font-size:clamp(1.5rem,2.6vw,2rem); line-height:1.05; color:var(--green-700,#075751); margin:0; }
.menu-sec-note{ font-family:var(--font-slab,"Sunscreen","Arial Black",sans-serif); text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; color:var(--gold-600,#a2933f); margin:.55rem 0 0; }
.menu-sec-add{ font-size:.8125rem; color:var(--color-ink-muted,#5f5b4f); border-top:1px solid var(--line-200,#e7dcc6); padding-top:.75rem; margin-top:1rem; }
.menu-list{ list-style:none; margin:0; padding:0; }
.menu-list .menu-item{ margin:0 0 1.5rem; padding:0; }
.menu-item__row{ display:flex; align-items:baseline; gap:.5rem; }
.menu-item__name{ font-family:var(--font-display,"Cream",Georgia,serif); font-size:1.0625rem; line-height:1.25; color:var(--green-900,#04322e); flex:0 1 auto; }
.menu-item__dots{ flex:1 1 auto; min-width:1.5rem; align-self:center; height:0; border-bottom:1px dotted var(--line-200,#e7dcc6); transform:translateY(-2px); }
.menu-item__price{ flex:none; font-family:var(--font-slab,"Sunscreen","Arial Black",sans-serif); font-size:.82rem; letter-spacing:.04em; color:var(--gold-600,#a2933f); font-variant-numeric:tabular-nums; }
.menu-item__desc{ display:block; margin-top:.3rem; max-width:52ch; font-size:.9375rem; line-height:1.5; color:var(--color-ink-muted,#5f5b4f); }
.menu-item__desc em{ font-style:normal; font-size:.92em; color:var(--gold-600,#a2933f); }
.menu-list--compact{ columns:2; column-gap:2rem; }
.menu-list--compact .menu-item{ break-inside:avoid; margin:0; padding:.42rem 0; }
.menu-cols .wp-block-kadence-image img{ border-radius:16px; box-shadow:0 10px 24px -8px rgba(7,87,81,.18); aspect-ratio:4/3; object-fit:cover; width:100%; }
.on-green .menu-sec-title{ color:var(--cream-050,#fbf7ee); }
@media(max-width:560px){ .menu-list--compact{ columns:1; } }

/* ---- WP Cafe brand skin (for ordering + reservation shortcodes) ---- */
.wpc-food-menu-item{ border:1px solid var(--line-200,#e7dcc6)!important; border-radius:16px!important; background:var(--surface-card,#fbf7ee)!important; box-shadow:none!important; overflow:hidden; }
.wpc-food-menu-thumb img, .wpc-food-menu-item img{ border-radius:12px; }
.wpc-post-title, .wpc-post-title a, .wpc-food-inner-content .wpc-post-title{ font-family:var(--font-display,"Cream",Georgia,serif)!important; color:var(--green-900,#04322e)!important; text-decoration:none; }
.wpc-food-price, .wpc-price, .wpc-food-menu-item .price, .wpc-food-menu-item .amount, .wpc-food-menu-item .woocommerce-Price-amount{ font-family:var(--font-slab,"Sunscreen","Arial Black",sans-serif)!important; color:var(--gold-600,#a2933f)!important; }
.wpc-menu-tag{ background:var(--sand-500,#ead683)!important; color:var(--green-900,#04322e)!important; border-radius:99px!important; font-family:var(--font-slab,"Sunscreen","Arial Black",sans-serif)!important; text-transform:uppercase; letter-spacing:.08em; font-size:.62rem!important; }
/* Buttons: checkout + reservation submit keep the brand pill. The order-menu
   add-to-cart / Choose buttons intentionally fall through to WP Cafe's own
   gold button (style-3 + --wpc-primary-color), so they are NOT listed here. */
.wpc-btn, .wpcafe-btn, .wpc-reservation-form button, .wpc-reservation-form [type="submit"], .wpc-checkout-btn, .wpc-one-page-checkout button{ background:var(--brand-primary,#075751)!important; color:var(--cream-050,#fbf7ee)!important; border:2px solid transparent!important; border-radius:99px!important; font-family:var(--font-slab,"Sunscreen","Arial Black",sans-serif)!important; text-transform:uppercase; letter-spacing:.08em; font-size:.72rem!important; padding:.7rem 1.4rem!important; box-shadow:none!important; transition:background .18s ease; }
.wpc-btn:hover, .wpcafe-btn:hover, .wpc-reservation-form button:hover{ background:var(--green-900,#04322e)!important; color:var(--cream-050,#fbf7ee)!important; }
/* category tabs / nav */
.wpc-nav-shortcode a, .wpc-menu-tab a, .wpc-food-nav a, .wpc-pro-menu-tab a{ font-family:var(--font-slab,"Sunscreen","Arial Black",sans-serif)!important; text-transform:uppercase; letter-spacing:.06em; font-size:.75rem!important; color:var(--brand-primary,#075751)!important; }
.wpc-nav-shortcode a.active, .wpc-menu-tab a.active, .wpc-pro-menu-tab a.active{ color:var(--gold-600,#a2933f)!important; border-bottom:2px solid var(--gold-500,#bcad5a)!important; }
/* reservation + search form fields -> match SureForms */
.wpc-reservation-form input, .wpc-reservation-form select, .wpc-reservation-form textarea, .wpcafe-form input, .wpcafe-form select, .wpc-input-field, .wpc-pickup-delivery-search input, .wpc-pickup-delivery-search select{ border:1.5px solid var(--line-200,#e7dcc6)!important; border-radius:12px!important; font-family:var(--font-body,"Hanken Grotesk",sans-serif)!important; font-size:1rem!important; padding:.7rem .9rem!important; background:#fff!important; color:var(--ink-900,#2b2a24)!important; }
.wpc-reservation-form input:focus, .wpc-reservation-form select:focus, .wpcafe-form input:focus{ border-color:var(--brand-primary,#075751)!important; box-shadow:0 0 0 3px rgba(7,87,81,.18)!important; outline:none!important; }
.wpc-reservation-form label, .wpcafe-form label, .wpc-input-label{ font-family:var(--font-slab,"Sunscreen","Arial Black",sans-serif)!important; text-transform:uppercase; letter-spacing:.08em; font-size:.7rem!important; color:var(--brand-primary,#075751)!important; }

/* PALMYS-SCRIPT-SIZE — larger, readable cursive accents */
.wp-block-kadence-advancedheading em, h1 em, h2 em, h3 em{ font-size:1.5em!important; line-height:1.02!important; }
.hero-title em{ font-size:1em!important; line-height:.92!important; }
.caps-script em{ font-size:1.55em!important; line-height:1!important; }
.caps-script-inline em{ font-size:1.5em!important; }
/* /PALMYS-SCRIPT-SIZE */

/* PALMYS-TAGLINE-NOPALMS */
.tagline-band .kt-inside-inner-col::before, .tagline-band .kt-inside-inner-col::after{ content:none!important; display:none!important; }
/* /PALMYS-TAGLINE-NOPALMS */

/* PALMYS-ORDER-CARDS */
/* Structural order-card styles now live in the Café Ordering Kit plugin.
   Only the brand accent for WP Cafe's buttons/prices stays here (per-brand). */
:root{ --wpc-primary-color:var(--gold-500,#bcad5a); } /* brand gold — WP Cafe default is pink #e3106e */
/* /PALMYS-ORDER-CARDS */

/* PALMYS-MINICART */
/* WP Cafe hardcodes the floating mini-cart colours (blue #5d78ff icon, pink
   #e3106e buttons/links) in wpc-minicart.css with no setting to change them,
   so they are re-branded here. */
.wpc_cart_block .wpc_cart_icon{ background:var(--brand-primary,#075751)!important; color:var(--cream-050,#fbf7ee)!important; }
.wpc_cart_block .wpc_background_color a.button.wc-forward{ background:var(--brand-primary,#075751)!important; color:var(--cream-050,#fbf7ee)!important; border-radius:99px!important; }
.wpc_cart_block .wpc-woocommerce-mini-cart li a{ color:var(--green-900,#04322e)!important; }
/* /PALMYS-MINICART */


