/* ===========================================================
   Appvera — public site stylesheet (served from /assets/site.css)
   One committed world: warm near-black, gold hairlines, bone text.
   Pages swap behind a curtain wipe (PJAX); sections are rendered
   from the CMS by resources/views/sections/*.blade.php.
   =========================================================== */
:root{
  --bg:#0A0908;
  --bg-2:#121010;
  --card:#171413;
  --fg:#F3EFE7;
  --fg-2:#9A9188;
  --gold:#C9A24B;
  --gold-lt:#EBD9A8;
  --gold-dk:#8C6F2E;
  --on-gold:#0A0908;
  --line:rgba(201,162,75,.22);
  --line-2:rgba(201,162,75,.46);
  --sheen:linear-gradient(100deg,#8C6F2E,#EBD9A8 42%,#C9A24B 72%,#8C6F2E);

  --display:"El Messiri","Segoe UI",Tahoma,sans-serif;
  --body:"Almarai","Segoe UI",Tahoma,sans-serif;
  --roman:"Italiana","Times New Roman",serif;

  --wrap:1280px;
  --ease:cubic-bezier(.19,1,.22,1);
  color-scheme: dark;
}

*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;min-height:100%}
[hidden]{display:none!important}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--body);
  font-weight:300;line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit;background:none;border:0}
:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
::selection{background:var(--gold);color:var(--on-gold)}

h1,h2,h3{font-family:var(--display);font-weight:600;margin:0;line-height:1.2;text-wrap:balance}
p{margin:0}
.roman{font-family:var(--roman);letter-spacing:.16em;text-transform:uppercase}

/* grain + warm glow */
.grain{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.glow{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(70% 48% at 50% -8%, rgba(201,162,75,.16), transparent 70%)}

/* cursor halo */
.halo{position:fixed;top:0;left:0;z-index:70;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--line-2);pointer-events:none;opacity:0;
  transform:translate(-100px,-100px);transition:opacity .4s,width .35s var(--ease),
  height .35s var(--ease),border-color .35s,background .35s}
.halo.on{opacity:1}
.halo.big{width:62px;height:62px;background:rgba(201,162,75,.1);border-color:var(--gold)}

/* ---------- shell ---------- */
.shell{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:24px}

/* ---------- bar ---------- */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-block-end:1px solid var(--line)}
.bar-in{display:flex;align-items:center;gap:20px;height:74px}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--roman);font-size:1.34rem;
  letter-spacing:.22em;line-height:1;text-transform:uppercase}
.logo .dia{width:9px;height:9px;flex:none;background:var(--gold);transform:rotate(45deg);
  transition:transform .6s var(--ease)}
.logo:hover .dia{transform:rotate(225deg) scale(1.2)}
.menu-list{display:flex;gap:4px;margin-inline:auto}
.menu-list a{position:relative;padding:10px 15px;font-size:.93rem;color:var(--fg-2);transition:color .35s}
.menu-list a::after{content:"";position:absolute;inset-block-end:5px;inset-inline:15px;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:inline-end;
  transition:transform .5s var(--ease)}
.menu-list a:hover{color:var(--fg)}
.menu-list a:hover::after{transform:scaleX(1);transform-origin:inline-start}
.menu-list a.on{color:var(--gold)}
.menu-list a.on::after{transform:scaleX(1)}
.tools{display:flex;align-items:center;gap:9px}
.tbtn{height:38px;min-width:38px;padding-inline:12px;border:1px solid var(--line);cursor:pointer;
  display:grid;place-items:center;font-family:var(--roman);font-size:.76rem;letter-spacing:.14em;
  color:var(--fg-2);transition:border-color .35s,color .35s,background .35s}
.tbtn:hover{border-color:var(--line-2);color:var(--gold)}
.hamb{display:none;padding-inline:0;width:38px}
.hamb span{display:block;width:16px;height:1px;background:currentColor;transition:transform .45s var(--ease),opacity .3s}
.hamb span+span{margin-block-start:5px}
.nav-open .hamb span:first-child{transform:translateY(6px) rotate(45deg)}
.nav-open .hamb span:nth-child(2){opacity:0}
.nav-open .hamb span:last-child{transform:translateY(-6px) rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:13px;cursor:pointer;padding:16px 30px;
  font-size:.95rem;font-weight:400;position:relative;overflow:hidden;
  border:1px solid var(--gold);color:var(--gold);transition:color .5s var(--ease)}
.btn span,.btn svg{position:relative;z-index:1}
.btn svg{width:16px;height:16px;transition:transform .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--gold);
  transform:scaleX(0);transform-origin:inline-end;transition:transform .55s var(--ease)}
.btn:hover{color:var(--on-gold)}
.btn:hover::before{transform:scaleX(1);transform-origin:inline-start}
.btn:hover svg{transform:translateX(-6px)}
.btn.solid{background:var(--gold);color:var(--on-gold)}
.btn.solid::before{background:var(--fg)}
[dir="ltr"] .btn svg{scale:-1 1}
[dir="ltr"] .btn:hover svg{transform:translateX(-6px)}

/* ---------- views ---------- */
main{flex:1}
.view{padding-block:clamp(36px,6vw,74px) clamp(56px,8vw,112px)}
.vhead{display:flex;flex-direction:column;gap:16px;margin-block-end:clamp(32px,5vw,60px)}
.tag{font-family:var(--roman);font-size:.78rem;letter-spacing:.3em;color:var(--gold);
  display:flex;align-items:center;gap:14px}
.tag::before{content:"";width:34px;height:1px;background:var(--gold);flex:none}
.lede{color:var(--fg-2);font-size:clamp(.98rem,1.5vw,1.1rem);max-width:58ch}
.gold{background:var(--sheen);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent}

/* word reveal */
[data-split]{display:block}
.w{display:inline-block;overflow:hidden;vertical-align:top;
  padding-block:.12em .24em;margin-block:-.12em -.24em}
.w>i{display:inline-block;font-style:inherit}
.view.anim .w>i{animation:wordup 1s var(--ease) backwards;
  animation-delay:calc(var(--wi,0)*60ms + var(--base,0ms))}
