/* Kalamaki Greek LA — design tokens (from the approved design) */
:root{
/* ============================================================
   PRIMARY BRAND TRIAD — sampled exactly from the logo artwork.
   These three carry the brand. Everything else supports them.
   ============================================================ */
--kal-charcoal:#303034;   /* the brand's ground; the logo's field */
--kal-seafoam:#bce0dc;    /* the letters and the mark */
--kal-gold:#e4a830;       /* the sun and the rule under the wordmark */
--kal-white:#ffffff;

/* ---- Charcoal ramp (neutral ground, warm-grey hue of the logo) ---- */
--kal-charcoal-900:#1c1c1f;
--kal-charcoal-800:#26262a;
--kal-charcoal-700:#303034;   /* exact */
--kal-charcoal-600:#45454a;
--kal-charcoal-500:#5e5e64;
--kal-charcoal-400:#8a8a91;
--kal-charcoal-300:#b8b8bd;
--kal-charcoal-200:#dcdcdf;
--kal-charcoal-100:#efeff1;
--kal-charcoal-050:#f7f7f8;

/* ---- Seafoam ramp (derived in oklch at the sampled hue) ---- */
--kal-seafoam-050:#f3fbf9;
--kal-seafoam-100:#e6f6f3;
--kal-seafoam-200:#d2ede8;
--kal-seafoam-300:#bce0dc;    /* exact */
--kal-seafoam-400:#98c8c3;
--kal-seafoam-500:#74aaa5;
--kal-seafoam-600:#54867f;
--kal-seafoam-700:#39605b;

/* ---- Gold ramp ---- */
--kal-gold-100:#fdf2dc;
--kal-gold-200:#f8ddac;
--kal-gold-300:#efc16a;
--kal-gold-400:#e4a830;       /* exact */
--kal-gold-500:#c78c1e;
--kal-gold-600:#9c6c16;

/* ============================================================
   SECONDARY — the mati (evil-eye) pattern artwork. Pattern and
   accent only; never the primary voice of a layout.
   ============================================================ */
--kal-aegean:#88b8c8;         /* exact, pattern light field */
--kal-aegean-deep:#6890a0;    /* exact, pattern shadow stroke */
--kal-aegean-050:#f1f7f9;
--kal-aegean-100:#e0eef2;
--kal-aegean-200:#bcdae3;
--kal-aegean-300:#88b8c8;
--kal-aegean-400:#6890a0;
--kal-aegean-500:#4e7382;
--kal-aegean-600:#2e5464;
--kal-aegean-700:#12333f;

/* ---- Supporting warmth: grill, olive, tomato. Additions (readme.md) ---- */
--kal-ember:#c4552f;
--kal-olive:#6f7a43;
--kal-tomato:#b8382f;
--kal-sand:#f4efe6;
--kal-sand-deep:#e6dccb;
--kal-honey:var(--kal-gold);  /* legacy alias */

/* ---- Neutrals for text and lines ---- */
--kal-ink:#26262a;
--kal-ink-soft:#4a4a51;
--kal-slate:#71717a;
--kal-mist:#a8a8b0;
--kal-line:#e2e2e6;
--kal-paper:#fbfbfc;

/* ============================================================
   SEMANTIC ALIASES — always author against these.
   ============================================================ */
--text-strong:var(--kal-ink);
--text-body:var(--kal-ink-soft);
--text-muted:var(--kal-slate);
--text-inverse:var(--kal-white);
--text-accent:var(--kal-seafoam-700);
--text-on-dark:var(--kal-seafoam-300);
--text-link:var(--kal-seafoam-700);
--text-link-hover:var(--kal-charcoal-700);

--surface-page:var(--kal-paper);
--surface-card:var(--kal-white);
--surface-sunken:var(--kal-charcoal-050);
--surface-brand:var(--kal-charcoal-700);
--surface-brand-deep:var(--kal-charcoal-800);
--surface-mint:var(--kal-seafoam-100);
--surface-warm:var(--kal-sand);
--surface-night:var(--kal-charcoal-900);
--surface-gold:var(--kal-gold-400);

--border-subtle:var(--kal-line);
--border-strong:var(--kal-charcoal-400);
--border-brand:var(--kal-seafoam-300);
--border-gold:var(--kal-gold-400);
--border-inverse:color-mix(in oklch,var(--kal-white) 40%,transparent);

--accent-primary:var(--kal-charcoal-700);
--accent-primary-hover:var(--kal-charcoal-900);
--accent-secondary:var(--kal-seafoam-300);
--accent-gold:var(--kal-gold-400);
--accent-hot:var(--kal-ember);

--state-success:var(--kal-olive);
--state-warning:var(--kal-gold-500);
--state-danger:var(--kal-tomato);
--state-info:var(--kal-aegean-400);

--focus-ring:var(--kal-seafoam-500);
}
:root{
/* Families.
   --font-display is Poppins: the closest available match to the geometric
   single-storey letterforms of the "Kalamaki" wordmark, so headings feel
   cut from the same block as the logo. The wordmark itself is ALWAYS the
   supplied artwork, never set in type. See readme.md > Type.
   --font-text is Archivo, the workhorse for body and UI. */
--font-display:'Poppins',-apple-system,'Segoe UI',sans-serif;
--font-text:'Archivo',-apple-system,'Segoe UI',sans-serif;
--font-mono:ui-monospace,'SFMono-Regular',Menlo,monospace;

/* Sizes — 1.25 ratio off a 16px base */
--fs-3xs:11px; /* @kind font */
--fs-2xs:12px; /* @kind font */
--fs-xs:13px; /* @kind font */
--fs-sm:15px; /* @kind font */
--fs-md:17px; /* @kind font */
--fs-lg:20px; /* @kind font */
--fs-xl:25px; /* @kind font */
--fs-2xl:32px; /* @kind font */
--fs-3xl:42px; /* @kind font */
--fs-4xl:56px; /* @kind font */
--fs-5xl:76px; /* @kind font */
--fs-6xl:104px; /* @kind font */

--lh-tight:1.04; /* @kind font */
--lh-snug:1.18; /* @kind font */
--lh-normal:1.5; /* @kind font */
--lh-loose:1.65; /* @kind font */

--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */

/* Tracking. The wordmark is set tight; the TAGLINE is what carries the
   brand's wide tracking. Match that split: display type near-normal,
   labels and eyebrows wide. */
--tk-tight:-0.02em; /* @kind font */
--tk-normal:0; /* @kind font */
--tk-wide:0.08em; /* @kind font */
--tk-wider:0.18em; /* @kind font */
--tk-widest:0.30em; /* @kind font */

/* Semantic roles */
--type-hero-family:var(--font-display); /* @kind font */
--type-hero-size:var(--fs-5xl); /* @kind font */
--type-hero-weight:var(--fw-medium); /* @kind font */
--type-hero-tracking:var(--tk-tight); /* @kind font */

--type-display-family:var(--font-display); /* @kind font */
--type-display-size:var(--fs-3xl); /* @kind font */
--type-display-weight:var(--fw-medium); /* @kind font */
--type-display-tracking:var(--tk-tight); /* @kind font */

--type-heading-family:var(--font-display); /* @kind font */
--type-heading-size:var(--fs-xl); /* @kind font */
--type-heading-weight:var(--fw-semibold); /* @kind font */
--type-heading-tracking:var(--tk-normal); /* @kind font */

--type-eyebrow-family:var(--font-text); /* @kind font */
--type-eyebrow-size:var(--fs-2xs); /* @kind font */
--type-eyebrow-weight:var(--fw-bold); /* @kind font */
--type-eyebrow-tracking:var(--tk-widest); /* @kind font */

--type-body-family:var(--font-text); /* @kind font */
--type-body-size:var(--fs-md); /* @kind font */
--type-body-weight:var(--fw-regular); /* @kind font */
--type-body-leading:var(--lh-loose); /* @kind font */

--type-label-family:var(--font-text); /* @kind font */
--type-label-size:var(--fs-xs); /* @kind font */
--type-label-weight:var(--fw-semibold); /* @kind font */
--type-label-tracking:var(--tk-wide); /* @kind font */

--type-price-family:var(--font-display); /* @kind font */
--type-price-size:var(--fs-lg); /* @kind font */
--type-price-weight:var(--fw-medium); /* @kind font */
--type-price-tracking:var(--tk-normal); /* @kind font */
}
:root{
/* 4px base step */
--sp-0:0px;
--sp-1:4px;
--sp-2:8px;
--sp-3:12px;
--sp-4:16px;
--sp-5:20px;
--sp-6:24px;
--sp-8:32px;
--sp-10:40px;
--sp-12:48px;
--sp-16:64px;
--sp-20:80px;
--sp-24:96px;
--sp-32:128px;
--sp-40:160px;

/* Layout */
--layout-max:1200px;
--layout-narrow:720px;
--layout-gutter:24px;
--layout-gutter-lg:48px;
--section-y:96px;
--section-y-lg:128px;

/* Control geometry */
--control-h-sm:34px;
--control-h-md:44px;
--control-h-lg:54px;
--control-px-sm:14px;
--control-px-md:22px;
--control-px-lg:30px;
--tap-min:44px;
}
:root{
/* Radii — the mati motif is a pointed ogee, so the brand stays close to
   square. Nothing above --radius-md except pills and avatars. */
--radius-none:0px;
--radius-xs:2px;
--radius-sm:4px;
--radius-md:8px;
--radius-lg:14px;
--radius-pill:999px;
--radius-circle:50%;

--border-hair:1px; /* @kind spacing */
--border-thick:2px; /* @kind spacing */
--border-frame:3px; /* @kind spacing */

/* Shadows — soft, cool-tinted, never black */
--shadow-none:none;
--shadow-xs:0 1px 2px rgba(48,48,52,.07);
--shadow-sm:0 2px 6px rgba(48,48,52,.08);
--shadow-md:0 8px 24px rgba(48,48,52,.12);
--shadow-lg:0 20px 50px rgba(28,28,31,.18);
--shadow-inset:inset 0 1px 0 rgba(255,255,255,.6);
--shadow-focus:0 0 0 3px color-mix(in oklch,var(--focus-ring) 45%,transparent);

/* Overlays / protection */
--overlay-scrim:linear-gradient(to top,rgba(48,48,52,.80) 0%,rgba(48,48,52,.36) 45%,rgba(48,48,52,0) 100%); /* @kind other */
--overlay-flat:rgba(48,48,52,.66); /* @kind other */
--overlay-glass:rgba(255,255,255,.72); /* @kind other */
--blur-glass:blur(14px); /* @kind other */

/* Pattern fills */
--pattern-mati:var(--kal-pattern); /* @kind other */
--pattern-tile:220px; /* @kind other */
}
:root{
--dur-instant:80ms; /* @kind other */
--dur-fast:140ms; /* @kind other */
--dur-base:220ms; /* @kind other */
--dur-slow:380ms; /* @kind other */
--dur-scene:700ms; /* @kind other */

/* No bounce, no overshoot. Everything glides. */
--ease-standard:cubic-bezier(.2,.8,.2,1); /* @kind other */
--ease-out:cubic-bezier(.16,.84,.44,1); /* @kind other */
--ease-in:cubic-bezier(.5,0,.9,.3); /* @kind other */
--ease-inout:cubic-bezier(.5,0,.2,1); /* @kind other */

--lift-hover:translateY(-2px); /* @kind other */
--press-scale:scale(.985); /* @kind other */
}
:root{--kal-ico-phone:url("data:image/svg+xml,%3Csvg%0A  class='lucide lucide-phone'%0A  xmlns='http://www.w3.org/2000/svg'%0A  width='24'%0A  height='24'%0A  viewBox='0 0 24 24'%0A  fill='none'%0A  stroke='%23000'%0A  stroke-width='2'%0A  stroke-linecap='round'%0A  stroke-linejoin='round'%0A%3E%0A  %3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z' /%3E%0A%3C/svg%3E");--kal-ico-pin:url("data:image/svg+xml,%3Csvg%0A  class='lucide lucide-map-pin'%0A  xmlns='http://www.w3.org/2000/svg'%0A  width='24'%0A  height='24'%0A  viewBox='0 0 24 24'%0A  fill='none'%0A  stroke='%23000'%0A  stroke-width='2'%0A  stroke-linecap='round'%0A  stroke-linejoin='round'%0A%3E%0A  %3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0' /%3E%0A  %3Ccircle cx='12' cy='10' r='3' /%3E%0A%3C/svg%3E");--kal-ico-chevron:url("data:image/svg+xml,%3Csvg%0A  class='lucide lucide-chevron-down'%0A  xmlns='http://www.w3.org/2000/svg'%0A  width='24'%0A  height='24'%0A  viewBox='0 0 24 24'%0A  fill='none'%0A  stroke='%2339605b'%0A  stroke-width='2'%0A  stroke-linecap='round'%0A  stroke-linejoin='round'%0A%3E%0A  %3Cpath d='m6 9 6 6 6-6' /%3E%0A%3C/svg%3E");--kal-ico-plus-dark:url("data:image/svg+xml,%3Csvg%0A  class='lucide lucide-plus'%0A  xmlns='http://www.w3.org/2000/svg'%0A  width='24'%0A  height='24'%0A  viewBox='0 0 24 24'%0A  fill='none'%0A  stroke='%23303034'%0A  stroke-width='2'%0A  stroke-linecap='round'%0A  stroke-linejoin='round'%0A%3E%0A  %3Cpath d='M5 12h14' /%3E%0A  %3Cpath d='M12 5v14' /%3E%0A%3C/svg%3E");--kal-ico-minus-light:url("data:image/svg+xml,%3Csvg%0A  class='lucide lucide-minus'%0A  xmlns='http://www.w3.org/2000/svg'%0A  width='24'%0A  height='24'%0A  viewBox='0 0 24 24'%0A  fill='none'%0A  stroke='%23ffffff'%0A  stroke-width='2'%0A  stroke-linecap='round'%0A  stroke-linejoin='round'%0A%3E%0A  %3Cpath d='M5 12h14' /%3E%0A%3C/svg%3E");--kal-ico-chevron-right:url("data:image/svg+xml,%3Csvg%0A  class='lucide lucide-chevron-right'%0A  xmlns='http://www.w3.org/2000/svg'%0A  width='24'%0A  height='24'%0A  viewBox='0 0 24 24'%0A  fill='none'%0A  stroke='%23000'%0A  stroke-width='2'%0A  stroke-linecap='round'%0A  stroke-linejoin='round'%0A%3E%0A  %3Cpath d='m9 18 6-6-6-6' /%3E%0A%3C/svg%3E");}

