
/* =====================================================================
   ALLEN'S FINE CUISINE
   Generated by _build.py - do not edit this file directly.
   ===================================================================== */

/* ---------- 1. TOKENS ---------- */
:root{
  /* type */
  --font-body:'Work Sans','Helvetica Neue',Arial,sans-serif;
  --font-script:'Yellowtail',cursive;

  --text-xs:.75rem; --text-sm:.875rem; --text-base:1rem; --text-lg:1.125rem;
  --text-xl:1.25rem; --text-2xl:1.5rem; --text-3xl:2rem; --text-4xl:2.75rem;
  --text-5xl:3.5rem;

  --leading-none:1; --leading-tight:1.14; --leading-snug:1.34;
  --leading-normal:1.62; --leading-relaxed:1.75;

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

  --tracking-tight:-.025em; --tracking-normal:0em;
  --tracking-wide:.05em; --tracking-widest:.13em;

  /* Allen's blue, sampled from the logo: hsl(197,100%,47%) */
  --blue-50:hsl(192,80%,97%);  --blue-100:hsl(193,84%,93%);
  --blue-200:hsl(194,88%,84%); --blue-300:hsl(195,92%,72%);
  --blue-400:hsl(196,96%,60%); --blue-500:hsl(197,100%,47%);
  --blue-600:hsl(197,96%,38%); --blue-700:hsl(198,92%,29%);
  --blue-800:hsl(199,90%,20%); --blue-900:hsl(200,92%,13%);

  /* warm bakery neutrals */
  --cream-50:hsl(38,64%,98%);  --cream-100:hsl(37,58%,95%);
  --cream-200:hsl(35,44%,90%); --cream-300:hsl(32,34%,82%);
  --crust-400:hsl(28,28%,62%); --crust-500:hsl(26,32%,46%);
  --crust-600:hsl(25,36%,35%); --crust-700:hsl(24,38%,25%);
  --crust-800:hsl(24,34%,15%); --crust-900:hsl(24,30%,9%);

  /* gold, used sparingly */
  --gold-100:hsl(42,86%,92%); --gold-400:hsl(40,90%,58%);
  --gold-500:hsl(38,88%,50%); --gold-600:hsl(36,90%,41%);
  --gold-700:hsl(34,88%,32%);

  /* warm greys */
  --ink-900:hsl(24,22%,10%); --ink-700:hsl(24,15%,25%);
  --ink-500:hsl(26,11%,42%); --ink-400:hsl(28,11%,55%);
  --ink-300:hsl(30,14%,72%); --ink-200:hsl(32,18%,86%);
  --ink-100:hsl(34,26%,93%);

  --success:hsl(150,52%,32%);

  --text-primary:var(--ink-900);
  --text-secondary:var(--ink-500);
  --text-tertiary:var(--ink-400);

  /* spacing */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-6:1.5rem; --space-8:2rem; --space-12:3rem; --space-16:4rem;
  --space-24:6rem; --space-32:8rem;

  --section-y:var(--space-24);
  --container-max:1180px;
  --content-max:66ch;
  --gap-cards:var(--space-6);
  --card-padding:var(--space-6);

  /* radius - one personality: soft, rounded, friendly */
  --radius-sm:6px; --radius-md:10px; --radius-lg:16px;
  --radius-xl:24px; --radius-full:9999px;

  /* shadows */
  --shadow-xs:0 1px 2px hsl(24 30% 9% / .06);
  --shadow-sm:0 1px 4px hsl(24 30% 9% / .08), 0 1px 2px hsl(24 30% 9% / .06);
  --shadow-md:0 4px 12px hsl(24 30% 9% / .10), 0 2px 4px hsl(24 30% 9% / .07);
  --shadow-lg:0 12px 32px hsl(24 30% 9% / .13), 0 4px 8px hsl(24 30% 9% / .08);
  --shadow-xl:0 24px 64px hsl(24 30% 9% / .16), 0 8px 16px hsl(24 30% 9% / .08);

  --nav-h:74px;
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px);}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--text-base);
  line-height:var(--leading-normal);
  font-weight:var(--weight-regular);
  color:var(--text-primary);
  background:var(--cream-50);
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4,p,ul,ol,figure{margin:0;}
ul{padding:0;list-style:none;}
button,input,select,textarea{font:inherit;color:inherit;}
:focus-visible{outline:3px solid var(--blue-600);outline-offset:3px;border-radius:var(--radius-sm);}