@keyframes wordup{from{transform:translateY(115%)}}
.view.anim [data-k]{animation:kin .9s var(--ease) backwards;
  animation-delay:calc(var(--ki,0)*90ms + 200ms)}
@keyframes kin{from{opacity:0;transform:translateY(26px)}}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(24px,4vw,56px);align-items:center;padding-block:clamp(20px,3vw,40px) clamp(28px,4vw,52px)}
.hero h1{font-size:clamp(2.4rem,6.6vw,5.3rem);font-weight:700;line-height:1.14;letter-spacing:-.005em}
.orb-col{display:flex;flex-direction:column;gap:4px;min-width:0}
.orb{position:relative;aspect-ratio:1;width:100%;max-width:430px;margin-inline:auto}
.orb canvas{width:100%;height:100%;display:block}
.orb-cap{display:flex;justify-content:center;align-items:baseline;gap:12px;font-size:.92rem;color:var(--fg-2)}
.orb-cap .roman{color:var(--gold);font-size:1.02rem;letter-spacing:.22em}
.orb-cap .fade{animation:fade .6s var(--ease)}
.orb-cap .dots{display:flex;gap:6px;margin-inline-start:6px;align-self:center}
.orb-cap .dots i{width:5px;height:5px;background:var(--line-2);transform:rotate(45deg);transition:background .4s}
.orb-cap .dots i.on{background:var(--gold)}

/* ---------- "where do we start" panes ---------- */
.choose-wrap{display:flex;flex-direction:column;gap:18px;margin-block-start:clamp(36px,5vw,56px)}
.choose{display:flex;height:300px;border:1px solid var(--line)}
.pane{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;
  gap:8px;padding:26px;border-inline-end:1px solid var(--line);overflow:hidden;cursor:pointer;
  transition:flex .75s var(--ease),color .5s var(--ease)}
.pane:last-child{border-inline-end:0}
.pane::before{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleY(0);
  transform-origin:bottom;transition:transform .6s var(--ease)}
.pane>*{position:relative;z-index:1}
.pane .pn{font-family:var(--roman);font-size:.9rem;letter-spacing:.2em;color:var(--gold);
  position:absolute;inset-block-start:22px;inset-inline-start:26px;transition:color .5s}
.pane h3{font-size:clamp(1.1rem,2.3vw,1.6rem);line-height:1.3;font-weight:600}
.pane p{color:var(--fg-2);font-size:.9rem;max-height:0;opacity:0;overflow:hidden;
  transition:max-height .6s var(--ease),opacity .5s var(--ease) .1s,color .5s}
.pane .pgo{display:inline-flex;align-items:center;gap:10px;font-family:var(--roman);font-size:.78rem;
  letter-spacing:.2em;opacity:0;transform:translateY(8px);
  transition:opacity .5s var(--ease) .15s,transform .5s var(--ease) .15s}
.pane .pgo svg{width:14px;height:14px}
[dir="ltr"] .pane .pgo svg{scale:-1 1}
.choose:hover .pane{flex:.8}
.pane:hover,.pane:focus-visible{flex:2.4;color:var(--on-gold)}
.pane:hover::before,.pane:focus-visible::before{transform:scaleY(1)}
.pane:hover .pn,.pane:focus-visible .pn{color:var(--on-gold)}
.pane:hover p,.pane:focus-visible p{max-height:120px;opacity:1;color:rgba(10,9,8,.72)}
.pane:hover .pgo,.pane:focus-visible .pgo{opacity:1;transform:none}
.f.flash{animation:flash 1.6s var(--ease)}
@keyframes flash{0%,40%{border-color:var(--gold);box-shadow:0 1px 0 var(--gold)}100%{box-shadow:none}}
.orb .ring{position:absolute;inset:6%;border:1px solid var(--line);border-radius:50%;
  animation:breathe 9s var(--ease) infinite alternate}
.orb .ring:nth-of-type(2){inset:20%;border-color:rgba(201,162,75,.12);animation-duration:12s}
@keyframes breathe{to{transform:scale(1.045)}}

/* rotating word in the headline — a vertical track: every word has its own
   slot, the track slides one slot at a time, so two words can never overlap */
.rot{display:block;height:1.3em;line-height:1.3em;overflow:hidden;position:relative}
.rot .trk{display:block;transition:transform .75s var(--ease);will-change:transform}
.rot .trk>span{display:block;height:1.3em;line-height:1.3em;white-space:nowrap;
  background:var(--sheen);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent}

/* availability pill */
.avail{display:inline-flex;align-items:center;gap:11px;padding:9px 18px;border:1px solid var(--line);
  font-size:.84rem;color:var(--fg-2);margin-block-end:18px}
.avail i{width:7px;height:7px;flex:none;background:var(--gold);border-radius:50%;
  box-shadow:0 0 0 0 rgba(201,162,75,.6);animation:pulse 2.6s ease-out infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(201,162,75,0)}100%{box-shadow:0 0 0 0 rgba(201,162,75,0)}}

/* heading rule */
.vhead .rule{width:0;height:1px;background:var(--gold);opacity:.7}
.view.anim .vhead .rule{width:110px;transition:width 1s var(--ease) .55s}

/* scroll progress + preloader */
.prog{position:fixed;inset-block-start:0;inset-inline-start:0;height:1px;width:0;z-index:75;
  background:linear-gradient(90deg,var(--gold-dk),var(--gold-lt),var(--gold));
  box-shadow:0 0 10px rgba(201,162,75,.5)}
/* preloader — shown from the first paint when <head> adds html.preloading; the orb
   is drawn on its canvas by site.js and then flies into the hero */
