/* ORA — design system v0.1
   Type: Fraunces (display) + Instrument Sans (interface)
   Base: warm charcoal / ivory / stone / sage / emerald / brass */

:root{
  --ink:#1E1D1B;        /* warm charcoal — primary surface (night) and text */
  --ink-2:#2B2926;      /* raised charcoal */
  --ivory:#F3EFE8;      /* primary light surface (day) */
  --mist:#E9E4DC;       /* secondary light surface */
  --stone:#D6CEC2;      /* borders, muted fills */
  --stone-2:#B9AE9F;    /* muted text on light */
  --sage:#93A296;       /* lounge, secondary accent */
  --emerald:#1F4A3E;    /* primary interactive */
  --emerald-2:#2A5F50;  /* hover */
  --brass:#A98A5E;      /* warm metallic accent — used sparingly */
  --success:#2F6B4F;
  --warning:#B7853A;
  --error:#A63D3D;
  --text:var(--ink);
  --text-2:#5E5852;
  --bg:var(--ivory);
  --surface:var(--mist);
  --line:var(--stone);

  --serif:"Fraunces", Georgia, serif;
  --sans:"Instrument Sans", system-ui, -apple-system, sans-serif;

  --gutter:clamp(20px, 5vw, 72px);
  --measure:60ch;
  --r-s:4px; --r-m:10px; --r-l:22px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--sans); font-size:17px; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
::selection{background:var(--sage);color:var(--ink)}

.night{background:var(--ink);color:var(--ivory);--text:var(--ivory);--text-2:#B8B1A6;--line:#3A3733;--surface:var(--ink-2)}
.day{background:var(--ivory);color:var(--ink)}
.sage-room{background:#DCE1DA;color:var(--ink);--line:#C6CFC6;--surface:#E8ECE6}

/* ---------- type ---------- */
h1,h2,h3,.display{font-family:var(--serif);font-weight:300;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(44px,7.2vw,112px);line-height:.98;font-variation-settings:"opsz" 144,"SOFT" 40}
h2{font-size:clamp(34px,4.6vw,66px);line-height:1.04;font-variation-settings:"opsz" 96,"SOFT" 30}
h3{font-size:clamp(24px,2.4vw,32px);line-height:1.15;font-variation-settings:"opsz" 48}
h4{font-family:var(--sans);font-weight:500;font-size:17px;margin:0}
em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 80}
p{margin:0 0 1em;max-width:var(--measure)}
.lede{font-size:clamp(19px,1.5vw,23px);line-height:1.45;color:var(--text-2)}
.small{font-size:14.5px;color:var(--text-2)}
.serif{font-family:var(--serif);font-weight:300}

/* ---------- layout ---------- */
.wrap{padding-inline:var(--gutter);max-width:1480px;margin-inline:auto}
section{padding-block:clamp(72px,10vw,150px)}
.grid{display:grid;gap:clamp(24px,3vw,48px)}
.g-12{grid-template-columns:repeat(12,1fr)}
.span-4{grid-column-end:span 4}.span-5{grid-column-end:span 5}.span-6{grid-column-end:span 6}.span-7{grid-column-end:span 7}.span-8{grid-column-end:span 8}
.start-2{grid-column-start:2}.start-3{grid-column-start:3}.start-5{grid-column-start:5}.start-6{grid-column-start:6}.start-7{grid-column-start:7}
@media (max-width:900px){.g-12>*{grid-column:1 / -1 !important}}

.rule{border:0;border-top:1px solid var(--line);margin:0}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--gutter);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  background:color-mix(in srgb,var(--bg) 78%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.night .nav,.nav.on-night{background:color-mix(in srgb,#1E1D1B 72%,transparent)}
.brand{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:.02em;line-height:1;font-variation-settings:"opsz" 48}
.brand span{color:var(--brass)}
.nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0;font-size:15.5px}
.nav ul a{opacity:.82}.nav ul a:hover{opacity:1}
.nav-actions{display:flex;gap:10px;align-items:center}
@media (max-width:900px){.nav ul{display:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:500;font-size:15.5px;
  transition:background .25s var(--ease),color .25s,transform .25s var(--ease),border-color .25s;border:1px solid transparent;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--emerald);color:var(--ivory)}.btn-primary:hover{background:var(--emerald-2)}
.btn-ghost{border-color:var(--line);color:inherit}.btn-ghost:hover{border-color:var(--text);}
.btn-ivory{background:var(--ivory);color:var(--ink)}.btn-ivory:hover{background:#fff}
.btn-sm{padding:10px 16px;font-size:14.5px}
.btn-lg{padding:18px 30px;font-size:17px}
.link{border-bottom:1px solid var(--stone-2);padding-bottom:2px;transition:border-color .2s}.link:hover{border-color:currentColor}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;min-height:92vh;display:grid;align-items:end;padding-bottom:clamp(56px,8vw,110px)}
.hero .light{position:absolute;inset:0;pointer-events:none}
.hero .light::before{content:"";position:absolute;left:-10%;top:-30%;width:75vw;height:75vw;border-radius:50%;
  background:radial-gradient(closest-side, rgba(147,162,150,.35), rgba(147,162,150,.08) 45%, transparent 70%);
  filter:blur(24px);animation:breathe 14s ease-in-out infinite alternate}
.hero .light::after{content:"";position:absolute;right:-20%;bottom:-40%;width:70vw;height:70vw;border-radius:50%;
  background:radial-gradient(closest-side, rgba(169,138,94,.22), transparent 70%);filter:blur(30px);animation:breathe 18s ease-in-out infinite alternate-reverse}
@keyframes breathe{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(4vw,3vw,0) scale(1.12)}}
.hero .wrap{width:100%}
.hero-inner{position:relative;display:grid;gap:36px}
.hero h1{max-width:12ch}
.hero .lede{max-width:44ch}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hero-foot{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:14.5px;color:var(--text-2);margin-top:18px}
.pain-note{display:inline-flex;gap:10px;align-items:center;color:var(--ivory)}
.pain-note b{font-weight:500}
.dot{width:8px;height:8px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 0 rgba(169,138,94,.6);animation:pulse 2.6s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(169,138,94,0)}100%{box-shadow:0 0 0 0 rgba(169,138,94,0)}}

