/* ==========================================================================
   Nommōs Beach — BOHO Sunday Brunch  |  Landing page styles
   ========================================================================== */
/* Script font for "Sunday Brunch" / "Live Guitar".
   Drop the Humphrey Patterson font file into /fonts (see fonts/README.txt).
   Until then it falls back to Yellowtail. */
@font-face{
  font-family:"Humphrey Patterson";
  src:url("fonts/HumphreyPatterson.ttf") format("truetype");
  font-display:swap;
}
@font-face{
  font-family:"Filosofia Fractions";
  src:url("fonts/FilosofiaFractions.otf") format("opentype");
  font-display:swap;
}

:root{
  --sand:      #F3E7D5;
  --sand-2:    #ECDDC6;
  --cream:     #FBF5EA;
  --cream-2:   #F7EEDF;
  --rust:      #A2492A;
  --rust-dark: #86391F;
  --brown:     #6E3B1E;
  --brown-deep:#4C2814;
  --tan:       #C6A067;
  --tan-soft:  #D8BE93;
  --muted:     #8C6A4F;
  --line:      rgba(110,59,30,.16);
  --shadow:    0 24px 60px -28px rgba(76,40,20,.45);
  --shadow-sm: 0 10px 30px -18px rgba(76,40,20,.5);

  --serif:  "Playfair Display", Georgia, serif;
  --serif2: "Cormorant Garamond", Georgia, serif;
  --script: "Humphrey Patterson", "Yellowtail", cursive;
  --sans:   "Cormorant Garamond", Georgia, serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  font-family:var(--sans);
  font-weight:500;
  color:var(--brown-deep);
  background:var(--sand);
  background-image:
    radial-gradient(120% 90% at 100% 0%, rgba(198,160,103,.16), transparent 46%),
    radial-gradient(120% 90% at 0% 100%, rgba(162,73,42,.10), transparent 44%);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.container{ width:min(1240px, 92vw); margin-inline:auto; }

img{ display:block; max-width:100%; }

.btn{
  --btn-bg:var(--rust);
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--sans); font-weight:600; letter-spacing:.01em; font-size:1.1rem;
  border:none; cursor:pointer; text-decoration:none; color:#fff;
  background:linear-gradient(180deg, #B0542F, var(--rust) 60%, var(--rust-dark));
  border-radius:0; padding:.85em 1.6em; font-size:.95rem;
  box-shadow:0 12px 26px -12px rgba(134,57,31,.7), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -14px rgba(134,57,31,.75); filter:brightness(1.04); }
.btn:active{ transform:translateY(0); }
.btn .arrow{ transition:transform .2s ease; }
.btn:hover .arrow{ transform:translateX(4px); }
.btn-sm{ padding:.5em 1.4em; font-size:.92rem; }
.btn-lg{ padding:.9em 2em; font-size:1.2rem; }

/* ============ HEADER (floating bar over the hero photo) ============ */
.site-header{
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:min(1400px, 90%); z-index:60;
  background:rgba(250,241,232,.9);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-radius:0 0 22px 22px;
  box-shadow:0 14px 34px -16px rgba(76,40,20,.45);
}
.header-inner{
  display:flex; align-items:center; gap:1.5rem;
  width:100%; max-width:none; margin:0;
  padding:.6rem 2rem;
}
.logo{ text-decoration:none; display:flex; align-items:center; flex-shrink:0; }
.logo-img{ height:48px; width:auto; display:block; }

.main-nav{ margin-left:auto; display:flex; align-items:center; gap:1.8rem; }
.main-nav a{
  text-decoration:none; color:var(--brown); font-weight:500; font-size:1.05rem;
  letter-spacing:.01em; transition:color .2s ease; position:relative;
}
.main-nav a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:-6px; height:2px; width:0;
  background:var(--rust); transition:width .25s ease;
}
.main-nav a:not(.btn):hover{ color:var(--rust); }
.main-nav a:not(.btn):hover::after{ width:100%; }
.main-nav a.btn{ color:#fff; }

.lang-switch{ display:flex; align-items:center; gap:.5rem; flex-shrink:0; }
.lang{ background:none; border:none; cursor:pointer; font-family:var(--sans); font-weight:600; font-size:.85rem; color:var(--muted); letter-spacing:.05em; padding:.15rem; transition:color .2s ease; }
.lang.active{ color:var(--rust); }
.lang-sep{ color:var(--line); }

.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.nav-toggle span{ width:24px; height:2px; background:var(--brown); border-radius:2px; transition:.25s; }

/* ============ HERO ============ */
.hero{
  position:relative;
  padding:0;
  background:var(--sand);
}

/* ---- full-width hero ---- */
.hero-frame{
  position:relative; isolation:isolate;
  width:100%; margin:0;
  min-height:min(88vh, 780px);
  display:flex; align-items:center; justify-content:center;
  border-radius:0; overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0; z-index:0;
  background:url("hero-bg.webp") center top/cover no-repeat;
}
.hero-overlay{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(76,40,20,.12), rgba(76,40,20,0) 24%, rgba(76,40,20,.18));
}
.live-badge{
  position:absolute; right:5%; top:46%; z-index:5;
  transform:rotate(-8deg);
  padding:.7em 1.6em .9em;
  display:inline-block;
}
.live-bg{
  position:absolute; inset:-8px; z-index:0;
  filter:blur(6px) drop-shadow(0 10px 18px rgba(0,0,0,.3));
}
.live-text{
  position:relative; z-index:1; display:block;
  font-family:var(--script); font-weight:400; color:#fff; text-align:center; line-height:.95;
  font-size:clamp(1.35rem, 2.5vw, 2.2rem);
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}
.live-text em{ font-style:normal; display:block; font-size:1.4em; }

