.visit-page { background: #fffefa; }
.visit-nav { display: flex; align-items: center; justify-content: center; gap: 28px; margin-left: auto; }
.visit-nav a { color: var(--navy); text-decoration: none; font-weight: 750; }
.visit-nav a:hover { color: var(--blue); }
.visit-hero { min-height: 690px; padding: 110px max(5vw, calc((100vw - 1180px)/2)); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(330px, .85fr); gap: clamp(45px, 8vw, 100px); align-items: center; background: linear-gradient(110deg,#0a313d 0%,#123f4a 62%,#315f5a 100%); color: #fff; }
.visit-hero-copy h1 { max-width: 760px; margin: .12em 0 .25em; font: clamp(4rem, 8vw, 7rem)/.94 Georgia,serif; letter-spacing: -.045em; }
.visit-hero-copy > p:not(.eyebrow) { max-width: 700px; font: clamp(1.3rem,2.2vw,1.85rem)/1.42 Georgia,serif; color: #e7f0ed; }
.visit-hero-actions { margin-top: 32px; }
.visit-times { padding: 30px; background: #fff; color: var(--ink); border-radius: 22px; box-shadow: 0 28px 80px #051d2855; }
.visit-times > p { margin: 0 0 14px; color: var(--sage); font-size: .76rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.visit-times div { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid #e0e5e1; }
.visit-times strong { color: var(--navy); white-space: nowrap; }
.visit-times > a { display: block; margin-top: 20px; color: var(--blue); font-weight: 750; }
.visit-welcome { padding: 100px max(5vw, calc((100vw - 1120px)/2)); display: grid; grid-template-columns: 1.08fr .72fr; gap: clamp(45px,8vw,90px); align-items: center; }
.visit-welcome h2,.visit-kids h2,.visit-section-heading h2,.directions-section h2 { margin: .15em 0 .35em; font: clamp(2.8rem,5vw,4.8rem)/1.04 Georgia,serif; color: var(--navy); }
.visit-welcome > div > p:not(.eyebrow),.visit-kids > div > p:not(.eyebrow) { color: #56616a; font-size: 1.1rem; }
.visit-welcome figure { margin: 0; }
.visit-welcome img { display: block; width: 100%; height: 560px; object-fit: cover; object-position: center 58%; border-radius: 22px; box-shadow: 0 24px 60px #17395f24; }
.visit-welcome figcaption { margin-top: 11px; color: #66716d; font-size: .86rem; }
.visit-form-section { padding: 95px max(5vw, calc((100vw - 1120px)/2)); display: grid; grid-template-columns: minmax(0,.8fr) minmax(380px,1fr); gap: clamp(45px,8vw,90px); align-items:start; background:#f7f3eb; }
.visit-form-intro h2 { margin:.15em 0 .35em; font:clamp(2.8rem,5vw,4.8rem)/1.04 Georgia,serif; color:var(--navy); }
.visit-form-intro > p:not(.eyebrow) { color:#56616a; font-size:1.1rem; }
.visit-form-intro ul { padding-left:1.2rem; color:#315f5a; line-height:1.9; font-weight:700; }
.visit-form { padding:34px; background:#fff; border-radius:22px; box-shadow:0 24px 60px #17395f1f; }
.form-field { margin-bottom:20px; }
.form-field label,.visit-form legend { display:block; margin-bottom:8px; color:var(--navy); font-weight:800; }
.form-field label span { color:#77817d; font-weight:500; }
.form-field input,.form-field select,.form-field textarea { width:100%; border:1px solid #cbd5cf; border-radius:10px; padding:13px 14px; background:#fff; color:var(--ink); font:inherit; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { outline:3px solid #55706433; border-color:var(--sage); }
.form-field small,.choice small { display:block; margin-top:5px; color:#68736f; }
.visit-form fieldset { margin:0 0 20px; padding:0; border:0; }
.choice { display:flex; align-items:center; gap:12px; margin:9px 0; padding:13px; border:1px solid #dbe2dd; border-radius:10px; cursor:pointer; }
.choice input { width:18px; height:18px; accent-color:var(--sage); }
.choice span { display:block; }
.choice small { margin:2px 0 0; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.visit-form .button { width:100%; border:0; cursor:pointer; }
.visit-form .button:disabled { opacity:.65; cursor:wait; }
.form-status { min-height:1.5em; margin:14px 0 0; color:#9b2f2f; font-weight:700; }
.form-status.success { color:#315f5a; }
.form-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.visit-wizard-section { align-items:center; }
.visit-wizard { position:relative; min-height:560px; padding:0; overflow:hidden; background:#a8aaa9; color:#fff; }
.wizard-step { display:none; min-height:465px; padding:58px 54px 35px; }
.wizard-step.active { display:block; }
.visit-wizard fieldset { margin:0; }
.visit-wizard legend { max-width:620px; margin-bottom:32px; color:#fff; font:700 clamp(1.8rem,3vw,2.7rem)/1.22 Georgia,serif; }
.visit-wizard .form-field input,.visit-wizard .form-field textarea { border:0; padding:17px 18px; font-size:1.12rem; box-shadow:0 3px 9px #0002; }
.number-choices { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.number-choice { width:62px; height:62px; border:2px solid transparent; border-radius:9px; background:#fff; color:#263640; font-size:1.2rem; cursor:pointer; }
.number-choice.selected,.date-choice.selected { border-color:#d7aa62; box-shadow:0 0 0 3px #d7aa6250; }
.date-choices { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:28px; }
.date-choice { min-height:112px; border:2px solid transparent; border-radius:50%; background:#fff; color:#263640; cursor:pointer; }
.date-choice strong,.date-choice span { display:block; }
.date-choice strong { font:700 1.2rem Georgia,serif; }
.date-choice span { margin-top:5px; font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.wizard-next,.wizard-submit { width:100%; border:0; border-radius:8px; padding:16px; background:#0b3340; color:#fff; font-weight:850; text-transform:uppercase; letter-spacing:.12em; cursor:pointer; }
.wizard-next:hover,.wizard-submit:hover { background:#154857; }
.wizard-footer { min-height:95px; padding:18px 34px; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px 20px; background:#959897; }
.wizard-back { border:0; background:transparent; color:#fff; font:inherit; cursor:pointer; }
.wizard-back[hidden] { visibility:hidden; display:block; }
#wizard-step-label { justify-self:end; }
.wizard-progress { grid-column:1/-1; height:8px; overflow:hidden; border-radius:99px; background:#ffffffb8; }
.wizard-progress span { display:block; height:100%; border-radius:inherit; background:#d7aa62; transition:width .2s ease; }
.wizard-success { min-height:465px; padding:80px 54px; text-align:center; }
.wizard-success h3 { margin:0 0 16px; font:700 clamp(2.5rem,5vw,4rem) Georgia,serif; }
.needs-selection::after { content:"Please choose an option to continue."; display:block; margin-top:-18px; margin-bottom:20px; color:#fff; font-weight:700; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.visit-steps { padding: 95px max(5vw, calc((100vw - 1200px)/2)); background: var(--mist); }
.visit-section-heading { max-width: 760px; }
.arrival-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-top: 42px; }
.arrival-grid article { padding: 26px; background: #fff; border-radius: 18px; }
.arrival-grid span { color: var(--sage); font-size: .75rem; font-weight: 850; letter-spacing: .14em; }
.arrival-grid h3 { margin: .35em 0; font: 1.45rem Georgia,serif; }
.arrival-grid p { margin-bottom: 0; color: #5d686e; }
.visit-kids { padding: 100px max(5vw, calc((100vw - 1160px)/2)); display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(50px,8vw,95px); align-items: center; }
.visit-kids-photos { min-height: 570px; position: relative; }
.visit-kids-photos img { position: absolute; display: block; object-fit: cover; border-radius: 20px; box-shadow: 0 24px 58px #17395f24; }
.visit-kids-photos img:first-child { width: 70%; height: 500px; left: 0; top: 0; }
.visit-kids-photos img:last-child { width: 58%; height: 270px; right: 0; bottom: 0; border: 8px solid #fff; }
.visit-note { margin-top: 25px; padding: 18px; border-left: 4px solid var(--sage); background: #f1f5f1; }
.directions-section { padding: 85px max(5vw, calc((100vw - 1120px)/2)); display: flex; align-items: end; justify-content: space-between; gap: 45px; background: var(--navy); color: #fff; }
.directions-section h2 { color: #fff; }
.directions-section address { color: #dce7ed; font-style: normal; font-size: 1.08rem; }
.directions-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; }
.directions-actions .text-link { color: #fff; }
@media (max-width:900px) { .visit-nav a:nth-child(2),.visit-nav a:nth-child(3) { display:none; } .visit-hero,.visit-welcome,.visit-kids,.visit-form-section { grid-template-columns:1fr; } .arrival-grid { grid-template-columns:repeat(2,1fr); } .visit-welcome figure { max-width:620px; } }
@media (max-width:620px) { .visit-nav { display:none; } .visit-hero { min-height:auto; padding:80px 20px 65px; } .visit-hero-copy h1 { font-size:3.8rem; } .visit-hero-actions .button { display:block; margin:9px 0; text-align:center; } .visit-welcome,.visit-steps,.visit-kids,.visit-form-section { padding:70px 20px; } .visit-form:not(.visit-wizard) { padding:24px 20px; } .wizard-step { min-height:490px; padding:46px 24px 28px; } .wizard-footer { padding:16px 22px; } .date-choices { grid-template-columns:repeat(2,1fr); } .date-choice { border-radius:16px; min-height:88px; } .form-row { grid-template-columns:1fr; gap:0; } .visit-welcome img { height:500px; } .arrival-grid { grid-template-columns:1fr; } .visit-kids-photos { min-height:500px; } .visit-kids-photos img:first-child { height:420px; width:78%; } .visit-kids-photos img:last-child { height:220px; width:64%; } .directions-section { padding:65px 20px; align-items:flex-start; flex-direction:column; } }
