/* Focused refinements for the selected modern concept. */
.modern{--paper:#fbfcfa;--ink:#183d3b;--accent:#255e54;--card:#fff;--line:#dde5df}
.modern .preview{background:#e8efea;color:#3f5c51;padding:8px 5%;font-size:9px;letter-spacing:.12em}
.modern nav{padding:18px 5%;background:#fbfcfa;border:0}.modern .brand{font-size:19px}.modern .brand img{width:60px;height:48px}.modern .brand small{font-size:8px;letter-spacing:.2em;margin-top:6px}.modern .links{gap:28px}.modern nav .button{padding:12px 20px;border-radius:4px}
.modern .hero{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:6%;align-items:center;min-height:0;margin:0 20px;padding:42px max(30px,4vw);border-radius:10px;background:linear-gradient(90deg,rgba(12,37,33,.83) 0%,rgba(16,39,31,.56) 48%,rgba(17,36,25,.12) 100%),url('../imgs/guest-accommodation.jpg') center 53%/cover;position:relative;isolation:isolate}
.modern .hero-copy{max-width:640px;padding:20px 0 45px}.modern .hero h1{font-size:clamp(40px,4.5vw,68px);letter-spacing:-.055em;line-height:1.08;margin:21px 0 22px;font-weight:500;text-wrap:balance}.modern .hero-copy .eyebrow{color:#dee9d9;font-size:10px;letter-spacing:.16em}.modern .hero-copy>p{font-size:15px;line-height:1.85;max-width:365px;color:#eef1e8}.hero-details{display:flex;gap:24px;flex-wrap:wrap;margin-top:30px;font-size:11px;color:#e3eadd}.hero-details span:before{content:'✓';margin-right:9px;color:#c4d8af}.photo-credit{position:absolute;bottom:24px;left:max(30px,4vw);font-size:12px;line-height:1.6;color:#fff}.photo-credit span{font-size:9px;letter-spacing:.05em;color:#dbe4d6}
.modern .hero .booking{display:block;margin:0;padding:26px 25px 14px;background:#fcfdf9;color:var(--ink);border:1px solid #ffffff80;box-shadow:0 12px 40px #0a251b20;border-radius:8px;align-self:center;position:relative}
.modern .booking>div+div{border:0;padding:0}.booking-heading .eyebrow{font-size:9px;color:#6a7e6f;letter-spacing:.15em}.modern .booking-heading h2{font-size:31px;letter-spacing:-.045em;margin:7px 0 6px}.modern .booking-heading p{font-size:12px;color:#64746b;margin:0 0 20px}.booking-tabs{display:flex;gap:4px;background:#eaf0e9;padding:4px!important;border-radius:5px;margin-bottom:20px}.modern .booking-tabs button{flex:1;padding:11px 8px;border:0;border-radius:3px;background:transparent;color:#596e61;font-size:11px;font-weight:600;white-space:nowrap}.modern .booking-tabs button[aria-selected=true]{background:#fff;color:#214c40;box-shadow:0 1px 5px #1c442012}
.modern .booking label{font-size:11px;font-weight:600;gap:9px}.modern .booking input{background:white;border:1px solid #ccd7cd;padding:13px 12px;border-radius:4px;min-height:48px;font-size:14px;color:#263f32}.modern .booking input:focus{outline:2px solid #547d5b;outline-offset:2px}.modern .booking .field-help{font-size:10px;color:#718174;line-height:1.5;margin:8px 0 18px}.modern .date-form>button,.modern .code-form>button{width:100%;display:flex;justify-content:space-between;padding:15px 16px;border-radius:4px;font-size:12px;font-weight:600;transition:background .2s}.modern .date-form>button:hover,.modern .code-form>button:hover{background:#174638}.modern .booking .booking-footnote{font-size:10px;text-align:center;color:#718174;margin:12px 0 18px}.code-form{display:grid;gap:13px}.modern .portal-note{display:flex;gap:11px;border-top:1px solid var(--line)!important;padding-top:14px!important}.portal-note>span{display:grid;place-items:center;background:#ecf1e8;width:29px;height:29px;border-radius:50%;flex-shrink:0;font-size:14px}.modern .portal-note p{font-size:10px;line-height:1.65;margin:0}.portal-note a{font-weight:600;text-underline-offset:3px}.modern .booking .demo-note{font-size:9px;text-align:center;color:#748076;line-height:1.4;margin:14px 0 0}.booking [hidden]{display:none!important}
.welcome-strip{padding:24px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line)}.welcome-strip>span{font-size:13px;font-weight:600}.welcome-strip p{font-size:11px;color:#697c6f;margin:0}.welcome-strip i{font-style:normal;margin:0 10px}.welcome-strip a{font-size:11px;text-underline-offset:5px;white-space:nowrap}.modern #rooms{padding:58px 5%}.modern .section-head h2{font-size:38px;letter-spacing:-.045em;max-width:420px}.modern .section-head{margin-bottom:24px}.modern .section-head p{font-size:13px;color:#607269;max-width:350px}.modern .room{border:1px solid var(--line);background:#fff;border-radius:7px;overflow:hidden;padding-bottom:20px}.modern .room img{border-radius:0;height:205px}.modern .room h3{font-size:23px;letter-spacing:-.035em;margin:20px 20px 8px}.modern .room p{margin:0 20px;color:#617168;font-size:12px}.modern .room .detail{margin:20px 20px 0;font-size:10px}.modern .stay{margin:0 5% 50px;background:#eaf0e9;border-radius:8px;padding:35px;gap:6%}.modern .stay h2{font-size:40px}.modern .stay p{color:#617168}.modern .stay img{border-radius:5px}.modern .facts{gap:28px}.modern .facts strong{font-family:'DM Sans',sans-serif;letter-spacing:-.04em;font-size:24px}.modern footer{padding:28px 5%;font-size:10px}.modern .button:focus-visible,.modern button:focus-visible,.modern a:focus-visible{outline:3px solid #b09955;outline-offset:4px}
@media(min-width:1440px){.modern .hero{grid-template-columns:minmax(0,1fr) 410px;padding:45px 6%;gap:9%}.modern .hero-copy{max-width:700px}.photo-credit{left:6%}}
@media(max-width:1050px){.modern .hero{grid-template-columns:minmax(0,1fr) 345px;gap:4%;padding:30px}.modern .hero .booking{padding:23px 20px 13px}.modern .hero h1{font-size:44px}.welcome-strip>span{display:none}.modern .links{gap:18px}.modern .hero-copy>p{font-size:14px}}
@media(max-width:700px){.modern .preview{padding:7px 5%;font-size:8px}.modern .preview>a{font-size:8px}.modern nav{padding:13px 5%}.modern .brand{font-size:16px;gap:9px}.modern .brand img{width:43px;height:39px}.modern .brand small{font-size:7px}.modern nav .button{font-size:10px;padding:10px 12px}.modern .hero{display:flex;flex-direction:column;gap:20px;margin:0 10px;padding:24px 18px 20px;border-radius:7px;background-position:40% center}.modern .hero-copy{padding:0;max-width:100%;width:100%}.modern .hero-copy .eyebrow{font-size:8px;letter-spacing:.12em}.modern .hero h1{font-size:36px;margin:12px 0 10px;line-height:1.08;letter-spacing:-.05em}.modern .hero-copy>p{font-size:12px;line-height:1.65;max-width:300px;margin:0}.hero-details{display:none}.photo-credit{display:none}.modern .hero .booking{width:100%;max-width:460px;margin:0;padding:20px 19px 12px;border:0}.modern .booking-heading .eyebrow{display:none}.modern .booking-heading h2{font-size:26px;margin:0 0 5px}.modern .booking-heading p{font-size:11px;margin-bottom:15px}.booking-tabs{margin-bottom:16px}.modern .booking-tabs button{padding:10px 6px}.modern .booking .field-help{margin-bottom:14px}.modern .booking .booking-footnote{margin:10px 0 13px;font-size:9px}.modern .portal-note{padding-top:12px!important}.modern .booking .demo-note{margin-top:10px;font-size:8px}.welcome-strip{display:block;text-align:center;padding:18px 5%}.welcome-strip p{font-size:10px;line-height:1.8}.welcome-strip a{display:inline-block;margin-top:8px;font-size:10px}.welcome-strip i{margin:0 5px}.modern #rooms{padding:40px 5%}.modern .section-head h2{font-size:31px}.modern .section-head p{font-size:12px}.modern .rooms{gap:18px}.modern .room img{height:220px}.modern .stay{padding:22px;gap:23px}.modern .stay h2{font-size:32px}.modern .stay img{height:210px}.modern .facts{gap:23px}.modern .facts strong{font-size:21px}.modern footer{line-height:1.8}.modern footer a{margin:0 15px 0 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.modern *{transition:none!important}}

/* Both panels occupy one grid cell so the taller form reserves space in either tab.
   Visibility keeps the inactive panel out of interaction and accessibility trees
   while retaining its dimensions, including when text wraps on narrow screens. */
.modern .booking-panels{display:grid}
.modern .booking-panels > [role="tabpanel"]{grid-area:1 / 1;min-width:0;align-self:start}
.modern .booking-panels > [role="tabpanel"][hidden]{display:block!important;visibility:hidden;pointer-events:none}

/* Four portal room categories: two generous columns before stacking on phones. */
.modern .rooms{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.modern .room{display:flex;flex-direction:column}
.modern .room img{height:auto;aspect-ratio:3 / 2;object-fit:cover}
.modern .room .detail{margin-top:auto;padding-top:16px}
.modern .room p{margin-bottom:20px}
@media(min-width:1440px){.modern .rooms{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.modern .room .detail{flex-direction:column;gap:7px}}
@media(max-width:700px){.modern .rooms{grid-template-columns:1fr;gap:20px}}

/* A venue story with two real photographs, rather than another bedroom card. */
.modern .venue-story{grid-template-columns:1.12fr 1fr;gap:7%;background:#edf1e9;padding:48px 44px 52px;align-items:center;overflow:hidden}
.venue-photos{position:relative;padding:0 35px 70px 0;min-width:0}
.venue-photos figure{margin:0;overflow:hidden}
.modern .venue-photos .venue-main-photo{border-radius:6px;position:relative}
.modern .venue-photos .venue-main-photo img{display:block;width:100%;height:390px;object-fit:cover;object-position:center 55%;border-radius:0;filter:brightness(1.13)}
.venue-main-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:50px 22px 21px;background:linear-gradient(transparent,#0c211cd9);color:white;font-size:17px;font-weight:500;letter-spacing:-.025em}
.venue-main-photo figcaption span{display:block;font-size:10px;letter-spacing:.04em;font-weight:400;color:#e5e9dd;margin-top:5px}
.venue-photos .venue-detail-photo{position:absolute;right:0;bottom:0;width:55%;border:6px solid #edf1e9;border-radius:6px;box-shadow:0 8px 20px #26382d15;background:#fcfdf9}
.modern .venue-photos .venue-detail-photo img{display:block;width:100%;height:155px;object-fit:cover;object-position:center 70%;border-radius:0;filter:brightness(1.15)}
.venue-detail-photo figcaption{font-size:9px;color:#4d6657;padding:10px 12px;line-height:1.5}
.modern .venue-copy .eyebrow{font-size:9px;letter-spacing:.15em;color:#657958}
.modern .venue-copy h2{font-size:clamp(30px,3.25vw,47px);line-height:1.12;letter-spacing:-.05em;margin:16px 0 23px}
.modern .venue-copy>p{font-size:13px;line-height:1.85;color:#586d5e;margin:0 0 13px;max-width:410px}
.venue-highlights{display:grid;grid-template-columns:1fr 1.3fr;gap:20px;margin:24px 0 26px;padding:21px 0;border-top:1px solid #ced9cb;border-bottom:1px solid #ced9cb}
.venue-highlights>div{display:flex;gap:12px;align-items:center;font-size:10px;line-height:1.6;color:#526a58}
.venue-number{font-size:38px;line-height:1;letter-spacing:-.065em;color:#255e54}
.venue-symbol{display:grid;place-items:center;border:1px solid #bccab6;border-radius:50%;width:34px;height:34px;font-size:18px;flex-shrink:0}
.modern .venue-copy .button{display:inline-flex;gap:28px;align-items:center;font-size:11px;padding:15px 18px;border-radius:4px;line-height:1.4}
.venue-contact{display:block;font-size:10px;text-underline-offset:4px;color:#516958;margin-top:16px;line-height:1.6}
@media(max-width:1050px){.modern .venue-story{padding:34px 28px;gap:5%}.venue-photos{padding-right:20px}.modern .venue-photos .venue-main-photo img{height:410px}.venue-highlights{gap:10px}.venue-highlights>div{gap:8px;font-size:9px}}
@media(max-width:700px){.modern .venue-story{grid-template-columns:1fr;padding:25px 22px 30px;gap:28px}.venue-photos{padding:0 22px 70px 0}.modern .venue-photos .venue-main-photo img{height:280px}.modern .venue-photos .venue-detail-photo img{height:120px}.venue-photos .venue-detail-photo{width:57%}.venue-main-photo figcaption{font-size:15px;padding:40px 17px 18px}.venue-detail-photo figcaption{font-size:8px;padding:8px}.modern .venue-copy h2{font-size:34px;margin:13px 0 19px}.modern .venue-copy>p{font-size:12px}.venue-highlights{margin:20px 0 23px;padding:18px 0;grid-template-columns:1fr 1.2fr}.venue-highlights>div{font-size:10px}.venue-number{font-size:34px}.modern .venue-copy .button{justify-content:space-between;width:100%;font-size:10px}.venue-contact{font-size:9px}}

/* Practical stay details remain distinct from the venue introduction. */
.modern .stay-essentials{padding:5px 5% 60px}
.essentials-heading{display:flex;align-items:baseline;justify-content:space-between;gap:25px;margin-bottom:22px}.modern .essentials-heading .eyebrow{font-size:9px;color:#657958}.modern .essentials-heading h2{font-size:27px;letter-spacing:-.04em;margin:0}
.essentials-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.essentials-grid article{padding:28px 25px 28px 0}.essentials-grid article+article{border-left:1px solid var(--line);padding-left:25px}.essential-label{font-size:8px;letter-spacing:.16em;color:#71806c}.modern .essentials-grid h3{font-size:20px;letter-spacing:-.035em;line-height:1.3;margin:13px 0 10px}.essentials-grid p{font-size:12px;line-height:1.8;color:#617168;margin:0;max-width:310px}.essentials-grid strong{font-weight:600;color:#36574a}
.modern footer.site-footer{display:block;background:#eaf0e9;color:#294d40;padding:46px 5% 0;border-top:1px solid #d4dfd1}
.footer-top{display:grid;grid-template-columns:1.2fr 1fr .9fr 1fr;gap:35px;padding-bottom:35px}.modern .site-footer h2{font:600 11px 'DM Sans',sans-serif;letter-spacing:.03em;margin:0 0 18px}.modern .site-footer p,.site-footer address{font-size:11px;line-height:1.85;color:#526b59;font-style:normal;margin:0 0 12px}.modern .site-footer a{margin:0;text-decoration:none}.modern .site-footer a:hover{text-decoration:underline;text-underline-offset:4px}.footer-top>div>a:not(.brand){display:block;font-size:10px;line-height:1.8;margin-top:6px}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin-bottom:10px;font-size:10px}.modern .site-footer .brand{font-size:17px;gap:10px;margin-bottom:18px}.modern .site-footer .brand img{width:52px;max-height:48px}.modern .site-footer .brand small{font-size:7px}.footer-payment img{max-width:100%;height:auto;width:200px;mix-blend-mode:multiply}.modern .site-footer .footer-portal{font-size:10px;margin-top:18px}.footer-portal a{font-weight:600}.footer-bottom{border-top:1px solid #cddbc8;padding:20px 0;display:flex;justify-content:space-between;gap:20px;font-size:9px;line-height:1.7;color:#607460}.footer-bottom a{color:#294d40}
@media(max-width:1050px){.footer-top{grid-template-columns:1fr 1fr;gap:30px 40px}.essentials-heading{display:block}.modern .essentials-heading h2{margin-top:10px}.essentials-grid article{padding-right:18px}.essentials-grid article+article{padding-left:18px}}
@media(max-width:700px){.modern .stay-essentials{padding:0 5% 38px}.modern .essentials-heading h2{font-size:25px}.essentials-grid{grid-template-columns:1fr}.essentials-grid article,.essentials-grid article+article{padding:22px 0;border-left:0}.essentials-grid article+article{border-top:1px solid var(--line)}.essentials-grid p{max-width:none}.modern .essentials-grid h3{font-size:21px}.modern footer.site-footer{padding-top:32px}.footer-top{gap:28px 20px}.footer-intro{grid-column:1/-1}.footer-payment{grid-column:1/-1}.footer-payment p{max-width:290px}.footer-bottom{display:block}.footer-bottom>span{display:block;margin-bottom:6px}.modern .site-footer p,.site-footer address{font-size:11px}.footer-top>div>a:not(.brand){overflow-wrap:anywhere}}

/* Live lookup results retain Bootstrap's guest-form grid below the hero. */
.modern .booking-results{padding:32px 5%;scroll-margin-top:20px}
.modern .booking-results[hidden]{display:none}
#booking-message:not(:empty){padding:16px 20px;margin-bottom:15px;border:1px solid var(--line);border-radius:5px;background:#edf1e9;font-size:14px;color:var(--ink)}
#booking-message a{text-decoration:underline}
#booking-details .card{border-color:var(--line);padding:0;overflow:hidden}
#booking-details .card-header{background:#eaf0e9;color:var(--ink);padding:18px;font-weight:600}
#booking-details .card-body{padding:24px}
#booking-details .btn{background:var(--accent);border-color:var(--accent);color:white}
#booking-details label{display:inline-flex;flex:initial;min-width:0}
#booking-details .form-control,#booking-details .form-select{color:#283d33;background-color:#fff}
#booking-details input[type=checkbox]{width:1em;min-height:0;padding:0}
#booking-details .row{margin-bottom:16px}
.modern .booking input{box-sizing:border-box}
.modern nav .brand{color:var(--ink)}

/* Availability cards share the homepage photography, colours and typography. */
#booking-details .availability-results{border:0;overflow:visible;background:transparent}
#booking-details .availability-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;background:transparent;padding:0 0 25px;border:0}
.availability-heading .eyebrow{font-size:9px;color:#71806c}
.modern .availability-heading h2{font-size:32px;letter-spacing:-.045em;margin:8px 0 0}
.availability-date{font-size:12px;padding:12px 16px;background:#eaf0e9;border-radius:5px;white-space:nowrap;font-weight:500}.availability-date>span{color:#617168}
#booking-details .availability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:0}
.selection-room{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.selection-photo{position:relative}.selection-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}.selection-count{position:absolute;bottom:13px;left:13px;background:#fffef5ed;color:#2f5946;border-radius:4px;font-size:10px;padding:7px 10px;font-weight:600}
.selection-content{padding:22px;display:flex;flex-direction:column;flex:1}
.modern .selection-content h3{font-size:23px;letter-spacing:-.035em;line-height:1.25;margin:0 0 10px}.selection-content p{font-size:12px;line-height:1.7;margin:0 0 12px;color:#5c7163}.selection-content .selection-breakfast{font-size:10px;color:#42674d;margin:0 0 18px}
.selection-description{font-size:11px;color:#536c5b;margin-bottom:22px}.selection-description summary{cursor:pointer;text-underline-offset:4px;list-style-position:inside;font-weight:500}.selection-description p{margin:13px 0 0;font-size:11px}
.selection-action{border-top:1px solid var(--line);padding-top:18px;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.selection-price{display:flex;flex-direction:column;gap:4px}.selection-price strong{font-size:24px;font-weight:500;line-height:1.2;letter-spacing:-.04em}.selection-price>span{font-size:9px;color:#718174}
#booking-details .selection-action .btn{border-radius:4px;padding:12px 15px;font-size:11px;white-space:nowrap}#booking-details .selection-action .btn:hover{background:#174638}#booking-details .selection-action .btn span{margin-left:8px}
@media(max-width:1100px){#booking-details .availability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){#booking-details .availability-grid{grid-template-columns:1fr;gap:20px}#booking-details .availability-heading{display:block}.modern .availability-heading h2{font-size:28px}.availability-date{display:inline-block;margin-top:17px;font-size:11px}.selection-content{padding:20px}.selection-photo img{max-height:270px}.selection-price strong{font-size:25px}}

.selection-unavailable .selection-photo img{opacity:.7}
.selection-unavailable .selection-count{background:#f2eee7;color:#655e50}
#booking-details .selection-unavailable .btn:disabled{background:#e7ebe5;border-color:#dce2d9;color:#707b6d;opacity:1;cursor:not-allowed}

/* Keep all four room types together on desktop. */
#booking-details .availability-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.selection-content{padding:18px}
.modern .selection-content h3{font-size:21px}
.selection-action{flex-direction:column;align-items:stretch;gap:15px}
.selection-price{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:7px}
#booking-details .selection-action .btn{width:100%}
@media(max-width:1100px){#booking-details .availability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){#booking-details .availability-grid{grid-template-columns:1fr}}

/* Guest details: one clear form alongside a persistent room summary. */
#booking-details .guest-booking{background:transparent;border:0;overflow:visible}
#booking-details .guest-heading{background:transparent;border:0;padding:0 0 26px}
.guest-heading .eyebrow{font-size:9px;color:#71806c}.modern .guest-heading h2{font-size:34px;letter-spacing:-.045em;margin:9px 0}.guest-heading p{font-size:13px;color:#64766a;font-weight:400;margin:0}
#booking-details .guest-layout{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.6fr);gap:35px;padding:0;align-items:start}
.guest-summary{border:1px solid var(--line);background:#edf1e9;border-radius:8px;overflow:hidden;position:sticky;top:24px}.guest-room-photo{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}.guest-summary-content{padding:24px}.guest-summary-content>.eyebrow{font-size:9px;color:#71806c}.modern .guest-summary h3{font-size:25px;line-height:1.2;letter-spacing:-.035em;margin:10px 0 12px}.guest-summary p{font-size:12px;color:#5c7163;line-height:1.8}.guest-summary dl{margin:22px 0}.guest-summary dl>div{border-top:1px solid #d1dccb;padding:14px 0;display:grid;grid-template-columns:1fr 1.5fr;gap:10px}.guest-summary dt{font-size:10px;font-weight:500;color:#617461}.guest-summary dd{font-size:12px;margin:0;color:#2f5341}.guest-summary dd small{display:block;color:#697d6b;font-size:10px;margin-top:4px}.guest-total{border-top:1px solid #c9d5c2;padding-top:20px;display:flex;flex-direction:column;gap:6px}.guest-total>span{font-size:11px}.guest-total strong{font-size:35px;font-weight:500;letter-spacing:-.05em;line-height:1.2}.guest-total small{font-size:10px;color:#617461}.guest-description{border-top:1px solid #d1dccb;margin-top:20px;padding-top:16px;font-size:11px}.guest-description summary{cursor:pointer}.guest-description p{font-size:11px;margin:13px 0 0}
.guest-form{background:white;border:1px solid var(--line);border-radius:8px;padding:30px;min-width:0}.guest-required{font-size:10px;color:#738173;margin:0 0 25px}.guest-form fieldset{border:0;padding:0 0 27px;margin:0 0 27px;border-bottom:1px solid var(--line);min-width:0}.guest-form legend{float:none;width:auto;font-size:18px;letter-spacing:-.025em;font-weight:500;margin:0 0 15px;display:flex;align-items:center;gap:10px;line-height:1.3}.guest-form legend>span{display:grid;place-items:center;width:27px;height:27px;background:#edf1e9;color:#54704e;border-radius:50%;font-size:10px;letter-spacing:0;flex-shrink:0}.guest-hint{font-size:11px;color:#6d7e70;line-height:1.7;margin:0 0 16px}.guest-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}.guest-full{grid-column:1/-1}
#booking-details .guest-form .guest-fields label{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:11px;color:#3f5b48;font-weight:500;line-height:1.5;margin:0}#booking-details .guest-form label small{font-size:10px;font-weight:400;color:#7b8679}.guest-form input:not([type=hidden]):not([type=checkbox]),.guest-form select,.guest-form textarea{width:100%;min-width:0;min-height:46px;border:1px solid #ced8cc;border-radius:4px;background:#fdfefa;padding:12px;font-size:13px;color:#2c4432;font-weight:400;line-height:1.5}.guest-form textarea{resize:vertical;min-height:100px}.guest-form input:focus,.guest-form select:focus,.guest-form textarea:focus{outline:2px solid #718868;outline-offset:2px}.guest-form .guest-hint{margin:0;font-weight:400}.guest-form fieldset>p.guest-hint{margin-bottom:16px}
.guest-consent{display:flex;align-items:flex-start;gap:9px;flex-wrap:wrap;margin-bottom:20px}#booking-details .guest-consent input[type=checkbox]{flex-shrink:0;width:17px;height:17px;min-height:0;margin-top:2px;accent-color:#255e54}#booking-details .guest-consent label{font-size:11px;display:block;flex:initial;line-height:1.8;color:#506550;min-width:0}.modern .terms-trigger{background:transparent;color:#255e54;border:0;border-radius:0;padding:0;font-size:11px;line-height:1.8;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.modern .guest-pay-button{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;font-size:13px;padding:17px 18px;border-radius:4px;line-height:1.5}.guest-pay-button:hover{background:#174638}.guest-pay-button span{white-space:nowrap}.guest-secure{font-size:10px;color:#738173;line-height:1.7;text-align:center;margin:12px 0 0}
body.terms-open{overflow:hidden}.modern #terms-dialog{width:min(760px,calc(100% - 32px));max-width:760px;max-height:85vh;max-height:85dvh;padding:0;border:1px solid #d5dfcf;border-radius:10px;background:#fbfcf8;color:#294d40;overflow:auto;box-shadow:0 25px 90px #0a211d50}.modern #terms-dialog::backdrop{background:#102f28b3;backdrop-filter:blur(3px)}.terms-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;background:#edf1e9;position:sticky;top:0;border-bottom:1px solid #d5dfcf}.terms-dialog-header .eyebrow{font-size:8px;color:#6a7d65}.modern .terms-dialog-header h2{font-size:27px;letter-spacing:-.04em;margin:7px 0 0}.modern .terms-dialog-header button{background:transparent;color:#315a44;border:1px solid #cbd8c5;padding:5px 10px;font-size:20px;border-radius:4px}.terms-dialog-content{padding:26px 28px}.terms-dialog-content>.col-md-6{width:100%}.modern .terms-dialog-content h2{font-size:19px;letter-spacing:-.025em;margin:24px 0 9px}.modern .terms-dialog-content>.col-md-6:first-child>h2:first-child{margin-top:0}.terms-dialog-content p{font-size:12px;line-height:1.9;color:#5a6f5d;margin-bottom:12px}.terms-dialog-footer{border-top:1px solid #d5dfcf;padding:20px 28px;background:#edf1e9;display:flex;align-items:center;justify-content:space-between;gap:20px}.terms-dialog-footer p{font-size:10px;color:#63765c;margin:0}.terms-dialog-footer button{font-size:11px;border-radius:4px;white-space:nowrap}
@media(max-width:950px){#booking-details .guest-layout{grid-template-columns:minmax(220px,.85fr) minmax(0,1.2fr);gap:22px}.guest-form{padding:22px}.guest-summary-content{padding:20px}.guest-fields{gap:16px 12px}}
@media(max-width:700px){#booking-details .guest-layout{grid-template-columns:1fr;gap:20px}.guest-summary{position:static}.guest-summary .guest-room-photo{max-height:230px}.guest-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.guest-summary dl>div{display:block}.guest-summary dt{margin-bottom:7px}.guest-summary dl>div:last-child{grid-column:1/-1}.guest-form{padding:24px 20px}.guest-fields{grid-template-columns:1fr}.guest-full{grid-column:auto}.modern .guest-heading h2{font-size:28px}.modern .guest-pay-button{font-size:12px;padding:16px 13px}.guest-form fieldset{padding-bottom:23px;margin-bottom:23px}.terms-dialog-header{padding:18px 20px}.modern .terms-dialog-header h2{font-size:23px}.terms-dialog-content{padding:20px}.terms-dialog-footer{display:block;padding:18px 20px}.terms-dialog-footer button{width:100%;margin-top:12px}}
.guest-share{margin-top:20px;padding-top:18px;border-top:1px solid #d1dccb}
.modern .guest-share button{background:transparent;color:#255e54;border:0;padding:0;font-size:11px;text-decoration:underline;text-underline-offset:4px;line-height:1.6}
.guest-share p{font-size:10px;line-height:1.7;margin:10px 0 0;overflow-wrap:anywhere}

.location-words{margin:16px 0;font-size:10px;line-height:1.8}.location-words>span{display:block;color:#617461}.modern .location-words a{display:inline-block;font-size:11px;font-weight:600;text-underline-offset:4px}.essentials-grid .arrival-location{font-size:10px;margin-top:12px;overflow-wrap:anywhere}.arrival-location a{text-underline-offset:3px}.guest-location{display:flex;flex-direction:column;gap:7px;border-top:1px solid #d1dccb;padding:16px 0 20px}.guest-location>span{font-size:10px;color:#617461}.guest-location>a{font-size:12px;font-weight:600;text-underline-offset:4px;overflow-wrap:anywhere}.guest-location small{font-size:9px;color:#718174;line-height:1.6}

.modern .date-portal-warning{font-size:11px;line-height:1.7;color:#3f5f43;background:#eaf0e3;border:1px solid #d2ddc6;padding:12px;border-radius:4px;margin:0 0 15px}.date-portal-warning a{font-weight:600;text-underline-offset:3px}.date-portal-warning[hidden]{display:none}

.sold-out-prompt{padding:30px;border:1px solid #d6dfcb;background:#edf2e7;border-radius:8px;margin:0 0 28px}.sold-out-prompt>.eyebrow{font-size:9px;color:#718268}.modern .sold-out-prompt h3{font-size:28px;letter-spacing:-.04em;margin:12px 0}.sold-out-prompt>p{font-size:13px;color:#60715d;max-width:620px;line-height:1.8;margin-bottom:22px}.alternative-dates{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:22px}.alternative-date{display:flex;flex-direction:column;gap:7px;min-width:205px;padding:16px 20px;border:1px solid #bcccaf;border-radius:5px;background:#fbfcf8;text-decoration:none;color:#2c5543}.alternative-date:hover{background:#e1ead9;border-color:#7e9b69;color:#254b37}.alternative-date>span{font-size:10px}.alternative-date>strong{font-size:19px;letter-spacing:-.025em;font-weight:500}.sold-out-prompt .sold-out-help{font-size:11px;margin:0}.sold-out-help a{text-underline-offset:3px}@media(max-width:700px){.sold-out-prompt{padding:24px 20px}.modern .sold-out-prompt h3{font-size:25px}.alternative-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}.alternative-date{min-width:0;padding:14px 12px}.alternative-date>span{font-size:9px}.alternative-date>strong{font-size:17px}}

/* Centre the venue mark and supporting copy within the left hero column. */
.modern .hero-copy{width:100%;max-width:680px;justify-self:center;text-align:center;padding:12px 0}
.modern .hero-logo{display:block;width:270px;max-width:75%;height:auto;object-fit:contain;margin:0 auto 30px;filter:none}
.modern .hero h1{font-size:clamp(34px,3.3vw,48px);line-height:1.14;letter-spacing:-.04em;margin:0 0 20px;font-weight:400}
.modern .hero-copy>p{font-size:14px;max-width:390px;line-height:1.85;margin:0 auto}
.modern .hero-details{justify-content:center;gap:24px;margin-top:25px}
@media(max-width:1050px) and (min-width:701px){.modern .hero-logo{width:235px;margin-bottom:25px}.modern .hero h1{font-size:36px}.modern .hero-copy>p{font-size:13px}.modern .hero-details{gap:14px;font-size:10px}}
@media(max-width:700px){.modern .hero-logo{width:190px;max-width:70%;margin:0 auto 20px}.modern .hero-copy{padding:0}.modern .hero h1{font-size:30px;line-height:1.12;margin:0 0 12px}.modern .hero-copy>p{font-size:12px;line-height:1.65;max-width:300px;margin:0 auto}.modern .hero{padding-top:26px;gap:24px}}
