/* Dhillon Tents — lightweight motion and finishing touches. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-out .22s ease both; }
::view-transition-new(root) { animation: page-in .48s cubic-bezier(.16,1,.3,1) both; }
@keyframes page-out { to { opacity:0; transform:translateY(-8px); } }
@keyframes page-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
html { scroll-padding-top:calc(var(--header-h) + 20px); }
body { transition:opacity .2s ease; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #a57c35; outline-offset:5px; }
.site-header { transition:box-shadow .35s ease,background .35s ease; }
.site-header.is-scrolled { box-shadow:0 7px 30px #0d222b0b; }
.site-nav a { transition:color .25s ease; }
.hero h1 { max-width:16ch; font-size:clamp(2.9rem,4.3vw,4.5rem); line-height:1.08; }
.hero__copy .eyebrow { font-size:.69rem; letter-spacing:.15em; }
.hero__copy p { max-width:47ch; }
.hero__meta { row-gap:14px; }
.intro-started .hero__bg img { animation-delay:1.4s; }
.intro-started .hero__copy { animation-delay:1.45s; }
.intro-started .plan-card { animation-delay:1.58s; }

/* The intro never hides the document from assistive technology or blocks input. */
.intro-overlay { display:none; pointer-events:none; }
.intro-active .intro-overlay { position:fixed; inset:0; z-index:95; display:grid; place-items:center; background:#091c26; overflow:hidden; animation:intro-exit 1.85s ease both; }
.intro-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.22; animation:intro-settle 1.85s ease both; }
.intro-vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center,#091c2640,#091c26e6); }
.intro-center { position:relative; width:min(75vw,380px); text-align:center; animation:intro-brand-in .8s cubic-bezier(.16,1,.3,1) both; }
.intro-center img { width:300px; max-width:100%; height:auto; margin:0 auto 16px; filter:brightness(0) invert(1); }
.intro-center p { margin:0; color:#d9bf8b; font:400 .62rem/1.7 var(--sans); letter-spacing:.25em; text-transform:uppercase; }
.intro-trace { position:absolute; inset:28px; }
.intro-trace span { position:absolute; display:block; background:#d9bf8b91; }
.intro-trace span:nth-child(1) { top:0; left:0; width:100%; height:1px; transform-origin:left; animation:trace-x .7s .05s both; }
.intro-trace span:nth-child(2) { top:0; right:0; height:100%; width:1px; transform-origin:top; animation:trace-y .7s .2s both; }
.intro-trace span:nth-child(3) { bottom:0; right:0; width:100%; height:1px; transform-origin:right; animation:trace-x .7s .35s both; }
.intro-trace span:nth-child(4) { bottom:0; left:0; height:100%; width:1px; transform-origin:bottom; animation:trace-y .7s .5s both; }
@keyframes intro-exit { 0%,62% { opacity:1; visibility:visible; } 100% { opacity:0; visibility:hidden; } }
@keyframes intro-settle { from { transform:scale(1.055); } to { transform:scale(1); } }
@keyframes intro-brand-in { from { opacity:0; transform:translateY(14px) scale(.97); } to { opacity:1; transform:none; } }
@keyframes trace-x { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes trace-y { from { transform:scaleY(0); } to { transform:scaleY(1); } }

/* Content is visible by default; JavaScript only stages offscreen elements. */
.scroll-reveal { transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1); transition-delay:var(--reveal-delay,0ms); }
.scroll-reveal[data-reveal="waiting"] { opacity:0; transform:translateY(36px); }
.scroll-reveal[data-reveal="shown"] { opacity:1; transform:none; }
.tent-story { background:#fffdf8; }
.tent-story .section-head h2 { max-width:20ch; }
.tent-story h2 em { color:#6a7f7d; }
.scene-switch { display:flex; gap:30px; border-bottom:1px solid var(--line); margin:32px 0 24px; }
.scene-switch button { background:transparent; border:0; border-bottom:2px solid transparent; padding:16px 0; display:flex; gap:14px; align-items:center; color:#687a7b; font-size:.7rem; cursor:pointer; transition:color .3s,border-color .3s; }
.scene-switch button span { font-size:.89rem; }
.scene-switch button[aria-pressed="true"] { border-color:var(--ink); color:var(--ink); }
.tent-scene { position:relative; margin:0; isolation:isolate; overflow:hidden; aspect-ratio:2.1; min-height:320px; background:var(--night); }
.tent-scene__image { position:absolute; inset:0; }
.tent-scene__image img { width:100%; height:100%; object-fit:cover; object-position:center 58%; transition:transform 1.8s cubic-bezier(.16,1,.3,1),opacity .3s ease; }
.tent-scene.is-changing .tent-scene__image img { opacity:.3; }
.tent-curtain { display:none; }
.motion-ready .tent-curtain { display:flex; position:absolute; z-index:3; inset:0; align-items:center; justify-content:center; flex-direction:column; gap:8px; background:var(--primary); color:#d9bf8b; transform:translateY(-101%); transition:transform 1.3s cubic-bezier(.76,0,.24,1); }
.tent-curtain img { width:190px; height:auto; filter:brightness(0) invert(1); }
.tent-curtain span { font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; }
.motion-ready [data-tent-reveal="waiting"] .tent-curtain { transform:translateY(0); }
.motion-ready [data-tent-reveal="waiting"] .tent-scene__image img { transform:scale(1.12); }
.tent-scene figcaption { position:absolute; inset:auto 0 0; z-index:1; display:flex; justify-content:space-between; align-items:end; gap:20px; padding:65px 35px 30px; background:linear-gradient(transparent,#071e2ad9); color:#fff; }
.tent-scene figcaption>span { font:400 clamp(1.1rem,2vw,1.7rem)/1.25 var(--display); }
.tent-scene figcaption a { font-size:.8rem; border-bottom:1px solid #ffffff66; padding-bottom:5px; }
.photo-corners { position:absolute; inset:20px; z-index:2; pointer-events:none; }
.photo-corners i { position:absolute; width:30px; height:30px; border-color:#ffffffe0; border-style:solid; transition:width .65s var(--ease),height .65s var(--ease); }
.photo-corners i:nth-child(1) { top:0; left:0; border-width:1px 0 0 1px; }
.photo-corners i:nth-child(2) { top:0; right:0; border-width:1px 1px 0 0; }
.photo-corners i:nth-child(3) { bottom:0; right:0; border-width:0 1px 1px 0; }
.photo-corners i:nth-child(4) { bottom:0; left:0; border-width:0 0 1px 1px; }
@media (hover:hover) { .tent-scene:hover .photo-corners i { width:65px; height:65px; } }
.rental-card__media img,.gallery img,.photo-frame img { transition:transform .9s cubic-bezier(.16,1,.3,1); }
.rental-card:hover .rental-card__media img { transform:scale(1.035); }
.photo-frame { overflow:hidden; }
.photo-frame:hover img { transform:scale(1.025); }
.btn { transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .3s ease,transform .3s var(--ease); }
.btn:hover { transform:translateY(-2px); }
.btn:active { transform:translateY(0); }

.area-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.local-service-card { position:relative; background:#fff; border:1px solid var(--line); border-radius:2px; padding:30px; gap:14px; }
.local-service-card:hover { background:#fffdf7; border-color:#c9b992; }
.local-service-card h3 { font:400 1.65rem/1.2 var(--display); }
.area-number { font-size:.65rem; letter-spacing:.12em; color:#7a8a88; }
.areas-link { margin-top:28px; }
.service-links { display:grid; grid-template-columns:1fr 1fr; gap:30px; border-top:1px solid var(--line); padding-top:28px; margin-top:40px; }
.service-links a { display:flex; justify-content:space-between; gap:24px; font:400 clamp(1.2rem,2vw,1.7rem)/1.3 var(--display); }
.location-hero h1 { font-size:clamp(2.35rem,4vw,3.7rem); max-width:19ch; }
.location-hero .lede { margin-top:24px; }
.location-image { margin:0; aspect-ratio:1.12; border-radius:3px; }
.location-image img { width:100%; height:100%; object-fit:cover; }
.guide-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr); gap:80px; align-items:start; }
.guide-step { display:flex; align-items:baseline; gap:24px; padding:30px 0; border-bottom:1px solid var(--line); }
.guide-step>span { font:400 .7rem/1 var(--sans); color:#738983; }
.guide-step h2,.guide-step h3 { font:400 clamp(1.4rem,2vw,1.85rem)/1.25 var(--display); }
.guide-step p { margin-top:16px; color:var(--muted-foreground); line-height:1.8; }
.guide-note { position:sticky; top:calc(var(--header-h) + 25px); display:grid; gap:20px; padding:32px; background:#fff; border:1px solid var(--line); }
.guide-note h2 { font-size:1.9rem; }
.guide-note p,.guide-note .spec { font-size:.9rem; }
.booking-shell { position:relative; }
.booking-shell iframe { height:900px; min-height:650px; }
.booking-status { padding:28px; font-size:.92rem; }
.booking-actions { border-top:1px solid var(--line); padding:20px; display:flex; flex-wrap:wrap; gap:20px; align-items:center; }
.booking-actions .text-link { font-size:.86rem; }
.booking-status p+p { margin-top:10px; }
.site-footer .footer-grid>div>img { width:160px; height:80px; object-fit:contain; filter:brightness(0) invert(1); margin:0 0 20px; }
.site-footer { background:var(--night); }
.drawer__close svg { width:24px; height:24px; }
.result.is-updating .result__figure { animation:panel-enter .45s var(--ease) both; }

@media (max-width:1080px) {
 .guide-layout { grid-template-columns:1fr; gap:40px; }
 .guide-note { position:static; }
 .hero h1 { max-width:20ch; }
 .hero__copy p { max-width:58ch; }
}
@media (max-width:700px) {
 .intro-trace { inset:17px; }
 .intro-center { width:72vw; }
 .intro-center p { font-size:.56rem; letter-spacing:.18em; }
 .area-grid { grid-template-columns:1fr; }
 .local-service-card { padding:25px; }
 .scene-switch { gap:0; justify-content:space-between; }
 .scene-switch button { flex:1; gap:7px; align-items:start; flex-direction:column; padding-right:12px; text-align:left; }
 .scene-switch button span { font-size:.78rem; max-width:12ch; line-height:1.4; }
 .tent-scene { aspect-ratio:4/5; min-height:0; }
 .tent-scene figcaption { padding:65px 28px 30px; flex-direction:column; align-items:start; }
 .photo-corners { inset:13px; }
 .service-links { grid-template-columns:1fr; gap:24px; }
 .hero h1 { font-size:clamp(2.6rem,9vw,3.6rem); }
 .hero__copy .eyebrow { max-width:33ch; line-height:1.7; }
 .booking-shell iframe { height:850px; }
 .booking-actions { padding:17px; }
 .guide-step { gap:16px; }
 .footer-bottom ul { flex-wrap:wrap; gap:14px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto!important; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none!important; }
 .intro-active .intro-overlay { display:none; }
 .motion-ready .tent-curtain { display:none; }
 .scroll-reveal[data-reveal] { opacity:1; transform:none; }
 .tent-scene__image img { transform:none!important; opacity:1!important; }
}
