/* OLEV palette: exact vector colors from the supplied brand profile.
   Olive #63560C; blush #FFECE4; burgundy #690F0A; ink #240707; cream #FFECC4.
   Reference layout, section proportions, imagery and typography are unchanged. */
:root {
  --olev-olive: #63560C;
  --olev-blush: #FFECE4;
  --olev-burgundy: #690F0A;
  --olev-ink: #240707;
  --olev-cream: #FFECC4;
  --moss: var(--olev-olive);
  --gold: var(--olev-cream);
  --paper: var(--olev-blush);
  --ink: var(--olev-ink);
  --muted: color-mix(in srgb, var(--olev-ink) 75%, var(--olev-blush));
  --line: rgb(99 86 12 / .22);
}
.site-header { background: rgb(255 236 228 / .97); }
.hero h1 em { color: var(--olev-burgundy); }
.small-rule { background: var(--olev-burgundy); }
.button-dark { background: var(--olev-olive); color: var(--olev-cream); }
.button-dark:hover { background: var(--olev-burgundy); }
.button-gold { background: var(--olev-cream); color: var(--olev-burgundy); }
.button-gold:hover { background: var(--olev-blush); color: var(--olev-burgundy); }
.button-outline { color: var(--olev-olive); border-color: var(--olev-olive); }
.button-outline:hover { background: var(--olev-olive); color: var(--olev-cream); }
.text-link:hover, .plain-button:hover { color: var(--olev-burgundy); }
.menu-feature, .final-section { background: var(--olev-olive); }
.catering-section, .site-footer { background: var(--olev-burgundy); }
.catering-section :is(.text-link:hover, .plain-button:hover),
.site-footer :is(.text-link:hover, .plain-button:hover) { color: var(--olev-cream); }
.visit-section { background: var(--olev-cream); }
.mobile-action-bar { background: var(--olev-burgundy); }
.whatsapp-floating { background: var(--olev-olive); color: var(--olev-cream); border-color: rgb(255 236 196 / .5); }
.whatsapp-floating:hover { background: var(--olev-burgundy); color: var(--olev-cream); }
.catering-section .enquiry-fallback-actions .button-outline { color: var(--olev-cream); border-color: var(--olev-cream); }
.catering-section .enquiry-fallback-actions .button-outline:hover { background: var(--olev-cream); color: var(--olev-burgundy); }
button, input, select, textarea { accent-color: var(--olev-olive); }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible { outline-color: var(--olev-burgundy); }
.catering-enquiry :is(input, select, textarea, button, a, summary):focus-visible,
.site-footer :is(a, button):focus-visible { outline-color: var(--olev-cream); }
/* Original OLEV source-asset sizing. */
.brand { width: 185px; }
.brand img { width: 145px; height: 65px; object-fit: contain; }
.story-signature img { max-height: 80px; object-fit: contain; object-position: left center; }
.footer-brand img { width: 175px; height: auto; filter: none; }
.menu-downloads { display: flex; flex-wrap: wrap; gap: 12px 25px; margin-top: 24px; }
.menu-downloads .text-link { color: var(--olev-cream); font-size: 10px; gap: 8px; }
.gallery-controls { display: flex; justify-content: center; gap: 20px; padding: 8px 0 16px; }
.gallery-controls button { background: transparent; color: var(--olev-cream); border: 1px solid rgb(255 236 196 / .4); width: 44px; height: 40px; font-size: 22px; }
.privacy-page { max-width: 1050px; padding-top: 80px; padding-bottom: 110px; }
.privacy-page h1 { font-size: clamp(44px, 6vw, 78px); line-height: 1.08; margin: 20px 0; }
.privacy-date { font-size: 12px; margin-bottom: 50px; }
.privacy-page section { padding-block: 25px; border-top: 1px solid var(--line); }
.privacy-page section h2 { font-size: 32px; margin-bottom: 12px; }
.privacy-page section p { font-size: 14px; max-width: 750px; }
.preferences-dialog input:disabled { opacity: .4; cursor: not-allowed; }
@media (max-width: 700px) {
  .brand img { width: 110px; height: 50px; }
  .brand { width: 118px; }
  .menu-downloads { gap: 10px 16px; }
  .privacy-page { padding-top: 45px; padding-bottom: 65px; }
}

/* Keep distinct portfolio and collaboration links readable in both languages. */
.design-section .text-link + .text-link { margin-inline-start: 24px; }
@media (max-width: 700px) {
  .design-section .text-link + .text-link { display: flex; width: fit-content; max-width: 100%; margin-inline-start: 0; }
}

/* Native phone protocols need a dialer; the dialog keeps contact usable everywhere. */
.call-dialog { max-width: 580px; }
.call-number { width: 100%; box-sizing: border-box; padding: 14px 16px; border: 1px solid var(--line); color: var(--ink); background: var(--paper); font: inherit; font-size: 24px; }
.call-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 24px; }
.call-dialog #call-status { min-height: 1.5em; margin-top: 18px; }

/* Selected editorial coverage; publisher names are text, not invented endorsements. */
.press-section { padding-block: 72px; border-top: 1px solid var(--line); }
.press-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; margin-top: 40px; }
.press-card { display: flex; flex-direction: column; min-width: 0; padding: 28px; background: var(--olev-cream); border: 1px solid var(--line); }
.press-publisher { margin: 0 0 26px; color: var(--olev-olive); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.press-card h3 { margin: 0 0 20px; font-family: var(--serif); font-size: 29px; font-weight: 400; line-height: 1.18; }
.press-summary { margin: 0 0 28px; font-size: 14px; line-height: 1.8; color: var(--muted); }
.press-read { margin-top: auto; align-self: flex-start; }
[dir=rtl] .press-card h3 { font-family: OlevArabic, sans-serif; font-size: 29px; line-height: 1.5; }
@media (max-width: 800px) { .press-section { padding-block: 52px; } .press-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 30px; } .press-card { padding: 24px; } }