.preload{display:none;position:fixed;inset:0;z-index:65}
html.preloading .preload{display:block;animation:preSafe 0s linear 8s forwards}   /* never trap the visitor if the script dies */
.preload[hidden]{display:none}
.preload.bye{pointer-events:none}
@keyframes preSafe{to{visibility:hidden;pointer-events:none}}
.preload .veil{position:absolute;inset:0;background:var(--bg);transition:opacity .9s var(--ease)}
.preload canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.preload .cnt{position:absolute;inset-inline:0;inset-block-end:clamp(30px,10vh,100px);text-align:center;
  font-family:var(--roman);font-size:1rem;letter-spacing:.5em;color:var(--gold);
  font-variant-numeric:tabular-nums;transition:opacity .4s}

.hero-foot{display:flex;flex-wrap:wrap;gap:28px 46px;align-items:flex-start;
  border-block-start:1px solid var(--line);padding-block-start:30px}
.hero-foot .lede{flex:1 1 330px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}

/* ---------- commitments: interactive tabs ---------- */
.pills{margin-block-start:clamp(38px,6vw,66px);border-block-start:1px solid var(--line);
  padding-block-start:clamp(26px,4vw,40px)}
.pills .tabs{display:flex;gap:10px;flex-wrap:wrap;margin-block-end:28px}
.pills .tab{padding:12px 24px;border:1px solid var(--line);color:var(--fg-2);cursor:pointer;
  font-family:var(--roman);font-size:.84rem;letter-spacing:.18em;position:relative;overflow:hidden;
  transition:color .45s var(--ease),border-color .45s}
.pills .tab>span{position:relative;z-index:1}
.pills .tab::before{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(0);
  transform-origin:inline-end;transition:transform .5s var(--ease)}
.pills .tab:hover{color:var(--fg);border-color:var(--line-2)}
.pills .tab.on{color:var(--on-gold);border-color:var(--gold)}
.pills .tab.on::before{transform:scaleX(1);transform-origin:inline-start}
.pills .panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center;
  min-height:154px;border-block-start:1px solid var(--line);padding-block-start:28px}
.pills .panel .txt{display:flex;flex-direction:column;gap:12px;min-width:0}
.pills .panel h3{font-size:clamp(1.35rem,3vw,2.1rem);font-weight:600}
.pills .panel p{color:var(--fg-2);font-size:.96rem;max-width:54ch}
.pills .panel .big{font-family:var(--roman);font-size:clamp(3.6rem,9vw,6.6rem);line-height:.82;
  color:var(--gold);opacity:.22}
.pills .fade{animation:fade .6s var(--ease)}
@keyframes fade{from{opacity:0;transform:translateY(14px)}}
.pills .bar{height:1px;background:var(--line);margin-block-start:24px;position:relative;overflow:hidden}
.pills .bar i{position:absolute;inset-block:0;inset-inline-start:0;background:var(--gold);width:0}
.pills .bar i.go{animation:fill 6s linear forwards}
@keyframes fill{to{width:100%}}

/* ---------- marquee: latin only ---------- */
.band{overflow:hidden;padding-block:24px;margin-block-start:clamp(38px,6vw,66px);
  border-block:1px solid var(--line)}
.band .run{display:flex;width:max-content;animation:run 26s linear infinite}
.band .run>span{font-family:var(--roman);text-transform:uppercase;letter-spacing:.42em;
  font-size:clamp(1rem,2.2vw,1.5rem);display:flex;align-items:center;gap:30px;
  padding-inline-end:30px;white-space:nowrap;color:var(--fg)}
.band .run>span::after{content:"";width:6px;height:6px;background:var(--gold);flex:none;
  transform:rotate(45deg)}
@keyframes run{to{transform:translateX(-50%)}}

/* ---------- rows ---------- */
.rows{border-block-start:1px solid var(--line)}
.row{position:relative;display:block;width:100%;text-align:start;
  border-block-end:1px solid var(--line);cursor:pointer;overflow:hidden;
  transition:color .5s var(--ease)}
.row::before{content:"";position:absolute;inset:0;background:var(--gold);
  transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease)}
.row:hover,.row:focus-visible{color:var(--on-gold)}
.row:hover::before,.row:focus-visible::before{transform:scaleY(1);transform-origin:top}
.row-in{position:relative;z-index:1;display:grid;grid-template-columns:66px minmax(0,1fr) auto;
  gap:22px;align-items:center;padding-block:clamp(22px,2.8vw,32px)}
.row .idx{font-family:var(--roman);font-size:.86rem;letter-spacing:.2em;color:var(--gold);transition:color .5s}
.row:hover .idx{color:var(--on-gold)}
.row h3{font-size:clamp(1.3rem,2.7vw,2.1rem);font-weight:600}
.row .desc{font-size:.94rem;color:var(--fg-2);max-width:56ch;margin-block-start:7px;transition:color .5s}
.row:hover .desc{color:rgba(10,9,8,.75)}
.row .go{width:42px;height:42px;flex:none;border:1px solid currentColor;display:grid;place-items:center;
  opacity:.45;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.row:hover .go{opacity:1;transform:rotate(-45deg)}
[dir="ltr"] .row .go svg{scale:-1 1}
[dir="ltr"] .row:hover .go{transform:rotate(45deg)}
.row .go svg{width:15px;height:15px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-block-start:12px}
.chip{font-family:var(--roman);font-size:.72rem;letter-spacing:.14em;padding:4px 11px;
  border:1px solid currentColor;opacity:.55}

/* cursor preview */
.peek{position:fixed;top:0;left:0;z-index:35;width:240px;height:166px;pointer-events:none;opacity:0;
  transform:translate(-700px,-700px);transition:opacity .4s;background:var(--card);
  border:1px solid var(--line-2);padding:14px;display:flex;flex-direction:column;gap:9px}
.peek.on{opacity:1}
.peek i{display:block;height:7px;background:rgba(201,162,75,.2)}
.peek i:first-child{width:44%;background:var(--gold)}
.peek .r{display:flex;gap:8px}
.peek .r i{flex:1;height:36px}
.peek .b{display:flex;align-items:flex-end;gap:6px;height:46px;margin-block-start:auto}
.peek .b i{flex:1;height:auto;background:var(--gold);opacity:.4;
  animation:peekbar 1.7s var(--ease) infinite alternate}
.peek .b i:nth-child(2){animation-delay:.13s}
.peek .b i:nth-child(3){animation-delay:.26s}
.peek .b i:nth-child(4){animation-delay:.39s}
.peek .b i:nth-child(5){animation-delay:.52s}
@keyframes peekbar{from{height:24%}to{height:100%}}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line)}
.stp{padding-block:34px 38px;padding-inline-end:24px;border-inline-end:1px solid var(--line);
  position:relative;min-width:0;display:flex;flex-direction:column;gap:13px}
