/* Onako Bliss — design system (complements Tailwind CDN) */

:root{
  --ob-bg:#070605;
  --ob-bg2:#0d0b09;
  --ob-surface:rgba(255,248,236,.035);
  --ob-surface-hi:rgba(255,248,236,.06);
  --ob-border:rgba(255,240,220,.09);
  --ob-border-hi:rgba(230,200,150,.35);
  --ob-text:#f4efe7;
  --ob-muted:rgba(244,239,231,.62);
  --ob-muted2:rgba(244,239,231,.42);
  --ob-gold:#d8b98a;
  --ob-gold-hi:#f0d6ab;
  --ob-gold-lo:#9c7f55;
  --ob-radius:18px;
  --ob-ease:cubic-bezier(.22,.61,.36,1);
  --ob-nav-h:84px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
html,body{min-height:100%;}

body{
  margin:0;
  background:
    radial-gradient(1100px 620px at 50% -12%, rgba(216,185,138,.10), transparent 60%),
    radial-gradient(900px 600px at -10% 30%, rgba(216,185,138,.05), transparent 60%),
    radial-gradient(900px 600px at 110% 60%, rgba(255,255,255,.035), transparent 60%),
    var(--ob-bg);
  background-attachment: fixed;
  color:var(--ob-text);
  font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-weight:300;
  letter-spacing:.01em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

::selection{background:var(--ob-gold); color:#120e09;}

img, iframe, video, svg{max-width:100%;}
img, video{height:auto;}

/* ---------- Type ---------- */
.font-display{font-family:'Cormorant Garamond', 'Playfair Display', Georgia, serif; font-weight:400; letter-spacing:-.01em;}
.font-script{font-family:'Playfair Display', Georgia, serif; font-style:italic;}
.text-gold{color:var(--ob-gold);}
.text-muted{color:var(--ob-muted);}
.text-muted2{color:var(--ob-muted2);}

.ob-gold-grad{
  background:linear-gradient(100deg, var(--ob-gold-lo) 0%, var(--ob-gold-hi) 40%, #fff3dc 50%, var(--ob-gold-hi) 60%, var(--ob-gold-lo) 100%);
  background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
  animation:ob-shine 7s linear infinite;
}
@keyframes ob-shine{ to{ background-position:-220% 0; } }

.ob-eyebrow{
  display:inline-flex; align-items:center; gap:.75rem;
  font-size:10.5px; font-weight:500; letter-spacing:.38em; text-transform:uppercase;
  color:var(--ob-gold);
}
.ob-eyebrow::before{content:""; width:28px; height:1px; background:currentColor; opacity:.7;}
.ob-eyebrow.center::after{content:""; width:28px; height:1px; background:currentColor; opacity:.7;}

.ob-h1{font-family:'Cormorant Garamond', Georgia, serif; font-weight:300; line-height:.98; letter-spacing:-.02em; font-size:clamp(2.75rem, 7.2vw, 6.25rem);}
.ob-h2{font-family:'Cormorant Garamond', Georgia, serif; font-weight:400; line-height:1.05; letter-spacing:-.015em; font-size:clamp(2.1rem, 4.4vw, 3.6rem);}
.ob-h3{font-family:'Cormorant Garamond', Georgia, serif; font-weight:500; line-height:1.1; font-size:clamp(1.5rem, 2.2vw, 1.95rem);}
.ob-lead{color:var(--ob-muted); font-size:clamp(.95rem, 1.2vw, 1.075rem); line-height:1.75;}
.ob-body{color:var(--ob-muted); font-size:.9rem; line-height:1.75;}

.ob-rule{width:56px; height:1px; background:linear-gradient(90deg, var(--ob-gold), transparent);}

/* ---------- Layout ---------- */
.ob-container{width:100%; max-width:1240px; margin-inline:auto; padding-inline:clamp(16px, 4vw, 40px);}
.ob-section{padding-block:clamp(72px, 10vw, 136px); position:relative;}
.ob-section-alt{background:linear-gradient(180deg, transparent, rgba(255,248,236,.02) 12%, rgba(255,248,236,.02) 88%, transparent);}

/* ---------- Grain ---------- */
.ob-grain::after{
  content:""; pointer-events:none; position:fixed; inset:0; z-index:1;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="3" stitchTiles="stitch"/></filter><rect width="160" height="160" filter="url(%23n)" opacity="0.4"/></svg>');
  opacity:.07; mix-blend-mode:overlay;
}

/* ---------- Surfaces ---------- */
.glass, .glass-premium, .ob-card{
  position:relative;
  background:linear-gradient(160deg, rgba(255,248,236,.055), rgba(255,248,236,.015));
  border:1px solid var(--ob-border);
  border-radius:var(--ob-radius);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.ob-card{transition:transform .6s var(--ob-ease), border-color .5s var(--ob-ease), background .5s var(--ob-ease), box-shadow .6s var(--ob-ease);}
.ob-card:hover{
  transform:translateY(-4px);
  border-color:var(--ob-border-hi);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.8), 0 0 0 1px rgba(216,185,138,.08), 0 0 60px -20px rgba(216,185,138,.18);
}
/* spotlight that follows the cursor (set by main.js) */
.ob-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(216,185,138,.10), transparent 45%);
  transition:opacity .4s ease;
}
.ob-card:hover::before{opacity:1;}

.ob-icon{
  width:48px; height:48px; border-radius:14px; display:grid; place-items:center;
  color:var(--ob-gold);
  background:radial-gradient(circle at 30% 20%, rgba(216,185,138,.22), rgba(216,185,138,.04));
  border:1px solid rgba(216,185,138,.25);
}
.ob-icon svg{width:22px; height:22px;}

.ob-chip{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:11px; letter-spacing:.06em; color:rgba(244,239,231,.78);
  padding:.45rem .8rem; border-radius:999px;
  border:1px solid var(--ob-border); background:rgba(255,248,236,.03);
}
.ob-chip-gold{color:#1a130a; background:var(--ob-gold); border-color:var(--ob-gold); font-weight:500;}

.ob-badge-new{
  font-size:9.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:#1a130a; background:linear-gradient(90deg, var(--ob-gold-hi), var(--ob-gold));
  padding:.3rem .6rem; border-radius:999px;
}

/* ---------- Buttons ---------- */
.ob-btn{
  --pad-x:1.6rem;
  position:relative; overflow:hidden; isolation:isolate;
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:.95rem var(--pad-x); border-radius:999px;
  font-size:11px; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  transition:color .45s var(--ob-ease), border-color .45s var(--ob-ease), transform .45s var(--ob-ease), box-shadow .45s var(--ob-ease);
  white-space:nowrap;
}
.ob-btn svg{width:14px; height:14px; transition:transform .45s var(--ob-ease);}
.ob-btn:hover svg{transform:translateX(3px);}
.ob-btn-primary{color:#140f08; background:linear-gradient(120deg, var(--ob-gold-hi), var(--ob-gold) 55%, #c9a672); box-shadow:0 10px 30px -12px rgba(216,185,138,.55);}
.ob-btn-primary:hover{transform:translateY(-2px); box-shadow:0 18px 40px -14px rgba(216,185,138,.7);}
.ob-btn-ghost{color:var(--ob-text); border:1px solid rgba(244,239,231,.22);}
.ob-btn-ghost::before{content:""; position:absolute; inset:0; z-index:-1; background:var(--ob-text); transform:translateY(101%); transition:transform .5s var(--ob-ease);}
.ob-btn-ghost:hover{color:#0a0806; border-color:var(--ob-text);}
.ob-btn-ghost:hover::before{transform:translateY(0);}
.ob-btn-sm{--pad-x:1.15rem; padding-block:.7rem; font-size:10px;}

.ob-link{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:11px; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--ob-gold);
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;
  padding-bottom:4px; transition:background-size .5s var(--ob-ease);
}
.ob-link:hover{background-size:100% 1px;}
.ob-link svg{width:13px; height:13px; transition:transform .4s var(--ob-ease);}
.ob-link:hover svg{transform:translateX(4px);}

/* ---------- Nav ---------- */
.ob-nav{
  position:fixed; inset:0 0 auto 0; z-index:50;
  transition:background .5s var(--ob-ease), border-color .5s var(--ob-ease), backdrop-filter .5s;
  border-bottom:1px solid transparent;
}
.ob-nav.is-scrolled{
  background:rgba(9,8,6,.92);
  backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:rgba(255,240,220,.07);
}
.ob-nav-inner{height:var(--ob-nav-h); display:flex; align-items:center; justify-content:space-between; gap:1rem;}
.ob-logo img{height:52px; width:auto; transition:transform .5s var(--ob-ease);}
.ob-logo:hover img{transform:rotate(-4deg) scale(1.04);}
.ob-navlinks{display:none; gap:2.2rem;}
@media (min-width:1024px){ .ob-navlinks{display:flex;} }
.ob-navlink{
  position:relative; font-size:11px; font-weight:400; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(244,239,231,.66); padding-block:.5rem; transition:color .3s ease;
}
.ob-navlink::after{
  content:""; position:absolute; left:50%; bottom:0; width:4px; height:4px; border-radius:50%;
  background:var(--ob-gold); transform:translate(-50%, 6px) scale(0); transition:transform .4s var(--ob-ease);
}
.ob-navlink:hover{color:var(--ob-text);}
.ob-navlink[aria-current="page"]{color:var(--ob-text);}
.ob-navlink[aria-current="page"]::after, .ob-navlink:hover::after{transform:translate(-50%, 6px) scale(1);}

.ob-burger{
  width:44px; height:44px; border-radius:999px; border:1px solid rgba(244,239,231,.18);
  display:inline-grid; place-items:center; color:var(--ob-text); background:transparent; cursor:pointer;
}
.ob-burger span{display:block; width:16px; height:1px; background:currentColor; position:relative;}
.ob-burger span::before, .ob-burger span::after{content:""; position:absolute; left:0; width:16px; height:1px; background:currentColor;}
.ob-burger span::before{top:-5px;} .ob-burger span::after{top:5px; width:10px;}
@media (min-width:1024px){ .ob-burger{display:none;} }
@media (max-width:480px){ .ob-nav-book{display:none;} }

/* ---------- Drawer ---------- */
#obDrawer{position:fixed; inset:0; z-index:100; visibility:hidden;}
#obDrawer[aria-hidden="false"]{visibility:visible;}
#obDrawerOverlay{position:absolute; inset:0; background:rgba(0,0,0,.6); opacity:0; transition:opacity .45s var(--ob-ease); backdrop-filter:blur(4px);}
#obDrawer[aria-hidden="false"] #obDrawerOverlay{opacity:1;}
#obDrawerPanel{
  position:absolute; top:0; right:0; height:100%; width:min(420px, 100vw);
  background:linear-gradient(180deg, #110e0b, #080706);
  border-left:1px solid var(--ob-border);
  transform:translateX(100%); transition:transform .6s var(--ob-ease);
  padding:22px 28px 32px; overflow-y:auto; display:flex; flex-direction:column;
}
#obDrawer[aria-hidden="false"] #obDrawerPanel{transform:translateX(0);}
.ob-drawer-link{
  display:flex; align-items:baseline; justify-content:space-between;
  font-family:'Cormorant Garamond', Georgia, serif; font-size:2.1rem; font-weight:300; line-height:1.2;
  padding-block:.55rem; border-bottom:1px solid rgba(255,240,220,.06); color:rgba(244,239,231,.85);
  opacity:0; transform:translateX(24px); transition:opacity .5s var(--ob-ease), transform .5s var(--ob-ease), color .3s;
}
.ob-drawer-link small{font-family:'Inter'; font-size:10px; letter-spacing:.2em; color:var(--ob-muted2);}
.ob-drawer-link:hover, .ob-drawer-link[aria-current="page"]{color:var(--ob-gold-hi);}
#obDrawer[aria-hidden="false"] .ob-drawer-link{opacity:1; transform:none;}
#obDrawer[aria-hidden="false"] .ob-drawer-link:nth-child(2){transition-delay:.05s;}
#obDrawer[aria-hidden="false"] .ob-drawer-link:nth-child(3){transition-delay:.1s;}
#obDrawer[aria-hidden="false"] .ob-drawer-link:nth-child(4){transition-delay:.15s;}
#obDrawer[aria-hidden="false"] .ob-drawer-link:nth-child(5){transition-delay:.2s;}
#obDrawer[aria-hidden="false"] .ob-drawer-link:nth-child(6){transition-delay:.25s;}
#obDrawer[aria-hidden="false"] .ob-drawer-link:nth-child(7){transition-delay:.3s;}

/* ---------- Hero ---------- */
.ob-hero{position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:center; overflow:hidden; padding-top:var(--ob-nav-h);}
.ob-hero-media{position:absolute; inset:0; z-index:0;}
.ob-hero-media video{width:100%; height:100%; object-fit:cover; opacity:.32; filter:saturate(.8) contrast(1.05);}
.ob-hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(80% 60% at 50% 40%, transparent, rgba(7,6,5,.75) 80%),
    linear-gradient(180deg, rgba(7,6,5,.55) 0%, rgba(7,6,5,.2) 40%, var(--ob-bg) 100%);
}
.ob-orb{position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none; z-index:0; animation:ob-float 14s ease-in-out infinite alternate;}
@keyframes ob-float{ to{ transform:translate3d(30px,-40px,0) scale(1.08);} }

.ob-page-hero{position:relative; padding-top:calc(var(--ob-nav-h) + clamp(56px, 9vw, 120px)); padding-bottom:clamp(40px, 6vw, 80px); overflow:hidden;}
.ob-page-hero .ob-watermark{
  position:absolute; right:-2vw; top:calc(var(--ob-nav-h) - 10px);
  font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:300;
  font-size:clamp(7rem, 20vw, 17rem); line-height:1; color:transparent;
  -webkit-text-stroke:1px rgba(216,185,138,.10); pointer-events:none; user-select:none; white-space:nowrap;
}

.ob-scroll-cue{width:1px; height:56px; background:linear-gradient(var(--ob-gold), transparent); position:relative; overflow:hidden;}
.ob-scroll-cue::after{content:""; position:absolute; left:0; top:-40%; width:1px; height:40%; background:#fff; animation:ob-cue 2.2s var(--ob-ease) infinite;}
@keyframes ob-cue{ to{ top:110%; } }

/* ---------- Marquee ---------- */
.ob-marquee{overflow:hidden; border-block:1px solid rgba(255,240,220,.07); padding-block:22px; mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);}
.ob-marquee-track{display:flex; width:max-content; gap:3rem; animation:ob-marquee 40s linear infinite;}
.ob-marquee:hover .ob-marquee-track{animation-play-state:paused;}
.ob-marquee-item{display:inline-flex; align-items:center; gap:3rem; font-family:'Cormorant Garamond', serif; font-size:clamp(1.4rem, 2.6vw, 2.1rem); font-style:italic; font-weight:300; color:rgba(244,239,231,.75); white-space:nowrap;}
.ob-marquee-item::after{content:"✦"; font-style:normal; font-size:.7em; color:var(--ob-gold);}
@keyframes ob-marquee{ to{ transform:translateX(-50%);} }

/* ---------- Stats ---------- */
.ob-stat-num{font-family:'Cormorant Garamond', serif; font-weight:300; font-size:clamp(2.6rem, 5vw, 4rem); line-height:1; color:var(--ob-gold-hi);}

/* ---------- Team ---------- */
.ob-avatar{
  position:relative; aspect-ratio:4/5; border-radius:calc(var(--ob-radius) - 4px); overflow:hidden;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(216,185,138,.22), transparent 60%),
    linear-gradient(180deg, #17130f, #0b0907);
  border:1px solid var(--ob-border);
  display:grid; place-items:center;
}
.ob-avatar img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ob-ease);}
.ob-card:hover .ob-avatar img{transform:scale(1.05);}
.ob-avatar .ob-initial{font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:300; font-size:5.5rem; color:rgba(216,185,138,.55);}

/* ---------- Timeline ---------- */
.ob-timeline{position:relative; padding-left:28px;}
.ob-timeline::before{content:""; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:linear-gradient(var(--ob-gold), rgba(216,185,138,.05));}
.ob-timeline-item{position:relative; padding-bottom:2rem;}
.ob-timeline-item:last-child{padding-bottom:0;}
.ob-timeline-item::before{content:""; position:absolute; left:-28px; top:6px; width:11px; height:11px; border-radius:50%; background:var(--ob-bg); border:1px solid var(--ob-gold); box-shadow:0 0 0 4px rgba(216,185,138,.08);}

/* ---------- Menu ---------- */
.ob-menu-tabs{display:flex; gap:.5rem; overflow-x:auto; scrollbar-width:none; padding-bottom:2px;}
.ob-menu-tabs::-webkit-scrollbar{display:none;}
.ob-menu-row{display:flex; align-items:baseline; gap:.75rem; padding-block:1.1rem; border-bottom:1px dashed rgba(255,240,220,.1);}
.ob-menu-row:last-child{border-bottom:0;}
.ob-menu-name{font-family:'Cormorant Garamond', serif; font-size:1.35rem; font-weight:500; color:var(--ob-text);}
.ob-menu-dots{flex:1; border-bottom:1px dotted rgba(216,185,138,.3); transform:translateY(-5px); min-width:20px;}
.ob-menu-price{font-family:'Cormorant Garamond', serif; font-size:1.35rem; color:var(--ob-gold-hi); white-space:nowrap;}
.ob-menu-price::before{content:"R"; font-size:.75em; margin-right:2px; color:var(--ob-gold);}
.ob-menu-desc{color:var(--ob-muted2); font-size:.82rem; line-height:1.6; margin-top:.25rem;}
.ob-veg{font-family:'Inter'; font-size:9px; font-weight:600; letter-spacing:.12em; color:#a7c98c; border:1px solid rgba(167,201,140,.4); border-radius:999px; padding:.15rem .45rem; vertical-align:middle; margin-left:.4rem;}

/* ---------- Forms ---------- */
.ob-field label{display:block; font-size:10px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--ob-muted); margin-bottom:.6rem;}
.ob-input{
  width:100%; background:rgba(255,248,236,.035); border:1px solid var(--ob-border); border-radius:12px;
  padding:.95rem 1.05rem; color:var(--ob-text); font:inherit; font-size:.9rem; font-weight:300;
  transition:border-color .3s, background .3s, box-shadow .3s;
}
.ob-input::placeholder{color:rgba(244,239,231,.3);}
.ob-input:focus{outline:none; border-color:rgba(216,185,138,.6); background:rgba(255,248,236,.05); box-shadow:0 0 0 4px rgba(216,185,138,.1);}
select.ob-input{appearance:none; background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%23d8b98a" stroke-width="2"><path d="m6 9 6 6 6-6"/></svg>'); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem;}
select.ob-input option{background:#110e0b; color:var(--ob-text);}

/* ---------- Gallery ---------- */
.ob-gallery{column-count:3; column-gap:16px;}
@media (max-width:900px){ .ob-gallery{column-count:2;} }
@media (max-width:560px){ .ob-gallery{column-count:1;} }
.ob-tile{break-inside:avoid; margin:0 0 16px; border-radius:var(--ob-radius); overflow:hidden; border:1px solid var(--ob-border); background:var(--ob-surface); position:relative; cursor:zoom-in;}
.ob-tile img{width:100%; display:block; transition:transform .9s var(--ob-ease), filter .6s;}
.ob-tile:hover img{transform:scale(1.05);}
.ob-tile figcaption{
  position:absolute; inset:auto 0 0 0; padding:18px 20px; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
  background:linear-gradient(transparent, rgba(0,0,0,.75)); color:var(--ob-text);
  transform:translateY(8px); opacity:0; transition:all .5s var(--ob-ease);
}
.ob-tile:hover figcaption{transform:none; opacity:1;}

#obLightbox{position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:16px; background:rgba(4,3,2,.9); backdrop-filter:blur(10px);}
#obLightbox[aria-hidden="false"]{display:flex; animation:ob-fade .35s ease;}
#obLightbox .ob-box{width:min(1040px, 100%);}
#obLightbox img{width:100%; height:auto; max-height:78vh; object-fit:contain; border-radius:14px;}
@keyframes ob-fade{ from{opacity:0;} }

/* ---------- Map ---------- */
.ob-map-card{position:relative; overflow:hidden; border-radius:var(--ob-radius); border:1px solid var(--ob-border);}
.ob-map-frame{display:block; width:100%; height:380px; border:0; filter:grayscale(.85) invert(.92) hue-rotate(180deg) contrast(.9) brightness(.95);}
@media (max-width:640px){ .ob-map-frame{height:300px;} }

/* ---------- Footer ---------- */
.ob-footer{position:relative; border-top:1px solid rgba(255,240,220,.07); background:linear-gradient(180deg, transparent, rgba(216,185,138,.03));}
.ob-footer a{transition:color .3s;}
.ob-footer a:hover{color:var(--ob-gold-hi);}
.ob-footer-big{font-family:'Cormorant Garamond', serif; font-weight:300; font-style:italic; font-size:clamp(3.2rem, 13vw, 11rem); line-height:.9; letter-spacing:-.03em; color:transparent; -webkit-text-stroke:1px rgba(216,185,138,.22); user-select:none; white-space:nowrap;}

/* ---------- Floating WhatsApp / call ---------- */
.ob-fab{
  position:fixed; right:18px; bottom:18px; z-index:60; width:56px; height:56px; border-radius:50%;
  display:grid; place-items:center; color:#140f08;
  background:linear-gradient(135deg, var(--ob-gold-hi), var(--ob-gold));
  box-shadow:0 14px 34px -10px rgba(216,185,138,.6);
  transition:transform .4s var(--ob-ease);
}
.ob-fab:hover{transform:scale(1.07) rotate(-6deg);}
.ob-fab svg{width:24px; height:24px;}
.ob-fab::before{content:""; position:absolute; inset:-6px; border-radius:inherit; border:1px solid rgba(216,185,138,.5); animation:ob-pulse 2.6s ease-out infinite;}
@keyframes ob-pulse{ from{transform:scale(.9); opacity:1;} to{transform:scale(1.35); opacity:0;} }

/* ---------- Reveal on scroll ---------- */
.ob-reveal{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ob-ease), transform 1s var(--ob-ease); transition-delay:var(--d, 0s);}
.ob-reveal.is-in{opacity:1; transform:none;}
.no-js .ob-reveal{opacity:1; transform:none;}

.ob-split-line{display:block; overflow:hidden;}
.ob-split-line > span{display:block; transform:translateY(105%); transition:transform 1.2s var(--ob-ease); transition-delay:var(--d, 0s);}
.is-loaded .ob-split-line > span{transform:none;}
.no-js .ob-split-line > span{transform:none;}

/* Page load curtain */
.ob-curtain{position:fixed; inset:0; z-index:200; background:var(--ob-bg); display:grid; place-items:center; transition:opacity .8s var(--ob-ease) .15s, visibility .8s .15s; pointer-events:none;}
.ob-curtain img{width:84px; filter:invert(1) brightness(1.6); opacity:.9; animation:ob-breathe 1.4s ease-in-out infinite alternate;}
@keyframes ob-breathe{ from{opacity:.35; transform:scale(.96);} }
.is-loaded .ob-curtain{opacity:0; visibility:hidden;}

:focus-visible{outline:2px solid var(--ob-gold); outline-offset:3px; border-radius:6px;}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  .ob-reveal, .ob-split-line > span{opacity:1; transform:none;}
  html{scroll-behavior:auto;}
}

/* Safety net: never leave the curtain up if scripts fail to load */
.ob-curtain{animation:ob-curtain-off .01s linear 3s forwards;}
@keyframes ob-curtain-off{ to{ opacity:0; visibility:hidden; } }
.no-js .ob-curtain{display:none;}

.ob-stat-num, .ob-menu-price, .ob-h1, .ob-h2, .ob-h3{font-variant-numeric:lining-nums;}

/* ---------- Cream "paper" sections ---------- */
:root[data-theme="light"], .ob-light{
  --ob-text:#1f1812;
  --ob-muted:rgba(31,24,18,.70);
  --ob-muted2:rgba(31,24,18,.52);
  --ob-border:rgba(80,56,30,.13);
  --ob-border-hi:rgba(156,116,67,.5);
  --ob-gold:#9a7243;
  --ob-gold-hi:#86602f;
  --ob-gold-lo:#b8925f;
}
.ob-light{
  position:relative; z-index:2;
  color:var(--ob-text);
  background:
    radial-gradient(900px 500px at 15% 0%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(800px 600px at 100% 100%, rgba(216,185,138,.22), transparent 60%),
    #f2eadd;
}
.ob-light::before{ /* paper texture */
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.35; mix-blend-mode:multiply;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><filter id="p"><feTurbulence type="fractalNoise" baseFrequency="1.1" numOctaves="2" stitchTiles="stitch"/><feColorMatrix values="0 0 0 0 .55  0 0 0 0 .45  0 0 0 0 .35  0 0 0 .18 0"/></filter><rect width="200" height="200" filter="url(%23p)"/></svg>');
}
.ob-light > *{position:relative;}
.ob-light ::selection{background:#1f1812; color:#f2eadd;}

:is(.ob-light,[data-theme="light"]) .ob-card{
  background:linear-gradient(160deg, #fffdf9, #f8f1e6);
  backdrop-filter:none; -webkit-backdrop-filter:none;
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 12px 30px -18px rgba(80,56,30,.35);
}
:is(.ob-light,[data-theme="light"]) .ob-card:hover{box-shadow:0 26px 50px -24px rgba(80,56,30,.45), 0 0 0 1px rgba(154,114,67,.18);}
:is(.ob-light,[data-theme="light"]) .ob-card::before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(216,185,138,.18), transparent 45%);}
:is(.ob-light,[data-theme="light"]) .ob-chip{color:rgba(31,24,18,.75); background:rgba(255,255,255,.55);}
:is(.ob-light,[data-theme="light"]) .ob-chip-gold{color:#fff9ef; background:#1f1812; border-color:#1f1812;}
:is(.ob-light,[data-theme="light"]) .ob-icon{background:radial-gradient(circle at 30% 20%, rgba(216,185,138,.35), rgba(216,185,138,.08)); border-color:rgba(154,114,67,.3);}
:is(.ob-light,[data-theme="light"]) .ob-btn-ghost{border-color:rgba(31,24,18,.25);}
:is(.ob-light,[data-theme="light"]) .ob-btn-ghost:hover{color:#f7f1e8;}
:is(.ob-light,[data-theme="light"]) .ob-menu-row{border-bottom-color:rgba(80,56,30,.14);}
:is(.ob-light,[data-theme="light"]) .ob-menu-dots{border-bottom-color:rgba(154,114,67,.4);}
:is(.ob-light,[data-theme="light"]) .ob-veg{color:#4f7a36; border-color:rgba(79,122,54,.45);}
:is(.ob-light,[data-theme="light"]) .border-white\/10, :is(.ob-light,[data-theme="light"]) .border-white\/5{border-color:var(--ob-border);}
:is(.ob-light,[data-theme="light"]) .ob-orb{opacity:.6;}
:is(.ob-light,[data-theme="light"]) .ob-avatar{background:radial-gradient(120% 80% at 50% 0%, rgba(255,255,255,.8), transparent 60%), linear-gradient(180deg, #e9dcc6, #d9c6a6);}
:is(.ob-light,[data-theme="light"]) .ob-avatar .ob-initial{color:rgba(134,96,47,.55);}
.ob-menu-tabs .ob-chip{white-space:nowrap; flex-shrink:0; cursor:pointer;}

/* ================= Light mode (whole site) ================= */
.ob-logo img, .ob-logo-img, .ob-curtain img{filter:invert(1) brightness(1.6);}
.ob-stat-cell{background:var(--ob-bg2);}
.ob-strong{color:var(--ob-text);}
.ob-input{color-scheme:dark;}

:root[data-theme="light"]{
  --ob-bg:#f2eadd;
  --ob-bg2:#f9f4ec;
  color-scheme:light;
}
[data-theme="light"] body{
  background:
    radial-gradient(1100px 620px at 50% -12%, rgba(255,255,255,.75), transparent 60%),
    radial-gradient(900px 600px at -10% 30%, rgba(216,185,138,.16), transparent 60%),
    radial-gradient(900px 600px at 110% 70%, rgba(216,185,138,.14), transparent 60%),
    var(--ob-bg);
  background-attachment:fixed;
}
[data-theme="light"] ::selection{background:#1f1812; color:#f2eadd;}
[data-theme="light"] .ob-logo img, [data-theme="light"] .ob-logo-img, [data-theme="light"] .ob-curtain img{filter:none;}
[data-theme="light"] .ob-light{background:radial-gradient(900px 500px at 15% 0%, rgba(255,255,255,.55), transparent 60%), #e9dcc7;}
[data-theme="light"] .ob-section-alt{background:linear-gradient(180deg, transparent, rgba(80,56,30,.035) 12%, rgba(80,56,30,.035) 88%, transparent);}

/* nav + drawer */
[data-theme="light"] .ob-nav.is-scrolled{background:rgba(247,241,232,.92); border-bottom-color:rgba(80,56,30,.1);}
[data-theme="light"] .ob-navlink{color:var(--ob-muted);}
[data-theme="light"] .ob-navlink:hover, [data-theme="light"] .ob-navlink[aria-current="page"]{color:var(--ob-text);}
[data-theme="light"] .ob-burger, [data-theme="light"] .ob-theme-toggle{border-color:rgba(31,24,18,.2);}
[data-theme="light"] #obDrawerPanel{background:linear-gradient(180deg, #f8f2e9, #efe5d6);}
[data-theme="light"] .ob-drawer-link{color:var(--ob-text); border-bottom-color:var(--ob-border);}
[data-theme="light"] .ob-drawer-link:hover, [data-theme="light"] .ob-drawer-link[aria-current="page"]{color:var(--ob-gold);}

/* hero */
[data-theme="light"] .ob-hero-media video{opacity:.28; filter:saturate(.7) sepia(.15);}
[data-theme="light"] .ob-hero-media::after{
  background:
    radial-gradient(80% 60% at 50% 40%, rgba(242,234,221,.35), rgba(242,234,221,.88) 80%),
    linear-gradient(180deg, rgba(242,234,221,.6) 0%, rgba(242,234,221,.25) 40%, var(--ob-bg) 100%);
}
[data-theme="light"] .ob-scroll-cue::after{background:var(--ob-gold);}

/* bits that used fixed light-on-dark colours */
[data-theme="light"] .ob-marquee{border-color:var(--ob-border);}
[data-theme="light"] .ob-marquee-item{color:var(--ob-muted);}
[data-theme="light"] .ob-footer{border-top-color:var(--ob-border); background:linear-gradient(180deg, transparent, rgba(216,185,138,.12));}
[data-theme="light"] .text-white, [data-theme="light"] .hover\:text-white:hover{color:var(--ob-text);}
[data-theme="light"] .bg-white\/5{background-color:rgba(80,56,30,.1);}
[data-theme="light"] .ob-input{background:rgba(255,255,255,.65); color-scheme:light;}
[data-theme="light"] .ob-input::placeholder{color:rgba(31,24,18,.35);}
[data-theme="light"] select.ob-input option{background:#fff; color:#1f1812;}
[data-theme="light"] .ob-map-frame{filter:grayscale(.55) sepia(.15) contrast(.95);}

/* lightbox stays dark in both themes */
[data-theme="light"] #obLightbox{--ob-text:#f4efe7; color:#f4efe7;}
#obLightbox .ob-btn-ghost{border-color:rgba(244,239,231,.3); color:#f4efe7;}

/* ---------- Theme toggle ---------- */
.ob-theme-toggle{
  position:relative; width:44px; height:44px; border-radius:999px; flex-shrink:0;
  border:1px solid rgba(244,239,231,.18); color:var(--ob-text); background:transparent;
  display:inline-grid; place-items:center; cursor:pointer; overflow:hidden;
  transition:border-color .3s, background .3s;
}
.ob-theme-toggle:hover{border-color:var(--ob-gold); background:rgba(216,185,138,.1);}
.ob-theme-toggle svg{grid-area:1/1; width:18px; height:18px; transition:transform .6s var(--ob-ease), opacity .4s;}
.ob-theme-toggle .ob-sun{color:var(--ob-gold-hi);}
.ob-theme-toggle .ob-moon{opacity:0; transform:rotate(-90deg) scale(.5);}
[data-theme="light"] .ob-theme-toggle .ob-sun{opacity:0; transform:rotate(90deg) scale(.5);}
[data-theme="light"] .ob-theme-toggle .ob-moon{opacity:1; transform:none; color:var(--ob-gold);}

/* smooth cross-fade while switching */
html.ob-theme-anim, html.ob-theme-anim *, html.ob-theme-anim *::before, html.ob-theme-anim *::after{
  transition:background-color .5s ease, background .5s ease, color .5s ease, border-color .5s ease, fill .5s ease, filter .5s ease !important;
}
