/* A single painted canvas; sections and sticky stages are clear windows onto it.
   Defaults provide a legible static page when JavaScript is unavailable. */
body{--canvas-bg:#f1ede6;--canvas-fg:#191717;--canvas-muted:#655f5b;--canvas-accent:#a90000;--canvas-line:#19171738;--canvas-hover:#dedad4;--ink:var(--canvas-fg);--muted:var(--canvas-muted);--line:var(--canvas-line);--red:var(--canvas-accent);--action-ink:var(--canvas-fg);--action-border:var(--canvas-line);--action-hover:var(--canvas-hover);--action-accent:var(--canvas-accent);background:var(--canvas-bg);color:var(--canvas-fg)}
main,main>.section,main>.strip,.menu-section,.process,.public-events,.partnerships,.qa-section,.site-footer,.qa-section .faq-intro,.is-menu-motion .menu-stage,.is-road-motion .road-stage,.is-booking-motion .booking-stage{background:transparent;background-image:none}
/* The same opaque canvas passes through the sticky navigation without a seam. */
header{--ink:var(--canvas-fg);--muted:var(--canvas-muted);--line:var(--canvas-line);--red:var(--canvas-accent);--action-ink:var(--canvas-fg);--action-border:var(--canvas-line);--action-hover:var(--canvas-hover);--action-accent:var(--canvas-accent);color:var(--canvas-fg);background:var(--canvas-bg);border-bottom-color:transparent;backdrop-filter:none}
header .links{background:var(--canvas-bg)}
/* Original black/red logo on its own small ivory surface; no image recolouring. */
header .wordmark{background:transparent;border-radius:0}
.menu-section,.partnerships{--menu-canvas:transparent;--menu-copy:var(--canvas-muted);--menu-rule:var(--canvas-line);--action-ink:var(--canvas-fg);--action-border:var(--canvas-line);--action-hover:var(--canvas-hover);--action-accent:var(--canvas-accent);color:var(--canvas-fg)}
.menu-section .num,.menu-section .menu-counter,.menu-section .filter.active{color:var(--canvas-accent)}
.menu-section .menu-product-nav button,.dark .eyebrow,.dark p,.cup-size-icon{color:var(--canvas-muted)}
.menu-section .menu-product-nav button[aria-current="true"],.menu-section .menu-invite,.menu-section .cup-sizes b{color:var(--canvas-fg)}
.menu-section .menu-product-nav button::after,.menu-section .menu-progress i{background:var(--canvas-accent)}
.menu-section .menu-progress{background:var(--canvas-line)}
.menu-section .filter.active{background:transparent;border-color:var(--canvas-accent)}
.menu-section .menu-skip{color:var(--canvas-muted);border-color:var(--canvas-line)}
.public-events{border-color:transparent}
.partnership-bottom,.menu-product-nav,.menu-extras,.footer-bottom,.booking-nav button,.booking-skip,.qa-section details,.contact-info,.inquiry-guide{border-color:var(--canvas-line)}
.booking-nav button>span:first-child{color:var(--canvas-muted)}
.motion-ready .dark.scene-waiting,.motion-ready .dark.scene-visible{clip-path:none}
/* A purposeful editorial card keeps its own reliable contrast throughout the page. */
.chapter-record{--ink:#36271f;--muted:#74675d;--line:#d9cec0;--red:#bd3427;color:var(--ink);background:#f1ede6}
/* Feather only the perimeter: the beverage, vehicle and original logos stay sharp. */
.road-stage .road-screen{background:transparent;-webkit-mask-image:linear-gradient(90deg,transparent,#000 2.5%,#000 97.5%,transparent),linear-gradient(0deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 2.5%,#000 97.5%,transparent),linear-gradient(0deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}
.hero-bottom .location-link{text-decoration:underline;text-decoration-color:var(--canvas-line);text-underline-offset:3px}
.hero-bottom .location-link:hover{text-decoration-color:currentColor}
/* Colour polarity changes atomically; only the arrow's movement is animated. */
body a.contact-action,body .menu-section .menu-invite a.contact-action,body .public-layout a.contact-action,body .partnership-bottom a.contact-action,body .service-journey .service a.contact-action,body .hero a.contact-action,body .contact a.contact-action,body header a.contact-action{transition:background .22s ease,border-color .22s ease}
a.contact-action .cta-icon,.booking-nav button,.menu-product-nav button{transition-property:transform}
@media(prefers-reduced-motion:reduce){body{--canvas-bg:#f1ede6!important;--canvas-fg:#191717!important;--canvas-muted:#655f5b!important;--canvas-accent:#913d3b!important;--canvas-line:#19171738!important;--canvas-hover:#dedad4!important}body a.contact-action{transition:none}}

/* Action surfaces: preserve every existing box dimension and transparent border width. */
body{--brand-red:#fa0101}
body a.contact-action,body .hero a.contact-action,body header a.contact-action,body .service-journey .service a.contact-action,body .public-layout a.contact-action,body .partnership-bottom a.contact-action,body .contact a.contact-action,body .menu-section .menu-invite a.contact-action,
body a.contact-action:hover,body .hero a.contact-action:hover,body header a.contact-action:hover,body .service-journey .service a.contact-action:hover,body .public-layout a.contact-action:hover,body .partnership-bottom a.contact-action:hover,body .contact a.contact-action:hover,body .menu-section .menu-invite a.contact-action:hover{position:relative;isolation:isolate;background:transparent;border-color:transparent;border-radius:5px;color:var(--canvas-fg);box-shadow:none;transition:none}
a.contact-action::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:var(--canvas-hover);opacity:0;transition:opacity .25s cubic-bezier(.2,.65,.3,1)}
a.contact-action:hover::before,a.contact-action:focus-visible::before,a.contact-action:active::before{opacity:1}
body a.contact-action:focus-visible{outline:2px solid var(--canvas-fg);outline-offset:3px}
body a.contact-action .cta-icon{color:inherit;transition:transform .25s cubic-bezier(.2,.65,.3,1)}
body a.contact-action:hover .cta-icon,body a.contact-action:focus-visible .cta-icon{color:inherit;transform:translate(2px,-2px)}
body a.contact-action:active .cta-icon{transform:translate(2px,-2px)}
/* Existing small text links get the same feedback without changing their flow boxes.
   Their pseudo-element expands the hit region, not their layout dimensions. */
:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a){position:relative;isolation:isolate;border-color:transparent!important;text-decoration-color:currentColor}
:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a)::before{content:'';position:absolute;z-index:-1;left:-8px;right:-8px;top:50%;height:max(100%,44px);transform:translateY(-50%);border-radius:5px;background:var(--canvas-hover);opacity:0;transition:opacity .25s cubic-bezier(.2,.65,.3,1)}
:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a):hover::before,:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a):focus-visible::before,:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a):active::before{opacity:1}
:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a):focus-visible{outline:2px solid var(--canvas-fg);outline-offset:5px}
:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a):hover{color:var(--canvas-fg)}
@media(hover:none){a.contact-action:hover:not(:focus-visible):not(:active)::before,:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a):hover:not(:focus-visible):not(:active)::before{opacity:0}}
@media(prefers-reduced-motion:reduce){a.contact-action::before,:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a)::before,body a.contact-action .cta-icon{transition:none}body a.contact-action:hover .cta-icon,body a.contact-action:focus-visible .cta-icon,body a.contact-action:active .cta-icon{transform:none}}
:is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a):is(:hover,:focus-visible,:active){color:var(--canvas-fg)}