/* ---------- 3. TYPE ROLES ---------- */
h1,h2,h3{font-weight:var(--weight-black);letter-spacing:var(--tracking-tight);
  line-height:var(--leading-tight);color:var(--ink-900);}
h1{font-size:var(--text-4xl);}
h2{font-size:var(--text-3xl);}
h3{font-size:var(--text-xl);font-weight:var(--weight-bold);
  line-height:var(--leading-snug);letter-spacing:-.01em;}
p{max-width:var(--content-max);}
.script{font-family:var(--font-script);font-weight:400;letter-spacing:0;
  line-height:1.3;color:var(--blue-600);}
.kicker{font-size:var(--text-xs);font-weight:var(--weight-semibold);
  letter-spacing:var(--tracking-widest);text-transform:uppercase;
  color:var(--crust-500);line-height:var(--leading-tight);}
.lead{font-size:var(--text-lg);color:var(--ink-700);line-height:var(--leading-relaxed);}
.muted{color:var(--text-secondary);}
.small{font-size:var(--text-sm);}

/* ---------- 4. LAYOUT ---------- */
.wrap{width:100%;max-width:var(--container-max);margin-inline:auto;
  padding-inline:var(--space-6);}
.section{padding-block:var(--section-y);overflow-x:clip;}
.section--tight{padding-block:var(--space-16);}
.section--cream{background:var(--cream-100);}
.section--white{background:#fff;}
.sec-head{margin-bottom:var(--space-12);max-width:64ch;}
.sec-head .kicker{margin-bottom:var(--space-3);}
.sec-head h2{margin-bottom:var(--space-4);}
.center{text-align:center;margin-inline:auto;}
.center p{margin-inline:auto;}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--blue-700);
  color:#fff;padding:var(--space-3) var(--space-6);border-radius:0 0 var(--radius-md) 0;}
.skip:focus{left:0;}

/* ---------- 5. BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  min-height:48px;padding:var(--space-3) var(--space-8);
  font-size:var(--text-sm);font-weight:var(--weight-semibold);
  letter-spacing:var(--tracking-wide);text-transform:uppercase;
  text-decoration:none;border-radius:var(--radius-full);border:2px solid transparent;
  cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,
    background-color .18s ease,border-color .18s ease,color .18s ease;
}
.btn svg{width:18px;height:18px;flex:none;}
.btn--wa{background:var(--success);color:#fff;box-shadow:var(--shadow-sm);}
.btn--wa:hover{background:hsl(150,54%,27%);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn--wa:active{transform:translateY(1px);box-shadow:var(--shadow-xs);}
.btn--primary{background:var(--blue-600);color:#fff;box-shadow:var(--shadow-sm);}
.btn--primary:hover{background:var(--blue-700);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn--primary:active{transform:translateY(1px);box-shadow:var(--shadow-xs);}
.btn--ghost{background:transparent;color:var(--crust-700);border-color:var(--ink-200);}
.btn--ghost:hover{background:var(--cream-100);border-color:var(--crust-400);transform:translateY(-2px);}
.btn--ghost:active{transform:translateY(1px);}
.btn--light{background:#fff;color:var(--blue-800);box-shadow:var(--shadow-sm);}
.btn--light:hover{background:var(--blue-50);transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn--light:active{transform:translateY(1px);}
.btn--outline-light{background:transparent;color:#fff;border-color:hsl(0 0% 100% / .55);}
.btn--outline-light:hover{background:hsl(0 0% 100% / .12);border-color:#fff;transform:translateY(-2px);}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3);}
.link-more{display:inline-flex;align-items:center;gap:.4em;font-size:var(--text-sm);
  font-weight:var(--weight-semibold);color:var(--blue-700);text-decoration:none;
  letter-spacing:var(--tracking-wide);text-transform:uppercase;}
.link-more span{transition:transform .2s ease;display:inline-block;}
.link-more:hover span{transform:translateX(4px);}

/* ---------- 6. HEADER ---------- */
.hdr{position:sticky;top:0;z-index:90;background:hsl(38 64% 98% / .94);
  backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid transparent;transition:box-shadow .25s ease,border-color .25s ease;}
