/* ============================================================
   Saadeddin — Catering Menu Builder
   Design tokens, global rules, responsive + print overrides.
   ============================================================ */

:root{
  /* Surfaces */
  --bg:#F6EFE2;          /* page background */
  --panel:#FCF7EC;       /* form & menu cards */
  --band:#EFE5D2;        /* alt sections */
  --img-slot:#EFE6D2;    /* image placeholders */
  --sel:#F8EEE4;         /* selected cards */
  --disabled:#F2EBDC;    /* disabled dish cards */
  --badge:#F4E6DC;       /* "limit met" badge */
  --dark:#3B2A23;        /* footer / dark surface */
  /* Text */
  --ink:#3B2A23;
  --muted:#6E5E50;
  --faint:#8C7C6C;
  /* Lines */
  --border:#E6DAC6;
  --input-border:#E2D5BD;
  /* Accent (themeable) — brand green is default. Overridden per-theme on .sd-root */
  --accent:#1A604A;
  --accent-dark:#124434;
  --gold:#C0973A;
  --gold-ink:#9A7A1E;
  /* Fonts — swapped on language change via .sd-root[dir] below */
  --font-head:'Cormorant Garamond', serif;
  --font-body:'Hanken Grotesk', system-ui, sans-serif;
}

*{ box-sizing:border-box; }
html,body{ margin:0; }
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}

/* Arabic = RTL fonts + no letter-spacing (breaks Arabic glyph joining) */
.sd-root[dir="rtl"]{
  --font-head:'El Messiri', serif;
  --font-body:'Tajawal', system-ui, sans-serif;
}
.sd-root[dir="rtl"] *{ letter-spacing:normal !important; }