.stp:last-child{border-inline-end:0;padding-inline-end:0}
.stp .n{font-family:var(--roman);font-size:clamp(2.6rem,6.4vw,4.6rem);line-height:.86;
  color:var(--gold);opacity:.3;transition:opacity .6s var(--ease)}
.stp:hover .n{opacity:1}
.stp h3{font-size:1.18rem;font-weight:600}
.stp p{font-size:.92rem;color:var(--fg-2)}
.stp .mark{position:absolute;inset-block-start:0;inset-inline-start:0;width:0;height:1px;
  background:var(--gold);transition:width .8s var(--ease)}
.view.anim .stp .mark{width:100%;transition-delay:calc(var(--si,0)*150ms + 300ms)}

/* ---------- contact ---------- */
.cwrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,5vw,64px);
  align-items:start}
.form{display:flex;flex-direction:column;gap:2px}
.f{position:relative;border-block-end:1px solid var(--line);padding-block:18px 10px;
  transition:border-color .4s}
.f:focus-within{border-color:var(--gold)}
.f label{display:block;font-family:var(--roman);font-size:.74rem;letter-spacing:.2em;color:var(--fg-2)}
.f input,.f select,.f textarea{width:100%;padding-block:9px 2px;font-size:1rem;font-weight:300}
.f textarea{resize:vertical;min-height:92px;line-height:1.8}
.f select{cursor:pointer}
.f select option{background:var(--bg-2);color:var(--fg)}
.f.bad{border-color:#C96A4B}
.form .btn{margin-block-start:30px;align-self:flex-start}
.note{font-size:.82rem;color:var(--fg-2);margin-block-start:16px}
.ok{display:none;border:1px solid var(--line-2);padding:22px;margin-block-start:22px;gap:13px;
  flex-direction:column;background:rgba(201,162,75,.05)}
.ok.on{display:flex}
.ok h3{font-size:1.06rem;color:var(--gold)}
.ok p{font-size:.9rem;color:var(--fg-2)}
.mini-btn{align-self:flex-start;font-family:var(--roman);font-size:.76rem;letter-spacing:.18em;
  padding:10px 18px;border:1px solid var(--line-2);cursor:pointer;color:var(--gold);
  transition:background .4s,color .4s}
.mini-btn:hover{background:var(--gold);color:var(--on-gold)}
.cside{display:flex;flex-direction:column;border-block-start:1px solid var(--line)}
.cline{padding-block:22px;border-block-end:1px solid var(--line);display:flex;flex-direction:column;gap:5px}
.cline small{font-family:var(--roman);font-size:.74rem;letter-spacing:.2em;color:var(--gold)}
.cline b{font-weight:400;font-size:1.04rem;word-break:break-word}
.cline b.ltr{font-family:var(--roman);letter-spacing:.08em;font-size:1.08rem}

/* ---------- footer ---------- */
footer{border-block-start:1px solid var(--line);padding-block:34px;margin-block-start:auto}
.foot{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between;
  font-size:.86rem;color:var(--fg-2)}
.foot .roman{font-size:.78rem;color:var(--fg-2)}

/* ---------- curtain ---------- */
.curtain{position:fixed;inset:0;z-index:80;display:grid;grid-template-columns:repeat(5,1fr);
  pointer-events:none}
.curtain i{background:var(--bg-2);border-inline-end:1px solid var(--line);
  transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.76,0,.24,1)}
.curtain i:last-child{border-inline-end:0}
.curtain .mk{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--roman);
  font-size:clamp(1.3rem,4vw,2.4rem);letter-spacing:.46em;color:var(--gold);opacity:0;
  transition:opacity .35s ease;text-transform:uppercase}
.curtain.in i{transform:scaleY(1)}
.curtain.in .mk{opacity:1;transition-delay:.22s}
.curtain.in i:nth-child(1){transition-delay:0ms}
.curtain.in i:nth-child(2){transition-delay:50ms}
.curtain.in i:nth-child(3){transition-delay:100ms}
.curtain.in i:nth-child(4){transition-delay:150ms}
.curtain.in i:nth-child(5){transition-delay:200ms}
.curtain.in.out i{transform-origin:top;transform:scaleY(0)}
.curtain.in.out .mk{opacity:0;transition-delay:0s}
.curtain.in.out i:nth-child(1){transition-delay:200ms}
.curtain.in.out i:nth-child(2){transition-delay:150ms}
.curtain.in.out i:nth-child(3){transition-delay:100ms}
.curtain.in.out i:nth-child(4){transition-delay:50ms}
.curtain.in.out i:nth-child(5){transition-delay:0ms}

/* ---------- mobile sheet ---------- */
.sheet{position:fixed;inset:0;z-index:60;background:var(--bg-2);display:flex;flex-direction:column;
  justify-content:center;gap:2px;padding:34px 28px;clip-path:inset(0 0 100% 0);
  transition:clip-path .65s var(--ease),visibility .65s;pointer-events:none;visibility:hidden}
.nav-open .sheet{clip-path:inset(0 0 0 0);pointer-events:auto;visibility:visible;transition-delay:0s}
.sheet a{font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,8vw,3rem);
  padding-block:10px;border-block-end:1px solid var(--line);opacity:0;transform:translateY(26px);
  transition:opacity .55s var(--ease),transform .55s var(--ease),color .3s}