/* ============================================================
   Kalamaki block theme — component styles.
   Every class here is set on a core block (Advanced → Additional CSS class).
   ============================================================ */
:root {
	--font-display: 'Kumbh Sans', -apple-system, 'Segoe UI', sans-serif;
	--font-text: 'Kumbh Sans', -apple-system, 'Segoe UI', sans-serif;
	--kal-gutter: clamp(20px, 4vw, 48px);
}
body { -webkit-font-smoothing: antialiased; text-wrap: pretty; }
img { max-width: 100%; }
.kal-main { margin-top: 0 !important; }
.kal-main > .wp-block-post-content > * { margin-block-start: 0; margin-block-end: 0; }
:where(.wp-block-group.kal-section) > * { margin-block-start: 0; }
.wp-block-image { margin: 0; }
.wp-block-image img { display: block; width: 100%; }
a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
p { margin: 0; }
.kal-muted { color: var(--text-muted); line-height: 1.8; }
.kal-lead { font-size: 20px; color: var(--text-muted); line-height: 1.8; }
.kal-note { font-size: 15px; color: var(--text-muted); }
.kal-center { justify-content: center; }

/* ---------- Sections ---------- */
.kal-section { padding-top: var(--section-y) !important; padding-bottom: var(--section-y) !important; overflow: hidden; position: relative; }
.kal-section > * + * { margin-top: var(--sp-12) !important; }
.kal-section.is-tight > * + * { margin-top: var(--sp-10) !important; }
.kal-section.is-mint { background: var(--surface-mint); }
.kal-section.is-sunken { background: var(--surface-sunken); }
.kal-section.is-dark { background: var(--kal-charcoal); color: #fff; }
@media (max-width: 781px) { .kal-section { --section-y: 64px; } }

/* ---------- Headings with outlined "ghost" word ---------- */
.kal-heading { position: relative; display: flex; flex-direction: column; gap: var(--sp-4); align-items: flex-start; padding-top: clamp(36px, 5vw, 70px); }
.kal-heading > * { margin: 0 !important; position: relative; }
.kal-heading .kal-ghost {
	position: absolute; top: 0; left: 0; max-width: 100%; overflow: hidden; white-space: nowrap; pointer-events: none; user-select: none;
	font: 700 clamp(60px, 9.5vw, 150px)/0.9 var(--font-display); letter-spacing: -0.01em;
	color: transparent; -webkit-text-stroke: 1.5px var(--kal-seafoam-200);
}
.kal-heading h1, .kal-heading h2 { max-width: 900px; text-wrap: balance; }
.kal-heading .kal-sub { font-size: clamp(17px, 1.6vw, 21px); line-height: 1.6; color: var(--text-muted); max-width: 680px; }
.kal-heading.is-center { align-items: center; text-align: center; }
.kal-heading.is-center .kal-ghost { left: 50%; transform: translateX(-50%); }
.kal-heading.is-dark h2, .kal-heading.is-dark h1 { color: #fff; }
.kal-heading.is-dark .kal-ghost { -webkit-text-stroke-color: rgba(188, 224, 220, .22); }
.kal-heading.is-dark .kal-sub { color: rgba(255, 255, 255, .8); }
.kal-eyebrow { font: 700 12px/1 var(--font-text); letter-spacing: var(--tk-widest); text-transform: uppercase; color: var(--text-accent); }
.kal-h2-sm { font-size: clamp(26px, 2.6vw, 34px) !important; line-height: 1.2 !important; }
.kal-h3-lg { font-size: clamp(24px, 2.4vw, 32px) !important; }

/* ---------- Bullets (List → Styles → Kalamaki bullets) ---------- */
.is-style-kal-bullets { list-style: none; margin: 0; padding: 0 !important; display: flex; flex-direction: column; gap: var(--sp-4); }
.is-style-kal-bullets li { display: flex; align-items: baseline; gap: var(--sp-4); font-size: 17px; color: var(--text-strong); margin: 0; }
.is-style-kal-bullets li::before { content: ''; flex: 0 0 auto; width: 14px; height: 9px; background: var(--kal-gold); transform: skewX(-28deg); }
.is-dark .is-style-kal-bullets li { color: #fff; }

/* ---------- Buttons ---------- */
.wp-block-button .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 54px; padding: 0 30px; border: 1px solid transparent; border-radius: 4px; white-space: nowrap; transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--text-accent); border: 1px solid var(--border-strong); padding: 0 30px; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--kal-seafoam-050); border-color: var(--kal-charcoal-700); color: var(--text-accent); }
.wp-block-button.is-style-kal-inverse .wp-block-button__link { background: #fff; color: var(--kal-charcoal-800); }
.wp-block-button.is-style-kal-inverse .wp-block-button__link:hover { background: var(--kal-seafoam-100); }
.wp-block-button.is-style-kal-ghost .wp-block-button__link { background: transparent; color: #fff; }
.wp-block-button.is-style-kal-ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, .08); }
.kal-btn-phone .wp-block-button__link::before { content: ''; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--kal-ico-phone) center/contain no-repeat; mask: var(--kal-ico-phone) center/contain no-repeat; }
.wp-block-button.is-style-kal-sm .wp-block-button__link { min-height: 34px; padding: 0 14px; font-size: 11px; }