/* ---------- editorial services list ---------- */
.services{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
.service{display:grid;grid-template-columns:1.1fr 1.4fr auto;gap:32px;align-items:baseline;padding:34px 0;border-bottom:1px solid var(--line);transition:padding-left .35s var(--ease)}
.service:hover{padding-left:12px}
.service h3{font-size:clamp(28px,3.2vw,44px)}
.service p{margin:0;color:var(--text-2)}
.service .go{font-size:15px;color:var(--brass)}
@media (max-width:800px){.service{grid-template-columns:1fr;gap:10px}}

/* ---------- statements ---------- */
.statement{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;padding:36px 0;border-top:1px solid var(--line)}
.statement:last-child{border-bottom:1px solid var(--line)}
.statement .k{font-family:var(--serif);font-size:15px;font-style:italic;color:var(--brass);width:11ch;padding-top:6px}
.statement h3{max-width:22ch}
.statement p{color:var(--text-2);margin-top:12px}
@media (max-width:700px){.statement{grid-template-columns:1fr;gap:8px}}

/* ---------- specialists ---------- */
.people{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media (max-width:1000px){.people{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.people{grid-template-columns:1fr}}
.person{display:grid;gap:14px}
.portrait{aspect-ratio:4/5;border-radius:var(--r-m);position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--mist),var(--stone));display:grid;place-items:center}
.night .portrait{background:linear-gradient(160deg,#2E2C29,#232220)}
.portrait span{font-family:var(--serif);font-size:64px;font-weight:300;color:var(--brass);font-variation-settings:"opsz" 144}
.portrait::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,rgba(30,29,27,.25),transparent)}
.person .meta{font-size:14.5px;color:var(--text-2);line-height:1.5}
.person h4{font-size:19px;font-family:var(--serif);font-weight:400}

/* ---------- booking rail (homepage demo) ---------- */
.rail{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden}
.rail > div{padding:28px;border-right:1px solid var(--line);min-height:210px;display:grid;align-content:space-between;gap:20px}
.rail > div:last-child{border-right:0}
.rail .step{font-family:var(--serif);font-style:italic;color:var(--brass);font-size:15px}
.rail h4{font-family:var(--serif);font-weight:400;font-size:24px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13.5px;color:var(--text-2)}
.chip.on{background:var(--emerald);color:var(--ivory);border-color:var(--emerald)}
@media (max-width:900px){.rail{grid-template-columns:1fr 1fr}.rail>div{border-bottom:1px solid var(--line)}.rail>div:nth-child(even){border-right:0}}
@media (max-width:520px){.rail{grid-template-columns:1fr}.rail>div{border-right:0}}

/* ---------- lounge block ---------- */
.lounge-visual{border-radius:var(--r-l);min-height:420px;position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 20% 20%,#B9C6BB 0%,#93A296 45%,#6F8073 100%)}
.lounge-visual::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 75% 80%,rgba(243,239,232,.45),transparent 70%)}
.lounge-visual .caption{position:absolute;left:28px;bottom:24px;font-family:var(--serif);font-style:italic;color:var(--ivory);font-size:20px}

