/* ===== Design Dojo — v4 "elevated gallery" layer (staging) ===== */
:root{--v4-gold:#B8913F;--v4-gold-l:#E6CB8A;--v4-gold-d:#9C7A3C;--v4-cream:#FAF7F2;--v4-line:#E9E4DC;--v4-muted:#6F6A64;--v4-ink:#111}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
p,blockquote,li{text-wrap:pretty}
::selection{background:#E6CB8A;color:#111}

/* --- gold italic accents (light pages) --- */
html:not(.v3-dark) body h1 em:not(.dd-sh),html:not(.v3-dark) body h2 em:not(.dd-sh),html:not(.v3-dark) body h3 em:not(.dd-sh){color:var(--v4-gold)!important}
html:not(.v3-dark) body .z57 h1 em,html:not(.v3-dark) body .z57 h2 em{color:var(--v4-gold-l)!important}
h2 em:not(.dd-sh){background-image:linear-gradient(var(--v4-gold-l),var(--v4-gold-l))!important}
/* --- gold accents (dark pages: Book + Carnival) --- */
html.v3-dark body h1 em:not(.dd-sh):not(.bs),html.v3-dark body h2 em:not(.dd-sh){color:var(--v4-gold-l)!important}

/* --- eyebrows with a gold hairline --- */
.z54,.z19,.z58,.dd-cta-ey,.dd-film-ey,.rv-eyebrow,.z5,.hc-ey,.sr-ey{letter-spacing:.24em!important}
.z54,.dd-cta-ey,.rv-eyebrow,.dd-film-ey{display:inline-flex!important;align-items:center;gap:14px}
.z54::before,.dd-cta-ey::before,.rv-eyebrow::before,.dd-film-ey::before{content:"";width:34px;height:1px;background:var(--v4-gold);flex:none}
.z53 .z54{justify-content:center}
.z53 .z54::after{content:"";width:34px;height:1px;background:var(--v4-gold);flex:none}
.z19{color:var(--v4-muted)!important}
.z19::before{content:"";display:block;width:28px;height:1px;background:var(--v4-gold);margin-bottom:16px}
.z5{color:var(--v4-gold-d)!important;font-weight:500}
html.v3-dark .z5{color:var(--v4-gold-l)!important}

/* --- hero: slow cinematic settle + softer frame --- */
.z49>img,.z49 .dd-hero-img{box-shadow:0 1px 0 rgba(0,0,0,.04),0 40px 80px -48px rgba(40,30,10,.45)}
html.v3-js .z49>img{animation:v4Ken 16s cubic-bezier(.2,.6,.2,1) both}
@keyframes v4Ken{from{object-position:50% 46%;filter:saturate(.92)}to{filter:none}}
.z55{letter-spacing:-.022em!important}
.z53>p:not(.z54){font-weight:300!important;font-size:19px;line-height:1.7}

/* --- warm surfaces instead of flat grey --- */
.z57:not(.dd-dark){background:var(--v4-cream)!important}
.z25,.dd-sel figure,.dd-sel-g figure,.dd-film-frame{background:var(--v4-cream)!important}
.z25{border-radius:8px;box-shadow:0 0 0 1px var(--v4-line)}
.rv-card{background:var(--v4-cream)!important;border:0!important;box-shadow:0 0 0 1px var(--v4-line);border-radius:6px}
.rv-card::before{color:var(--v4-gold)!important}
.rv-card figcaption{border-top-color:var(--v4-line)!important}
.rv-feature blockquote::before{color:var(--v4-gold)}
footer.z43{background:var(--v4-cream)!important;border-top:0!important;box-shadow:inset 0 1px 0 var(--v4-line)}
header.z32{border-bottom-color:var(--v4-line)!important;background:rgba(255,255,255,.82)!important;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
html.v3-dark header.z32{background:rgba(11,10,9,.78)!important}
hr,.dd-faq details,.z63>li{border-color:var(--v4-line)!important}

/* --- cards: lift + inner image zoom --- */
.z71,.z60 article,.z25{transition:box-shadow .5s cubic-bezier(.23,1,.32,1),transform .5s cubic-bezier(.23,1,.32,1)}
.z71:hover,.z60 article:hover,.z25:hover{box-shadow:0 0 0 1px var(--v4-line),0 2px 6px rgba(40,30,10,.04),0 36px 70px -42px rgba(40,30,10,.45)!important}
.dd-cimg,.dd-card .dd-cimg,.dd-svc a figure,.dd-svc a>div:first-child{overflow:hidden}
.dd-cimg img,.dd-svc img{transition:transform 1.1s cubic-bezier(.23,1,.32,1)}
.z71:hover .dd-cimg img,.dd-svc a:hover img{transform:scale(1.045)}
.z71.dd-pop{box-shadow:0 0 0 1.5px var(--v4-gold),0 34px 70px -40px rgba(80,60,20,.5)!important}
.z71.dd-pop::after,.z25.dd-pop::after{border-color:var(--v4-gold)!important;color:var(--v4-gold-d)!important}
.z25.dd-pop{box-shadow:0 0 0 1.5px var(--v4-gold),0 34px 70px -40px rgba(80,60,20,.5)!important}
.dd-mb{background:linear-gradient(110deg,#9C7A3C,#D9B66A 55%,#B8913F)!important;color:#111!important;box-shadow:0 10px 26px -12px rgba(120,90,30,.7)!important}
.dd-mb::before{color:#111!important}

/* --- images: subtle outline for depth --- */
.z49>img,.dd-cta>img,.dd-sel-g img,.dd-cimg img,.z69 img,.dd-svc img{outline:1px solid rgba(0,0,0,.06);outline-offset:-1px}

/* --- buttons: gold sweep, arrow nudge, press feedback --- */
.dd-btn:not(.z70),.z28,.z35,.dd-cta-b a,.hc-go,.hub-more{position:relative;isolation:isolate;overflow:hidden;transition:color .35s ease,border-color .35s ease,background-color .35s ease,transform .15s ease}
.dd-btn:active,.z28:active,.z35:active,.dd-cta-b a:active,.z46:active,.rv-load:active{transform:scale(.97)}
.dd-btn:not(.z15):not(.dd-ghost):not(.z70)::before,.dd-cta-b a:first-child::before,header.z32 .z35::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#9C7A3C,#E6CB8A 50%,#B8913F);transform:translateX(-101%);transition:transform .55s cubic-bezier(.23,1,.32,1)}
.dd-btn:not(.z15):not(.dd-ghost):not(.z70):hover::before,.dd-cta-b a:first-child:hover::before,header.z32 .z35:hover::before{transform:none}
.dd-btn:not(.z15):not(.dd-ghost):not(.z70):hover,.dd-cta-b a:first-child:hover,header.z32 .z35:hover{color:#111!important;border-color:#C9A043!important}
.dd-btn:not(.z15):not(.dd-ghost):not(.z70):hover *,.dd-cta-b a:first-child:hover *{color:#111!important}
.dd-ghost:hover,.z46:hover,.rv-load:hover{border-color:var(--v4-gold)!important;color:var(--v4-gold-d)!important}
.z46{border-radius:999px!important;border-color:var(--v4-line)!important;transition:border-color .3s,color .3s,transform .15s}

/* --- nav: gold underline that draws in --- */
header.z32 .dd-nav a:not(.z35){position:relative;text-decoration:none!important;border-bottom:0!important;padding-bottom:4px}
header.z32 .dd-nav a:not(.z35)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--v4-gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s cubic-bezier(.23,1,.32,1)}
header.z32 .dd-nav a:not(.z35):hover::after,header.z32 .dd-nav a[aria-current="page"]::after,header.z32 .z48::after{transform:scaleX(1)}

/* --- links with arrows --- */
.z79,.z38{transition:color .3s}
.z79:hover,.z38:hover{color:var(--v4-gold-d)!important}
.dd-arrow{display:inline-block;transition:transform .35s cubic-bezier(.23,1,.32,1)}
a:hover .dd-arrow{transform:translateX(5px)}

/* --- numbered lists (How it works): gold italic numerals --- */
.z63 li>span:first-child,.z63 li b:first-child,.z63 .z64{font-variant-numeric:tabular-nums}
.z61 ol li::marker{color:var(--v4-gold)}

/* --- FAQ refinement --- */
.dd-faq summary{transition:color .3s}
.dd-faq summary:hover{color:var(--v4-gold-d)}
.dd-faq details[open] summary{color:#111}

/* --- progress hairline in gold --- */
.v3-prog{background:linear-gradient(90deg,#9C7A3C,#E6CB8A,#B8913F)!important;height:2px}

/* --- review quotes: gold marks --- */
.rv-feature blockquote,.z39 blockquote{position:relative}
.rv-chip[aria-pressed="true"]{background:#111!important}
.rv-chip{border-color:var(--v4-line)!important}
.rv-chip:hover{border-color:var(--v4-gold)!important}

/* --- closing section --- */
.dd-cta-in h2{letter-spacing:-.015em}

/* --- scroll reveal for images (v4.js adds classes) --- */
html.v4-js .v4-rv{opacity:0;transform:translateY(26px);transition:opacity 1s cubic-bezier(.23,1,.32,1),transform 1.1s cubic-bezier(.23,1,.32,1)}
html.v4-js .v4-rv.v4-on{opacity:1;transform:none}

/* --- Book page (dark) --- */
html.v3-dark .hub-acc:not(.hub-carn){border-radius:8px!important}
html.v3-dark .hub-acc:not(.hub-carn):hover{border-color:#6B6359!important}
html.v3-dark .rv-eyebrow::before,html.v3-dark .z54::before,html.v3-dark .z54::after{background:var(--v4-gold-l)}
html.v3-dark footer.z43{background:#0B0A09!important;box-shadow:inset 0 1px 0 #2A2622}

/* --- Carnival page --- */
.v3-carn .h2 em,.v3-carn h2 em{color:var(--v4-gold-l)!important}
.v3-carn .ex-i{border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px #2A2622}
.v3-carn .ex-i img{transition:transform 1.1s cubic-bezier(.23,1,.32,1)}
.v3-carn .ex-i:hover img{transform:scale(1.04)}
.v3-carn .ex-n{color:var(--v4-gold-l)!important;font-family:'Playfair Display',Georgia,serif;font-style:italic}
.v3-carn .ey{letter-spacing:.26em!important}

@media (prefers-reduced-motion:reduce){
  html.v3-js .z49>img{animation:none}
  html.v4-js .v4-rv{opacity:1;transform:none;transition:none}
  .dd-cimg img,.dd-svc img,.v3-carn .ex-i img{transition:none}
}
@media (max-width:760px){
  .z53>p:not(.z54){font-size:17px}
  .z54::before,.z53 .z54::after,.dd-cta-ey::before{width:22px}
}

/* --- warm every remaining flat-grey panel --- */
[style*="background: rgb(246, 246, 246)"],[style*="background: rgb(242, 242, 242)"],[style*="background: rgb(244, 244, 244)"],[style*="background: #F6F6F6"],[style*="background: #F2F2F2"],[style*="background:#F6F6F6"],[style*="background:#F2F2F2"]{background:var(--v4-cream)!important}
.dd-sel figure,.dd-spread>*,.dd-band{background:var(--v4-cream)!important}

/* ===== v4.1 second pass: UX polish ===== */
:focus-visible{outline:2px solid var(--v4-gold);outline-offset:3px;border-radius:2px}
[id]{scroll-margin-top:110px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
.z13,.hub-p,.dl-t b,.cd b{font-variant-numeric:tabular-nums lining-nums}
/* FAQ: plus turns to a cross, answer eases in */
.dd-faq summary::after{content:"+"!important;transition:transform .4s cubic-bezier(.23,1,.32,1),color .3s;color:var(--v4-gold)}
.dd-faq details[open] summary::after{transform:rotate(45deg)}
.dd-faq details[open]>*:not(summary){animation:v4Ans .5s cubic-bezier(.23,1,.32,1) both}
@keyframes v4Ans{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* lazy photos fade in once loaded instead of popping */
html.v4-js img.v4-ld{opacity:0}
html.v4-js img.v4-ldd{opacity:1;transition:opacity .8s ease}
/* mobile booking bar */
.v4-bar{display:none}
@media (max-width:760px){
  .v4-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 18px;border-radius:999px;background:rgba(17,17,17,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 40px -16px rgba(0,0,0,.55),0 0 0 1px rgba(230,203,138,.18);color:#F2ECE2;transform:translateY(140%);opacity:0;transition:transform .5s cubic-bezier(.23,1,.32,1),opacity .4s ease}
  .v4-bar.on{transform:none;opacity:1}
  .v4-bar small{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--v4-gold-l)}
  .v4-bar span{font-size:14px;line-height:1.3}
  .v4-bar a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;background:linear-gradient(110deg,#B8913F,#E6CB8A 50%,#C9A043);color:#111!important;text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
  .v4-bar a:active{transform:scale(.97)}
  html.v4-bar-on .dd-btn.z70,html.v4-bar-on .dd-top{translate:0 -76px}
  .dd-btn.z70,.dd-top{transition-property:opacity,transform,translate,border-color,color!important;transition-duration:.25s,.25s,.5s,.2s,.2s!important}
}

/* ===== v5 motion pass ===== */
/* page-to-page: a soft cross-fade instead of a cut to black */
@view-transition{navigation:auto}
body::after{content:none!important;animation:none!important}
header.z32{view-transition-name:dd-hdr}
.dd-btn.z70{view-transition-name:dd-wa}
::view-transition-group(dd-hdr),::view-transition-group(dd-wa){animation-duration:0s}
::view-transition-old(root){animation:v5Out .2s cubic-bezier(.23,1,.32,1) both}
::view-transition-new(root){animation:v5In .45s cubic-bezier(.23,1,.32,1) both}
@keyframes v5Out{to{opacity:0}}
@keyframes v5In{from{opacity:0;transform:translateY(10px)}}
/* once a card or photo has revealed, hover responds quickly instead of on the 1s reveal timing */
.v5-done{transition-duration:.45s!important;transition-delay:0s!important;transition-timing-function:cubic-bezier(.23,1,.32,1)!important}
/* FAQ and accordions open and close smoothly where the browser supports it */
@supports (interpolate-size:allow-keywords){
details{interpolate-size:allow-keywords}
details::details-content{block-size:0;overflow:clip;transition:block-size .4s cubic-bezier(.23,1,.32,1),content-visibility .4s allow-discrete}
details[open]::details-content{block-size:auto}
}
/* touch screens: no sticky hover zooms or lifts after a tap */
@media (hover:none){
html.v3-js .z71.v3-on:hover,html.v3-js .z60 article.v3-on:hover{transform:none!important}
.z71:hover .dd-cimg img,.dd-svc a:hover img,.dd-sel figure:hover img,.dd-play:hover img,.dd-play:hover .dd-play-c,.dd-logo:hover img,.v3-carn .ex-i:hover img,.gal figure:hover img,.gx-grid figure:hover img,.dd-card:hover .dd-zoom>*{transform:none!important}
}
@media (prefers-reduced-motion:reduce){
::view-transition-old(root),::view-transition-new(root){animation:none!important}
details::details-content{transition:none!important}
}