/* ---------- Icons in circles (empty Group with class kal-ico kal-ico--SIZE kal-i-NAME) ---------- */
.kal-ico { flex: 0 0 auto; border-radius: 50%; background: #fff; color: var(--kal-charcoal); display: flex !important; align-items: center; justify-content: center; margin: 0 !important; }
.kal-ico::before { content: ''; display: block; width: 24px; height: 24px; background: currentColor; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }
.kal-ico--card { width: 120px; height: 120px; }
.kal-ico--card::before { width: 46px; height: 46px; }
.kal-ico--md { width: 84px; height: 84px; }
.kal-ico--md::before { width: 36px; height: 36px; }
.kal-ico--sm { width: 60px; height: 60px; background: var(--kal-seafoam-100); }
.kal-ico--xs { width: 48px; height: 48px; background: var(--kal-seafoam-100); }
.kal-ico--xs::before { width: 20px; height: 20px; }

/* ---------- Mark badge (logo window in a circle) ---------- */
.kal-markbadge { position: absolute !important; z-index: 2; border-radius: 50%; background: #fff; box-shadow: var(--shadow-md); margin: 0 !important; }
.kal-markbadge::after { content: ''; position: absolute; inset: 11px; border-radius: 50%; background: var(--kal-charcoal) var(--kal-mark) center/58% auto no-repeat; }
.kal-markbadge--lg { width: 150px; height: 150px; }
.kal-markbadge--md { width: 120px; height: 120px; }
.kal-photo-badge { position: relative; padding-left: clamp(0px, 4vw, 60px); }
.kal-pos-owner { left: 0; top: 14%; }
.kal-pos-about { left: 0; bottom: 12%; }
.kal-pos-center { left: 52%; top: 46%; transform: translate(-50%, -50%); }
@media (max-width: 600px) { .kal-markbadge--lg { width: 110px; height: 110px; } .kal-markbadge--md { width: 90px; height: 90px; } }

/* ---------- Hero ---------- */
.kal-hero { display: flex !important; flex-wrap: wrap; align-items: stretch; background: var(--surface-card); padding: 0 !important; overflow: hidden; }
.kal-hero > * { margin: 0 !important; }
.kal-hero-media { flex: 1.1 1 460px; min-height: clamp(360px, 52vw, 720px); position: relative; }
.kal-hero-media .wp-block-image { position: absolute; inset: 0; }
.kal-hero-media .wp-block-image img { width: 100%; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; }
.kal-hero-copy { flex: 1 1 440px; min-width: 0; padding: clamp(40px, 6vw, 96px) var(--kal-gutter) !important; display: flex !important; flex-direction: column; justify-content: center; gap: var(--sp-8); position: relative; }
.kal-hero-copy > * { margin: 0 !important; }
.kal-hero-copy h1 { font-size: clamp(40px, 4.8vw, 72px); line-height: 1.04; letter-spacing: -0.02em; max-width: 640px; text-wrap: balance; }
.kal-hero-copy::after { content: ''; position: absolute; right: var(--kal-gutter); bottom: 28px; width: 188px; height: 30px; background: repeating-linear-gradient(90deg, var(--kal-seafoam-100) 0 56px, transparent 56px 66px); transform: skewX(-28deg); pointer-events: none; }

/* ---------- Quote form box (Contact Form 7) ---------- */
.kal-formbox { background: #fff; box-shadow: 0 24px 60px -20px rgba(48, 48, 52, .28); padding: clamp(24px, 3vw, 36px) !important; display: flex !important; flex-direction: column; gap: var(--sp-4); }
.kal-formbox > * { margin: 0 !important; }
.kal-form-intro { display: flex; align-items: center; gap: var(--sp-4); font-size: 17px; color: var(--text-body); }
.kal-form-intro::before { content: ''; flex: 0 0 48px; height: 3px; background: var(--kal-gold); }
.wpcf7 form { display: flex; flex-direction: column; gap: var(--sp-4); }
.kal-fgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--sp-4); }
.kal-field { display: flex; flex-direction: column; gap: var(--sp-2); }
.kal-flabel { font: 700 12px/1.3 var(--font-text); letter-spacing: var(--tk-widest); text-transform: uppercase; color: var(--text-accent); }
.kal-req { color: var(--state-danger); }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 input[type=date], .wpcf7 select {
	width: 100%; height: var(--control-h-md); padding: 0 var(--sp-4); background: #fff; color: var(--text-strong); font: 15px var(--font-text);
	border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); outline: none; box-sizing: border-box; transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.wpcf7 select { appearance: none; -webkit-appearance: none; padding-right: 40px; cursor: pointer; background: #fff var(--kal-ico-chevron) right 14px center/18px no-repeat; }
.wpcf7 input:focus, .wpcf7 select:focus { border-color: var(--kal-seafoam-500); box-shadow: var(--shadow-focus); }
.wpcf7 .wpcf7-not-valid { border-color: var(--state-danger) !important; }
.wpcf7-not-valid-tip { font-size: 13px; color: var(--state-danger); margin-top: 6px; }
.kal-fsubmit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-4); }
.kal-fnote { font-size: 13px; color: var(--text-muted); }
.wpcf7 input[type=submit] { height: 54px; padding: 0 30px; border: 0; border-radius: 4px; background: var(--kal-charcoal); color: #fff; font: 600 13px var(--font-text); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.wpcf7 input[type=submit]:hover { background: var(--kal-charcoal-900); }
.wpcf7-spinner { margin: 0 0 0 8px; }
.wpcf7 form .wpcf7-response-output { margin: 0; padding: 14px 16px; border-radius: 4px; font-size: 15px; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--kal-seafoam-500); background: var(--kal-seafoam-050); color: var(--text-strong); }

