@font-face{font-family:Portal;src:url('/fonts/filament/filament/inter/inter-latin-wght-normal-DIHYUR35.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--orange:#ff8c00;--ink:#23261f;--muted:#666b61;--cream:#faf7f0;--line:#e4e5dd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:#fff;color:var(--ink);font-family:Portal,Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.08;letter-spacing:-.045em}h1{font-size:clamp(42px,5.2vw,72px);margin-bottom:24px}h2{font-size:42px;margin-bottom:18px}h3{font-size:20px;letter-spacing:-.02em}.site-header{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:27px 32px;border-bottom:1px solid var(--line)}.site-header img{display:block;max-width:100%;height:auto}.site-header nav{display:flex;gap:30px;font-size:14px;font-weight:600}.site-header nav a{text-decoration:none}.site-header nav a:hover{color:#a55400}main{min-height:60vh}.hero{max-width:1200px;padding:72px 32px 64px;margin:auto;display:grid;grid-template-columns:1.35fr 1fr;gap:70px;align-items:center}.eyebrow{display:block;color:#9d5200;font-size:11px;font-weight:750;letter-spacing:.16em;margin-bottom:23px}h1 em{font-weight:400;color:#b65f00}.hero p{max-width:495px;color:var(--muted);font-size:18px}.hero-facts{display:flex;gap:26px;font-size:13px;font-weight:600;margin:28px 0 32px}.button{border:0;border-radius:8px;background:var(--orange);padding:15px 23px;display:inline-flex;align-items:center;justify-content:center;gap:28px;font-weight:700;color:#241600;text-decoration:none;cursor:pointer;box-shadow:0 3px 0 #cd7000}.button:hover{background:#ffa329}.button:disabled{opacity:.5;cursor:not-allowed}.hero-art{position:relative;background:#f5eddf;border-radius:180px 180px 24px 24px;height:420px;display:flex;align-items:end;justify-content:center;overflow:hidden}.hero-art svg{height:355px;width:300px;margin-bottom:35px}.orbit{position:absolute;border:1px solid #dacfbc;width:340px;height:340px;border-radius:50%;top:33px}.star{position:absolute;color:#b2762a;font-size:40px}.one{top:100px;left:35px}.two{top:43px;right:35px;font-size:55px}.three{bottom:120px;right:28px;font-size:25px}.art-caption{position:absolute;bottom:0;text-align:center;background:#ede1cc;width:100%;padding:14px;font-weight:600;line-height:1.5}.art-caption span{display:block;font-size:11px;font-weight:400;color:#665b49}.booking-section{padding:55px 32px 60px;background:var(--cream);text-align:center;border-top:1px solid #efeade;border-bottom:1px solid #efeade}.booking-section p{color:var(--muted)}.date-grid{max-width:920px;margin:32px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.date-card{display:flex;align-items:center;gap:22px;text-align:left;background:#fff;border:1px solid #dcded4;border-radius:12px;padding:24px;text-decoration:none;transition:transform .15s}.date-card:hover{border-color:var(--orange);transform:translateY(-3px)}.date-number{font-family:Georgia,serif;font-size:58px;line-height:1;color:#9f5400}.date-card strong{display:block;font-size:19px}.date-card div span{font-size:12px;color:var(--muted)}.date-card b{margin-left:auto;color:#af5a00}.how{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:42px;padding:60px 32px}.how p{color:var(--muted);font-size:14px}.step-number{display:block;font-family:Georgia,serif;color:#ae610b;font-size:28px;margin-bottom:14px}.faq{max-width:840px;padding:40px 32px 80px;margin:auto}.faq details{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{font-weight:600;cursor:pointer}.faq details p{font-size:14px;color:var(--muted);margin:14px 0 3px}.form-page{max-width:780px;margin:auto;padding:48px 32px 75px}.form-page h1{font-size:49px;margin-top:22px}.form-page>p{color:var(--muted)}.back{font-size:13px;text-decoration:none;color:#7b4a17}.progress{display:flex;gap:25px;padding:27px 0;font-size:12px;color:#7e8279}.progress .active{font-weight:700;color:#945000}.progress .done{color:#43513a}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.field{display:flex;flex-direction:column;font-size:14px;font-weight:600;gap:7px}.field span{color:#a35400}.field .optional{color:var(--muted);font-weight:400}.field.wide{grid-column:1/-1}.field input,.field textarea,.field select{background:#fcfcfa;border:1px solid #d5d9ce;border-radius:7px;padding:13px 14px;width:100%;font-weight:400;color:var(--ink)}.field input:focus,.field textarea:focus{border-color:#ba6400}.field small{color:#a32a25}.form-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:27px}.form-bottom>span{font-size:12px;color:var(--muted)}.notice{max-width:940px;margin:25px auto;padding:20px 25px;background:#fff2da;border:1px solid #eac58e;border-radius:10px;font-size:14px}.notice.error{background:#fff0ed;border-color:#ebafa6}.notice.success{background:#edf5e8;border-color:#b5cca6}.notice ul{padding-left:18px;margin-bottom:0}.window-grid{display:grid;gap:13px;margin:27px 0}.window{border:1px solid #d5d9ce;padding:22px;display:grid;grid-template-columns:24px 1fr;align-items:center;border-radius:9px;gap:3px 12px;cursor:pointer}.window:has(input:checked){background:#fff6e9;border-color:#bc6500}.window input{grid-row:1/3;accent-color:#b05d00}.window span{font-size:12px;color:var(--muted)}.window.unavailable{background:#f3f3f0;opacity:.6;cursor:default}.summary{background:var(--cream);border:1px solid #e9e2d4;border-radius:10px;padding:24px;margin:26px 0}.summary p:last-child{margin-bottom:0}.check{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:13px;margin:25px 0}.check input{width:18px;height:18px;accent-color:#b05d00;flex-shrink:0}.fineprint{font-size:12px;color:var(--muted);margin-top:17px}.confirmation-mark{background:#edf3e6;color:#426333;width:75px;height:75px;border-radius:50%;font-size:40px;margin:0 auto 30px}.centered{text-align:center}.cancel-panel{border-top:1px solid var(--line);margin-top:45px;padding-top:28px}.button.secondary{background:white;border:1px solid #b8bcb1;box-shadow:none;color:#5c3b27}footer{max-width:1200px;margin:auto;border-top:1px solid var(--line);padding:40px 32px;display:flex;align-items:center;gap:40px}footer p{font-size:12px;color:var(--muted);margin:0}footer div{margin-left:auto;display:flex;gap:22px;font-size:12px}footer a{text-decoration:none}
@media(max-width:760px){.site-header{padding:22px}.site-header img{width:165px}.site-header nav{gap:15px;font-size:12px}.site-header nav a:first-child{display:none}.hero{grid-template-columns:1fr;padding:43px 24px;gap:36px}.hero-art{height:310px;max-width:360px;width:100%;margin:auto}.hero-art svg{height:275px}.hero-facts{gap:16px}.date-grid{grid-template-columns:1fr}.booking-section{padding:40px 24px}.how{grid-template-columns:1fr;gap:16px;padding:38px 24px}.how>div{border-bottom:1px solid var(--line);padding-bottom:15px}.step-number{margin-bottom:5px}.faq{padding:25px 24px 45px}h2{font-size:34px}.form-page{padding:32px 24px}.form-page h1{font-size:39px}.progress{gap:15px;font-size:10px}.field-grid{gap:16px}.form-bottom{gap:20px}.form-bottom .button{padding:13px 16px;font-size:14px}footer{padding:30px 24px;flex-wrap:wrap;gap:22px}footer div{margin:0;flex-basis:100%}.notice{margin:20px 16px}.form-page .notice{margin:20px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.date-card{transition:none}}

/* Booking form */
.booking-page{background:linear-gradient(125deg,#faf7f0 0%,#f8f6f1 42%,#f5f5ef 100%);border-bottom:1px solid #ebe6da;padding:32px 32px 70px}.booking-page-inner{max-width:1100px;margin:0 auto}.booking-page .back{font-size:12px;color:#656959}.booking-steps{list-style:none;display:flex;align-items:center;gap:0;padding:0;margin:28px 0 42px;max-width:650px}.booking-steps li{display:flex;align-items:center;gap:10px;font-size:13px;color:#8b8e83;white-space:nowrap}.booking-steps li:not(:last-child)::after{content:'';width:65px;height:1px;background:#d9ddcf;margin:0 22px}.step-circle{width:29px;height:29px;border:1px solid #d4d8cb;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:650;background:#fafaf5}.booking-steps .complete{color:#657554}.complete .step-circle{background:#e8eedf;border-color:#d7e0cc;color:#4b653a}.booking-steps .current{color:#342a1d;font-weight:700}.current .step-circle{background:#ff8c00;color:#2d1c09;border-color:#ff8c00;box-shadow:0 0 0 4px #ff8c0012}.booking-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);gap:64px;align-items:start}.booking-intro{padding-top:22px}.booking-intro .eyebrow{font-size:10px;letter-spacing:.13em;margin-bottom:21px}.booking-intro h1{font-size:43px;line-height:1.13;letter-spacing:-.045em;margin-bottom:20px}.booking-intro>p{font-size:15px;line-height:1.8;color:#717367;max-width:330px}.visit-ticket{margin-top:30px;border:1px solid #e4d5bc;background:#fff9ee;border-radius:14px;padding:21px 24px;max-width:330px}.ticket-heading{font-size:11px;font-weight:650;color:#8e5a1c;display:flex;align-items:center;gap:8px}.ticket-icon{font-size:16px;color:#be7a29}.ticket-date{display:flex;align-items:center;gap:20px;margin:11px 0 13px}.ticket-day{font-size:56px;font-family:Georgia,serif;line-height:1;color:#9e5c17;letter-spacing:-.06em}.ticket-date strong{display:block;font-size:16px;font-weight:650}.ticket-date div>span{display:block;font-size:12px;color:#8b7960;margin-top:2px}.visit-ticket p{border-top:1px dashed #e7d7bc;margin:0;padding-top:13px;font-size:11px;color:#857963;line-height:1.6}.booking-kindness{max-width:330px;display:flex;gap:12px;margin-top:26px;align-items:flex-start}.booking-kindness>span{font-size:26px;color:#a37c44;line-height:1.1}.booking-kindness p{font-size:12px;line-height:1.8;color:#7a7d70;margin:0}.booking-kindness strong{font-weight:600;color:#565c4d}.booking-form-card{background:#fff;border:1px solid #e2e4d9;border-radius:18px;box-shadow:0 12px 36px #3d422709;padding:30px 32px 0}.form-card-heading{padding-bottom:22px;border-bottom:1px solid #eceee6}.form-card-heading h2{font-family:Portal,Arial,sans-serif;font-size:23px;font-weight:650;letter-spacing:-.035em;line-height:1.3;margin:0 0 7px}.form-card-heading p{font-size:11px;color:#888b7f;margin:0}.required{color:#b06c1e}.booking-fields{padding-top:24px}.form-section{margin:0;padding:0;border:0;min-width:0}.form-section+.form-section{border-top:1px solid #eceee6;padding-top:21px;margin-top:23px}.form-section legend{font-size:13px;line-height:1.4;font-weight:650;padding:0;margin-bottom:15px;float:left;width:100%;color:#4e5647}.form-section .field-grid{clear:both;margin:0;gap:17px 16px}.booking-fields .field{font-size:12px;gap:7px;font-weight:550;min-width:0}.booking-fields .field-label{color:#4f5549;display:block;line-height:1.4}.booking-fields .field-label .required{color:#af7130;margin-left:2px}.booking-fields .field-label .optional{font-size:10px;color:#989c8f;font-weight:400;margin-left:7px}.booking-fields .field input,.booking-fields .field textarea{background:#fbfcf8;border-color:#dfe3d7;border-radius:7px;padding:11px 13px;font-size:13px;min-height:44px;line-height:1.5;transition:border-color .15s,box-shadow .15s}.booking-fields .field input::placeholder,.booking-fields .field textarea::placeholder{color:#a4a89b;opacity:1;font-size:12px}.booking-fields .field input:focus,.booking-fields .field textarea:focus{border-color:#d18a37;box-shadow:0 0 0 3px #edb97822;outline:none;background:#fff}.booking-fields .field input[aria-invalid=true],.booking-fields .field textarea[aria-invalid=true]{border-color:#c35244;background:#fff7f5}.booking-fields .field small{font-size:11px}.children-row{clear:both;display:flex;align-items:center;gap:23px;margin-bottom:19px}.children-field{width:150px;flex-shrink:0}.children-field input{max-width:100px}.children-row p{font-size:11px;line-height:1.7;color:#919585;margin:19px 0 0}.booking-fields .message-field textarea{min-height:85px;resize:vertical}.booking-form-actions{border-top:1px solid #eceee6;margin-top:24px;padding:22px 0 25px;display:flex;align-items:center;justify-content:space-between;gap:16px}.booking-form-actions p{font-size:10px;color:#858b7b;margin:0}.booking-form-actions .button{font-size:12px;padding:13px 18px;gap:20px;box-shadow:0 2px 0 #cc7000;border-radius:7px}.form-page .booking-fields{margin-bottom:25px}.form-page .booking-fields .form-section{padding-bottom:5px}
@media(max-width:1050px) and (min-width:761px){.booking-layout{gap:36px;grid-template-columns:minmax(0,.75fr) minmax(0,1.4fr)}.booking-intro h1{font-size:36px}.booking-form-card{padding:25px 25px 0}.booking-form-actions{align-items:flex-end;flex-direction:column;gap:10px}.booking-form-actions p{align-self:flex-start}}
@media(max-width:760px){.booking-page{padding:24px 20px 36px}.booking-steps{margin:24px 0 26px;justify-content:space-between}.booking-steps li{font-size:10px;gap:7px}.booking-steps li:not(:last-child)::after{width:18px;margin:0 7px}.step-circle{width:25px;height:25px;font-size:11px}.booking-layout{grid-template-columns:1fr;gap:25px}.booking-intro{padding-top:0}.booking-intro .eyebrow{font-size:9px;margin-bottom:15px}.booking-intro h1{font-size:36px;margin-bottom:15px}.booking-intro>p{max-width:none;font-size:13px;margin-bottom:0}.visit-ticket{max-width:none;margin-top:20px;padding:16px 19px;display:grid;grid-template-columns:1fr 1.3fr;gap:0 10px;align-items:center}.ticket-heading{font-size:10px}.ticket-date{gap:13px;margin:0}.ticket-day{font-size:42px}.ticket-date strong{font-size:13px}.ticket-date div>span{font-size:10px}.visit-ticket p{grid-column:1/-1;margin-top:12px;padding-top:10px;font-size:10px}.booking-kindness{display:none}.booking-form-card{padding:22px 20px 0;border-radius:13px}.form-card-heading h2{font-size:21px}.form-card-heading p{font-size:10px}.booking-fields .field-grid{gap:16px 12px}.booking-fields .field-grid:has(input[name=phone]){grid-template-columns:1fr}.booking-form-actions{flex-direction:column;align-items:stretch;gap:11px;padding:18px 0 23px}.booking-form-actions p{text-align:center}.booking-form-actions .button{width:100%;font-size:13px;justify-content:space-between}.booking-fields .field input,.booking-fields .field textarea{font-size:16px}.booking-fields .field input::placeholder,.booking-fields .field textarea::placeholder{font-size:11px}.booking-fields .field-label .optional{display:inline-block}.children-row{gap:16px}.children-field{width:140px}.children-row p{font-size:10px}.booking-page .back{font-size:11px}}
@media(prefers-reduced-motion:reduce){.booking-fields .field input,.booking-fields .field textarea{transition:none}}

/* Collapsible mobile navigation */
.menu-toggle{display:none}.header-navigation{display:block}
@media(max-width:760px){
.site-header{flex-wrap:wrap;column-gap:20px;padding:18px 22px}.site-header>a{flex-shrink:0}.menu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid #e7e5dc;border-radius:9px;color:var(--ink);cursor:pointer}.menu-toggle:hover{background:#faf7f0;border-color:#dbc9ac}.menu-toggle-icon{position:relative;width:20px;height:16px}.menu-toggle-icon>span{position:absolute;left:0;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .22s ease,opacity .16s ease,top .22s ease}.menu-toggle-icon>span:nth-child(1){top:0}.menu-toggle-icon>span:nth-child(2){top:7px}.menu-toggle-icon>span:nth-child(3){top:14px}.menu-open .menu-toggle-icon>span:nth-child(1){top:7px;transform:rotate(45deg)}.menu-open .menu-toggle-icon>span:nth-child(2){opacity:0;transform:scaleX(.4)}.menu-open .menu-toggle-icon>span:nth-child(3){top:7px;transform:rotate(-45deg)}.header-navigation{display:grid;grid-template-rows:0fr;flex-basis:100%;opacity:0;visibility:hidden;transition:grid-template-rows .25s ease,opacity .18s ease,visibility .25s}.header-navigation nav{min-height:0;overflow:hidden;flex-direction:column;gap:0;font-size:14px}.site-header .header-navigation nav a{display:block;padding:13px 4px;border-top:1px solid #eeeee7}.site-header .header-navigation nav a:first-child{margin-top:18px}.menu-open .header-navigation{grid-template-rows:1fr;opacity:1;visibility:visible}
}
@media(prefers-reduced-motion:reduce){.header-navigation,.menu-toggle-icon>span{transition:none}}

/* Mobile menu overlays the page rather than moving it. */
@media(max-width:760px){.site-header{position:relative;z-index:20;flex-wrap:nowrap;background:#fff}.menu-toggle,.menu-toggle:hover{border:0;background:transparent;border-radius:0;box-shadow:none}.menu-toggle:focus-visible{outline:2px solid #cf8224;outline-offset:2px}.header-navigation{position:absolute;top:100%;left:0;right:0;display:grid;flex-basis:auto;background:#fff;box-shadow:0 18px 22px -16px #30281740;z-index:21}.header-navigation nav{padding:0 22px}.site-header .header-navigation nav a:first-child{margin-top:0}.site-header .header-navigation nav a{padding:16px 4px}.site-header .header-navigation nav a:last-child{border-bottom:1px solid #eeeee7}.menu-open .header-navigation nav{padding-bottom:12px}}
.booking-address-summary{max-width:330px;padding:25px 0 0;margin-top:25px;border-top:1px solid #e2e3d8;font-size:13px;color:#6b7360}.booking-address-summary .eyebrow{font-size:9px;margin-bottom:10px;color:#929780}.booking-address-summary>strong{font-size:14px;color:#454e3c;font-weight:600}.booking-address-summary p{margin:5px 0 13px;line-height:1.7}.booking-address-summary>span:last-child{font-size:11px;color:#939982}.slot-picker{border:0;margin:0;padding:25px 0 0;min-width:0}.slot-picker legend{float:left;width:100%;font-size:13px;font-weight:600;padding:0;margin-bottom:7px;color:#4e5647}.slot-picker>p{clear:both;font-size:11px;color:#929887;margin-bottom:18px}.slot-options{display:grid;gap:13px}.slot-option{display:flex;align-items:center;gap:16px;border:1px solid #dfe4d7;background:#fcfdf9;border-radius:10px;padding:20px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.slot-option:hover:not(.is-unavailable){border-color:#d6aa72;background:#fffbf4}.slot-option input{width:18px;height:18px;margin:0;accent-color:#b36b0b;flex-shrink:0}.slot-option-content{display:flex;flex-direction:column;gap:5px}.slot-option-content>strong{font-size:19px;font-weight:650;letter-spacing:-.02em;color:#343c2c}.slot-option-content>strong>span{font-size:12px;font-weight:400;color:#869077;margin-left:3px}.slot-status{display:flex;align-items:center;gap:6px;font-size:10px;color:#7b8869}.slot-status i{width:5px;height:5px;border-radius:50%;background:#7d9b62}.slot-selection-mark{display:none;margin-left:auto;color:#a95d00;font-size:18px}.slot-option:has(input:checked){border-color:#d58c31;background:#fff8ed;box-shadow:0 0 0 1px #eec799}.slot-option:has(input:checked) .slot-selection-mark{display:block}.slot-option:has(input:focus-visible){outline:2px solid #b47522;outline-offset:3px}.slot-option.is-unavailable{background:#f5f6f1;border-color:#e9ebe4;cursor:default}.is-unavailable .slot-option-content>strong,.is-unavailable .slot-status{color:#a2a699}.is-unavailable .slot-status i{background:#b8bcae}.booking-contact-summary{margin-top:25px;padding:18px 0;border-top:1px solid #eceee6;border-bottom:1px solid #eceee6;display:grid;gap:4px;font-size:11px}.booking-contact-summary>span{color:#919781}.booking-contact-summary strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.booking-contact-summary>a{font-size:10px;color:#9a6524;margin-top:5px;text-decoration:none}.booking-consent{display:flex;align-items:flex-start;gap:11px;font-size:11px;line-height:1.7;color:#727a66;margin:22px 0}.booking-consent input{width:17px;height:17px;margin:1px 0 0;accent-color:#b36b0b;flex-shrink:0}.booking-consent a{text-underline-offset:3px}.booking-form-actions.slots-submit{flex-direction:column;align-items:stretch;border:0;margin-top:0;padding-top:0;gap:12px}.slots-submit .button{justify-content:space-between;font-size:13px;padding:15px 20px}.slots-submit p{text-align:center;color:#989c8f}.availability-message{text-align:center;padding:34px 5px 30px}.availability-icon{display:flex;align-items:center;justify-content:center;width:55px;height:55px;border-radius:50%;background:#fff3dd;color:#ba7b27;font-size:30px;margin:0 auto 20px}.availability-message h3{font-size:19px;max-width:320px;margin:0 auto 13px;line-height:1.35}.availability-message p{font-size:12px;line-height:1.8;color:#889078;max-width:350px;margin:0 auto 24px}.availability-message .button{font-size:12px;gap:28px}.availability-back{display:block;font-size:10px;color:#9b794d;margin-top:19px;text-underline-offset:3px}.no-slots{padding:24px 0}.no-slots h3{font-size:16px;margin:0 0 7px}.no-slots p{font-size:12px;color:#889078}.no-slots .button{font-size:12px;padding:12px 15px}.maps-attribution{text-align:right;color:#777;font-size:10px;padding:0 0 18px;margin:0}.maps-attribution span{font-weight:600;letter-spacing:.02em}
@media(max-width:760px){.booking-address-summary{max-width:none;display:none}.slot-option{padding:17px 15px;gap:13px}.slot-option-content>strong{font-size:18px}.slot-status{font-size:10px}.slot-picker{padding-top:21px}.availability-message{padding-top:28px}.availability-message h3{font-size:18px}.booking-consent{font-size:12px}.slots-submit .button{font-size:13px}}
@media(prefers-reduced-motion:reduce){.slot-option{transition:none}}
.hero-facts{flex-wrap:wrap;align-items:center;row-gap:10px}

/* Equal optical spacing for the logo and the visible burger strokes. */
@media(max-width:760px){.site-header .menu-toggle{margin-right:-12px;flex-shrink:0}}
/* Keep all three steps readable on narrow phones. */
@media(max-width:380px){
.booking-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;max-width:100%;align-items:start;margin:24px 0 28px}
.booking-steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;white-space:normal;text-align:center;font-size:10px;line-height:1.4}
.booking-steps li:not(:last-child)::after{position:absolute;top:12px;left:calc(50% + 17px);width:calc(100% - 26px);height:1px;margin:0}
.booking-steps li>span:last-child{max-width:100%;overflow-wrap:break-word}
.booking-page{padding-left:16px;padding-right:16px}.booking-form-card{padding-left:16px;padding-right:16px}.booking-intro h1{font-size:32px}.visit-ticket{padding:14px;grid-template-columns:1fr 1.2fr;gap:0 8px}.ticket-date{gap:10px}.ticket-day{font-size:37px}.ticket-heading{font-size:9px}.ticket-date strong{font-size:12px}.booking-fields .field-grid{gap:15px 10px}.children-row{gap:12px}.children-field{width:126px}.form-page{padding-left:16px;padding-right:16px}.progress{flex-wrap:wrap;gap:10px}.date-card{padding:18px;gap:16px}.date-card div span{font-size:11px}.date-number{font-size:48px}footer div{flex-wrap:wrap;gap:14px}
}

/* Readable booking forms and arrival windows */
.booking-page{background:linear-gradient(125deg,#fff 0%,#fdfcf9 55%,#fafaf6 100%);color:#252b21}
.booking-intro>p,.booking-kindness p,.form-card-heading p,.booking-form-actions p,.children-row p,.visit-ticket p,.ticket-date div>span,.booking-address-summary,.booking-contact-summary>span,.booking-consent,.slot-picker>p,.slot-status,.availability-message p,.no-slots p,.slots-submit p{color:#515b49}
.booking-fields .field-label,.form-section legend,.slot-picker legend{color:#30392b}
.booking-fields .field-label .optional,.field .optional,.booking-address-summary .eyebrow,.booking-address-summary>span:last-child{color:#59634f}
.field input,.field textarea,.field select,.booking-fields .field input,.booking-fields .field textarea{background:#f0f2ed;border-color:#858e7d;color:#252b21}
.field input::placeholder,.field textarea::placeholder,.booking-fields .field input::placeholder,.booking-fields .field textarea::placeholder{color:#535e4b;opacity:1}
.booking-fields .field input:focus,.booking-fields .field textarea:focus{border-color:#985100;box-shadow:0 0 0 3px #b66a0026;background:#fff}
.booking-form-card{border-color:#c8cebf}
.booking-steps li{color:#59634f}
.step-circle{border-color:#8a947f;background:#fff}
.booking-steps .complete{color:#405531}
.complete .step-circle{border-color:#8a9c79;color:#354b26}
.slot-option{background:#f3f5ef;border-color:#858e7d}
.slot-option-content>strong>span{color:#59634f}
.slot-option.is-unavailable{background:#eeefe9;border-color:#b9c0af}
.is-unavailable .slot-option-content>strong,.is-unavailable .slot-status{color:#626a58}
.maps-attribution{color:#59634f}

/* Homepage contact */
.contact-section{max-width:1100px;margin:0 auto;padding:0 32px 72px;scroll-margin-top:24px}
.contact-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:45px;align-items:center;padding:38px 40px;background:#faf7f0;border:1px solid #e4d5bc;border-radius:18px}
.contact-copy .eyebrow{margin-bottom:16px}
.contact-copy h2{font-size:36px;margin-bottom:18px;line-height:1.15}
.contact-copy h2 em{color:#a65900}
.contact-copy p{color:#515b49;font-size:15px;line-height:1.8;margin:0}
.contact-links{display:grid;gap:14px;min-width:0}
.contact-link{display:flex;align-items:center;gap:14px;padding:18px;background:#fff;border:1px solid #c7cdbf;border-radius:10px;text-decoration:none;transition:border-color .15s,background .15s}
.contact-link:hover{background:#fffaf2;border-color:#a65900}
.contact-link>svg{width:25px;height:25px;flex-shrink:0;color:#a65900}
.contact-link>span:not(.contact-arrow){min-width:0}
.contact-link strong{display:block;font-size:15px;color:#30392b}
.contact-link strong+span{display:block;font-size:13px;color:#515b49;overflow-wrap:anywhere;margin-top:3px}
.contact-arrow{margin-left:auto;color:#a65900;flex-shrink:0}
.contact-whatsapp>svg{color:#286a43}
.contact-whatsapp:hover{border-color:#286a43;background:#f5faf5}
@media(max-width:760px){.contact-section{padding:0 20px 40px}.contact-card{grid-template-columns:1fr;gap:25px;padding:26px 22px}.contact-copy h2{font-size:32px}.contact-link{padding:16px;gap:12px}}
@media(max-width:380px){.contact-section{padding-left:16px;padding-right:16px}.contact-card{padding:23px 16px}.contact-link{padding:14px 12px;gap:10px}.contact-link strong{font-size:14px}.contact-link strong+span{font-size:12px}.contact-link>svg{width:22px;height:22px}}

/* Comfortable text sizes throughout the booking process */
.booking-fields .field input,.booking-fields .field textarea,.booking-fields .field select{font-size:16px}
.booking-fields .field input::placeholder,.booking-fields .field textarea::placeholder{font-size:16px}
.booking-fields .field,.booking-fields .field-label{font-size:14px}
.booking-fields .field-label .optional,.booking-fields .field small{font-size:13px}
.form-card-heading p,.booking-form-actions p,.children-row p,.booking-kindness p,.slot-picker>p,.slot-status,.booking-consent,.availability-message p,.no-slots p,.slots-submit p{font-size:14px;line-height:1.65}
.form-section legend,.slot-picker legend{font-size:15px}
.visit-ticket p,.ticket-date div>span,.ticket-heading,.booking-contact-summary,.booking-contact-summary>a,.booking-address-summary>span:last-child,.availability-back,.maps-attribution{font-size:13px;line-height:1.65}
.booking-contact-summary strong{font-size:15px}
.booking-steps li{font-size:13px}
@media(max-width:760px){
    .booking-steps li{font-size:12px}
    .booking-intro>p{font-size:15px}
    .booking-page .back{font-size:13px}
    .ticket-date strong{font-size:14px}
    .visit-ticket{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
}
@media(max-width:380px){
    .children-row{flex-direction:column;align-items:flex-start;gap:8px}
    .children-field{width:100%}
    .children-row p{margin:0}
}
