/**
 * Comedy Republic — Contact: the whole stylesheet for page-contact.php.
 *
 * Styled to the design system, not drawn on the canvas. The only stylesheet this page loads (+ Google
 * fonts): functions.php enqueues it when cr_design_page() is 'contact' — no theme.css, design-base.css
 * or design-home.css. It is built from the Your Visit design, the closest canvas page: its port
 * (header, footer with the mailing-list form, menu, the hero, the facts card .pg-facts, the drawn
 * map .pg-map, the green band .yv-food, the end cards .yv-end), then the chrome additions every
 * inner page carries, then this page's own additions (the Find us grid, the embedded map).
 *
 * PORTED from docs/design/canvas/YourVisit.dc.html (its <style> block), value for value, between the
 * PORT-BEGIN / PORT-END markers. Do not edit the port here; when the design changes, re-port it:
 *   python3 tests/visual/port-css.py docs/design/canvas/YourVisit.dc.html --write assets/css/design-contact.css
 * Check the port is intact:
 *   python3 tests/visual/port-css.py docs/design/canvas/YourVisit.dc.html --check assets/css/design-contact.css
 * Scoping (as round 1): the design root .cr is .crd; every other selector is prefixed with `.crd `.
 *
 * After PORT-END: the chrome additions (the same block as every inner page's stylesheet), then the
 * page's additions. Look: tests/visual/loop.sh --page contact — a capture, no design to diff
 * against; compare with Your Visit.
 */

/* ==== PORT-BEGIN docs/design/canvas/YourVisit.dc.html ==== */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#F5F0D3}
:where(.crd) a{color:inherit}
:where(.crd) a:hover{color:inherit}

.crd{--cream:#F5F0D3;--card:#FFFDF6;--ivory:#FFFBEA;--ink:#2E2D2A;--ink-dk:#242321;--green:#4F744A;--green-dk:#33502F;--sage:#8E9680;--gold:#FFBC29;--gold-dk:#A87700;--ox:#720002;--ox-dk:#3F0001;--blue:#1C79AE;--grey:#B1B2B0;--line:rgba(46,45,42,.15);--muted:#5C5A53;--wrap:1320px;--gut:clamp(20px,4.4vw,64px);position:relative;background-color:var(--cream);background-image:linear-gradient(rgba(245,240,211,.85),rgba(245,240,211,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;color:var(--ink);font-family:'futura-pt','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
:where(.crd) *,:where(.crd) *::before,:where(.crd) *::after{box-sizing:border-box}
:where(.crd) img{display:block;max-width:100%;height:auto}
:where(.crd) h1,:where(.crd) h2,:where(.crd) h3,:where(.crd) p,:where(.crd) address,:where(.crd) dl,:where(.crd) dd,:where(.crd) ul{margin:0}
:where(.crd) ul{padding:0;list-style:none}
:where(.crd) button,:where(.crd) input{font:inherit;color:inherit}
.crd :focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 3px var(--gold)}
.crd .cr-footer :focus-visible,.crd .cr-signup :focus-visible,.crd .cr-done :focus-visible,.crd .cr-tab:focus-visible,.crd .cr-promo:focus-visible,.crd .cr-new__panel :focus-visible,.crd .cr-hero :focus-visible,.crd .ev-car :focus-visible,.crd .ct-pass :focus-visible,.crd .ct-cta__band :focus-visible,.crd .yv-food :focus-visible{outline-color:var(--gold);box-shadow:0 0 0 3px var(--ink-dk)}
.crd .cr-wrap{width:min(var(--wrap),calc(100% - 2 * var(--gut)));margin-inline:auto}
.crd .cr-grain{display:none}
.crd .cr-ico{flex:none;width:18px;height:18px}
.crd .cr-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.crd .cr-display{font-family:'futura-pt-bold','Futura','Century Gothic','Avenir Next',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:.95}
.crd .cr-script{font-family:'Norican','Brush Script MT',cursive;font-weight:400;line-height:1}
.crd .cr-x-ink{text-shadow:-1px 1px 0 #BAB6A2,-2px 2px 0 #AEAA96,-3px 3px 0 #A29E8A,-4px 4px 0 #96927E,-5px 5px 0 #8A8672}

/* Header */
.crd .cr-header{position:sticky;top:0;z-index:50;background:rgba(245,240,211,.9);-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3);border-bottom:1px solid var(--line)}
.crd .cr-header__inner{display:flex;align-items:center;gap:20px;min-height:88px}
.crd .cr-burger{display:none;flex:none;width:46px;height:46px;padding:0;border:0;background:none;cursor:pointer;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px}
.crd .cr-burger span{display:block;width:24px;height:2px;border-radius:2px;background:var(--ink)}
.crd .cr-burger span:nth-child(2){width:17px}
.crd .cr-burger--x{align-items:center}
.crd .cr-brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-decoration:none}
.crd .cr-brand__logo{width:232px}
.crd .cr-tagline{font-weight:900;font-size:9.5px;line-height:1;letter-spacing:.27em;text-transform:uppercase;color:var(--muted);padding-left:5px;white-space:nowrap}
.crd .cr-nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.crd .cr-nav a{font-weight:700;font-size:15.5px;text-decoration:none;padding:12px 16px;border-radius:999px;transition:background .2s}
.crd .cr-nav a:hover{background:rgba(46,45,42,.07)}
.crd .cr-nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--ox);text-decoration-thickness:2px;text-underline-offset:8px}
.crd .cr-search{flex:none;width:48px;height:48px;margin-left:6px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;text-decoration:none;transition:background .2s,color .2s}
.crd .cr-search:hover{background:var(--ink);color:var(--cream)}
.crd .cr-whatson{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px 0 18px;margin-left:8px;border-radius:999px;background:var(--ink);color:var(--cream);font-weight:900;font-size:14.5px;letter-spacing:.03em;text-decoration:none;white-space:nowrap;box-shadow:-3px 3px 0 rgba(46,45,42,.28);transition:transform .15s,box-shadow .15s}
.crd .cr-whatson:hover{color:var(--cream);transform:translate(-1px,1px);box-shadow:-2px 2px 0 rgba(46,45,42,.28)}