/* ---------- Event cards ---------- */
.kal-event-grid { gap: var(--sp-8) var(--sp-6) !important; padding-top: 60px; }
.kal-event-card { position: relative; display: flex !important; flex-direction: column; align-items: center; text-align: center; gap: var(--sp-4); background: var(--surface-sunken); padding: 86px clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px) !important; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); }
.kal-event-card > * { margin: 0 !important; }
.kal-event-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.kal-event-card .kal-ico { position: absolute; top: -60px; left: 50%; transform: translateX(-50%); box-shadow: 0 0 0 8px var(--surface-sunken); }
.kal-event-card h3 { font-size: clamp(22px, 2vw, 26px); }
.kal-event-card h3 a { color: var(--text-strong); text-decoration: none; }
.kal-event-card h3 a::after { content: ''; position: absolute; inset: 0; }
.kal-event-card .kal-muted { flex: 1; }
.kal-event-card .wp-block-image { width: 100%; margin-top: var(--sp-2) !important; }
.is-mint .kal-event-card .kal-ico, .is-sunken .kal-event-card .kal-ico { box-shadow: 0 0 0 8px var(--surface-sunken); }

/* ---------- Columns ---------- */
.wp-block-columns { gap: clamp(32px, 5vw, 72px); margin-bottom: 0; }
.wp-block-column > * + * { margin-top: var(--sp-8); }
.kal-owner-inner { gap: var(--sp-10); }
.kal-owner-inner .wp-block-column > * + * { margin-top: var(--sp-8); }
.kal-row { gap: var(--sp-8) !important; }
.kal-sign > * { margin: 0 !important; }
.kal-signature { font: 400 40px/1 var(--wp--preset--font-family--caveat), cursive; color: var(--text-strong); }
.kal-signature-role { font-size: 15px; color: var(--text-body); margin-top: 2px !important; }