/* Accent themes (default green lives in :root) */
.sd-root[data-accent="maroon"]   { --accent:#7C1E2D; --accent-dark:#5E1422; }
.sd-root[data-accent="gold"]     { --accent:#A77B1E; --accent-dark:#866015; }
.sd-root[data-accent="charcoal"] { --accent:#3A352E; --accent-dark:#28241F; }

input,select,button,textarea{ font-family:inherit; color:inherit; }
input:focus,select:focus{ outline:none; border-color:var(--accent); }
::placeholder{ color:#B0A48F; }
button{ font-family:var(--font-body); }

/* ---- Reusable element styles ---- */
.sd-root{ min-height:100vh; }
.kicker{ font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-ink); font-weight:700; }
.kicker-sm{ font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-ink); }

.pill{ border-radius:999px; font-weight:600; cursor:pointer; white-space:nowrap; transition:background .15s, opacity .15s; }
.pill-primary{ background:var(--accent); color:#F6EFE2; border:none; padding:13px 24px; font-size:14px; }
.pill-primary:hover{ background:var(--accent-dark); }
.pill-outline{ background:none; border:1px solid #D8C8A8; color:#5E4A3A; padding:10px 16px; font-size:13px; }
.pill-outline:hover{ background:#EFE4CF; }
/* WhatsApp action — recognizable brand green, primary CTA on the summary */
.pill-wa{ background:#25D366; color:#0A2A18; border:none; font-size:14px; font-weight:700;
  display:inline-flex; align-items:center; box-shadow:0 10px 24px -12px rgba(37,211,102,.7); }
.pill-wa:hover{ background:#1EBE5A; }

a, .link{ color:inherit; }

/* Logo button reset */
.linkbtn{ background:none; border:none; cursor:pointer; padding:0; display:flex; align-items:center; gap:10px; }

/* Inputs */
.field-label{ font-size:13px; font-weight:600; color:#4A3A30; }
.field{ border:1px solid var(--input-border); background:#FFFDF8; border-radius:11px; padding:14px 16px; font-size:15px; width:100%; }

/* Cards / panels */
.panel{ background:var(--panel); border:1px solid var(--border); border-radius:18px; }

/* Image slot placeholder (fallback) */
.img-slot{
  background:var(--img-slot); display:flex; align-items:center; justify-content:center;
  color:var(--faint); font-size:13px; text-align:center; padding:14px; width:100%; height:100%;
}
.img-slot img{ width:100%; height:100%; object-fit:cover; display:block; }

/* Real photography — cover-fit media with subtle hover zoom + gradient scrim */
.media{ position:relative; overflow:hidden; }
.media-img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
  background:var(--img-slot);
}
.media-zoom:hover .media-img{ transform:scale(1.06); }
.scrim-b{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(24,14,8,.58) 0%, rgba(24,14,8,.10) 38%, rgba(24,14,8,0) 60%); }
.scrim-soft{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(24,14,8,.30), rgba(24,14,8,0) 45%); }
.gal-cap{ position:absolute; inset-inline:0; bottom:0; padding:18px 20px; pointer-events:none;
  font-family:var(--font-head); font-size:22px; font-weight:600; color:#FBF4E6;
  text-shadow:0 1px 14px rgba(0,0,0,.45); }
@media (prefers-reduced-motion:reduce){ .media-img{ transition:none; } .media-zoom:hover .media-img{ transform:none; } }

/* Layout helpers */
.wrap-landing{ max-width:1180px; margin:0 auto; }
.wrap-builder{ max-width:1080px; margin:0 auto; }
.pad{ padding-left:32px; padding-right:32px; }
.vpad{ padding-top:64px; padding-bottom:64px; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }

/* Headings */
.h1-hero{ font-family:var(--font-head); font-weight:600; font-size:60px; line-height:1.08; margin:18px 0 0; text-wrap:balance; }
.h1-step{ font-family:var(--font-head); font-weight:600; font-size:42px; margin:14px 0 8px; }
.h2{ font-family:var(--font-head); font-weight:600; font-size:44px; margin:14px 0 0; text-wrap:balance; }

/* Touch targets — keep >=44px on coarse pointers */
@media (pointer:coarse){
  .pill{ min-height:44px; }
}

/* ===================== Responsive ===================== */
@media (max-width:820px){
  .sd-hero2{ grid-template-columns:1fr !important; gap:30px !important; }
  .sd-3col{ grid-template-columns:1fr !important; gap:24px !important; }
  .sd-dishgrid{ grid-template-columns:1fr !important; }
  .sd-2col-sm{ grid-template-columns:1fr !important; }
  .h1-hero{ font-size:38px !important; line-height:1.1 !important; }
  .h2{ font-size:32px !important; }
  .h1-step{ font-size:34px !important; }
  .pad{ padding-left:20px !important; padding-right:20px !important; }
  .vpad{ padding-top:44px !important; padding-bottom:44px !important; }
  .sd-topbar{ padding:16px 20px !important; gap:12px !important; }
  .sd-steplabel{ display:none !important; }
  .sd-stepper{ gap:6px !important; }
  .sd-sep{ width:14px !important; }
  .sd-summary{ padding:30px 22px !important; }
  .sd-summary-title{ font-size:34px !important; }
  .sd-navbar{ flex-wrap:wrap !important; gap:10px !important; }
  .sd-navbar > *{ flex:1 1 auto !important; }
  .sd-navbar .sd-navgroup{ display:flex !important; gap:10px !important; flex-wrap:wrap !important; }
  .sd-navbar .sd-navgroup > *{ flex:1 1 auto !important; justify-content:center !important; }
  .sd-navbar .sd-navgroup .pill-wa{ flex-basis:100% !important; order:-1; }
  .sd-bbar{ flex-wrap:wrap !important; }
  .sd-hero-img{ aspect-ratio:5/4 !important; }
  .sd-footer{ flex-direction:column !important; align-items:flex-start !important; }
  .sd-build-head{ flex-direction:column !important; align-items:flex-start !important; }
}
@media (max-width:480px){
  .h1-hero{ font-size:32px !important; }
  .sd-pax-num{ font-size:34px !important; }
  .sd-brandtxt{ font-size:20px !important; }
  .h1-step{ font-size:30px !important; }
  .pill-primary, .pill-outline{ font-size:13px; }
}

/* ===================== Print ===================== */
@media print{
  [data-noprint]{ display:none !important; }
  body, .sd-root{ background:#fff !important; }
  .sd-summary{ border:none !important; box-shadow:none !important; padding:0 !important; max-width:none !important; }
  .builder-body{ padding-top:0 !important; padding-bottom:0 !important; }
}