/* ---------- trust ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.stat .n{font-family:var(--serif);font-size:clamp(48px,6vw,88px);font-weight:300;line-height:1;font-variation-settings:"opsz" 144}
.stat p{color:var(--text-2);margin-top:8px;max-width:22ch}
@media (max-width:700px){.stats{grid-template-columns:1fr}}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:900px){.quotes{grid-template-columns:1fr}}
.quote{padding:28px 0;border-top:1px solid var(--line)}
.quote p{font-family:var(--serif);font-size:22px;line-height:1.35;font-weight:300;font-variation-settings:"opsz" 48,"SOFT" 30}
.quote .who{font-size:14.5px;color:var(--text-2)}

/* ---------- journal ---------- */
.journal{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media (max-width:900px){.journal{grid-template-columns:1fr}}
.article{display:grid;gap:12px;padding-top:20px;border-top:1px solid var(--line)}
.article .tag{font-size:13.5px;color:var(--brass);font-family:var(--serif);font-style:italic}
.article h3{font-size:26px;font-weight:400}
.article p{color:var(--text-2);margin:0}

/* ---------- footer ---------- */
footer{padding:64px var(--gutter) 40px;border-top:1px solid var(--line)}
.foot{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;font-size:15px}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;color:var(--text-2)}
.foot h4{margin-bottom:12px}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:56px;color:var(--text-2);font-size:13.5px}
@media (max-width:800px){.foot{grid-template-columns:1fr 1fr}}

/* ---------- booking flow ---------- */
.flow{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}
.flow-top{display:flex;align-items:center;justify-content:space-between;padding:18px var(--gutter)}
.progress{height:2px;background:var(--line);position:relative}
.progress i{position:absolute;left:0;top:0;bottom:0;background:var(--emerald);transition:width .5s var(--ease)}
.flow-body{padding:clamp(40px,7vw,96px) var(--gutter) 60px;max-width:1120px;width:100%;margin-inline:auto}
.flow-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px var(--gutter);border-top:1px solid var(--line);position:sticky;bottom:0;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px)}
.step-pane{display:none}.step-pane.active{display:block;animation:fadein .45s var(--ease)}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.flow h2{margin-bottom:10px}
.flow .lede{margin-bottom:36px}