/* Two offset photos with a badge */
.kal-duo { position: relative; display: grid !important; grid-template-columns: 1.1fr 1fr; gap: var(--sp-8); align-items: start; }
.kal-duo > * { margin: 0 !important; }
.kal-duo .kal-offset { margin-top: 14% !important; }

/* ---------- Phone block ---------- */
.kal-phone { gap: var(--sp-4) !important; align-items: center !important; }
.kal-phone .kal-ico { color: var(--kal-charcoal); }
.kal-phone-text > * { margin: 0 !important; }
.kal-phone-label { font-weight: 700; color: var(--text-strong); }
.kal-phone-number a { font: 700 clamp(24px, 2.6vw, 32px)/1.1 var(--font-display); color: var(--kal-charcoal); text-decoration: none; }

/* ---------- Features ---------- */
.kal-features { gap: var(--sp-10) var(--sp-12) !important; padding-top: var(--sp-8); }
.kal-feature { gap: var(--sp-6) !important; align-items: flex-start !important; }
.kal-feature-text > * { margin: 0 !important; }
.kal-feature-text > * + * { margin-top: var(--sp-2) !important; }
.kal-feature h3 { font-size: 25px; }

/* ---------- Packages ---------- */
.kal-packages { gap: var(--sp-6) !important; }
.kal-package { background: var(--surface-sunken); padding: clamp(28px, 3vw, 40px) !important; display: flex !important; flex-direction: column; gap: var(--sp-5); }
.kal-package > * { margin: 0 !important; }
.kal-package-top { min-height: 26px; }
.kal-package-top > * { margin: 0 !important; }
.kal-package h3 { font-size: 32px; line-height: 1.1; }
.kal-package-desc { line-height: 1.7; color: var(--text-muted); }
.kal-package .is-style-kal-bullets { flex: 1; }
.kal-price { padding-top: var(--sp-5); border-top: 1px solid var(--border-subtle); font-size: 15px; color: var(--text-muted); }
.kal-price strong { font: 700 34px/1 var(--font-display); color: var(--text-strong); margin-right: 6px; }
.kal-package.is-dark { background: var(--kal-charcoal); color: #fff; }
.kal-package.is-dark h3 { color: #fff; }
.kal-package.is-dark .kal-eyebrow { color: var(--kal-seafoam-300); }
.kal-package.is-dark .kal-package-desc { color: rgba(255, 255, 255, .8); }
.kal-package.is-dark .kal-price { border-top-color: rgba(255, 255, 255, .16); color: rgba(255, 255, 255, .7); }
.kal-package.is-dark .kal-price strong { color: var(--kal-seafoam); }
.kal-tag { display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--border-subtle); font: 600 11px/1 var(--font-text); letter-spacing: var(--tk-wide); text-transform: uppercase; color: var(--text-accent); }
.is-dark .kal-tag { border-color: rgba(255, 255, 255, .3); color: var(--kal-seafoam-300); }

/* ---------- Steps ---------- */
.kal-steps { gap: var(--sp-10) !important; }
.kal-step > * { margin: 0 !important; }
.kal-step > * + * { margin-top: var(--sp-3) !important; }
.kal-step-num { font: 700 96px/0.8 var(--font-display); color: transparent; -webkit-text-stroke: 1.5px var(--kal-seafoam-300); }
.kal-step h3 { font-size: 25px; }

/* ---------- Gallery ---------- */
.kal-gallery { gap: var(--sp-4) !important; }

/* ---------- Area chips ---------- */
.kal-chips { gap: var(--sp-3) !important; }
.kal-chip { margin: 0 !important; }
.kal-chip a { display: flex; align-items: center; gap: var(--sp-2); padding: 14px 20px; background: #fff; font-weight: 600; color: var(--text-strong); text-decoration: none; transition: background var(--dur-fast) var(--ease-out); }
.kal-chip a:hover { background: var(--kal-seafoam-050); }
.kal-chip a::before { content: ''; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--kal-ico-pin) center/contain no-repeat; mask: var(--kal-ico-pin) center/contain no-repeat; }

/* ---------- FAQ (Details blocks) ---------- */
.kal-faqs { border-top: 1px solid var(--border-subtle); }
.kal-faqs > * { margin: 0 !important; }
.kal-faq { border-bottom: 1px solid var(--border-subtle); }
.kal-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--sp-4); padding: var(--sp-6) 0; font: 700 20px/1.35 var(--font-display); color: var(--text-strong); }
.kal-faq summary::-webkit-details-marker { display: none; }
.kal-faq summary::after { content: ''; flex: 0 0 36px; height: 36px; border-radius: 50%; background: var(--kal-seafoam-100) var(--kal-ico-plus-dark) center/16px no-repeat; transition: background-color var(--dur-fast) var(--ease-standard); }
.kal-faq[open] summary::after { background: var(--kal-charcoal) var(--kal-ico-minus-light) center/16px no-repeat; }
.kal-faq > p { padding: 0 0 var(--sp-6); color: var(--text-muted); line-height: 1.8; max-width: 720px; margin: 0; }