/* ---- torn-paper light area behind the title ---- */
.hero-paper{
  position:absolute; z-index:2;
  left:50%; top:calc(50% + 14px); transform:translate(-50%,-52%);
  width:min(690px, 87vw); height:min(530px, 73vh);
  filter:blur(11px) drop-shadow(0 24px 48px rgba(76,40,20,.26));
  opacity:.96; pointer-events:none;
}

/* ---- content ---- */
.hero-content{ position:relative; z-index:3; display:flex; justify-content:center; transform:translateY(14px); }
.hero-card{ text-align:center; max-width:600px; padding:1rem 1.4rem; }
.hero-title{ display:flex; flex-direction:column; align-items:center; line-height:.84; }
.hero-title .boho{
  font-family:var(--serif); font-weight:900;
  font-size:clamp(4rem, 12vw, 8.8rem);
  letter-spacing:.02em;
  background:linear-gradient(180deg, #7a4423, #4c2814);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.script-wrap{ position:relative; display:inline-block; margin-top:-.24em; }
.hero-title .script{
  font-family:var(--script); font-weight:400;
  font-size:clamp(2.2rem, 6.8vw, 4.7rem);
  color:var(--rust); display:block; line-height:1.05;
}
.title-underline{
  position:absolute; left:1%; bottom:-.16em; width:99%; height:.6em;
  overflow:visible;
}
.hero-lead{
  font-family:"Bodoni Moda", var(--serif2); font-weight:500;
  font-size:clamp(1.25rem, 2.5vw, 1.85rem);
  color:#5A2814; margin-top:.8rem;
}
.hero-date{
  margin-top:1rem; color:var(--brown);
  font-weight:600; font-size:clamp(.82rem,1.5vw,1rem);
  letter-spacing:.01em;
  display:inline-block;
  padding:.55rem 1.3rem;
  border-top:1px solid rgba(110,59,30,.38);
  border-bottom:1px solid rgba(110,59,30,.38);
}
.hero-cta{ margin-top:1.5rem; border-radius:0; }

/* ---- palm-leaf corner decorations ---- */
.palm{ position:absolute; z-index:2; width:clamp(110px, 13vw, 200px); height:auto; opacity:.18; pointer-events:none; }
.palm-tl{ top:4px; left:4px; transform:rotate(22deg); }
.palm-br{ bottom:4px; right:4px; transform:rotate(202deg); }

/* ============ FORMULES ============ */
/* ============ MODE DE RÉSERVATION ============ */
.modes{ padding:3.8rem 0 1rem; position:relative; }
.modes-sub{ text-align:center; font-family:var(--serif2); font-style:italic; font-size:clamp(1.05rem,2.2vw,1.35rem); color:var(--muted); margin:-1.6rem 0 2.4rem; }
.modes-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; max-width:900px; margin-inline:auto; }
.mode-card{
  background:var(--cream); border:1px solid var(--line); border-radius:20px;
  padding:1.9rem 1.8rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column;
}
.mode-card-featured{ background:linear-gradient(180deg, #F7E7DD, #FBF1E8); border-color:rgba(162,73,42,.3); }
.mode-top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.15rem; }
.mode-icon{ width:46px; height:46px; border-radius:13px; display:grid; place-items:center; background:rgba(162,73,42,.09); color:var(--rust); flex-shrink:0; }
.mode-icon svg{ width:24px; height:24px; }
.mode-card-featured .mode-icon{ background:rgba(162,73,42,.17); }
.mode-badge{ font-family:var(--sans); font-weight:600; font-size:.78rem; letter-spacing:.03em; color:var(--muted); background:rgba(110,59,30,.08); border-radius:999px; padding:.42em 1.05em; white-space:nowrap; }
.mode-badge-pay{ color:#fff; background:var(--rust); }
.mode-name{ font-family:var(--serif); font-weight:700; font-size:clamp(1.3rem,2.6vw,1.6rem); color:var(--brown-deep); margin-bottom:.6rem; }
.mode-desc{ font-family:var(--sans); font-weight:500; font-size:1.02rem; line-height:1.6; color:var(--muted); margin-bottom:1.6rem; flex:1 1 auto; }
.mode-btn{ width:100%; justify-content:center; }
.btn-ghost{ background:transparent; color:var(--brown-deep); border:1.5px solid rgba(110,59,30,.4); box-shadow:none; }
.btn-ghost:hover{ background:rgba(110,59,30,.06); border-color:var(--rust); color:var(--rust); filter:none; box-shadow:none; }

.formules{ padding:4.5rem 0 5rem; position:relative; }
.section-title{
  text-align:center; font-family:var(--serif); font-weight:700;
  font-size:clamp(2rem, 4.5vw, 3.2rem); color:var(--brown);
  display:flex; align-items:center; justify-content:center; gap:1.1rem;
  margin-bottom:2.6rem;
}
.flourish{ position:relative; height:1px; width:clamp(28px,7vw,96px); background:linear-gradient(90deg, transparent, var(--tan)); }
.flourish.right{ background:linear-gradient(90deg, var(--tan), transparent); }
.flourish::after{
  content:""; position:absolute; top:50%; width:7px; height:7px;
  background:var(--tan); transform:translateY(-50%) rotate(45deg);
}
.flourish.left::after{ right:-4px; }
.flourish.right::after{ left:-4px; }

.cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; max-width:720px; margin-inline:auto; }
.card{
  background:var(--cream); border:1px solid var(--line); border-radius:20px;
  overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.card-featured{ outline:2px solid var(--tan); outline-offset:-2px; }
.card-img{ height:190px; background-size:cover; background-position:center; }
.card-img-1{ background-image:url("PREMIUM%20BRUNCH.jpeg"); }
.card-img-3{ background-image:url("ENFANTS.jpg"); }
.card-body{ padding:1.5rem 1rem 1.8rem; text-align:center; }
.card-name{ font-family:var(--sans); font-weight:600; letter-spacing:.1em; font-size:1.1rem; color:var(--brown); text-transform:uppercase; }
.card-price{ font-family:var(--serif); color:var(--brown-deep); margin-top:.5rem; line-height:1; }
.card-price strong{ font-size:2.9rem; font-weight:800; }
.card-price span{ font-size:1.1rem; font-weight:600; letter-spacing:.04em; }
.card-unit{ font-family:var(--serif2); font-style:italic; color:var(--muted); font-size:1.05rem; margin-top:.3rem; }

/* ============ BOOKING WIDGET ============ */
.booking{
  margin-top:2.6rem; background:var(--cream-2);
  border:1px solid var(--line); border-radius:22px;
  box-shadow:var(--shadow-sm); padding:1.6rem 1.6rem 1.7rem;
  scroll-margin-top:90px;
}
.booking-fields{ display:grid; grid-template-columns:1.3fr 1.3fr 1fr 1fr; gap:1.2rem; }
.field{ display:flex; flex-direction:column; gap:.5rem; }
.field label{ font-size:.82rem; font-weight:600; letter-spacing:.14em; color:var(--muted); }

.select-wrap{ position:relative; display:flex; align-items:center; }
.select-wrap .fi{ position:absolute; left:.85rem; width:18px; height:18px; pointer-events:none; }
.select-wrap select{
  appearance:none; width:100%; font-family:var(--sans); font-size:1.1rem; color:var(--brown-deep);
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:.72rem 2.4rem .72rem 2.7rem; cursor:pointer; font-weight:600;
}
.select-wrap::after{
  content:"▾"; position:absolute; right:1rem; color:var(--muted); pointer-events:none; font-size:.8rem;
}
.fi{ fill:none; stroke:var(--rust); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

.stepper{ display:flex; align-items:center; gap:.4rem; background:#fff; border:1px solid var(--line); border-radius:12px; padding:.42rem .6rem; }
.stepper .fi{ width:18px; height:18px; margin-right:.2rem; }
.step{
  width:32px; height:32px; border-radius:50%; border:1px solid var(--line);
  background:var(--cream); color:var(--rust); font-size:1.25rem; font-weight:600; line-height:1;
  cursor:pointer; display:grid; place-items:center; transition:.18s;
}
.step:hover{ background:var(--rust); color:#fff; border-color:var(--rust); }
.step-val{ min-width:2ch; text-align:center; font-weight:700; font-size:1.1rem; color:var(--brown-deep); }

.booking-total{
  display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap;
  margin-top:1.4rem; padding-top:1.3rem; border-top:1px dashed var(--line);
}
.recap{ display:flex; flex-direction:column; gap:.2rem; }
.recap-label{ font-size:.8rem; font-weight:600; letter-spacing:.14em; color:var(--muted); }
.recap-text{ font-family:var(--serif2); font-size:1.05rem; color:var(--brown); font-weight:600; }
.total{ margin-left:auto; display:flex; align-items:baseline; gap:.7rem; }
.total-label{ font-size:.85rem; font-weight:600; letter-spacing:.16em; color:var(--muted); }
.total-val{ font-family:var(--serif); font-weight:800; font-size:1.9rem; color:var(--brown-deep); }

/* ---- Sunday-only calendar (date field) ---- */
.field-date{ position:relative; }
.date-trigger{
  width:100%; text-align:left; background:#fff; border:1px solid var(--line); cursor:pointer;
  font-family:var(--sans); font-size:1.1rem; font-weight:600; color:var(--brown-deep);
  padding:.72rem 1rem .72rem 2.7rem; border-radius:12px;
}
.date-wrap .fi{ z-index:1; }
.date-trigger:focus-visible{ outline:2px solid var(--rust); outline-offset:2px; }
.cal{
  position:absolute; top:calc(100% + .5rem); left:0; z-index:40;
  width:min(330px, 86vw);
  background:var(--cream); border:1px solid var(--line); border-radius:18px;
  box-shadow:0 24px 50px -20px rgba(76,40,20,.5);
  padding:1rem 1rem .9rem;
}
.cal[hidden]{ display:none; }
@media (prefers-reduced-motion: no-preference){
  .cal:not([hidden]){ animation:calIn .22s cubic-bezier(.16,1,.3,1); }
  @keyframes calIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
}
.cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.7rem; }
.cal-title{ font-family:var(--serif); font-weight:700; font-size:1.15rem; color:var(--brown-deep); text-transform:capitalize; }
.cal-nav{
  width:34px; height:34px; border-radius:999px; border:1px solid var(--line);
  background:transparent; color:var(--brown-deep); font-size:1.3rem; line-height:1; cursor:pointer;
  display:grid; place-items:center; transition:.18s;
}
.cal-nav:hover:not(:disabled){ background:var(--rust); border-color:var(--rust); color:#fff; }
.cal-nav:disabled{ opacity:.3; cursor:default; }
.cal-week, .cal-grid{ display:grid; grid-template-columns:repeat(7, 1fr); gap:3px; }
.cal-week span{
  text-align:center; font-size:.75rem; font-weight:700; letter-spacing:.08em;
  color:var(--muted); padding:.25rem 0;
}
.cal-week span.is-sun{ color:var(--rust); }
.cal-day{
  aspect-ratio:1; border:none; background:transparent; border-radius:999px;
  font-family:var(--sans); font-size:1rem; font-weight:600; color:rgba(110,59,30,.28);
  display:grid; place-items:center; cursor:default;
}
.cal-day.is-open{
  color:var(--brown-deep); cursor:pointer;
  background:rgba(162,73,42,.08); box-shadow:inset 0 0 0 1px rgba(162,73,42,.28);
  transition:background .18s, color .18s, transform .18s;
}
.cal-day.is-open:hover{ background:rgba(162,73,42,.18); }
.cal-day.is-open:active{ transform:scale(.94); }
.cal-day.is-open:focus-visible{ outline:2px solid var(--rust); outline-offset:1px; }
.cal-day.is-selected, .cal-day.is-selected:hover{
  background:var(--rust); color:#fff; box-shadow:0 8px 16px -8px rgba(134,57,31,.8);
}
.cal-hint{ margin-top:.7rem; font-size:.88rem; font-style:italic; color:var(--muted); text-align:center; }

/* ============ FOOTER ============ */
.footer-strip{ padding:2.4rem 0 2.6rem; text-align:center; }
.footer-inner{ display:flex; flex-direction:column; align-items:center; gap:1.2rem; }
.footer-vibes{
  font-family:var(--sans); font-weight:600; font-size:.9rem; letter-spacing:.3em;
  color:var(--muted); text-transform:uppercase;
}
.footer-pay{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.9rem 1.1rem; }
.footer-pay img{ height:30px; width:auto; opacity:.92; }
.footer-legal{ display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; justify-content:center; }
.footer-legal a{ color:var(--brown); text-decoration:none; font-size:.92rem; font-weight:600; transition:color .2s ease; }
.footer-legal a:hover{ color:var(--rust); text-decoration:underline; }
.footer-copy{ font-size:.82rem; color:var(--muted); }

/* ============ GALLERY ============ */
.gallery-sec{ padding:1rem 0 4.5rem; }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:repeat(4, clamp(150px, 15.5vw, 215px));
  gap:14px;
}
.g-item{
  display:block; margin:0; padding:0; border:none; cursor:pointer;
  background:none; border-radius:16px; overflow:hidden; position:relative;
  box-shadow:var(--shadow-sm);
}
.g-item img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
/* mosaic placement — varied proportions, fills a 4x4 grid with no gaps */
.g-item:nth-child(1){ grid-column:1 / 3; grid-row:1 / 3; } /* large feature */
.g-item:nth-child(2){ grid-column:3 / 4; grid-row:1 / 3; } /* tall */
.g-item:nth-child(3){ grid-column:4 / 5; grid-row:1 / 2; } /* small */
.g-item:nth-child(4){ grid-column:4 / 5; grid-row:2 / 3; } /* small */
.g-item:nth-child(5){ grid-column:1 / 3; grid-row:3 / 4; } /* wide */
.g-item:nth-child(6){ grid-column:3 / 4; grid-row:3 / 4; } /* small */
.g-item:nth-child(7){ grid-column:4 / 5; grid-row:3 / 4; } /* small */
.g-item:nth-child(8){ grid-column:1 / 2; grid-row:4 / 5; } /* small */
.g-item:nth-child(9){ grid-column:2 / 3; grid-row:4 / 5; } /* small */
.g-item:nth-child(10){ grid-column:3 / 5; grid-row:4 / 5; } /* wide */
.g-item::after{
  content:""; position:absolute; inset:0; border-radius:16px;
  background:linear-gradient(0deg, rgba(76,40,20,.28), transparent 45%);
  opacity:0; transition:opacity .3s ease; pointer-events:none;
}
.g-item:hover img{ transform:scale(1.05); }
.g-item:hover::after{ opacity:1; }
.g-item:focus-visible{ outline:3px solid var(--rust); outline-offset:3px; }

/* lightbox */
.lightbox{
  position:fixed; inset:0; z-index:200; display:none;
  align-items:center; justify-content:center;
  background:rgba(40,21,10,.92); backdrop-filter:blur(4px);
}
.lightbox.open{ display:flex; }
.lb-img{ max-width:90vw; max-height:86vh; border-radius:8px; box-shadow:0 24px 70px rgba(0,0,0,.55); }
.lb-btn{
  position:absolute; border:none; cursor:pointer; color:#fff; line-height:1;
  background:rgba(255,255,255,.14); transition:background .2s ease; display:grid; place-items:center;
}
.lb-btn:hover{ background:rgba(255,255,255,.28); }
.lb-close{ top:18px; right:22px; width:46px; height:46px; border-radius:50%; font-size:1.8rem; }
.lb-prev,.lb-next{ top:50%; transform:translateY(-50%); width:54px; height:54px; border-radius:50%; font-size:2rem; font-family:var(--serif); }
.lb-prev{ left:18px; } .lb-next{ right:18px; }

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .cards{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; }
  .modes-grid{ grid-template-columns:1fr; max-width:500px; margin-inline:auto; }
  .booking-fields{ grid-template-columns:1fr 1fr; }
  .hero-frame{ min-height:min(82vh, 560px); border-radius:0; }
  .live-badge{ top:auto; bottom:3.5%; right:5%; padding:.45em 1.15em .6em; }
  .live-text{ font-size:clamp(1.05rem, 4.4vw, 1.45rem); }
}
@media (max-width:720px){
  .main-nav{ display:none; }
  .lang-switch{ display:flex; margin-left:auto; }
  .logo-img{ height:32px; }
  .main-nav.open{
    display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem;
    position:absolute; top:100%; left:0; right:0; background:var(--sand);
    padding:1.4rem 6vw; border-bottom:1px solid var(--line); margin:0; z-index:70;
  }
  .nav-toggle{ display:flex; margin-left:.5rem; }
  .header-inner{ position:relative; gap:.6rem; }
  .booking-total{ flex-direction:column; align-items:stretch; text-align:left; }
  .total{ margin-left:0; justify-content:space-between; }
  .booking-total .btn{ justify-content:center; }
  /* gallery becomes a swipeable carousel */
  .gallery-grid{
    display:flex; grid-template-columns:none; gap:12px;
    overflow-x:auto; scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    padding-bottom:10px;
  }
  .gallery-grid::-webkit-scrollbar{ display:none; }
  .g-item{ flex:0 0 82%; scroll-snap-align:center; aspect-ratio:4/3; }
}
@media (max-width:480px){
  .booking-fields{ grid-template-columns:1fr; }
  .logo-img{ height:28px; }
}