.sheet a:hover{color:var(--gold)}
.nav-open .sheet a{opacity:1;transform:none}
.nav-open .sheet a:nth-child(1){transition-delay:.2s}
.nav-open .sheet a:nth-child(2){transition-delay:.26s}
.nav-open .sheet a:nth-child(3){transition-delay:.32s}
.nav-open .sheet a:nth-child(4){transition-delay:.38s}
.nav-open .sheet a:nth-child(5){transition-delay:.44s}
.sheet a.on{color:var(--gold)}
.sheet .roman{margin-block-start:34px;font-size:.8rem;color:var(--gold)}

/* ---------- reveal ---------- */
[data-rv].pre{opacity:0;transform:translateY(26px)}
[data-rv]{transition:opacity .9s var(--ease),transform .9s var(--ease)}

/* ---------- responsive ---------- */
@media (max-width:1040px){
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stp:nth-child(2){border-inline-end:0;padding-inline-end:0}
  .stp:nth-child(1),.stp:nth-child(2){border-block-end:1px solid var(--line)}
  .stp:nth-child(3){padding-inline-end:24px}
  .cwrap{grid-template-columns:1fr}
}
@media (max-width:820px){
  .menu-list{display:none}
  .hamb{display:grid}
  .hero{grid-template-columns:1fr}
  .pills .panel{grid-template-columns:1fr}
  .pills .panel .big{display:none}
  .pills .tab{padding:10px 18px;font-size:.78rem;letter-spacing:.14em}
  .orb-col{order:-1}
  .orb{max-width:300px}
  .choose{flex-direction:column;height:auto}
  .pane{border-inline-end:0;border-block-end:1px solid var(--line);min-height:100px;padding:20px;
    padding-inline-start:64px}
  .pane:last-child{border-block-end:0}
  .pane .pn{inset-block-start:20px;inset-inline-start:20px}
  .pane p{max-height:none;opacity:1;font-size:.86rem}
  .choose:hover .pane{flex:1}
  .pane:hover,.pane:focus-visible{flex:1}
  .row-in{grid-template-columns:44px minmax(0,1fr);gap:16px}
  .row .go{display:none}
  .peek,.halo{display:none}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr}
  .stp{border-inline-end:0;padding-inline-end:0;border-block-end:1px solid var(--line)}
  .stp:last-child{border-block-end:0}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
  [data-rv].pre{opacity:1;transform:none}
}

/* ---------- rich text section ---------- */
.prose{max-width:68ch;font-size:1.02rem;color:var(--fg);display:flex;flex-direction:column;gap:18px}
.prose h3{font-size:1.4rem;margin-block-start:10px}
.prose h4{font-size:1.1rem}
.prose p{color:var(--fg-2)}
.prose a{color:var(--gold);border-block-end:1px solid var(--line-2)}
.prose ul,.prose ol{margin:0;padding-inline-start:1.2em;color:var(--fg-2);display:flex;flex-direction:column;gap:6px}
.prose blockquote{margin:0;padding-inline-start:18px;border-inline-start:1px solid var(--gold);color:var(--fg)}
.prose img{display:block;border:1px solid var(--line)}
.prose hr{border:0;border-block-start:1px solid var(--line);margin-block:10px}

/* ---------- call-to-action block ---------- */
.ctab{border:1px solid var(--line);padding:clamp(28px,5vw,56px);display:grid;
  grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center;position:relative;overflow:hidden}
.ctab::before{content:"";position:absolute;inset-block-start:-40%;inset-inline-end:-10%;width:40%;aspect-ratio:1;
  border-radius:50%;background:var(--gold);opacity:.08;filter:blur(60px)}
.ctab>*{position:relative}
.ctab h2{font-size:clamp(1.5rem,3.4vw,2.4rem)}
.ctab p{color:var(--fg-2);margin-block-start:10px;max-width:56ch}
@media (max-width:820px){.ctab{grid-template-columns:1fr}}