.hdr.stuck{box-shadow:var(--shadow-sm);border-bottom-color:var(--ink-200);}
.hdr-in{display:flex;align-items:center;gap:var(--space-6);min-height:var(--nav-h);}
.brand{display:flex;align-items:center;flex:none;text-decoration:none;}
.brand img{height:46px;width:auto;}
.nav{display:flex;align-items:center;gap:var(--space-6);margin-left:auto;}
.nav a{position:relative;font-size:var(--text-sm);font-weight:var(--weight-medium);
  letter-spacing:var(--tracking-wide);text-decoration:none;color:var(--crust-700);
  padding-block:var(--space-2);transition:color .2s ease;white-space:nowrap;}
.nav a::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--blue-500);transition:width .25s ease;}
.nav a:hover{color:var(--ink-900);}
.nav a:hover::after{width:100%;}
.nav a[aria-current="page"]{color:var(--blue-700);font-weight:var(--weight-semibold);}
.nav a[aria-current="page"]::after{width:100%;background:var(--gold-500);}
.hdr .btn{padding-inline:var(--space-6);min-height:44px;}
.burger{display:none;align-items:center;justify-content:center;width:48px;height:48px;
  margin-left:auto;background:transparent;border:1px solid var(--ink-200);
  border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s ease;}
.burger:hover{background:var(--cream-100);}
.burger span{display:block;width:20px;height:2px;background:var(--crust-700);
  position:relative;transition:background-color .2s ease;}
.burger span::before,.burger span::after{content:'';position:absolute;left:0;
  width:20px;height:2px;background:var(--crust-700);transition:transform .25s ease;}
.burger span::before{top:-6px;} .burger span::after{top:6px;}
.burger[aria-expanded="true"] span{background:transparent;}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg);}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg);}

/* mobile drawer: slides from the top, never sideways, so it cannot
   create horizontal overflow */
.drawer{position:fixed;left:0;right:0;top:var(--nav-h);z-index:89;
  background:var(--cream-50);border-bottom:1px solid var(--ink-200);
  box-shadow:var(--shadow-lg);padding:var(--space-4) var(--space-6) var(--space-8);
  visibility:hidden;opacity:0;transform:translateY(-12px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
  max-height:calc(100dvh - var(--nav-h));overflow-y:auto;}
.drawer.open{visibility:visible;opacity:1;transform:translateY(0);}
.drawer a{display:block;padding:var(--space-4) 0;text-decoration:none;
  font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--crust-700);
  border-bottom:1px solid var(--ink-100);}
.drawer a[aria-current="page"]{color:var(--blue-700);font-weight:var(--weight-semibold);}
.drawer .btn{width:100%;margin-top:var(--space-6);}

/* ---------- 7. HERO ---------- */
.hero{position:relative;overflow:clip;
  background:
    radial-gradient(120% 90% at 88% 8%, hsl(193 84% 93% / .95) 0%, transparent 58%),
    radial-gradient(90% 70% at 2% 96%, hsl(42 86% 92% / .9) 0%, transparent 60%),
    linear-gradient(175deg,var(--cream-50) 0%,var(--cream-100) 100%);
  padding-block:var(--space-24) var(--space-24);}
.hero::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle at 1px 1px, hsl(28 28% 62% / .28) 1px, transparent 0);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 78%);
  mask-image:linear-gradient(180deg,#000 0%,transparent 78%);}
.hero-blob{position:absolute;border-radius:50%;pointer-events:none;filter:blur(2px);z-index:0;}
.hero-blob--1{width:340px;height:340px;right:-120px;top:-90px;
  background:radial-gradient(circle,hsl(197 100% 47% / .16),transparent 68%);}
.hero-blob--2{width:280px;height:280px;left:-110px;bottom:-80px;
  background:radial-gradient(circle,hsl(38 88% 50% / .18),transparent 68%);}
.hero-in{position:relative;z-index:1;display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:var(--space-16);align-items:center;}
.hero-copy .kicker{margin-bottom:var(--space-3);}
.hero-script{font-family:var(--font-script);font-size:var(--text-3xl);
  color:var(--blue-600);line-height:1.1;margin-bottom:var(--space-2);}
.hero h1{font-size:var(--text-5xl);margin-bottom:var(--space-6);}
.hero .lead{margin-bottom:var(--space-8);max-width:52ch;}
.hero-loc{display:inline-flex;align-items:center;gap:.5em;margin-top:var(--space-8);
  font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--crust-600);}
.hero-loc svg{width:17px;height:17px;color:var(--crust-400);flex:none;}

/* overlapping image cluster - the memorable moment */
.cluster{position:relative;padding-bottom:var(--space-12);padding-right:var(--space-8);}
.cluster-main{border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl);
  border:6px solid #fff;position:relative;}