/* Soft burgundy interaction field. Feather the field perimeter, never its label. */
body a.contact-action::before,body :is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a)::before{background:var(--cta-field,#432b32);opacity:var(--cta-presence,0)!important;transition:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7px,#000 calc(100% - 7px),transparent),linear-gradient(0deg,transparent,#000 7px,#000 calc(100% - 7px),transparent);mask-image:linear-gradient(90deg,transparent,#000 7px,#000 calc(100% - 7px),transparent),linear-gradient(0deg,transparent,#000 7px,#000 calc(100% - 7px),transparent);-webkit-mask-composite:source-in;mask-composite:intersect}
body a.contact-action,body .hero a.contact-action,body header a.contact-action,body .service-journey .service a.contact-action,body .public-layout a.contact-action,body .partnership-bottom a.contact-action,body .contact a.contact-action,body .menu-section .menu-invite a.contact-action,
body a.contact-action:hover,body .hero a.contact-action:hover,body header a.contact-action:hover,body .service-journey .service a.contact-action:hover,body .public-layout a.contact-action:hover,body .partnership-bottom a.contact-action:hover,body .contact a.contact-action:hover,body .menu-section .menu-invite a.contact-action:hover{color:var(--cta-ink,var(--canvas-fg))}
body :is(header .links>a,.hero-actions>.subtle,a.menu-skip,a.booking-skip,.contact-channels a)[data-cta-motion]{color:var(--cta-ink,var(--canvas-fg));transition-property:transform}
/* Static/no-JS fallback: a defined burgundy surface and ivory label. */
body:not(.cta-ready) a.contact-action:is(:hover,:focus-visible,:active){--cta-presence:1;--cta-field:#432b32;--cta-ink:#f1ede6}