/* ---------- forms: honeypot + states ---------- */
.hp{position:absolute;inset-inline-start:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.f .err{display:none;font-size:.78rem;color:#D98B6A;margin-block-start:6px}
.f.bad .err{display:block}
.form-error{display:none;font-size:.86rem;color:#D98B6A;margin-block-start:14px}
.form-error.on{display:block}
.btn[disabled]{opacity:.6;pointer-events:none}

/* ---------- 404 ---------- */
.nf{min-height:50vh;display:flex;flex-direction:column;justify-content:center;gap:18px;align-items:flex-start}
.nf .big{font-family:var(--roman);font-size:clamp(4rem,14vw,9rem);line-height:.9;color:var(--gold);opacity:.3}

/* ---------- pjax ---------- */
html.pjax-busy, html.pjax-busy *{cursor:progress!important}

/* ---------- logo image + social (settings) ---------- */
.logo-img{height:30px;width:auto;max-width:150px;object-fit:contain;display:block}
.foot .social{display:flex;gap:16px;flex-wrap:wrap}
.foot .social a{font-size:.76rem;color:var(--fg-2);transition:color .3s}
.foot .social a:hover{color:var(--gold)}
.foot .legal{display:flex;gap:16px;flex-wrap:wrap}
.foot .legal a{font-size:.8rem;color:var(--fg-2);border-block-end:1px solid transparent;transition:color .3s,border-color .3s}
.foot .legal a:hover{color:var(--gold);border-color:var(--line-2)}

/* ---------- gallery + lightbox + image beside text ---------- */
.gallery{display:grid;gap:14px}
.gallery.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-item{position:relative;display:block;border:1px solid var(--line);overflow:hidden;background:var(--card);aspect-ratio:4/3;
  transition:border-color .5s var(--ease),transform .5s var(--ease)}
.g-item:hover{border-color:var(--gold);transform:translateY(-3px)}
.g-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease),filter .6s}
.g-item:hover .g-img{transform:scale(1.05)}
.g-cap{position:absolute;inset-inline:0;inset-block-end:0;padding:10px 14px;font-size:.8rem;color:var(--fg);
  background:linear-gradient(to top,rgba(10,9,8,.85),transparent);opacity:0;transform:translateY(8px);
  transition:opacity .45s var(--ease),transform .45s var(--ease)}
.g-item:hover .g-cap{opacity:1;transform:none}
@media (max-width:820px){.gallery.cols-3,.gallery.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.gallery{grid-template-columns:1fr!important}}

.text-grid{display:grid;gap:clamp(24px,4vw,48px);align-items:start}
.text-grid.has-img{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.text-grid.has-img.img-start .text-fig{order:-1}
.text-fig{margin:0;border:1px solid var(--line);overflow:hidden;background:var(--card)}
.text-fig a{display:block}
.text-img{width:100%;height:auto;display:block;transition:transform 1.2s var(--ease)}
.text-fig:hover .text-img{transform:scale(1.03)}
@media (max-width:820px){.text-grid.has-img{grid-template-columns:1fr}.text-grid.has-img.img-start .text-fig{order:0}}

.lightbox{position:fixed;inset:0;z-index:95;background:rgba(5,4,3,.94);display:grid;place-items:center;padding:24px;
  animation:lbIn .3s ease}
@keyframes lbIn{from{opacity:0}}
.lightbox figure{margin:0;max-width:min(1400px,94vw);max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.lightbox img{max-width:100%;max-height:82vh;object-fit:contain;border:1px solid var(--line-2);animation:lbImg .4s var(--ease)}
@keyframes lbImg{from{opacity:0;transform:scale(.96)}}
.lightbox figcaption{font-size:.9rem;color:var(--fg-2);text-align:center;min-height:1.2em}
.lb-close,.lb-nav{position:absolute;border:1px solid var(--line-2);background:rgba(10,9,8,.6);color:var(--gold);cursor:pointer;
  width:46px;height:46px;display:grid;place-items:center;font-size:1.3rem;transition:background .3s}
.lb-close:hover,.lb-nav:hover{background:var(--gold);color:var(--on-gold)}
.lb-close{inset-block-start:18px;inset-inline-end:18px}
.lb-nav{inset-block-start:50%;transform:translateY(-50%)}
.lb-prev{inset-inline-start:18px}.lb-next{inset-inline-end:18px}
.peek.has-img{padding:0;background:var(--card) center/cover no-repeat}
.peek.has-img>*{display:none}

/* ===== Phase 7: works (case studies) ===== */
/* generic sections stacked on one page get breathing room (hero/choose/tabs keep their own spacing) */
.view>.wrap+.wrap:not(:has(>.choose-wrap,>.pills)){margin-block-start:clamp(44px,7vw,90px)}

/* listing: filter chips + rows with a cover thumbnail on small screens */
.wfilters{display:flex;flex-wrap:wrap;gap:8px;margin-block-end:22px}
.wf{font-family:var(--body);font-size:.84rem;padding:9px 18px;border:1px solid var(--line);background:transparent;color:var(--fg-2);
  cursor:pointer;transition:color .3s,border-color .3s,background .3s}
.wf:hover{color:var(--fg);border-color:var(--line-2)}
.wf.on{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.wrow[hidden]{display:none}
.wmeta-line{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--fg-2);margin-block-end:8px;transition:color .5s}
.wmeta-line .roman{letter-spacing:.14em}
.row:hover .wmeta-line{color:rgba(10,9,8,.7)}
.sep{display:inline-block;width:4px;height:4px;background:var(--gold);transform:rotate(45deg);flex:none}
.row:hover .sep{background:var(--on-gold)}
.wrow .row-in{grid-template-columns:66px minmax(0,1fr) auto}
.row-thumb{display:none}
.wmore{margin-block-start:28px;display:flex;justify-content:flex-end}
@media (max-width:820px){
  .wrow .row-in{grid-template-columns:minmax(0,1fr) 84px;gap:16px}
  .wrow .idx{display:none}
  .row-thumb{display:block;width:84px;height:63px;border:1px solid var(--line);overflow:hidden;background:var(--card)}
  .row-thumb-img{width:100%;height:100%;object-fit:cover;display:block}
  .wmore{justify-content:flex-start}
}

/* work page header */
.whead{display:flex;flex-direction:column;gap:18px}
.whead h1{font-size:clamp(2.1rem,5.4vw,4.2rem);font-weight:700;line-height:1.16;max-width:20ch}
.whead .tag .roman{letter-spacing:.3em}
.wmeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,max-content));gap:18px 48px;margin:12px 0 0;
  padding-block:22px;border-block:1px solid var(--line)}
.wmeta>div{display:flex;flex-direction:column;gap:7px;min-width:0}
.wmeta>div.wide{grid-column:1/-1}
@media (max-width:820px){.wmeta{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}}
.wmeta dt{font-family:var(--roman);font-size:.72rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.wmeta dd{margin:0;color:var(--fg);font-size:.98rem}
.wmeta .chips{margin:0}
.wmeta .chip{opacity:.8}
.wlink{display:inline-flex;align-items:center;gap:10px;color:var(--gold);border-block-end:1px solid var(--line-2);padding-block-end:3px;transition:color .3s}
.wlink:hover{color:var(--gold-lt)}
.wlink svg{width:14px;height:14px}
[dir="ltr"] .wlink svg{scale:-1 1}
.wcover{margin:clamp(28px,4vw,48px) 0 0;border:1px solid var(--line);overflow:hidden;background:var(--card)}
.wcover a{display:block}
.wcover-img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;transition:transform 1.4s var(--ease)}
.wcover:hover .wcover-img{transform:scale(1.025)}

/* previous / all / next */
.wnav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:20px;align-items:center;
  padding-block-start:28px;border-block-start:1px solid var(--line)}