.cluster-main img{width:100%;aspect-ratio:5/4;object-fit:cover;}
.cluster-main::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(200deg,transparent 55%,hsl(24 30% 9% / .28) 100%);}
.cluster-sub{position:absolute;right:-12px;bottom:0;width:44%;max-width:190px;
  border-radius:var(--radius-lg);overflow:hidden;border:6px solid #fff;
  box-shadow:var(--shadow-lg);z-index:2;}
.cluster-sub img{width:100%;aspect-ratio:1/1;object-fit:cover;}
.badge{position:absolute;left:-18px;top:22px;z-index:3;
  background:var(--gold-500);color:var(--crust-900);
  padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);
  box-shadow:var(--shadow-md);font-size:var(--text-xs);
  font-weight:var(--weight-black);letter-spacing:var(--tracking-widest);
  text-transform:uppercase;white-space:nowrap;}

/* page banner for inner pages */
.banner{position:relative;overflow:clip;padding-block:var(--space-16) var(--space-12);
  background:
    radial-gradient(110% 130% at 92% 0%, hsl(193 84% 93% / .9) 0%, transparent 60%),
    linear-gradient(170deg,var(--cream-50),var(--cream-100));
  border-bottom:1px solid var(--ink-100);}
.banner .kicker{margin-bottom:var(--space-3);}
.banner h1{margin-bottom:var(--space-4);max-width:20ch;}
.banner .lead{max-width:58ch;}
.crumb{font-size:var(--text-xs);letter-spacing:var(--tracking-wide);
  color:var(--text-tertiary);margin-bottom:var(--space-6);}
.crumb a{color:var(--crust-500);text-decoration:none;}
.crumb a:hover{color:var(--blue-700);text-decoration:underline;}

/* ---------- 8. CARDS ---------- */
.grid{display:grid;gap:var(--gap-cards);}
.grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
/* small source photographs: cap the column width so the browser never has to
   scale them up much past their native pixel size */
.grid--cap{max-width:880px;}
.side-img{width:100%;max-width:470px;height:340px;object-fit:cover;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);}
@media (max-width:960px){.side-img{margin-inline:auto;}}
@media (max-width:680px){.side-img{height:260px;}}
.grid--cap.center{margin-inline:auto;}

.card{background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);border-top:3px solid transparent;
  display:flex;flex-direction:column;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);
  border-top-color:var(--blue-500);}
.card-media{position:relative;overflow:hidden;background:var(--cream-200);}
.card-media img{width:100%;height:200px;object-fit:cover;
  transition:transform .5s ease;}
.card:hover .card-media img{transform:scale(1.05);}
.card-media::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 52%,hsl(24 30% 9% / .32) 100%);}
.card-body{padding:var(--card-padding);display:flex;flex-direction:column;
  gap:var(--space-3);flex:1;}
.card-body h3{margin:0;}
.card-body p{font-size:var(--text-sm);color:var(--text-secondary);margin:0;max-width:none;}
.card-body .link-more{margin-top:auto;padding-top:var(--space-2);}

/* product card with price */
.prod{background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;
  transition:transform .25s ease,box-shadow .25s ease;}
.prod:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.prod-media{position:relative;overflow:hidden;background:var(--cream-200);}
.prod-media img{width:100%;height:180px;object-fit:cover;transition:transform .5s ease;}
.prod:hover .prod-media img{transform:scale(1.05);}
.prod-media::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 60%,hsl(24 30% 9% / .28) 100%);}
.avail{position:absolute;left:var(--space-3);top:var(--space-3);z-index:2;
  background:hsl(38 64% 98% / .95);color:var(--crust-700);
  padding:.3em .8em;border-radius:var(--radius-full);
  font-size:var(--text-xs);font-weight:var(--weight-semibold);
  letter-spacing:var(--tracking-wide);box-shadow:var(--shadow-xs);}
.prod-body{padding:var(--space-6);display:flex;flex-direction:column;
  gap:var(--space-2);flex:1;}
.prod-head{display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--space-4);}
.prod-head h3{font-size:var(--text-lg);}
.price{font-size:var(--text-lg);font-weight:var(--weight-bold);
  color:var(--blue-700);white-space:nowrap;}
.price--ask{font-size:var(--text-sm);font-weight:var(--weight-semibold);
  color:var(--text-tertiary);text-transform:uppercase;
  letter-spacing:var(--tracking-wide);}