/* ---------- CTA band with mati pattern ---------- */
.kal-cta { background: var(--surface-brand-deep); isolation: isolate; text-align: center; }
.kal-cta::before { content: ''; position: absolute; inset: 0; background: var(--kal-pattern) 0 0/220px 220px; mix-blend-mode: luminosity; z-index: -2; }
.kal-cta::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(18, 51, 63, .86), rgba(18, 51, 63, .9)); z-index: -1; }
.kal-cta > * + * { margin-top: var(--sp-8) !important; }

/* ---------- Inner page header ---------- */
.kal-pagehead { background: var(--surface-card); border-bottom: 1px solid var(--border-subtle); padding-top: var(--sp-8) !important; padding-bottom: var(--sp-16) !important; }
.kal-pagehead > * + * { margin-top: var(--sp-6) !important; }
.kal-crumbs { display: flex; gap: var(--sp-2); flex-wrap: wrap; font-size: 15px; color: var(--text-muted); }
.kal-crumbs a { color: inherit; text-decoration: none; }
.kal-crumbs a:hover { color: var(--text-strong); }
.kal-crumbs > span:last-child { color: var(--text-strong); }
.kal-heading.is-page h1 { font-size: clamp(36px, 4.6vw, 62px); line-height: 1.08; }

/* ---------- Event / area pages ---------- */
.kal-points { gap: var(--sp-6) !important; }
.kal-point { background: var(--surface-sunken); padding: var(--sp-8) !important; }
.kal-point > * { margin: 0 !important; }
.kal-point > * + * { margin-top: var(--sp-3) !important; }
.kal-skew { width: 14px; height: 9px; background: var(--kal-gold); transform: skewX(-28deg); }
.kal-point h3 { font-size: 25px; }
.kal-img-pair { gap: var(--sp-4) !important; }
.kal-sticky { position: sticky; top: var(--sp-6); align-self: flex-start; }
.kal-evlinks { gap: var(--sp-3) !important; }
.kal-evlink { gap: var(--sp-4) !important; padding: var(--sp-5) !important; background: var(--surface-sunken); position: relative; }
.kal-evlink .kal-ico { background: #fff; width: 44px; height: 44px; }
.kal-evlink p { margin: 0 !important; font-weight: 600; }
.kal-evlink a { color: var(--text-strong); text-decoration: none; }
.kal-evlink a::after { content: ''; position: absolute; inset: 0; }
.kal-region > * { margin: 0 !important; }
.kal-region .kal-eyebrow { margin-bottom: var(--sp-4) !important; }
.kal-area-link { padding: var(--sp-5) 0 !important; border-top: 1px solid var(--border-subtle); position: relative; }
.kal-area-link > * { margin: 0 !important; }
.kal-area-link > * + * { margin-top: 6px !important; }
.kal-area-link h3 { font-size: 25px; }
.kal-area-link h3 a { color: var(--text-strong); text-decoration: none; display: flex; justify-content: space-between; align-items: center; }
.kal-area-link h3 a::after { content: ''; width: 20px; height: 20px; background: currentColor; -webkit-mask: var(--kal-ico-chevron-right) center/contain no-repeat; mask: var(--kal-ico-chevron-right) center/contain no-repeat; }
.kal-area-link .kal-muted { font-size: 15px; }
.kal-regions { gap: var(--sp-10) !important; }

/* ---------- Menu page ---------- */
.kal-dishes { gap: var(--sp-12) !important; }
.kal-dish > * { margin: 0 !important; }
.kal-dish > * + * { margin-top: var(--sp-4) !important; }
.kal-dish h3 { font-size: 25px; }
.kal-menuitem { padding: var(--sp-4) 0 !important; border-bottom: 1px solid var(--border-subtle); }
.kal-menuitem > * { margin: 0 !important; }
.kal-menuitem-name { font: 600 17px/1.4 var(--font-text); letter-spacing: var(--tk-wide); text-transform: uppercase; color: var(--text-strong); }
.kal-menuitem-desc { margin-top: 4px !important; font-size: 13px; line-height: 1.5; color: var(--text-muted); }
.kal-badge { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; margin-left: 8px; border-radius: 2px; background: var(--kal-olive); color: #fff; font: 700 11px/1 var(--font-text); letter-spacing: var(--tk-wide); vertical-align: middle; }

/* ---------- How it works facts ---------- */
.kal-facts { gap: var(--sp-6) !important; }
.kal-fact { background: #fff; padding: var(--sp-8) !important; }
.kal-fact > * { margin: 0 !important; }
.kal-fact > * + * { margin-top: var(--sp-3) !important; }
.kal-fact h3 { font-size: 25px; }

/* ---------- About ---------- */
.kal-quote { border: 0 !important; padding: 0 !important; margin: 0; max-width: 720px; }
.kal-quote p { font: 200 32px/1.18 var(--font-display); letter-spacing: var(--tk-wide); color: var(--text-strong); }
.kal-quote p::before { content: '\201C'; }
.kal-quote p::after { content: '\201D'; }
.kal-quote cite { display: block; margin-top: var(--sp-5); font: 700 12px/1 var(--font-text); font-style: normal; letter-spacing: var(--tk-widest); text-transform: uppercase; color: var(--text-accent); }
.kal-miles { gap: var(--sp-8) !important; }
.kal-mile { border-top: 3px solid var(--kal-gold); padding-top: var(--sp-5) !important; }
.kal-mile > * { margin: 0 !important; }
.kal-mile > * + * { margin-top: var(--sp-3) !important; }
.kal-mile-title { font: 700 32px/1 var(--font-display); color: var(--kal-seafoam); }
.kal-mile p:not(.kal-mile-title) { color: rgba(255, 255, 255, .82); line-height: 1.7; }

/* ---------- Header ---------- */
.kal-header { position: sticky; top: 0; z-index: 50; background: var(--surface-card); border-bottom: 1px solid var(--border-subtle); padding: var(--sp-4) clamp(16px, 3.5vw, 48px) !important; gap: clamp(16px, 2vw, 32px) !important; }
.admin-bar .kal-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .kal-header { top: 46px; } }
.kal-header > * { margin: 0 !important; }
.kal-logo img { height: 40px !important; width: auto !important; }
.kal-header-right { gap: clamp(12px, 2vw, 32px) !important; }
.kal-nav .wp-block-navigation__container { gap: clamp(12px, 1.8vw, 24px); }
.kal-nav .wp-block-navigation-item__content { padding: 8px 0 !important; font: 700 12px/1.2 var(--font-text); letter-spacing: var(--tk-widest); text-transform: uppercase; color: var(--text-muted); text-decoration: none; border-bottom: 2px solid transparent; }
.kal-nav .wp-block-navigation-item__content:hover { color: var(--text-strong); }
.kal-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--text-accent); border-bottom-color: var(--accent-primary); }
.kal-nav-mobile-only { display: none !important; }
.kal-nav .wp-block-navigation__responsive-container.is-menu-open .kal-nav-mobile-only { display: flex !important; }
.kal-nav .wp-block-navigation__responsive-container-open { width: 48px; height: 48px; border-radius: 50%; background: var(--kal-seafoam-100); color: var(--kal-charcoal); align-items: center; justify-content: center; }
.kal-nav .wp-block-navigation__container { flex-wrap: nowrap; }
.kal-header-right { flex: 1 1 auto; justify-content: flex-end; margin-left: auto !important; }
.kal-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px 20px 32px; }
.kal-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0; width: 100%; align-items: stretch; }
.kal-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--border-subtle); }
.kal-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { width: 100%; padding: 18px 0 !important; font: 700 24px/1.2 var(--font-display); letter-spacing: 0; text-transform: none; color: var(--text-strong); border: 0; }
.kal-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 48px; align-items: stretch; }
@media (max-width: 600px) { .kal-header-cta { display: none !important; } }