.wn{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--fg);transition:color .3s}
.wn small{font-family:var(--roman);font-size:.72rem;letter-spacing:.26em;color:var(--fg-2);text-transform:uppercase}
.wn b{font-family:var(--display);font-weight:600;font-size:clamp(1rem,2vw,1.3rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wn.next{text-align:end;align-items:flex-end}
.wn:hover{color:var(--gold)}
.wn.all{align-items:center;justify-content:center;padding:14px 22px;border:1px solid var(--line);font-size:.8rem;letter-spacing:.3em;text-transform:uppercase}
.wn.all:hover{border-color:var(--gold)}
@media (max-width:560px){
  .wnav{grid-template-columns:1fr 1fr}
  .wn.all{grid-column:1/-1;order:3}
  .wn.empty{display:none}
}

/* ===== Phase 9: services, FAQ, brief wizard ===== */
/* services grid */
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.svc{position:relative;display:flex;flex-direction:column;gap:14px;padding:clamp(22px,3vw,34px);border:1px solid var(--line);
  background:var(--card);overflow:hidden;transition:border-color .5s var(--ease),transform .5s var(--ease);min-height:260px}
.svc::before{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease)}
.svc>*{position:relative;z-index:1;transition:color .45s}
.svc:hover,.svc:focus-visible{border-color:var(--gold);transform:translateY(-3px)}
.svc:hover::before,.svc:focus-visible::before{transform:scaleY(1);transform-origin:top}
.svc:hover>*,.svc:focus-visible>*{color:var(--on-gold)}
.svc-n{font-family:var(--roman);font-size:.86rem;letter-spacing:.2em;color:var(--gold)}
.svc h3{font-size:clamp(1.25rem,2vw,1.6rem);font-weight:600}
.svc p{font-size:.92rem;color:var(--fg-2);max-width:40ch}
.svc:hover p{color:rgba(10,9,8,.75)}
.svc-inc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:.86rem;color:var(--fg-2)}
.svc-inc li{display:flex;gap:10px;align-items:flex-start}
.svc-inc i{width:5px;height:5px;background:var(--gold);transform:rotate(45deg);flex:none;margin-block-start:.55em}
.svc:hover .svc-inc{color:rgba(10,9,8,.8)}
.svc:hover .svc-inc i{background:var(--on-gold)}
.svc-go{margin-block-start:auto;display:inline-flex;align-items:center;gap:10px;font-family:var(--roman);font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.svc-go svg{width:14px;height:14px;transition:transform .5s var(--ease)}
.svc:hover .svc-go svg{transform:translateX(-5px)}
[dir="ltr"] .svc-go svg{scale:-1 1}
[dir="ltr"] .svc:hover .svc-go svg{transform:translateX(5px)}
@media (max-width:1040px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.svc-grid{grid-template-columns:1fr}}

/* service page header */
.shead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,5vw,64px);align-items:start}
.shead-main{display:flex;flex-direction:column;gap:18px}
.shead-main h1{font-size:clamp(2.1rem,5.4vw,4.2rem);font-weight:700;line-height:1.16;max-width:18ch}
.shead-side{display:flex;flex-direction:column;gap:16px}
.sbox{border:1px solid var(--line);padding:22px 24px;background:var(--card);display:flex;flex-direction:column;gap:12px}
.sbox small,.sfacts small{font-family:var(--roman);font-size:.72rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.sinc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:.94rem}
.sinc li{display:flex;gap:11px;align-items:flex-start}
.sinc i{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);flex:none;margin-block-start:.6em}
.sfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sfacts>div{border:1px solid var(--line);padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.sfacts b{font-weight:500;font-size:1rem}
@media (max-width:820px){.shead{grid-template-columns:1fr}}

/* FAQ */
.faq{border-block-start:1px solid var(--line)}
.faq-i{border-block-end:1px solid var(--line)}
.faq-i summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:52px minmax(0,1fr) 34px;gap:16px;align-items:center;padding-block:20px;
  font-family:var(--display);font-weight:600;font-size:clamp(1.05rem,1.8vw,1.3rem);transition:color .3s}
.faq-i summary::-webkit-details-marker{display:none}
.faq-i summary:hover{color:var(--gold)}
.faq-n{font-family:var(--roman);font-size:.84rem;letter-spacing:.2em;color:var(--gold)}
.faq-x{position:relative;width:30px;height:30px;border:1px solid var(--line-2);flex:none;transition:transform .5s var(--ease),background .3s}
.faq-x::before,.faq-x::after{content:"";position:absolute;inset-block-start:50%;inset-inline-start:50%;width:12px;height:1px;background:currentColor;transform:translate(-50%,-50%)}
.faq-x::after{transform:translate(-50%,-50%) rotate(90deg)}
[dir="rtl"] .faq-x::before,[dir="rtl"] .faq-x::after{transform:translate(50%,-50%)}
[dir="rtl"] .faq-x::after{transform:translate(50%,-50%) rotate(90deg)}
.faq-i[open] .faq-x{transform:rotate(45deg);background:var(--gold);color:var(--on-gold);border-color:var(--gold)}
.faq-a{padding:0 0 24px 0;padding-inline-start:68px;font-size:.98rem;animation:fade .5s var(--ease)}
@media (max-width:560px){.faq-i summary{grid-template-columns:40px minmax(0,1fr) 30px;gap:12px}.faq-a{padding-inline-start:0}}