.options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:760px){.options{grid-template-columns:1fr}}
.opt{text-align:left;padding:22px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);transition:border-color .2s,background .2s,transform .2s var(--ease);display:grid;gap:6px}
.opt:hover{border-color:var(--stone-2)}
.opt.on{border-color:var(--emerald);background:#fff;box-shadow:inset 0 0 0 1px var(--emerald)}
.night .opt.on{background:#2B2926}
.opt b{font-family:var(--serif);font-weight:400;font-size:22px}
.opt span{font-size:14.5px;color:var(--text-2)}
.opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:24px}
.pill{padding:14px 18px;border:1px solid var(--line);border-radius:999px;text-align:left;font-size:15.5px;background:transparent;transition:.2s}
.pill:hover{border-color:var(--stone-2)}
.pill.on{background:var(--emerald);color:var(--ivory);border-color:var(--emerald)}

.field{display:grid;gap:10px;margin-bottom:30px}
.field label{font-weight:500;font-size:16px}
.field .hint{font-size:14px;color:var(--text-2)}
textarea,input[type=text],input[type=email],input[type=tel],select{
  width:100%;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-m);background:#fff;font:inherit;color:var(--ink);resize:vertical;transition:border-color .2s}
textarea:focus,input:focus,select:focus{border-color:var(--emerald);outline:none}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.upload{border:1px dashed var(--stone-2);border-radius:var(--r-m);padding:26px;text-align:center;color:var(--text-2);font-size:15px;cursor:pointer;transition:.2s}
.upload:hover{border-color:var(--emerald);color:var(--ink)}
.upload input{display:none}

.doctors{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (max-width:760px){.doctors{grid-template-columns:1fr}}
.doc{display:grid;grid-template-columns:88px 1fr;gap:18px;padding:18px;border:1px solid var(--line);border-radius:var(--r-m);text-align:left;background:var(--surface);transition:.2s;align-items:start}
.doc:hover{border-color:var(--stone-2)}
.doc.on{border-color:var(--emerald);background:#fff;box-shadow:inset 0 0 0 1px var(--emerald)}
.doc .portrait{width:88px;aspect-ratio:1;border-radius:8px}
.doc .portrait span{font-size:34px}
.doc b{font-family:var(--serif);font-weight:400;font-size:21px;display:block}
.doc .meta{font-size:14px;color:var(--text-2);line-height:1.5}
.doc .rec{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--emerald);border:1px solid color-mix(in srgb,var(--emerald) 40%,transparent);border-radius:999px;padding:3px 9px}

/* calendar */
.cal{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}
@media (max-width:860px){.cal{grid-template-columns:1fr}}
.cal-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.cal-head h3{font-size:26px}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.dow{font-size:12.5px;color:var(--text-2);text-align:center;padding-bottom:6px}
.day-cell{aspect-ratio:1;border-radius:10px;display:grid;place-items:center;font-size:15.5px;position:relative;border:1px solid transparent;transition:.2s}
.day-cell.avail{background:var(--surface);cursor:pointer}
.day-cell.avail:hover{border-color:var(--stone-2)}
.day-cell.on{background:var(--emerald);color:var(--ivory)}
.day-cell.off{color:var(--stone-2)}
.day-cell.avail::after{content:"";position:absolute;bottom:7px;width:4px;height:4px;border-radius:50%;background:var(--sage)}
.day-cell.on::after{background:var(--ivory)}
.times h3{font-size:26px;margin-bottom:6px}
.times .small{margin-bottom:16px;display:block}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slot{padding:13px 10px;border:1px solid var(--line);border-radius:10px;font-size:15px;text-align:center;background:transparent;transition:.2s}
.slot:hover{border-color:var(--stone-2)}
.slot.on{background:var(--emerald);color:var(--ivory);border-color:var(--emerald)}
.slot.taken{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.tz{font-size:13.5px;color:var(--text-2);margin-top:14px}

/* summary */
.summary{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}
@media (max-width:860px){.summary{grid-template-columns:1fr}}
.sheet{border:1px solid var(--line);border-radius:var(--r-l);padding:28px;background:var(--surface)}
.sheet .row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.sheet .row:last-of-type{border-bottom:0}
.sheet .row span:first-child{color:var(--text-2)}
.sheet .total{display:flex;justify-content:space-between;margin-top:16px;font-family:var(--serif);font-size:28px;font-weight:300}
.pay-note{font-size:13.5px;color:var(--text-2);margin-top:14px}

/* confirmation */
.confirm{text-align:left;max-width:640px}
.confirm h1{font-size:clamp(40px,6vw,84px)}
.tick{width:64px;height:64px;border-radius:50%;background:var(--emerald);display:grid;place-items:center;margin-bottom:30px;animation:pop .5s var(--ease)}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}

/* emergency */
.emg{border:1px solid color-mix(in srgb,var(--brass) 55%,transparent);border-radius:var(--r-m);padding:18px 20px;display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:36px;background:color-mix(in srgb,var(--brass) 8%,transparent)}
.emg p{margin:0}
.emg-pane .now{border:1px solid var(--emerald);border-radius:var(--r-l);padding:28px;background:#fff;display:grid;gap:10px}
.night .emg-pane .now{background:#2B2926}
.emg-pane .now .when{font-family:var(--serif);font-size:44px;font-weight:300;line-height:1}
.actions-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--ink);color:var(--ivory);padding:14px 20px;border-radius:999px;font-size:15px;transition:.35s var(--ease);pointer-events:none;z-index:99}
.toast.show{opacity:1;transform:translateX(-50%)}

/* hairline caption */
.cap{font-family:var(--serif);font-style:italic;color:var(--brass);font-size:16px;margin-bottom:18px}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.section-head p{margin:0}
@media (max-width:800px){.section-head{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* ---------- real clinic media ---------- */
.gallery{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:280px 280px;gap:14px}
.gallery .ph{border-radius:var(--r-m);overflow:hidden;position:relative}
.gallery .ph img,.gallery .ph video{width:100%;height:100%;object-fit:cover;display:block}
.gallery .ph:first-child{grid-row:span 2}
.gallery .cap-tag{position:absolute;left:16px;bottom:14px;font-family:var(--serif);font-style:italic;font-size:16px;color:var(--ivory);text-shadow:0 1px 8px rgba(30,29,27,.55)}
@media (max-width:900px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto}.gallery .ph{aspect-ratio:4/3}.gallery .ph:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}}
.logo-badge{width:56px;height:56px;border-radius:12px;object-fit:cover}
.brand-lockup{display:flex;align-items:center;gap:16px}
.person .portrait img{width:100%;height:100%;object-fit:cover}
.lounge-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lounge-visual::before{z-index:1}
.lounge-visual .caption{z-index:2}

/* ---------- practice at ora ---------- */
.rooms{display:grid;grid-template-columns:1fr 1fr;gap:28px}
@media (max-width:860px){.rooms{grid-template-columns:1fr}}
.room-card{margin:0;display:grid;gap:0;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;background:var(--surface)}
.room-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.room-card figcaption{padding:26px 28px 30px}
.room-card h3{font-size:28px;margin-bottom:10px}
.room-card p{margin:0;color:var(--text-2)}
.models{display:grid;grid-template-columns:1fr 1fr;gap:28px}
@media (max-width:860px){.models{grid-template-columns:1fr}}
.model{border:1px solid var(--line);border-radius:var(--r-l);padding:34px;background:var(--surface);display:grid;gap:14px;align-content:start}
.model .price{font-family:var(--serif);font-weight:300;font-size:clamp(52px,6vw,84px);line-height:1;font-variation-settings:"opsz" 144}
.model .price span{font-size:.28em;font-family:var(--sans);font-weight:400;color:var(--text-2);margin-left:10px}
.model p{color:var(--text-2);margin:0}
.model .inc{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:10px;font-size:15px}
.model .inc li{padding-left:22px;position:relative}
.model .inc li::before{content:"";position:absolute;left:0;top:9px;width:10px;height:1.5px;background:var(--brass)}
.pro-flow{display:grid;grid-template-columns:1.5fr 1fr;gap:44px;align-items:start}
@media (max-width:980px){.pro-flow{grid-template-columns:1fr}}
.pro-flow > .pro-step{grid-column:1}
.pro-step{padding:34px 0;border-top:1px solid var(--line);display:grid;gap:22px}
.pro-step h3{font-size:24px;display:flex;align-items:center;gap:14px}
.stepnum{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--brass);border:1px solid color-mix(in srgb,var(--brass) 45%,transparent);border-radius:50%;width:34px;height:34px;display:inline-grid;place-items:center;flex:none}
.hour-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}
.model-fields{display:none;margin-top:22px}
.model-fields.show{display:block}
.agree{display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--text-2);margin-top:8px;cursor:pointer;max-width:60ch}
.agree input{margin-top:4px;accent-color:var(--emerald);width:17px;height:17px}
.pro-estimate{grid-column:2;grid-row:1 / span 4;position:sticky;top:96px}
@media (max-width:980px){.pro-estimate{grid-column:1;grid-row:auto;position:static}}
.pro-done{max-width:640px;padding:40px 0}