/* ---------- Footer ---------- */
.kal-footer { background: var(--surface-brand-deep); color: rgba(255, 255, 255, .78); padding: var(--sp-16) var(--kal-gutter) var(--sp-8) !important; font-size: 15px; }
.kal-footer-grid { gap: var(--sp-12) !important; }
.kal-footer-grid > * { margin: 0 !important; }
.kal-footer-brand > * { margin: 0 !important; }
.kal-footer-brand > * + * { margin-top: var(--sp-5) !important; }
.kal-footer-logo img { height: 56px !important; width: auto !important; }
.kal-footer-brand p { line-height: var(--lh-loose); max-width: 300px; }
.kal-footer a { color: inherit; text-decoration: none; }
.kal-footer a:hover { color: #fff; }
.kal-footer-contact { line-height: 2 !important; }
.kal-footer-title { font: 700 11px/1 var(--font-text); letter-spacing: var(--tk-widest); text-transform: uppercase; color: var(--kal-seafoam-300); margin: 0 0 var(--sp-3) !important; }
.kal-footer-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-3); }
.kal-footer-bottom { margin-top: var(--sp-12) !important; padding-top: var(--sp-5); border-top: 1px solid rgba(255, 255, 255, .14); font-size: 12px; letter-spacing: var(--tk-wide); text-transform: uppercase; gap: var(--sp-3) !important; }
.kal-footer-bottom > * { margin: 0 !important; }

/* ---------- Simple templates (posts, 404) ---------- */
.kal-simple { padding-top: var(--sp-16) !important; padding-bottom: var(--sp-16) !important; }
.kal-404 > * + * { margin-top: var(--sp-6); }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.kal-hero-copy::after { display: none; }
	.kal-duo { gap: var(--sp-4); }
	.kal-sticky { position: static; }
	.kal-photo-badge { padding-left: 0; }
}