.prod-body p{font-size:var(--text-sm);color:var(--text-secondary);margin:0;max-width:none;}
.prod-body .btn{margin-top:auto;align-self:flex-start;}

/* simple list card */
.listcard{background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;
  transition:transform .25s ease,box-shadow .25s ease;}
.listcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.listcard img{width:100%;height:150px;object-fit:cover;}
.listcard-body{padding:var(--space-6);flex:1;}
.listcard-body h3{margin-bottom:var(--space-4);}
.listcard-body li{display:flex;align-items:flex-start;gap:.65em;
  padding-block:var(--space-2);font-size:var(--text-sm);color:var(--ink-700);
  border-bottom:1px solid var(--ink-100);}
.listcard-body li:last-child{border-bottom:0;}
.listcard-body li::before{content:'';flex:none;width:6px;height:6px;margin-top:.62em;
  border-radius:50%;background:var(--blue-400);}

/* feature / point card */
.point{background:#fff;border-radius:var(--radius-lg);padding:var(--space-6);
  box-shadow:var(--shadow-sm);border-left:3px solid var(--gold-500);
  transition:transform .25s ease,box-shadow .25s ease;}
.point:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.point h3{font-size:var(--text-base);margin-bottom:var(--space-2);}
.point p{font-size:var(--text-sm);color:var(--text-secondary);margin:0;max-width:none;}

/* ---------- 9. NOTICES ---------- */
.notice{display:flex;gap:var(--space-4);align-items:flex-start;
  background:var(--blue-50);border-left:4px solid var(--blue-500);
  border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);
  font-size:var(--text-sm);color:var(--blue-900);line-height:var(--leading-snug);}
.notice svg{width:20px;height:20px;flex:none;margin-top:2px;color:var(--blue-600);}
.notice p{margin:0;max-width:none;}
.notice--gold{background:var(--gold-100);border-left-color:var(--gold-500);color:var(--crust-700);}
.notice--gold svg{color:var(--gold-600);}
.notice--plain{background:var(--cream-100);border-left-color:var(--crust-400);color:var(--crust-700);}
.notice--plain svg{color:var(--crust-500);}
.fineprint{font-size:var(--text-xs);color:var(--text-tertiary);
  letter-spacing:var(--tracking-wide);margin-top:var(--space-4);}

/* ---------- 10. PRICE TABLE ---------- */
.table-wrap{background:#fff;border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);overflow-x:auto;-webkit-overflow-scrolling:touch;}
table.prices{width:100%;border-collapse:collapse;min-width:420px;}
table.prices caption{text-align:left;padding:var(--space-6) var(--space-6) 0;
  font-size:var(--text-sm);color:var(--text-secondary);caption-side:top;}
table.prices th,table.prices td{padding:var(--space-4) var(--space-6);text-align:left;}
table.prices thead th{background:var(--crust-800);color:var(--cream-100);
  font-size:var(--text-xs);font-weight:var(--weight-semibold);
  letter-spacing:var(--tracking-widest);text-transform:uppercase;white-space:nowrap;}
table.prices thead th:not(:first-child){text-align:right;}
table.prices tbody tr{border-bottom:1px solid var(--ink-100);
  transition:background-color .18s ease;}
table.prices tbody tr:last-child{border-bottom:0;}
table.prices tbody tr:hover{background:var(--cream-50);}
table.prices tbody th{font-weight:var(--weight-semibold);font-size:var(--text-base);}
table.prices tbody td{text-align:right;font-weight:var(--weight-semibold);
  color:var(--blue-700);white-space:nowrap;}

/* dessert price rows */
.dessert-prices{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);}
.chip{display:inline-flex;align-items:baseline;gap:.45em;background:var(--blue-50);
  color:var(--blue-800);padding:.35em .85em;border-radius:var(--radius-full);
  font-size:var(--text-sm);}
.chip b{font-weight:var(--weight-bold);}

/* ---------- 11. BANDS ---------- */
.band{position:relative;overflow:clip;color:#fff;padding-block:var(--space-24);
  background:linear-gradient(125deg,var(--blue-900) 0%,var(--blue-700) 45%,
    var(--blue-600) 70%,var(--blue-800) 100%);
  background-size:280% 280%;animation:bandShift 16s ease infinite;}
@keyframes bandShift{0%{background-position:0% 50%;}50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}}
.band::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.4;
  background-image:radial-gradient(circle at 1px 1px, hsl(0 0% 100% / .22) 1px, transparent 0);
  background-size:24px 24px;}