/* ---------- ORA wordmark ---------- */
.brand{display:inline-flex;align-items:baseline;gap:2px}
.o-tooth{width:1.05em;height:1.05em;align-self:center;color:currentColor;transform:translateY(.06em)}
.brand:hover .o-tooth path:last-of-type{d:path("M34 46 Q50 61 66 46")}
.wordmark{font-family:var(--serif);font-weight:400;letter-spacing:.04em;font-variation-settings:"opsz" 48}
.dot-b{color:var(--brass)}
.lang-toggle{font-size:14.5px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;transition:.2s}
.lang-toggle:hover{border-color:var(--text)}

/* ---------- hero monogram ---------- */
.hero-mono{position:absolute;top:50%;inset-inline-end:clamp(16px,6vw,110px);transform:translateY(-50%);
  width:clamp(220px,26vw,420px);aspect-ratio:1;object-fit:cover;border-radius:26px;opacity:.9;
  -webkit-mask-image:radial-gradient(closest-side,#000 55%,transparent 100%);mask-image:radial-gradient(closest-side,#000 55%,transparent 100%)}
@media (max-width:1000px){.hero-mono{position:static;transform:none;width:150px;border-radius:18px;margin:0 var(--gutter);order:-1}
  .hero.night{align-items:center}.hero.night .wrap{margin-top:24px}}

/* ---------- Arabic / RTL ---------- */
html[lang=ar]{--serif:"Amiri",serif;--sans:"IBM Plex Sans Arabic",system-ui,sans-serif}
html[lang=ar] h1,html[lang=ar] h2,html[lang=ar] h3{letter-spacing:0;font-variation-settings:normal;font-weight:400;line-height:1.25}
html[lang=ar] h1{font-size:clamp(38px,6vw,88px)}
html[lang=ar] body{font-size:17.5px}
[dir=rtl] .statement .k{width:auto;min-width:8ch}
[dir=rtl] .service:hover{padding-left:0;padding-right:12px}
[dir=rtl] .hero-mono{inset-inline-end:auto;inset-inline-start:clamp(16px,6vw,110px)}

/* ---------- admin portal ---------- */
.gate{min-height:100vh;display:grid;place-items:center;background:var(--ink);padding:24px}
.gate-card{background:var(--ivory);border-radius:var(--r-l);padding:44px 40px;max-width:440px;width:100%}
.tab-link{font-size:15.5px;opacity:.75;padding:8px 2px;border-bottom:2px solid transparent}
.tab-link.on{opacity:1;border-color:var(--emerald)}
.badge{background:var(--error);color:#fff;border-radius:999px;font-size:11.5px;padding:2px 7px;margin-inline-start:4px}
.a-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.a-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.a-controls select{width:auto;padding:10px 14px}
.a-cols{display:grid;grid-template-columns:1fr 1fr;gap:36px}
@media (max-width:860px){.a-cols{grid-template-columns:1fr}}
.a-room{font-family:var(--serif);font-weight:400;font-size:21px;margin-bottom:14px}
.a-list{display:grid;gap:8px}
.a-row{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.a-row.req{grid-template-columns:1fr auto}
.a-time{font-family:var(--serif);font-size:19px;font-weight:400;min-width:5ch}
.a-tag{font-size:12.5px;border-radius:999px;padding:3px 10px;border:1px solid var(--line);color:var(--text-2)}
.a-tag.partner{border-color:color-mix(in srgb,var(--brass) 55%,transparent);color:var(--brass)}
.a-tag.done{border-color:color-mix(in srgb,var(--success) 45%,transparent);color:var(--success)}
.a-actions{display:flex;gap:8px}
.a-day{display:grid;gap:6px;max-width:820px}
.a-hour{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:stretch}
.a-hour>span{font-size:14px;color:var(--text-2);padding-top:12px}
.a-slot{border:1px solid var(--line);border-radius:10px;padding:12px 16px;text-align:left;font-size:14.5px;display:grid;gap:2px}
.a-slot.free{color:var(--text-2);background:transparent;transition:.15s}
.a-slot.free:hover{border-color:var(--emerald);color:var(--ink)}
.a-slot.busy{background:var(--surface)}
.a-slot.busy.partner{border-color:color-mix(in srgb,var(--brass) 55%,transparent)}
.a-slot.blockedd{background:repeating-linear-gradient(45deg,var(--mist),var(--mist) 8px,var(--ivory) 8px,var(--ivory) 16px);color:var(--text-2)}
.hero-inner{z-index:2}
.hero-mono{z-index:1;opacity:.82}
html[lang=ar] .hero h1{max-width:11ch}
.svc-cols{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:44px;border-top:1px solid var(--line);padding-top:34px}
@media (max-width:900px){.svc-cols{grid-template-columns:1fr}}
.svc-cols h4{font-family:var(--serif);font-weight:400;font-size:20px;margin-bottom:12px}
.svc-cols ul{display:grid;gap:7px;font-size:15px;color:var(--text-2)}
.svc-note p{font-size:15px;color:var(--text-2);margin-bottom:12px}
.m-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:860px){.m-cards{grid-template-columns:1fr 1fr}}
.m-card{border:1px solid var(--line);border-radius:var(--r-m);padding:16px 18px;background:var(--surface);display:grid;gap:6px}
.m-card b{font-family:var(--serif);font-size:26px;font-weight:400}
#bookSearch{padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--ivory)}
[hidden]{display:none!important}