/* brief wizard */
.brief{border:1px solid var(--line);background:var(--card);padding:clamp(22px,4vw,44px);position:relative;overflow:hidden}
.brief-bar{list-style:none;margin:0 0 clamp(26px,4vw,40px);padding:0 0 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;position:relative;border-block-end:1px solid var(--line)}
.brief-bar li{display:flex;flex-direction:column;gap:6px;color:var(--fg-3);transition:color .4s}
.brief-bar li .roman{font-size:.78rem;letter-spacing:.24em}
.brief-bar li b{font-weight:500;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brief-bar li.on{color:var(--fg)}
.brief-bar li.on .roman{color:var(--gold)}
.brief-bar li.done{color:var(--fg-2)}
.brief-bar li.done .roman{color:var(--gold)}
.brief-line{position:absolute;inset-block-end:-1px;inset-inline-start:0;height:1px;width:0;background:var(--gold);transition:width .6s var(--ease);box-shadow:0 0 10px rgba(201,162,75,.5)}
.bstep{display:none}
.bstep.on{display:block;animation:bIn .55s var(--ease)}
@keyframes bIn{from{opacity:0;transform:translateX(-18px)}}
[dir="ltr"] .bstep.on{animation-name:bInL}
@keyframes bInL{from{opacity:0;transform:translateX(18px)}}
.bstep h3{font-size:clamp(1.3rem,2.6vw,1.9rem);margin-block-end:8px}
.bhint{color:var(--fg-2);font-size:.92rem;margin-block-end:22px;max-width:60ch}
.opts.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.opt{display:block;cursor:pointer}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt-in{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px 22px;border:1px solid var(--line);min-height:112px;
  transition:border-color .35s,background .35s,color .35s,transform .35s var(--ease);overflow:hidden}
.opt-in .on{font-family:var(--roman);font-size:.78rem;letter-spacing:.2em;color:var(--gold)}
.opt-in b{font-weight:500;font-size:1.02rem}
.opt-in small{font-size:.82rem;color:var(--fg-2)}
.opt:hover .opt-in{border-color:var(--line-2);transform:translateY(-2px)}
.opt input:checked+.opt-in{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.opt input:checked+.opt-in .on,.opt input:checked+.opt-in small{color:rgba(10,9,8,.7)}
.opt input:focus-visible+.opt-in{outline:1px solid var(--gold);outline-offset:2px}
.opts.rows{display:flex;flex-direction:column;gap:8px}
.row-opt .opt-in{flex-direction:row;align-items:center;gap:14px;min-height:0;padding:14px 18px}
.row-opt .dot{width:14px;height:14px;border:1px solid var(--line-2);border-radius:50%;flex:none;position:relative;transition:border-color .3s}
.row-opt input:checked+.opt-in .dot{border-color:var(--on-gold);background:radial-gradient(circle,var(--on-gold) 0 40%,transparent 44%)}
.chipsx{display:flex;flex-wrap:wrap;gap:10px}
.chipx{cursor:pointer}
.chipx input{position:absolute;opacity:0;pointer-events:none}
.chipx span{display:inline-block;padding:11px 18px;border:1px solid var(--line);font-size:.92rem;transition:background .3s,border-color .3s,color .3s}
.chipx:hover span{border-color:var(--line-2)}
.chipx input:checked+span{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.chipx input:focus-visible+span{outline:1px solid var(--gold);outline-offset:2px}
.bcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,36px)}
.bgroup{display:flex;flex-direction:column;gap:12px}
.bgroup>small{font-size:.74rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.bwarn{color:#D98B6A;font-size:.86rem;margin-block-start:14px}
.bsum{border:1px solid var(--line-2);padding:18px 22px;margin-block-end:22px;display:flex;flex-direction:column;gap:10px;background:rgba(201,162,75,.04)}
.bsum>small{font-size:.74rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.bsum dl{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;font-size:.92rem}
.bsum dt{color:var(--fg-2)}
.bsum dd{margin:0;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.bedit{background:none;border:0;padding:0;cursor:pointer;color:var(--gold);font-family:var(--roman);font-size:.76rem;letter-spacing:.16em;border-block-end:1px solid var(--line-2)}
.bfields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.bfields .f.wide{grid-column:1/-1}
.bfields .f label em{font-style:normal;letter-spacing:0;text-transform:none;color:var(--fg-3)}
.bsend{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-block-start:26px}
.bsend .note{margin:0}
.brief-nav{display:flex;align-items:center;gap:14px;margin-block-start:clamp(24px,4vw,36px);padding-block-start:18px;border-block-start:1px solid var(--line)}
.brief-nav .bcount{margin-inline-start:auto;font-size:.82rem;letter-spacing:.2em;color:var(--fg-2)}
.brief-nav .bcount b{color:var(--gold);font-weight:400}
.brief-nav [data-next]{order:3}
.brief .ok{margin-block-start:0}
@media (max-width:820px){
  .opts.cards{grid-template-columns:1fr 1fr}
  .bcols,.bfields{grid-template-columns:1fr}
  .brief-bar li b{display:none}
}
@media (max-width:480px){.opts.cards{grid-template-columns:1fr}}

/* coming soon / maintenance page */
.soon-view{min-height:calc(100vh - 160px);display:flex;align-items:center}
.soon-view .hero{width:100%}
.soon-view h1{margin-block-start:18px}
.soon-contact{display:flex;gap:28px;flex-wrap:wrap;margin-block-start:30px;font-size:.92rem;letter-spacing:.12em;color:var(--fg-2)}
.soon-contact a{color:var(--gold);border-block-end:1px solid var(--line-2)}

/* ---------- floating chat button (Phase 11) ---------- */
.wa{position:fixed;inset-inline-end:22px;inset-block-end:22px;z-index:55;display:flex;align-items:center;gap:0;
  height:54px;padding-inline:15px;border-radius:999px;background:var(--gold);color:var(--on-gold);
  box-shadow:0 10px 30px rgba(0,0,0,.45);transition:gap .35s,padding .35s,box-shadow .35s,transform .35s,opacity .4s}
.wa svg{width:24px;height:24px;flex:none}
.wa span{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;font-size:.9rem;font-weight:600;transition:max-width .4s,opacity .3s}
.wa:hover,.wa:focus-visible{gap:10px;padding-inline:17px 20px;box-shadow:0 14px 36px rgba(201,162,75,.35);transform:translateY(-2px)}
.wa:hover span,.wa:focus-visible span{max-width:200px;opacity:1}
.wa::after{content:"";position:absolute;inset:-6px;border-radius:inherit;border:1px solid var(--gold);opacity:0;
  animation:waPulse 3s ease-out 2s infinite;pointer-events:none}
@keyframes waPulse{0%{transform:scale(.92);opacity:.55}70%,100%{transform:scale(1.28);opacity:0}}
html.preloading .wa{opacity:0}
.wa-mobile{display:none}
body:has(.wa:not(.wa-mobile)) footer{padding-block-end:96px}   /* keep the rights line clear of the button */
@media (max-width:820px){.wa-mobile{display:flex}.wa{inset-inline-end:16px;inset-block-end:16px;height:50px}body:has(.wa) footer{padding-block-end:92px}}
@media (prefers-reduced-motion:reduce){.wa::after{animation:none}}