.band-in{position:relative;z-index:1;max-width:64ch;}
.band h2{color:#fff;margin-bottom:var(--space-4);}
.band p{color:var(--blue-100);font-size:var(--text-lg);margin-bottom:var(--space-8);}
.band .script{color:var(--blue-200);font-size:var(--text-2xl);margin-bottom:var(--space-2);}

.band--dark{background:linear-gradient(140deg,var(--crust-900),var(--crust-700) 55%,var(--crust-800));
  background-size:260% 260%;animation:bandShift 18s ease infinite;}
.band--dark p{color:var(--cream-200);}
.band--dark .script{color:var(--gold-400);}

/* ---------- 12. STATS / RATING ---------- */
.rating{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-6);
  background:#fff;border-radius:var(--radius-lg);padding:var(--space-8);
  box-shadow:var(--shadow-sm);}
.rating-score{display:flex;align-items:baseline;gap:.3em;}
.rating-score b{font-size:var(--text-4xl);font-weight:var(--weight-black);
  line-height:1;letter-spacing:var(--tracking-tight);}
.rating-score span{font-size:var(--text-lg);color:var(--text-tertiary);}
.stars{display:flex;gap:3px;}
.stars svg{width:20px;height:20px;color:var(--gold-500);}

/* ---------- 13. CONTACT / MAP ---------- */
.info-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--space-12);align-items:start;}
.info-list{display:flex;flex-direction:column;gap:var(--space-6);}
.info-item{display:flex;gap:var(--space-4);align-items:flex-start;}
.info-icon{flex:none;width:44px;height:44px;border-radius:var(--radius-md);
  background:var(--blue-50);color:var(--blue-700);
  display:flex;align-items:center;justify-content:center;}
.info-icon svg{width:20px;height:20px;}
.info-item h3{font-size:var(--text-sm);letter-spacing:var(--tracking-wide);
  text-transform:uppercase;color:var(--text-tertiary);font-weight:var(--weight-semibold);
  margin-bottom:var(--space-1);}
.info-item p,.info-item a{font-size:var(--text-lg);color:var(--ink-900);
  text-decoration:none;margin:0;max-width:none;font-weight:var(--weight-medium);}
.info-item a:hover{color:var(--blue-700);text-decoration:underline;}
.info-item .small{font-size:var(--text-sm);color:var(--text-secondary);font-weight:400;}
.map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);
  background:var(--cream-200);line-height:0;}
.map iframe{width:100%;height:420px;border:0;display:block;}
.hours-list{background:#fff;border-radius:var(--radius-lg);padding:var(--space-6);
  box-shadow:var(--shadow-sm);}
.hours-list li{display:flex;justify-content:space-between;gap:var(--space-4);
  padding-block:var(--space-3);border-bottom:1px solid var(--ink-100);font-size:var(--text-sm);}
.hours-list li:last-child{border-bottom:0;}
.hours-list b{font-weight:var(--weight-semibold);}

/* ---------- 14. FORMS ---------- */
.form{background:#fff;border-radius:var(--radius-lg);padding:var(--space-8);
  box-shadow:var(--shadow-md);}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);}
.field{display:flex;flex-direction:column;}
.field--full{grid-column:1 / -1;}
.field label{font-size:var(--text-sm);font-weight:var(--weight-semibold);
  color:var(--crust-700);margin-bottom:var(--space-2);}
.field .hint{font-size:var(--text-xs);color:var(--text-tertiary);
  margin-top:var(--space-2);line-height:var(--leading-snug);}
.req{color:var(--blue-600);}
input,select,textarea{
  width:100%;min-height:48px;padding:var(--space-3) var(--space-4);
  background:var(--cream-50);border:1.5px solid var(--ink-200);
  border-radius:var(--radius-md);font-size:var(--text-base);
  box-shadow:inset 0 2px 4px hsl(24 30% 9% / .045);
  transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;}
textarea{min-height:120px;resize:vertical;line-height:var(--leading-snug);}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a6a5c' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:18px;
  padding-right:44px;}
input:hover,select:hover,textarea:hover{border-color:var(--crust-400);}
input:focus,select:focus,textarea:focus{outline:none;background:#fff;
  border-color:var(--blue-500);box-shadow:0 0 0 4px hsl(197 100% 47% / .16);}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{
  border-color:hsl(4 70% 48%);box-shadow:0 0 0 4px hsl(4 70% 48% / .13);}