/* Shared bits */
.crd .cr-art{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;width:62px;height:62px;border-radius:12px;color:var(--ivory);background:var(--ink)}
.crd .cr-art::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(0,0,0,.22) 1px,rgba(0,0,0,0) 1.7px) 0 0/5px 5px,radial-gradient(120% 100% at 15% 0%,rgba(255,255,255,.22),rgba(255,255,255,0) 58%)}
.crd .cr-art__ini{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:23px;line-height:1;letter-spacing:.02em;text-shadow:-1px 1px 0 rgba(0,0,0,.3),-2px 2px 0 rgba(0,0,0,.22)}
.crd .cr-art--blue{background-color:var(--blue)}
.crd .cr-art--gold{background-color:var(--gold);color:var(--ink)}
.crd .cr-chip{position:relative;display:inline-flex;align-items:center;height:22px;padding:0 10px 0 8px;border-radius:3px;font-weight:900;font-size:10px;line-height:1;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.crd .cr-chip::after{content:'';position:absolute;top:0;right:0;width:7px;height:7px;background:linear-gradient(225deg,var(--card) 0 50%,rgba(0,0,0,.26) 50%);border-bottom-left-radius:2px}
.crd .cr-chip--last{background:var(--ox);color:#FFF6E0}
.crd .cr-cattag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border:1px solid rgba(46,45,42,.45);border-radius:4px;font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.crd .cr-status{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:13px}
.crd .cr-status--fast{color:#9A5B00}
.crd .cr-status i{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;animation:cr-pulse-f 1.8s ease-out infinite}
@keyframes cr-pulse-f{0%{box-shadow:0 0 0 0 rgba(154,91,0,.55)}70%{box-shadow:0 0 0 7px rgba(154,91,0,0)}100%{box-shadow:0 0 0 0 rgba(154,91,0,0)}}
.crd .cr-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 26px;border:0;border-radius:12px;font-weight:900;font-size:15px;line-height:1.2;letter-spacing:.02em;text-align:center;text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .2s,color .2s}
.crd .cr-btn .cr-ico{width:17px;height:17px}
.crd .cr-btn--outline{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.crd .cr-btn--outline:hover{background:var(--ink);color:var(--cream)}
.crd .cr-btn--ox{background:var(--ox);color:#FFF6E0;box-shadow:-3px 3px 0 var(--ox-dk)}
.crd .cr-btn--ox:hover{color:#FFF6E0;transform:translate(-1px,1px);box-shadow:-2px 2px 0 var(--ox-dk)}


/* Shared extras for the content pages */
.crd .cr-art--ox{background-color:var(--ox)}
.crd .cr-art--green{background-color:var(--green)}
.crd .cr-art--ink{background-color:var(--ink)}
.crd .cr-art--sage{background-color:var(--sage);color:var(--ink)}
.crd .cr-art--gold .cr-art__ini,.crd .cr-art--sage .cr-art__ini{text-shadow:-1px 1px 0 rgba(255,255,255,.4),-2px 2px 0 rgba(255,255,255,.22)}
.crd .cr-chip--fast{background:var(--gold);color:var(--ink)}
.crd .cr-chip--sold{background:var(--ink);color:var(--cream)}
.crd .cr-chip--ink{background:#4A463F;color:#FFF6E0}
.crd .cr-btn--gold{background:var(--gold);color:var(--ink);box-shadow:-3px 3px 0 var(--gold-dk)}
.crd .cr-btn--gold:hover{color:var(--ink);transform:translate(-1px,1px);box-shadow:-2px 2px 0 var(--gold-dk)}
.crd .cr-btn--ox:active,.crd .cr-btn--gold:active{transform:translate(-3px,3px);box-shadow:0 0 0 transparent}
.crd .cr-btn--block{width:100%}
.crd .cr-btn--lg{min-height:60px;padding:0 32px;font-size:16.5px;border-radius:14px}
.crd .cr-btn .cr-ico{transition:transform .2s}
.crd .cr-btn:hover .cr-ico--go{transform:translateX(3px)}
.crd .cr-x-sm{text-shadow:-1px 1px 0 rgba(0,0,0,.32),-2px 2px 0 rgba(0,0,0,.26),-3px 3px 0 rgba(0,0,0,.2)}

.crd .pg-hero{position:relative;padding-top:56px}
.crd .pg-kicker{font-size:42px;color:var(--ox);transform:rotate(-4deg);transform-origin:left bottom}
.crd .pg-title{margin-top:12px;font-size:clamp(48px,5.6vw,80px);line-height:.88}
.crd .pg-lede{margin-top:20px;max-width:36em;font-size:19px;line-height:1.6;color:var(--muted)}
.crd .pg-rule{position:relative;margin-top:40px;border-top:1.5px solid var(--ink)}
.crd .pg-rule::after{content:'';position:absolute;left:0;right:0;top:4px;border-top:1px solid var(--ink)}
.crd .pg-h2{font-size:clamp(28px,2.6vw,36px);line-height:.95}
.crd .pg-h3{font-size:22px;line-height:1}
.crd .pg-copy{font-size:17px;line-height:1.65;color:var(--muted)}
.crd .pg-copy strong{color:var(--ink)}
.crd .pg-tbc{color:var(--muted);font-style:italic}

.crd .pg-card{position:relative;border-radius:24px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.16);box-shadow:0 30px 60px -44px rgba(46,45,42,.6),0 8px 18px -14px rgba(46,45,42,.2)}

.crd .pg-facts{margin:0}
.crd .pg-fact{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:16px;padding:15px 0;border-top:1px dashed rgba(46,45,42,.22)}
.crd .pg-fact:first-child{padding-top:0;border-top:0}
.crd .pg-fact:last-child{padding-bottom:0}
.crd .pg-fact dt{display:flex;align-items:center;gap:12px;font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crd .pg-fact__ico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(79,116,74,.11);color:var(--green-dk)}
.crd .pg-fact__ico .cr-ico{width:18px;height:18px}
.crd .pg-fact dd{font-weight:700;font-size:16px;line-height:1.45}
.crd .pg-fact dd span{font-weight:400;color:var(--muted)}

.crd .pg-acc{border-top:1.5px solid var(--ink)}
.crd .pg-acc__item{border-bottom:1px solid rgba(46,45,42,.2)}
.crd .pg-acc__btn{width:100%;min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 2px;border:0;background:none;color:var(--ink);font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:18px;line-height:1.1;letter-spacing:.015em;text-transform:uppercase;text-align:left;cursor:pointer}
.crd .pg-acc__sign{flex:none;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;transition:background .2s,color .2s,transform .25s}
.crd .pg-acc__sign .cr-ico{width:15px;height:15px}
.crd .pg-acc__btn:hover .pg-acc__sign{background:var(--ink);color:var(--cream)}
.crd .pg-acc__item.is-open .pg-acc__sign{background:var(--ink);color:var(--cream);transform:rotate(45deg)}
.crd .pg-acc__body{padding:0 52px 22px 2px;font-size:16px;line-height:1.6;color:var(--muted)}

.crd .pg-map{position:relative;isolation:isolate;overflow:hidden;min-height:300px;border-radius:20px;background:var(--green) url('../design/texture-felt.webp') center/360px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.crd .pg-map svg{position:absolute;inset:0;width:100%;height:100%}
.crd .pg-map__open{position:absolute;z-index:2;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:999px;background:var(--cream);color:var(--ink);font-weight:900;font-size:12.5px;text-decoration:none;box-shadow:-2px 2px 0 rgba(0,0,0,.28);transition:transform .15s}
.crd .pg-map__open:hover{transform:translate(-1px,1px)}
.crd .pg-map__open .cr-ico{width:14px;height:14px}

.crd .pg-tix{display:inline-flex;text-decoration:none;filter:drop-shadow(-3px 3px 0 var(--ox-dk));transition:transform .15s ease,filter .15s ease}
.crd .pg-tix:hover{transform:translate(-1px,1px);filter:drop-shadow(-2px 2px 0 var(--ox-dk))}
.crd .pg-tix:active{transform:translate(-3px,3px);filter:drop-shadow(0 0 0 var(--ox-dk))}
.crd .pg-tix__body{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;min-width:300px;height:64px;padding:0 34px 0 78px;border-radius:12px;background:var(--ox);color:#FFF6E0;font-weight:900;font-size:18px;line-height:1;letter-spacing:.02em;white-space:nowrap;-webkit-mask:radial-gradient(circle 9px at 0 50%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,#0000 96%,#000) 100% 0/51% 100% no-repeat;mask:radial-gradient(circle 9px at 0 50%,#0000 96%,#000) 0 0/51% 100% no-repeat,radial-gradient(circle 9px at 100% 50%,#0000 96%,#000) 100% 0/51% 100% no-repeat}
.crd .pg-tix__body::before{content:'';position:absolute;left:58px;top:13px;bottom:13px;border-left:2px dashed rgba(255,246,224,.45)}
.crd .pg-tix__ico{position:absolute;left:21px;top:50%;width:22px;height:22px;margin-top:-11px;opacity:.9}
.crd .pg-tix__arrow{width:18px;height:18px;transition:transform .2s}
.crd .pg-tix:hover .pg-tix__arrow{transform:translateX(3px)}

/* Your Visit */
.crd .yv-hero{padding-bottom:0}
.crd .yv-hero .pg-lede{max-width:34em}
.crd .yv-hero__char{position:absolute;z-index:2;right:24px;top:40px;width:170px;transform:rotate(6deg);filter:drop-shadow(-5px 7px 0 rgba(46,45,42,.16));pointer-events:none}
.crd .yv-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:64px;align-items:start;margin-top:44px;padding-bottom:120px}
.crd .yv-toc{position:sticky;top:112px;padding:22px 20px 20px;border-radius:24px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;border:1px solid rgba(46,45,42,.16);box-shadow:0 30px 60px -44px rgba(46,45,42,.6)}
.crd .yv-toc__label{font-weight:900;font-size:10.5px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crd .yv-toc__list{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.crd .yv-toc__link{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px 0 10px;border-radius:14px;border:1.5px solid transparent;font-weight:900;font-size:14.5px;text-decoration:none;transition:background .2s,border-color .2s,color .2s}
.crd .yv-toc__link:hover{background:rgba(46,45,42,.06)}
.crd .yv-toc__n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1.5px solid rgba(46,45,42,.35);font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:12px;line-height:1;color:var(--muted)}
.crd .yv-toc__link.is-on{background:var(--ink);border-color:var(--ink);color:var(--cream)}
.crd .yv-toc__link.is-on .yv-toc__n{border-color:var(--gold);background:var(--gold);color:var(--ink)}
.crd .yv-main{min-width:0}
.crd .yv-sec{scroll-margin-top:112px}
.crd .yv-sec + .yv-sec{margin-top:64px}
.crd .yv-card{margin-top:22px;padding:28px 30px}
.crd .yv-card .pg-fact{grid-template-columns:160px minmax(0,1fr)}

.crd .yv-door{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px;align-items:center;margin-top:22px}
.crd .yv-door__addr{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:40px;line-height:.95;text-transform:uppercase;color:var(--ox)}
.crd .yv-door__copy .pg-copy{margin-top:14px}
.crd .yv-street{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/10;border-radius:22px;background:#3A2418;box-shadow:0 30px 60px -40px rgba(46,45,42,.7)}
.crd .yv-street__brick{position:absolute;inset:0 0 18% 0;z-index:0;background:linear-gradient(180deg,rgba(255,220,170,.16),rgba(0,0,0,.3)),repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 2px,rgba(0,0,0,0) 2px 22px),repeating-linear-gradient(90deg,rgba(0,0,0,.22) 0 2px,rgba(0,0,0,0) 2px 46px),linear-gradient(180deg,#7A3E26,#5C2C1B)}
.crd .yv-street__brick::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,0) 0 23px,rgba(0,0,0,.22) 23px 25px,rgba(0,0,0,0) 25px 46px);-webkit-mask:repeating-linear-gradient(0deg,#000 0 22px,transparent 22px 44px);mask:repeating-linear-gradient(0deg,#000 0 22px,transparent 22px 44px);opacity:.9}
.crd .yv-street__win{position:absolute;z-index:1;left:6%;top:20%;width:48%;height:58%;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;border-radius:6px;border:8px solid #1E2A1C;background:radial-gradient(80% 90% at 50% 100%,#FFD98A,#F2A541 55%,#B8641E);box-shadow:0 0 50px rgba(255,190,90,.55),inset 0 0 0 2px rgba(0,0,0,.2)}
.crd .yv-street__win::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:6px;margin-left:-3px;background:#1E2A1C;z-index:2}
.crd .yv-street__win img{position:relative;z-index:1;height:78%;width:auto;margin-bottom:-4%;filter:drop-shadow(-4px 5px 0 rgba(0,0,0,.2))}
.crd .yv-street__sign{position:absolute;z-index:2;left:61%;top:12%;width:29%;padding:9px 10px;border-radius:6px;background:#1A1714;box-shadow:0 0 0 3px #2E2A24,0 0 26px rgba(255,236,190,.35)}
.crd .yv-street__sign img{width:100%}
.crd .yv-street__door{position:absolute;z-index:1;left:64%;top:27%;width:24%;height:56%;border-radius:8px 8px 0 0;border:7px solid #1E2A1C;border-bottom:0;background:linear-gradient(90deg,#33502F,#4F744A 45%,#33502F);box-shadow:inset 0 0 0 6px rgba(0,0,0,.12),inset 0 18px 0 6px rgba(0,0,0,.08)}
.crd .yv-street__num{position:absolute;left:50%;top:14%;transform:translateX(-50%);padding:4px 8px;border-radius:4px;background:#E9C46A;color:#2E2D2A;font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:15px;line-height:1;letter-spacing:.06em;box-shadow:0 2px 0 rgba(0,0,0,.25)}
.crd .yv-street__knob{position:absolute;right:12%;top:55%;width:9px;height:9px;border-radius:50%;background:#E9C46A;box-shadow:0 1px 0 rgba(0,0,0,.35)}
.crd .yv-street__step{position:absolute;z-index:1;left:61%;bottom:18%;width:30%;height:4%;background:#6B655A;border-radius:2px 2px 0 0}
.crd .yv-street__path{position:absolute;z-index:0;left:0;right:0;bottom:0;height:18%;background:linear-gradient(180deg,#8D8778,#6E695E);box-shadow:inset 0 3px 0 rgba(255,255,255,.12)}
.crd .yv-street__path::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,0) 0 88px,rgba(0,0,0,.18) 88px 90px)}
.crd .yv-street__note{position:absolute;z-index:3;left:6%;top:4.5%;display:flex;align-items:flex-start;color:var(--gold);transform:rotate(-3deg)}
.crd .yv-street__note .cr-script{font-size:26px;white-space:nowrap;text-shadow:-2px 2px 0 rgba(0,0,0,.35)}
.crd .yv-street__note svg{flex:none;width:112px;height:66px;margin:14px 0 0 4px;filter:drop-shadow(-2px 2px 0 rgba(0,0,0,.35))}

.crd .yv-getting{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start;margin-top:22px}
.crd .yv-map{min-height:320px}
.crd .yv-food{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:18px;padding:26px 28px;border-radius:24px;background:var(--green) url('../design/texture-felt.webp') center/360px;color:var(--ivory);box-shadow:0 30px 60px -44px rgba(46,45,42,.7)}
.crd .yv-food__copy{max-width:34em;color:rgba(255,251,234,.92)}
.crd .yv-food__btn{flex:none;background:var(--gold);color:var(--ink);box-shadow:-3px 3px 0 var(--gold-dk)}
.crd .yv-food__btn:hover{background:var(--gold);color:var(--ink);transform:translate(-1px,1px);box-shadow:-2px 2px 0 var(--gold-dk)}

.crd .yv-access{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start;margin-top:18px}
.crd .yv-steps{padding:26px 26px 22px}
.crd .yv-steps__total{display:flex;align-items:center;gap:16px}
.crd .yv-steps__n{font-size:72px;line-height:.85;color:var(--ox);text-shadow:-2px 2px 0 rgba(114,0,2,.18)}
.crd .yv-steps__l{font-weight:900;font-size:12px;line-height:1.35;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.crd .yv-steps__route{display:flex;flex-direction:column;margin:22px 0 0;padding:0;list-style:none}
.crd .yv-stop{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:34px}
.crd .yv-stop__dot{width:18px;height:18px;border-radius:50%;border:3px solid var(--ink);background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply}
.crd .yv-stop--end .yv-stop__dot{background:var(--ox);border-color:var(--ox)}
.crd .yv-stop__name{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:17px;line-height:1;text-transform:uppercase}
.crd .yv-stop__sub{font-size:13px;color:var(--muted)}
.crd .yv-flight{display:flex;align-items:center;gap:10px;min-height:46px;margin-left:8px;padding-left:22px;border-left:3px dotted rgba(46,45,42,.4);font-weight:900;font-size:13px;color:var(--green-dk)}
.crd .yv-flight svg{width:20px;height:20px}

.crd .yv-rest{margin-top:22px}
.crd .yv-end{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:72px;align-items:stretch}
.crd .yv-stuck,.crd .yv-book{padding:28px 28px 26px}
.crd .yv-stuck{background:#F1EDDA;box-shadow:none;border-style:dashed;border-color:rgba(46,45,42,.32)}
.crd .yv-stuck__ico{display:grid;place-items:center;width:46px;height:46px;margin-bottom:16px;border-radius:14px;background:var(--ink);color:var(--gold)}
.crd .yv-stuck__ico .cr-ico{width:22px;height:22px}
.crd .yv-end__text{margin-top:8px;font-size:15.5px;line-height:1.5;color:var(--muted)}
.crd .yv-book__tix{margin-top:20px}
.crd .yv-book__tix .pg-tix__body{min-width:280px}

/* Footer */
.crd .cr-footer{position:relative;isolation:isolate;overflow:hidden;padding:76px 0 34px;background:var(--ink-dk);color:var(--ivory)}
.crd .cr-footer__mark{position:absolute;z-index:-1;right:-70px;bottom:-120px;width:430px;opacity:.06;pointer-events:none}
.crd .cr-footer__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:start}
.crd .cr-footer__logo{width:280px}
.crd .cr-footer__addr{margin-top:22px;font-style:normal;font-size:16px;line-height:1.65;color:rgba(245,240,211,.78)}
.crd .cr-footer__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px}
.crd .cr-footer__links a{width:fit-content;padding:6px 0;font-size:16px;line-height:1.35;text-decoration:none;color:var(--ivory);background:linear-gradient(var(--gold),var(--gold)) 0 calc(100% - 4px)/0 2px no-repeat;transition:background-size .25s}
.crd .cr-footer__links a:hover{color:var(--ivory);background-size:100% 2px}
.crd .cr-ftform{display:flex;flex-direction:column;gap:10px}
.crd .cr-ftform__label{font-weight:900;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(245,240,211,.72)}
.crd .cr-ftform__row{display:flex;gap:8px}
.crd .cr-ftform__input{flex:1;min-width:0;height:52px;padding:0 16px;border-radius:12px;border:1.5px solid rgba(245,240,211,.28);background:rgba(245,240,211,.05);color:var(--ivory);font-size:15px}
.crd .cr-ftform__input::placeholder{color:rgba(245,240,211,.5)}
.crd .cr-ftform__input[aria-invalid="true"]{border-color:var(--gold)}
.crd .cr-ftform__input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,188,41,.2)}
.crd .cr-ftform__btn{flex:none;height:52px;padding:0 20px;border:0;border-radius:12px;background:var(--gold);color:var(--ink);font-weight:900;font-size:15px;cursor:pointer;box-shadow:-3px 3px 0 var(--gold-dk);transition:transform .15s,box-shadow .15s}
.crd .cr-ftform__btn:hover{transform:translate(-1px,1px);box-shadow:-2px 2px 0 var(--gold-dk)}
.crd .cr-ftform__note{font-size:13.5px;color:rgba(245,240,211,.72)}
.crd .cr-ftform__done{display:flex;align-items:center;gap:10px;min-height:52px;font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:20px;color:var(--gold)}
.crd .cr-footer__base{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:64px;padding-top:22px;border-top:1px solid rgba(245,240,211,.14);font-size:13.5px;color:rgba(245,240,211,.62)}
.crd .cr-footer__legal{display:flex;gap:22px}
.crd .cr-footer__legal a{padding:6px 0;text-decoration:none}
.crd .cr-footer__legal a:hover{color:var(--ivory)}

/* Menu */
.crd .cr-menu{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:rgba(36,35,33,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.crd .cr-menu__panel{background:var(--cream);padding-bottom:30px;box-shadow:0 30px 60px -30px rgba(0,0,0,.5);animation:cr-drop .35s cubic-bezier(.2,.75,.2,1)}
@keyframes cr-drop{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.crd .cr-menu__bar{display:flex;align-items:center;gap:10px;min-height:70px;border-bottom:1.5px solid var(--ink)}
.crd .cr-menu__nav{display:flex;flex-direction:column;margin-top:6px}
.crd .cr-menu__item{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:24px 0 21px;border-bottom:1px solid var(--line);text-decoration:none}
.crd .cr-menu__label{flex:none;font-size:clamp(32px,8.6vw,46px);line-height:.95;white-space:nowrap}
.crd .cr-menu__desc{flex:1;min-width:0;font-size:15px;line-height:1.3;color:var(--muted);text-align:right}
.crd .cr-menu__cta{width:100%;margin-top:26px}


@media (max-width:1099px){
  .crd .cr-nav a{padding:10px 11px;font-size:15px}
  .crd .cr-brand__logo{width:200px}
}
@media (max-width:899px){
  .crd .cr-header__inner{min-height:70px;gap:10px}
  .crd .cr-burger{display:flex}
  .crd .cr-brand{flex:1;align-items:center;gap:5px}
  .crd .cr-brand__logo{width:158px}
  .crd .cr-tagline{padding-left:0;font-size:7.5px;letter-spacing:.2em}
  .crd .cr-nav,.crd .cr-search{display:none}
  .crd .cr-whatson{height:42px;padding:0 14px 0 12px;margin-left:0;gap:8px;font-size:13px;box-shadow:none}
  .crd .cr-whatson:hover{transform:none;box-shadow:none}
  .crd .cr-whatson .cr-ico{width:16px;height:16px}
  .crd .pg-hero{padding-top:30px}
  .crd .pg-kicker{font-size:32px}
  .crd .pg-title{margin-top:8px;font-size:44px;line-height:.92}
  .crd .pg-lede{margin-top:14px;font-size:16.5px}
  .crd .pg-rule{margin-top:26px}
  .crd .pg-h2{font-size:26px}
  .crd .pg-h3{font-size:19px}
  .crd .pg-copy{font-size:15.5px}
  .crd .pg-card{border-radius:20px}
  .crd .pg-fact{grid-template-columns:118px minmax(0,1fr);gap:10px;padding:12px 0}
  .crd .pg-fact dt{gap:10px;font-size:9.5px;letter-spacing:.16em}
  .crd .pg-fact__ico{width:32px;height:32px;border-radius:10px}
  .crd .pg-fact__ico .cr-ico{width:16px;height:16px}
  .crd .pg-fact dd{font-size:14.5px}
  .crd .pg-acc__btn{min-height:56px;font-size:15.5px}
  .crd .pg-acc__sign{width:30px;height:30px}
  .crd .pg-acc__body{padding:0 40px 18px 2px;font-size:15px}
  .crd .pg-map{min-height:210px;border-radius:16px}
  .crd .pg-tix{width:100%}
  .crd .pg-tix__body{flex:1;min-width:0;height:60px;font-size:17px}
  .crd .cr-footer{padding:52px 0 28px}
  .crd .cr-footer__grid{grid-template-columns:minmax(0,1fr);gap:34px}
  .crd .cr-footer__logo{width:228px}
  .crd .cr-footer__addr{margin-top:16px;font-size:15px}
  .crd .cr-footer__links{gap:0 18px}
  .crd .cr-footer__links a{font-size:15.5px}
  .crd .cr-footer__base{flex-direction:column;align-items:flex-start;gap:10px;margin-top:40px}
  .crd .cr-footer__mark{width:260px;right:-60px;bottom:-60px}
}
@media (prefers-reduced-motion:reduce){
  .crd .cr-status i,.crd .cr-menu__panel{animation:none}
  .crd .cr-btn,.crd .pg-tix,.crd .pg-acc__sign{transition:none}
}

@media (max-width:1199px){
  .crd .yv-layout{grid-template-columns:240px minmax(0,1fr);gap:40px}
  .crd .yv-hero__char{width:140px}
}
@media (max-width:899px){
  .crd .yv-hero__char{width:70px;right:-2px;top:18px}
  .crd .yv-hero .pg-lede{padding-right:0}
  .crd .yv-layout{grid-template-columns:minmax(0,1fr);gap:34px;margin-top:24px;padding-bottom:64px}
  .crd .yv-toc{position:static;padding:0;border:0;background:none;box-shadow:none}
  .crd .yv-toc__label{display:none}
  .crd .yv-toc__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:0}
  .crd .yv-toc__link{min-height:46px;padding:0 10px 0 8px;gap:9px;border-color:var(--ink);border-radius:999px;font-size:13.5px;background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply}
  .crd .yv-toc__n{width:24px;height:24px;font-size:11px}
}
@media (max-width:599px){
  .crd .yv-toc__n{display:none}
  .crd .yv-toc__link{padding:0 12px;font-size:14px}
}
@media (max-width:899px){
  .crd .yv-sec{scroll-margin-top:84px}
  .crd .yv-sec + .yv-sec{margin-top:48px}
  .crd .yv-card{margin-top:16px;padding:20px 18px}
  .crd .yv-card .pg-fact{grid-template-columns:100px minmax(0,1fr)}
  .crd .yv-door{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px}
  .crd .yv-door__addr{font-size:30px}
  .crd .yv-street{border-radius:18px}
  .crd .yv-street__sign{padding:5px 6px}
  .crd .yv-street__num{font-size:11px;padding:3px 5px}
  .crd .yv-street__note .cr-script{font-size:16px}
  .crd .yv-street__note svg{width:62px;height:38px;margin:8px 0 0 2px}
  .crd .yv-getting{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:14px}
  .crd .yv-map{min-height:220px}
  .crd .yv-food{flex-direction:column;align-items:flex-start;gap:16px;padding:22px 20px;border-radius:20px}
  .crd .yv-food__btn{width:100%}
  .crd .yv-access{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px}
  .crd .yv-steps{padding:20px 18px 18px}
  .crd .yv-steps__n{font-size:58px}
  .crd .yv-end{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:48px}
  .crd .yv-stuck,.crd .yv-book{padding:22px 20px}
  .crd .yv-book__tix .pg-tix__body{min-width:0}
}

/* Global nav (wireframe 3a): search panel, compact scrolled header, hamburger under 960px, search + sign-up in the menu */
.crd .cr-search{background:transparent;padding:0;color:var(--ink);cursor:pointer;font:inherit}
.crd .cr-search.is-on{background:var(--ink);color:var(--cream)}
.crd .cr-whatson__x{display:none}
.crd .cr-menu{overflow-y:auto}
.crd .cr-sp{border-top:1px solid var(--line);background-color:var(--card);background-image:linear-gradient(rgba(255,253,246,.85),rgba(255,253,246,.85)),url('../design/grain.webp');background-size:auto,220px 220px;background-blend-mode:normal,multiply;box-shadow:0 34px 50px -36px rgba(46,45,42,.55);animation:cr-drop .3s cubic-bezier(.2,.75,.2,1)}
.crd .cr-sp > .cr-wrap{padding:26px 0 30px}
.crd .cr-sp__row{display:flex;align-items:center;gap:12px}
.crd .cr-sp__field{position:relative;display:block;flex:1;min-width:0}
.crd .cr-sp__ico{position:absolute;left:20px;top:50%;width:22px;height:22px;margin-top:-11px;color:var(--muted);pointer-events:none}
.crd .cr-sp__input{display:block;width:100%;height:64px;padding:0 20px 0 56px;border-radius:16px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);font:inherit;font-size:19px;-webkit-appearance:none;appearance:none}
.crd .cr-sp__input::placeholder{color:#8B887E}
.crd .cr-sp__input::-webkit-search-cancel-button,.crd .cr-ms__input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.crd .cr-sp__input:focus{outline:none;box-shadow:0 0 0 4px rgba(255,188,41,.5)}
.crd .cr-sp__close{flex:none;display:inline-flex;align-items:center;gap:8px;height:64px;padding:0 22px;border-radius:16px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:900;font-size:15px;cursor:pointer;transition:background .2s,color .2s}
.crd .cr-sp__close:hover{background:var(--ink);color:var(--cream)}
.crd .cr-sp__close .cr-ico{width:16px;height:16px}
.crd .cr-sp__meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:22px}
.crd .cr-sp__label{font-weight:900;font-size:11.5px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.crd .cr-sp__all{display:inline-flex;align-items:center;gap:6px;padding:8px 0;margin:-8px 0;font-weight:900;font-size:14px;color:var(--green);text-decoration:none;white-space:nowrap}
.crd .cr-sp__all:hover{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.crd .cr-sp__all .cr-ico{width:15px;height:15px}
.crd .cr-sp__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.crd .cr-sp__item{display:flex;align-items:center;gap:14px;min-width:0;padding:10px 16px 10px 10px;border-radius:16px;border:1px solid rgba(46,45,42,.16);background:#FFFEF9;color:var(--ink);text-decoration:none;box-shadow:0 14px 26px -22px rgba(46,45,42,.5);transition:border-color .2s,transform .2s}
.crd .cr-sp__item:hover{color:var(--ink);border-color:var(--ink);transform:translateY(-1px)}
.crd .cr-sp__art{position:relative;isolation:isolate;overflow:hidden;flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:12px;background-color:var(--ink);color:var(--ivory)}
.crd .cr-sp__art::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(rgba(0,0,0,.22) 1px,rgba(0,0,0,0) 1.7px) 0 0/5px 5px,radial-gradient(120% 100% at 15% 0%,rgba(255,255,255,.22),rgba(255,255,255,0) 58%)}
.crd .cr-sp__art--ox{background-color:var(--ox)}
.crd .cr-sp__art--blue{background-color:var(--blue)}
.crd .cr-sp__art--green{background-color:var(--green)}
.crd .cr-sp__art--gold{background-color:var(--gold);color:var(--ink)}
.crd .cr-sp__art--sage{background-color:var(--sage);color:var(--ink)}
.crd .cr-sp__art--ms{background:var(--green) url('../design/tile-main-stage.jpg') center/cover}
.crd .cr-sp__art--ms::before{display:none}
.crd .cr-sp__ini{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;font-size:21px;line-height:1;letter-spacing:.02em;text-shadow:-1px 1px 0 rgba(0,0,0,.3),-2px 2px 0 rgba(0,0,0,.22)}
.crd .cr-sp__art--gold .cr-sp__ini,.crd .cr-sp__art--sage .cr-sp__ini{text-shadow:-1px 1px 0 rgba(255,255,255,.4),-2px 2px 0 rgba(255,255,255,.22)}
.crd .cr-sp__txt{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.crd .cr-sp__title{font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:15.5px;line-height:1.08;letter-spacing:.015em}
.crd .cr-sp__when{font-size:13px;line-height:1.35;color:var(--muted)}
.crd .cr-sp__go{flex:none;width:18px;height:18px;color:var(--muted);transition:transform .2s,color .2s}
.crd .cr-sp__item:hover .cr-sp__go{color:var(--ink);transform:translateX(2px)}
.crd .cr-sp__empty{margin-top:14px;padding:20px 22px;border-radius:16px;border:1.5px dashed rgba(46,45,42,.32);font-size:15.5px;line-height:1.5;color:var(--muted)}
.crd .cr-sp__empty a{font-weight:900;color:var(--green)}
.crd .cr-ms{margin-top:16px}
.crd .cr-ms__field{position:relative;display:block}
.crd .cr-ms__field .cr-sp__ico{left:16px;width:20px;height:20px;margin-top:-10px}
.crd .cr-ms__input{display:block;width:100%;height:54px;padding:0 16px 0 46px;border-radius:14px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);font:inherit;font-size:16px;-webkit-appearance:none;appearance:none}
.crd .cr-ms__input::placeholder{color:#8B887E}
.crd .cr-ms__input:focus{outline:none;box-shadow:0 0 0 4px rgba(255,188,41,.5)}
.crd .cr-ms__results{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.crd .cr-ms__results .cr-sp__label{margin-bottom:2px}
.crd .cr-ms__results .cr-sp__item{padding:8px 14px 8px 8px}
.crd .cr-ms__results .cr-sp__art{width:46px;height:46px;border-radius:10px}
.crd .cr-ms__results .cr-sp__ini{font-size:17px}
.crd .cr-ms__results .cr-sp__empty{margin-top:0;padding:16px 18px;font-size:14.5px}
.crd .cr-msign{display:flex;flex-direction:column;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.crd .cr-msign__label{font-weight:900;font-size:11px;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.crd .cr-msign__row{display:flex;gap:8px}
.crd .cr-msign__input{flex:1;min-width:0;height:52px;padding:0 16px;border-radius:12px;border:1.5px solid rgba(46,45,42,.4);background:#fff;color:var(--ink);font:inherit;font-size:15px}
.crd .cr-msign__input::placeholder{color:#8B887E}
.crd .cr-msign__input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(255,188,41,.5)}
.crd .cr-msign__input[aria-invalid="true"]{border-color:var(--ox)}
.crd .cr-msign__btn{flex:none;height:52px;padding:0 20px;border:0;border-radius:12px;background:var(--ink);color:var(--cream);font-weight:900;font-size:15px;cursor:pointer;box-shadow:-3px 3px 0 rgba(46,45,42,.28)}
.crd .cr-msign__note{font-size:13.5px;color:var(--ox)}
.crd .cr-msign__done{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-family:'futura-pt-bold','Futura',sans-serif;font-weight:800;text-transform:uppercase;font-size:20px;line-height:1;color:var(--green)}
@media (min-width:960px){
  .crd .cr-header__inner{transition:min-height .25s ease}
  .crd .cr-brand__logo{transition:width .25s ease}
  .crd .cr-header.is-compact .cr-header__inner{min-height:66px}
  .crd .cr-header.is-compact .cr-brand__logo{width:176px}
  .crd .cr-header.is-compact .cr-tagline{display:none}
  .crd .cr-header.is-compact .cr-whatson{background:var(--ox);color:#FFF6E0;box-shadow:-3px 3px 0 var(--ox-dk)}
  .crd .cr-header.is-compact .cr-whatson:hover{color:#FFF6E0;box-shadow:-2px 2px 0 var(--ox-dk)}
  .crd .cr-header.is-compact .cr-whatson__x{display:inline}
}
@media (min-width:960px) and (max-width:1099px){
  .crd .cr-sp__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:959px){
  .crd .cr-header__inner{min-height:70px;gap:10px}
  .crd .cr-burger{display:flex}
  .crd .cr-brand{flex:1;align-items:center;gap:5px}
  .crd .cr-brand__logo{width:158px}
  .crd .cr-tagline{padding-left:0;font-size:7.5px;letter-spacing:.2em}
  .crd .cr-nav,.crd .cr-search,.crd .cr-sp{display:none}
  .crd .cr-whatson{height:42px;padding:0 14px 0 12px;margin-left:0;gap:8px;font-size:13px;background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
  .crd .cr-whatson:hover{color:var(--ink);transform:none;box-shadow:inset 0 0 0 1.5px var(--ink)}
  .crd .cr-whatson .cr-ico{width:16px;height:16px}
}
@media (prefers-reduced-motion:reduce){
  .crd .cr-sp,.crd .cr-header__inner,.crd .cr-brand__logo{animation:none;transition:none}
}

/* Green header (Brett, 07 Oct, round 2): the nav takes the core CR green with the New here panel's felt texture; the page stays brand cream with its grain. Cards, panels and footer are unchanged. */
.crd .cr-header{background:var(--green) url('../design/texture-felt.webp') center/360px;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(255,251,234,.08);color:var(--ivory)}
.crd .cr-header .cr-tagline,.crd .cr-menu__bar .cr-tagline{color:rgba(255,251,234,.9)}
.crd .cr-nav a{color:var(--ivory)}
.crd .cr-nav a:hover{background:rgba(255,251,234,.14)}
.crd .cr-nav a[aria-current]{text-decoration-color:var(--gold)}
.crd .cr-burger span{background:var(--ivory)}
.crd .cr-search{border-color:rgba(255,251,234,.6);color:var(--ivory)}
.crd .cr-search:hover,.crd .cr-search.is-on{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.crd .cr-header .cr-whatson{background:var(--cream);color:var(--ink);box-shadow:-3px 3px 0 rgba(0,0,0,.45)}
.crd .cr-header .cr-whatson:hover{color:var(--ink);box-shadow:-2px 2px 0 rgba(0,0,0,.45)}
.crd .cr-menu__bar{position:relative;isolation:isolate;border-bottom:0;color:var(--ivory)}
.crd .cr-menu__bar::before{content:'';position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);background:var(--green) url('../design/texture-felt.webp') center/360px}
.crd .cr-menu__bar .cr-burger{color:var(--ivory)}
.crd .cr-menu__bar .cr-whatson{background:transparent;color:var(--ivory);box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
.crd .cr-menu__bar .cr-whatson:hover{color:var(--ivory);transform:none;box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
.crd .cr-sp{color:var(--ink)}
.crd .cr-header :focus-visible,.crd .cr-menu__bar :focus-visible{outline-color:var(--gold);box-shadow:0 0 0 3px var(--ink-dk)}
.crd .cr-sp :focus-visible{outline-color:var(--ink);box-shadow:0 0 0 3px var(--gold)}
.crd .cr-sp .cr-sp__input:focus-visible{box-shadow:0 0 0 4px rgba(255,188,41,.5)}
@media (min-width:960px){
  .crd .cr-header.is-compact .cr-whatson{background:var(--gold);color:var(--ink);box-shadow:-3px 3px 0 var(--gold-dk)}
  .crd .cr-header.is-compact .cr-whatson:hover{color:var(--ink);box-shadow:-2px 2px 0 var(--gold-dk)}
}
@media (max-width:959px){
  .crd .cr-header .cr-whatson{background:transparent;color:var(--ivory);box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
  .crd .cr-header .cr-whatson:hover{color:var(--ivory);transform:none;box-shadow:inset 0 0 0 1.5px rgba(255,251,234,.7)}
}
/* ==== PORT-END ==== */

/* ==== Theme additions — chrome (the same block in every inner page's stylesheet) ==== */

/* Skip link: first thing in <body>, outside .crd, off-screen (no layout) until focused. */
.cr-skip{position:absolute;top:0;left:-9999px;z-index:200}
.cr-skip:focus{left:16px;top:16px;padding:12px 18px;border-radius:12px;background:#FFBC29;color:#2E2D2A;font:900 15px/1.2 'futura-pt','Helvetica Neue',Helvetica,Arial,sans-serif;text-decoration:none}

/* The global nav's parts that wait in the page ([hidden]) for design.js: the menu dialog, the header
   search panel, the menu's search results. */
.crd .cr-menu[hidden],.crd .cr-sp[hidden],.crd .cr-ms__results[hidden]{display:none}

/* Without JS the header's search is a link to What's on's search box (the <noscript> one, a flex
   item of the header row like the button): the button (it opens the panel) needs JS. */
html:not(.cr-js) .crd button.cr-search{display:none}
html:not(.cr-js) .crd .cr-header__inner>noscript{display:contents}

/* Mailing-list forms (footer.php, the menu dialog): the error note and the done state are in the
   page, hidden; design.js shows them. A known subscriber (html.cr-subscribed, set before paint by the
   head script) sees the done states. A staff platform embed (Site settings → Email form embed)
   replaces the form. */
.crd .cr-ftform[hidden]{display:none}
html.cr-subscribed .crd [data-cr-ftform],html.cr-subscribed .crd [data-cr-msign]{display:none}
html.cr-subscribed .crd [data-cr-ftform-done]{display:flex}
html.cr-subscribed .crd [data-cr-msign-done]{display:block}
.crd .cr-ftform__embed,.crd .cr-msign__embed{min-width:0}

/* Focus and anchor jumps clear the sticky header (89px; 71px under 960px; the compact header, 67px,
   keeps the same padding so in-page jumps land where the designs' do). No effect at rest. */
html{scroll-padding-top:89px}

/* Without JS (no html.cr-js): under 960px the nav the burger would open shows as a row under the
   header. */
@media (max-width:959px){
  html{scroll-padding-top:71px}
  html:not(.cr-js) .crd .cr-header__inner{flex-wrap:wrap}
  html:not(.cr-js) .crd .cr-burger{visibility:hidden}
  html:not(.cr-js) .crd .cr-nav{display:flex;flex-wrap:wrap;order:1;flex-basis:100%;margin:-6px 0 8px -11px}
}

/* Art tile from an uploaded image (a show's Art image; cr_art_attrs() puts the URL in --art). */
.crd .cr-art--image{background:var(--green) var(--art) center/cover}
.crd .cr-art--image::before{display:none}

/* Under 360px the burger, the brand and the What's on button do not fit one row (the button was cut
   off at the right edge): the button keeps its calendar icon in a 44px square, and its words stay
   its accessible name. */
@media (max-width:359px){
  .crd .cr-whatson{position:relative;width:44px;height:44px;padding:0;justify-content:center}
  .crd .cr-whatson>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* 360–389px: the burger, the brand and the What's on button need 341px and the row has 320–349px
   (the button ran past the right edge at 360, into the side gutter at 375): the gaps and the
   button's padding tighten under 390px, the wordmark and its tagline under 375px. The 390px design
   is untouched. Same for the open menu's bar. */
@media (min-width:360px) and (max-width:389px){
  .crd .cr-header__inner,.crd .cr-menu__bar{gap:8px}
  .crd .cr-whatson{padding:0 10px 0 9px;gap:6px}
}
@media (min-width:360px) and (max-width:374px){
  .crd .cr-brand__logo{width:148px}
  .crd .cr-tagline{letter-spacing:.14em}
}

/* Touch screens (pointer: coarse): the chrome's small controls get hit areas of at least 44px — an
   invisible ::after around each — without changing what is drawn (the canvas is drawn for a mouse,
   so nothing changes there): footer and legal links (33px tall in the design), the header wordmark
   (30px), What's on (42px on phones), the nav links (43px at 960–1099px), the dock's × (36–40px). */
@media (pointer:coarse){
  .crd .cr-footer__links a,.crd .cr-footer__legal a,.crd .cr-brand,.crd .cr-whatson,.crd .cr-nav a,.crd .cr-close{position:relative}
  .crd .cr-footer__links a::after,.crd .cr-footer__legal a::after{content:'';position:absolute;inset:-6px -6px}
  .crd .cr-brand::after{content:'';position:absolute;inset:-8px 0}
  .crd .cr-whatson::after,.crd .cr-nav a::after{content:'';position:absolute;inset:-2px 0}
  .crd .cr-close::after{content:'';position:absolute;inset:-4px}
}

/* ==== Theme additions — Contact (page-contact.php): styled to the design system, not drawn on the canvas ==== */

/* A short page (a one-paragraph policy, the 404) still fills the window: the footer sits at the
   bottom, never above an empty band. */
.crd{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
.crd > main{flex:1 0 auto}

/* A text link with an arrow (Questions? → Contact us, the end cards, the 404's homepage link): the
   design's green link (.cr-sp__all) at a 44px tap height. */
.crd .sys-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:10px;font-weight:900;font-size:15px;line-height:1.2;color:var(--green-dk);text-decoration:none}
.crd .sys-link:hover{color:var(--green-dk);text-decoration:underline;text-underline-offset:4px}
.crd .sys-link .cr-ico{width:16px;height:16px;transition:transform .2s}
.crd .sys-link:hover .cr-ico{transform:translateX(3px)}

/* Sections in Your Visit's rhythm (.yv-sec), full width: Find us is the facts card beside the map
   (Your Visit's Getting here grid), Venue hire the green band, then the two end cards. */
.crd .ctc-hero .pg-lede{max-width:34em}
.crd .ctc-layout{margin-top:44px;padding-bottom:120px}
.crd .ctc-sec + .ctc-sec{margin-top:64px}
.crd .ctc-find{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:stretch;margin-top:22px}
.crd .ctc-card{margin-top:0}
.crd .ctc-card .pg-fact{align-items:start}
.crd .ctc-card .pg-fact dt{min-height:40px}
.crd .ctc-card .pg-fact dd{padding-top:9px}
.crd .ctc-card .pg-fact dd a{display:inline-block;padding:12px 0;margin:-12px 0;color:var(--ink);text-decoration:underline;text-decoration-color:rgba(46,45,42,.35);text-decoration-thickness:1.5px;text-underline-offset:3px;overflow-wrap:anywhere}
.crd .ctc-card .pg-fact dd a:hover{text-decoration-color:var(--ink)}
.crd .ctc-find .pg-map{min-height:320px}
.crd .ctc-map--embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.crd .ctc-hire{margin-top:22px}
.crd .ctc-end .sys-link{margin-top:12px}
/* The map's Open in Maps pill (drawn 38px tall) gets a 44px tap area without changing its look. */
.crd .ctc-find .pg-map__open::after{content:'';position:absolute;inset:-3px}
/* Under 360px the title runs under the character: the character goes. */
@media (max-width:359px){
  .crd .ctc-hero .yv-hero__char{display:none}
}

/* In-page jumps (#venue-hire from the footer, #find-us) land 112px under the viewport top (84px
   ≤899), as Your Visit's sections: the chrome's html scroll-padding-top + the section's margin. */
.crd .ctc-sec{scroll-margin-top:23px}
@media (min-width:900px) and (max-width:959px){
  .crd .ctc-sec{scroll-margin-top:41px}
}
@media (max-width:899px){
  .crd .ctc-layout{margin-top:24px;padding-bottom:64px}
  .crd .ctc-sec{scroll-margin-top:13px}
  .crd .ctc-sec + .ctc-sec{margin-top:48px}
  .crd .ctc-find{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:14px}
  .crd .ctc-card .pg-fact dt{min-height:32px}
  .crd .ctc-card .pg-fact dd{padding-top:6px}
  .crd .ctc-find .pg-map{min-height:220px}
  .crd .ctc-hire{margin-top:14px}
}
/* A full-width map on a tablet is wide and short: taller, so the drawn map's label stays in view. */
@media (min-width:600px) and (max-width:899px){
  .crd .ctc-find .pg-map{min-height:360px}
}

/* The design scrolls smoothly to a section; not when the visitor asks for less motion. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .crd .sys-link .cr-ico{transition:none}
}

/* The drawn map crops to fill its box (the SVG's slice): from 520 to 899px a full-width, 220px-tall
   box cut the "Comedy Republic / 231 Bourke St" label off the top. Kept at 2:1 there, as on Your
   Visit. (A Google Maps embed fills any box.) */
@media (min-width:520px) and (max-width:899px){
  .crd .pg-map.yv-map:not(.ctc-map--embed){min-height:0;aspect-ratio:2/1}
}

/* Touch screens (pointer: coarse): Open in Maps (38px tall) gets a 44px hit area, drawn the same. */
@media (pointer:coarse){
  .crd .pg-map__open::after{content:'';position:absolute;inset:-4px -2px}
}

/* The ticket stub (.pg-tix) under 360px: the arrow, a shrinkable flex item in a nowrap row, was
   crushed to 0–4px once the label filled the stretched body. It keeps its 18px, and the body's
   padding, gap and type tighten so the label clears the stub's perforation (58px). */
.crd .pg-tix__arrow{flex:none}
@media (max-width:359px){
  .crd .pg-tix__body{gap:8px;padding:0 22px 0 70px;font-size:16px}
}

/* ==== Contact restyle (Brett's list, 08 Oct 2026: design system phase 2) ====
   A surface pass: the structure, copy and behaviour stay. Everything is scoped under the template's
   body class (page-template-page-contact-php; page-contact.php adds it when WordPress picks the file by
   slug), prefixed .page-template-page-contact-php .crd.crd so it leads components.css and
   design-brand.css (both load after this sheet and style the page at .crd.crd) without !important. The
   shared pg-* / yv-* parts are restyled here for this page only; NOTES.md ("Contact and legal pages
   restyle") asks for the same changes in their component defaults (Your Visit's V1–V8, Bar's B1–B9).
   Page values (not new tokens; NOTES.md):
   - --ctc-fs-h2: section headings, 32px (24px at 768px and under), as Your Visit's --yv-fs-h2 and
     Bar's --bf-fs-h2;
   - --ctc-map-crop: how far the keyless map is lifted to hide Google's place card (Your Visit's
     --yv-map-crop). */
.page-template-page-contact-php .crd{--ctc-fs-h2:32px;--ctc-map-crop:120px}
@media (max-width:768px){
  .page-template-page-contact-php .crd{--ctc-fs-h2:24px}
}

/* -- Frame and hero. 1. The header is black, as home's: the cream wordmark and links on --cr-black, no
   felt, no rule under it. Contact isn't a nav item, so nothing is underlined. 2. The shared hero's
   double rule is hidden (template-parts/pages/hero.php prints it for the 404 too). The script eyebrow
   is oxblood at the script size, as home's eyebrows on cream; the title 56px (40px at 768px and under),
   the lede 18px muted. The mouth stays beside the title from 600px and goes under it. 3. The hero takes
   64px above and 48px below; the first section starts on that line (the layout adds nothing), and each
   later section, then the end cards, one section pad (96 / 64px) after the one before. */
.page-template-page-contact-php .crd.crd .cr-header{background:var(--cr-black);border-bottom-color:transparent;box-shadow:none}
.page-template-page-contact-php .crd.crd .ctc-hero{padding-top:64px;padding-bottom:48px}
.page-template-page-contact-php .crd.crd .ctc-hero .pg-rule{display:none}
.page-template-page-contact-php .crd.crd .pg-kicker{font-size:var(--cr-fs-script);color:var(--cr-oxblood)}
.page-template-page-contact-php .crd.crd .pg-title{font-size:var(--cr-fs-hero);line-height:.95}
.page-template-page-contact-php .crd.crd .pg-lede{font-size:var(--cr-fs-lede);line-height:1.6;color:var(--cr-ink-muted)}
.page-template-page-contact-php .crd.crd .ctc-hero .yv-hero__char{top:48px}
@media (max-width:899px){
  .page-template-page-contact-php .crd.crd .ctc-hero .yv-hero__char{top:52px}
}
@media (max-width:599px){
  .page-template-page-contact-php .crd.crd .ctc-hero .yv-hero__char{display:none}
}
.page-template-page-contact-php .crd.crd .ctc-layout{padding-top:0}
.page-template-page-contact-php .crd.crd .ctc-sec{padding-top:var(--cr-section-pad);padding-bottom:0}
.page-template-page-contact-php .crd.crd .ctc-sec:first-child{padding-top:0;scroll-margin-top:23px}
@media (min-width:900px) and (max-width:959px){
  .page-template-page-contact-php .crd.crd .ctc-sec:first-child{scroll-margin-top:41px}
}
@media (max-width:899px){
  .page-template-page-contact-php .crd.crd .ctc-sec:first-child{scroll-margin-top:13px}
}

/* -- Type and cards. Section headings 32 / 24px, card titles h3 (24 / 20px), copy body size (14.5px)
   muted. Every card is the system card (.cr-card): paper, the lg corner, the card shadow, no border or
   grain; Planning your visit? loses its dashed cream look. */
.page-template-page-contact-php .crd.crd .pg-h2{font-size:var(--ctc-fs-h2);line-height:1}
.page-template-page-contact-php .crd.crd .pg-h3{font-size:var(--cr-fs-h3);line-height:1}
.page-template-page-contact-php .crd.crd :is(.pg-copy,.yv-end__text){font-size:var(--cr-fs-body);line-height:1.6;color:var(--cr-ink-muted)}
.page-template-page-contact-php .crd.crd .pg-card{border:0;border-radius:var(--cr-radius-lg);background:var(--cr-paper);box-shadow:var(--cr-shadow-card)}

/* -- Find us. 4. The fact icons are plain brass, 20px, no tile (decoration: the label beside each says
   it); labels 11px tracked muted; values 14.5px ink in Lato 700, as Bar & Food's Finding us; rows part
   on a 1px dashed ink rule at 16%. Email and phone are text links (ink, a 1px underline 4px below that
   turns marigold on hover). Label and value share a first line. */
.page-template-page-contact-php .crd.crd .pg-fact{border-top:1px dashed var(--cr-ink-line)}
.page-template-page-contact-php .crd.crd .pg-fact:first-child{border-top:0}
.page-template-page-contact-php .crd.crd .pg-fact dt{min-height:22px;gap:12px;font-size:var(--cr-fs-label);letter-spacing:var(--cr-label-track);color:var(--cr-ink-muted)}
.page-template-page-contact-php .crd.crd .pg-fact__ico{width:20px;height:20px;border-radius:0;background:none;color:var(--cr-brass)}
.page-template-page-contact-php .crd.crd .pg-fact__ico .cr-ico{width:20px;height:20px}
.page-template-page-contact-php .crd.crd .pg-fact dd{padding-top:0;font-weight:700;font-size:var(--cr-fs-body);line-height:1.5;color:var(--cr-ink)}
.page-template-page-contact-php .crd.crd .ctc-card .pg-fact dd a{color:var(--cr-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:currentColor}
.page-template-page-contact-php .crd.crd .ctc-card .pg-fact dd a:hover{text-decoration-color:var(--cr-marigold)}

/* 5. The map: a Google Maps embed of the venue, greyscale, on the lg corner, raised black while it
   loads (the drawn map and the cream Open in Maps pill go). Open in Maps is a text link under it, its
   → as text. The keyless embed (cr_visit_map_embed_url(), centred north of the venue so the pin sits
   mid-box) is drawn --ctc-map-crop taller and lifted by as much, so Google's place card and its own
   Open in Maps sit above the box, as on Your Visit; Google's logo and attribution stay in view at the
   foot. A map staff paste into Site settings → Map embed fills the box uncropped. From 900px the map
   is level with the facts card (the taller of the two, at least 280px, sets both) and Open in Maps
   hangs under it; under 900px the map is 4:3 (2:1 from 520px), under the card. */
.page-template-page-contact-php .crd.crd .ctc-mapcol{display:flex;flex-direction:column;gap:12px;min-width:0}
.page-template-page-contact-php .crd.crd .ctc-map{flex:1;min-height:280px;border-radius:var(--cr-radius-lg);background:var(--cr-black-raised);box-shadow:none}
@media (min-width:900px){
  .page-template-page-contact-php .crd.crd .ctc-find{row-gap:12px}
  .page-template-page-contact-php .crd.crd .ctc-mapcol{display:contents}
  .page-template-page-contact-php .crd.crd .ctc-card{grid-column:1;grid-row:1}
  .page-template-page-contact-php .crd.crd .ctc-map{grid-column:2;grid-row:1}
  .page-template-page-contact-php .crd.crd .ctc-map__open{grid-column:2;grid-row:2;justify-self:start}
}
.page-template-page-contact-php .crd.crd .ctc-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1)}
.page-template-page-contact-php .crd.crd .ctc-map--keyless iframe{top:calc(var(--ctc-map-crop) * -1);height:calc(100% + var(--ctc-map-crop))}
.page-template-page-contact-php .crd.crd .ctc-map__open{align-self:flex-start}
.page-template-page-contact-php .crd.crd :is(.ctc-map__open,.ctc-hire__link,.ctc-end__link)::after{content:"\00a0\2192";content:"\00a0\2192" / ""}
@media (max-width:899px){
  .page-template-page-contact-php .crd.crd .ctc-map{flex:none;min-height:0;aspect-ratio:4 / 3}
}
@media (min-width:520px) and (max-width:899px){
  .page-template-page-contact-php .crd.crd .ctc-map{aspect-ratio:2 / 1}
}

/* -- Venue hire. 6. The page's one dark band: --cr-black under the cards' grain (at the cards' 15%),
   the lg corner, the card shadow, cream type. Ask about venue hire is a cream text link, its underline
   marigold on hover. */
.page-template-page-contact-php .crd.crd .yv-food{border-radius:var(--cr-radius-lg);background:linear-gradient(color-mix(in srgb,var(--cr-black) 85%,transparent),color-mix(in srgb,var(--cr-black) 85%,transparent)),url('../design/grain.webp') 0 0/220px 220px,var(--cr-black);box-shadow:var(--cr-shadow-card);color:var(--cr-cream)}
.page-template-page-contact-php .crd.crd .yv-food__copy{color:var(--cr-cream)}
.page-template-page-contact-php .crd.crd .ctc-hire__link{flex:none;color:var(--cr-cream)}
.page-template-page-contact-php .crd.crd .ctc-hire__link:hover{color:var(--cr-cream);text-decoration-color:var(--cr-marigold)}

/* -- The end cards. 7. Planning your visit?: the icon plain brass, no tile; Read Your Visit is a text
   link. Haven't booked yet?: the marigold ticket stub, 54px on the sm corner in the button type (Lato
   900 15px), the notches kept and the perforation 11px from top and bottom; hover takes the marigold
   hover. The page's only marigold. */
.page-template-page-contact-php .crd.crd .yv-stuck__ico{display:block;width:24px;height:24px;margin-bottom:16px;border-radius:0;background:none;color:var(--cr-brass)}
.page-template-page-contact-php .crd.crd .yv-stuck__ico .cr-ico{width:24px;height:24px}
.page-template-page-contact-php .crd.crd .ctc-end__link{margin-top:16px}
.page-template-page-contact-php .crd.crd .pg-tix__body{height:var(--cr-btn-h);padding:0 28px 0 74px;border-radius:var(--cr-radius-sm);background:var(--cr-marigold);color:var(--cr-ink);font-size:var(--cr-fs-btn);letter-spacing:.02em}
.page-template-page-contact-php .crd.crd .pg-tix__body::before{top:11px;bottom:11px}
.page-template-page-contact-php .crd.crd .pg-tix:hover .pg-tix__body{background:var(--cr-marigold-hover)}
@media (max-width:359px){
  .page-template-page-contact-php .crd.crd .pg-tix__body{padding:0 20px 0 70px}
}
