/* Shared public footer and consent panel. No third-party assets or fonts. */
.site-footer{background:#102a43;color:#bfd0dc;padding:58px 0 24px;margin:0;width:100%;font-family:var(--sans,Arial,sans-serif)}
.site-footer .footer-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr) minmax(0,1fr) minmax(0,1.12fr);gap:clamp(24px,3.1vw,48px);padding-bottom:38px;align-items:start}
.site-footer .footer-top>div,.site-footer .footer-top>nav{min-width:0}
.site-footer .footer-brand .brand{display:inline-flex;margin:0 0 16px}
.site-footer .footer-brand .brand img{width:184px;height:auto;max-width:100%}
.site-footer .footer-brand p{margin:0;max-width:280px;font-size:14px;line-height:1.85;color:#bdcdda}
.site-footer .footer-top h3{font-family:var(--sans,Arial,sans-serif);font-size:14px;font-weight:700;line-height:1.5;letter-spacing:0;text-transform:none;color:#fff6e5;margin:8px 0 18px}
.site-footer .footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin:0;padding:0}
.site-footer .footer-column>a:not(.footer-booking-link),.site-footer #contact-details a{font-size:13px;line-height:1.65;text-decoration:none;padding:7px 0;color:#bfd0dc;min-height:36px;max-width:100%;overflow-wrap:anywhere}
.site-footer .footer-column>a:hover,.site-footer #contact-details a:hover{color:#f3d493;text-decoration:underline;text-underline-offset:4px}
.site-footer .footer-contact p{margin:0 0 13px;max-width:100%;font-size:13px;line-height:1.75;color:#bdcdda}
.site-footer .footer-contact .footer-contact-intro{color:#fff;font-size:14px;margin-bottom:7px}
.site-footer #contact-details{margin:0 0 8px;min-width:0;max-width:100%}
.site-footer #contact-details a{display:block}
.site-footer #contact-details br{display:none}
.site-footer .footer-contact .footer-booking-link{display:inline-flex;align-items:center;justify-content:space-between;gap:16px;background:#e1bd7d;border:1px solid #e1bd7d;border-radius:8px;color:#102a43;font-size:12px;font-weight:700;line-height:1.6;padding:12px 14px;margin-top:10px;min-height:46px;max-width:100%;text-decoration:none;transition:background .2s,border-color .2s}
.site-footer .footer-contact .footer-booking-link:hover{background:#eed2a0;border-color:#eed2a0;color:#102a43;text-decoration:none}
.site-footer .footer-booking-link span{font-size:18px;line-height:1;flex-shrink:0}
.site-footer .footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;border-top:1px solid #ffffff22;margin:0 auto;padding-top:22px;color:#9db3c4}
.site-footer .footer-bottom>span{font-size:12px;line-height:1.7;order:0}
.site-footer .footer-bottom>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px 23px;order:1}
.site-footer .footer-bottom a,.site-footer .footer-bottom button{font:inherit;font-size:12px;line-height:1.7;color:#b6c9d7;text-decoration:none;border:0;background:none;padding:8px 0;min-height:38px;text-align:left;cursor:pointer}
.site-footer .footer-bottom a:hover,.site-footer .footer-bottom button:hover{color:#f3d493;text-decoration:underline;text-underline-offset:4px}
.site-footer a:focus-visible,.site-footer button:focus-visible{outline:2px solid #edc77f;outline-offset:5px;border-radius:3px}

.consent-dialog{position:fixed;inset:auto 24px 24px auto;width:530px;max-width:calc(100vw - 48px);max-height:calc(100dvh - 48px);margin:0;border:1px solid #dce4e9;border-radius:18px;background:#fffefa;color:#18354d;padding:30px;box-shadow:0 20px 80px #0b26354d;overflow:auto;font:14px/1.7 var(--sans,Arial,sans-serif)}
.consent-dialog::backdrop{background:#0b243c45;backdrop-filter:blur(3px)}
.consent-dialog form{display:grid;gap:20px;margin:0;min-width:0}
.consent-dialog .consent-heading .eyebrow{font:700 10px/1.6 var(--sans,Arial,sans-serif);letter-spacing:.11em;text-transform:uppercase;color:#92713c;margin:0 0 10px}
.consent-dialog h2{font-family:var(--serif,Georgia,serif);font-size:30px;font-weight:400;line-height:1.2;letter-spacing:-.4px;color:#15344e;margin:0 0 14px;text-wrap:balance}
.consent-dialog #consent-description{font-size:13px;line-height:1.85;color:#5c7282;margin:0;max-width:none}
.consent-dialog .consent-choices{display:grid;gap:9px;min-width:0}
.consent-dialog .consent-choice{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;border:1px solid #e2e9ed;background:#f7f9fa;border-radius:9px;margin:0;cursor:pointer;min-height:65px;max-width:100%}
.consent-dialog .consent-choice:has(input:checked){border-color:#c6d5df;background:#eff5f8}
.consent-dialog .consent-choice input{appearance:auto;accent-color:#183a56;width:20px;height:20px;min-width:20px;margin:2px 0 0;padding:0;box-shadow:none;border-radius:4px}
.consent-dialog .consent-choice span{min-width:0}
.consent-dialog .consent-choice strong{display:block;color:#244159;font-size:13px;font-weight:700;line-height:1.6}
.consent-dialog .consent-choice small{display:block;color:#647987;font-size:12px;line-height:1.65;margin-top:1px}
.consent-dialog .consent-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:0;align-items:stretch}
.consent-dialog .consent-actions .button{font:700 13px/1.6 var(--sans,Arial,sans-serif);display:flex;align-items:center;justify-content:center;min-width:0;min-height:48px;padding:12px 15px;border-radius:8px;white-space:normal;text-align:center;letter-spacing:0;text-decoration:none;margin:0;cursor:pointer}
.consent-dialog .consent-actions .consent-primary{background:#173a56;color:#fff;border:1px solid #173a56;box-shadow:0 3px 9px #173a5614}
.consent-dialog .consent-actions .consent-primary:hover{background:#244e70;border-color:#244e70}
.consent-dialog .consent-actions .consent-secondary{background:#fffefa;color:#244159;border:1px solid #c3d0da;box-shadow:none}
.consent-dialog .consent-actions .consent-secondary:hover{background:#eff4f7;border-color:#9eb5c5}
.consent-dialog .consent-actions .consent-reject{grid-column:1/-1;display:block;width:100%;flex-basis:auto;border:0;background:transparent;color:#536c80;font:400 13px/1.65 var(--sans,Arial,sans-serif);padding:8px 12px;min-height:44px;cursor:pointer;text-decoration:underline;text-underline-offset:4px;box-shadow:none;border-radius:6px}
.consent-dialog .consent-actions .consent-reject:hover{color:#183a56;background:#f1f5f7}
.consent-dialog .consent-details{justify-self:center;color:#657d8e;font-size:11px;line-height:1.6;text-underline-offset:3px;padding:4px 0;margin-top:-12px;min-height:28px}
.consent-dialog :is(button,a,input):focus-visible{outline:3px solid #6d9fbe;outline-offset:3px}
@media(max-width:1100px){.site-footer .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 48px}.site-footer .footer-brand p{max-width:350px}.site-footer .footer-contact{max-width:350px}}
@media(max-width:600px){.site-footer{padding:38px 0 24px}.site-footer .footer-top{grid-template-columns:minmax(0,1fr);gap:27px;padding-bottom:27px}.site-footer .footer-brand{grid-column:auto}.site-footer .footer-brand .brand{margin-bottom:12px}.site-footer .footer-brand .brand img{width:176px}.site-footer .footer-brand p{font-size:14px;max-width:380px}.site-footer .footer-top h3{font-size:14px;margin:0 0 10px}.site-footer .footer-column>a:not(.footer-booking-link),.site-footer #contact-details a{font-size:14px;min-height:40px;padding:8px 0}.site-footer .footer-contact{max-width:100%}.site-footer .footer-contact p{font-size:14px}.site-footer .footer-contact .footer-booking-link{font-size:13px;min-height:48px;padding:12px 16px}.site-footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:16px;padding-top:20px}.site-footer .footer-bottom>span{order:1}.site-footer .footer-bottom>div{order:0;gap:3px 20px}.site-footer .footer-bottom a,.site-footer .footer-bottom button{font-size:12px;min-height:40px}.consent-dialog{inset:auto 12px 12px;width:auto;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:23px;border-radius:15px}.consent-dialog h2{font-size:27px}.consent-dialog #consent-description{font-size:13px}.consent-dialog .consent-choice{padding:11px 12px}.consent-dialog .consent-actions .button{font-size:12px;padding:11px 10px;min-height:47px}}
@media(max-width:370px){.consent-dialog{padding:20px}.consent-dialog form{gap:16px}.consent-dialog h2{font-size:26px}.consent-dialog .consent-actions{grid-template-columns:minmax(0,1fr)}.consent-dialog .consent-actions .consent-reject{grid-column:auto}.consent-dialog .consent-choices{gap:8px}.consent-dialog .consent-choice{padding:10px}.consent-dialog .consent-choice small{font-size:11px}}