.err{font-size:var(--text-xs);color:hsl(4 70% 40%);margin-top:var(--space-2);
  font-weight:var(--weight-medium);display:none;}
.err.show{display:block;}
.form-foot{margin-top:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);}
.form-foot .btn{align-self:flex-start;}

/* ---------- 15. GALLERY ---------- */
.filters{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-12);}
.filter{padding:var(--space-3) var(--space-6);min-height:44px;background:#fff;
  border:1.5px solid var(--ink-200);border-radius:var(--radius-full);cursor:pointer;
  font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--crust-600);
  letter-spacing:var(--tracking-wide);
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .12s ease;}
.filter:hover{border-color:var(--crust-400);transform:translateY(-2px);}
.filter:active{transform:translateY(1px);}
.filter[aria-pressed="true"]{background:var(--blue-600);border-color:var(--blue-600);color:#fff;}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);}
.gal figure{margin:0;position:relative;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);background:var(--cream-200);cursor:zoom-in;
  transition:transform .25s ease,box-shadow .25s ease;}
.gal figure:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.gal figure.hide{display:none;}
.gal img{width:100%;height:260px;object-fit:cover;transition:transform .5s ease;}
.gal figure:hover img{transform:scale(1.05);}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--space-6) var(--space-4) var(--space-3);
  color:#fff;font-size:var(--text-sm);font-weight:var(--weight-medium);
  background:linear-gradient(180deg,transparent,hsl(24 30% 9% / .82));
  pointer-events:none;}
.lightbox{position:fixed;inset:0;z-index:200;background:hsl(24 30% 6% / .93);
  display:flex;align-items:center;justify-content:center;padding:var(--space-6);
  opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s;}
.lightbox.open{opacity:1;visibility:visible;}
.lightbox img{max-width:min(94vw,1000px);max-height:82vh;width:auto;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);}
.lb-cap{position:absolute;left:0;right:0;bottom:var(--space-8);text-align:center;
  color:var(--cream-100);font-size:var(--text-sm);padding-inline:var(--space-6);}
.lb-btn{position:absolute;background:hsl(0 0% 100% / .1);border:1px solid hsl(0 0% 100% / .3);
  color:#fff;width:52px;height:52px;border-radius:var(--radius-full);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background-color .2s ease,transform .12s ease;}
.lb-btn:hover{background:hsl(0 0% 100% / .22);transform:scale(1.06);}
.lb-btn:active{transform:scale(.96);}
.lb-btn svg{width:22px;height:22px;}
.lb-close{top:var(--space-6);right:var(--space-6);}
.lb-prev{left:var(--space-6);top:50%;margin-top:-26px;}
.lb-next{right:var(--space-6);top:50%;margin-top:-26px;}

/* ---------- 16. FLOATING ACTIONS ---------- */
.floats{position:fixed;right:16px;bottom:16px;z-index:80;
  display:flex;flex-direction:column;gap:var(--space-3);}
.float{width:56px;height:56px;border-radius:var(--radius-full);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-lg);color:#fff;text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease,background-color .2s ease;}
.float svg{width:26px;height:26px;}
.float--wa{background:var(--success);}
.float--wa:hover{background:hsl(150,54%,27%);}
.float--call{background:var(--blue-600);}
.float--call:hover{background:var(--blue-700);}
.float:hover{transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-xl);}
.float:active{transform:translateY(0) scale(.97);}

/* ---------- 17. FOOTER ---------- */
.ftr{background:var(--crust-900);color:var(--cream-200);padding-block:var(--space-24) var(--space-8);}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--space-12);}
.ftr img.flogo{height:56px;width:auto;margin-bottom:var(--space-6);}
.ftr p{font-size:var(--text-sm);color:hsl(34 20% 68%);max-width:36ch;line-height:var(--leading-relaxed);}
.ftr h3{font-size:var(--text-xs);letter-spacing:var(--tracking-widest);
  text-transform:uppercase;color:var(--gold-400);margin-bottom:var(--space-6);
  font-weight:var(--weight-semibold);}
.ftr li{margin-bottom:var(--space-3);}
.ftr a{font-size:var(--text-sm);color:hsl(34 22% 76%);text-decoration:none;
  transition:color .2s ease;}
.ftr a:hover{color:#fff;text-decoration:underline;}
.ftr .script{color:var(--gold-400);font-size:var(--text-xl);margin-bottom:var(--space-3);}
.ftr-bottom{margin-top:var(--space-16);padding-top:var(--space-8);
  border-top:1px solid hsl(24 20% 20%);display:flex;flex-wrap:wrap;
  gap:var(--space-4);justify-content:space-between;align-items:center;
  font-size:var(--text-xs);color:hsl(34 14% 55%);}
.ftr-bottom a{font-size:var(--text-xs);color:hsl(34 18% 66%);}

/* ---------- 18. 404 ---------- */
.oops{min-height:64vh;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;padding-block:var(--space-24);}
.oops .script{font-size:var(--text-4xl);margin-bottom:var(--space-4);}
.oops h1{margin-bottom:var(--space-4);}
.oops p{margin-bottom:var(--space-8);}

/* ---------- 19. MOTION ---------- */
.reveal{opacity:0;transform:translateY(28px);
  transition:opacity .6s ease,transform .6s ease;will-change:opacity,transform;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-group>*{opacity:0;transform:translateY(28px);
  transition:opacity .6s ease,transform .6s ease;}
.reveal-group.visible>*{opacity:1;transform:translateY(0);}
.reveal-group.visible>*:nth-child(1){transition-delay:0s;}
.reveal-group.visible>*:nth-child(2){transition-delay:.08s;}
.reveal-group.visible>*:nth-child(3){transition-delay:.16s;}
.reveal-group.visible>*:nth-child(4){transition-delay:.24s;}
.reveal-group.visible>*:nth-child(5){transition-delay:.32s;}
.reveal-group.visible>*:nth-child(6){transition-delay:.4s;}
.reveal-group.visible>*:nth-child(7){transition-delay:.44s;}
.reveal-group.visible>*:nth-child(8){transition-delay:.48s;}
.no-js .reveal,.no-js .reveal-group>*{opacity:1;transform:none;}

/* ---------- 20. RESPONSIVE ---------- */
@media (max-width:1080px){
  .grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ftr-grid{grid-template-columns:1fr 1fr;gap:var(--space-8);}
}
@media (max-width:960px){
  :root{--section-y:var(--space-16);--text-5xl:2.75rem;--text-4xl:2.25rem;--text-3xl:1.75rem;}
  .nav{display:none;}
  .hdr .btn{display:none;}
  .burger{display:flex;}
  .hero-in{grid-template-columns:1fr;gap:var(--space-16);}
  .hero{padding-block:var(--space-16);}
  .cluster{max-width:460px;margin-inline:auto;padding-right:var(--space-6);}
  .grid--3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .info-grid{grid-template-columns:1fr;gap:var(--space-8);}
  .gal{grid-template-columns:repeat(2,minmax(0,1fr));}
  .map iframe{height:340px;}
}
@media (max-width:680px){
  :root{--text-5xl:2.25rem;--text-4xl:1.9rem;--text-3xl:1.5rem;--text-2xl:1.3rem;
    --section-y:var(--space-12);--card-padding:var(--space-4);}
  .wrap{padding-inline:var(--space-4);}
  .grid--4,.grid--3,.grid--2{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;gap:var(--space-4);}
  .form{padding:var(--space-6) var(--space-4);}
  .gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);}
  .gal img{height:170px;}
  .hero h1{font-size:var(--text-4xl);}
  .hero-script{font-size:var(--text-2xl);}
  .badge{left:-6px;top:12px;font-size:10px;padding:var(--space-2) var(--space-4);}
  .cluster{padding-right:var(--space-4);padding-bottom:var(--space-8);}
  .cluster-sub{max-width:130px;right:-6px;}
  .btn{padding-inline:var(--space-6);width:100%;}
  .btn-row{flex-direction:column;align-items:stretch;}
  .hdr .btn,.drawer .btn{width:100%;}
  .float{width:52px;height:52px;}
  .floats{right:12px;bottom:12px;}
  .ftr-grid{grid-template-columns:1fr;gap:var(--space-8);}
  .lb-prev{left:var(--space-2);} .lb-next{right:var(--space-2);}
  .lb-btn{width:44px;height:44px;}
  .rating{padding:var(--space-6);}
  .sec-head{margin-bottom:var(--space-8);}
  table.prices th,table.prices td{padding:var(--space-3) var(--space-4);}
}
@media (max-width:380px){
  .gal{grid-template-columns:1fr;}
  .gal img{height:200px;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;}
  .reveal,.reveal-group>*{opacity:1 !important;transform:none !important;}
}

@media print{
  .hdr,.floats,.drawer,.lightbox,.band,.filters{display:none !important;}
  body{background:#fff;}
}
