.contact-page{--contact-max:1180px;--contact-side:clamp(20px,5vw,72px);--contact-gap:clamp(42px,6vw,88px);--contact-hero-title:clamp(3rem,calc(1.85rem + 4.7vw),7.2rem);--contact-title:clamp(2.55rem,calc(1.65rem + 3.55vw),5.4rem);overflow-x:clip;background:#15110f}
.contact-page main{overflow:clip}
.contact-wrap{width:min(var(--contact-max),calc(100% - var(--contact-side) - var(--contact-side)));margin-inline:auto}
.contact-page :where(h1,h2,p,form){min-width:0;overflow-wrap:break-word}
.contact-site-header{position:absolute;z-index:20;inset:0 0 auto;height:0;overflow:visible}
.contact-hero{position:relative;display:grid;align-items:end;min-height:640px;height:min(82vh,820px);height:min(82svh,820px);overflow:hidden;isolation:isolate;background:#17110e}
.contact-hero::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 78% 38%,rgba(218,105,34,.22),transparent 0 18%,rgba(218,105,34,.08) 18.2% 29%,transparent 29.2%),linear-gradient(125deg,transparent 0 58%,rgba(255,255,255,.035) 58% 58.3%,transparent 58.3%),linear-gradient(180deg,#211711,#110d0b)}
.contact-hero-inner{width:min(var(--contact-max),calc(100% - var(--contact-side) - var(--contact-side)));margin-inline:auto;padding-bottom:clamp(72px,11vh,120px)}
.contact-kicker,.contact-number{margin:0 0 18px;color:#e37833;font-size:.72rem;font-weight:900;letter-spacing:.18em;line-height:1.3;text-transform:uppercase}
.contact-hero h1,.contact-page h2{margin:0;font-weight:900;letter-spacing:-.065em;text-transform:uppercase}
.contact-hero h1{max-width:1050px;color:#fff;font-size:var(--contact-hero-title);line-height:1.01}
.contact-hero h1 span{display:block}
.contact-hero-inner>p:last-child{max-width:650px;margin:30px 0 0;color:#cabbb0;font-size:clamp(1rem,1.8vw,1.3rem);line-height:1.55}
.contact-section{padding:clamp(84px,11vw,156px) 0}
.contact-page h2{font-size:var(--contact-title);line-height:1.03}
.contact-page p{font-size:clamp(1rem,1.4vw,1.17rem);line-height:1.68}
.contact-booking{background:#181311;color:#cfc1b4}
.contact-booking-grid,.contact-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:var(--contact-gap)}
.contact-booking h2{max-width:740px;color:#f4ede4}
.contact-booking-copy{align-self:end}
.contact-booking-copy p{max-width:540px;margin:0;color:#cfc1b4}
.contact-booking-copy .button{margin-top:30px}
.contact-form-section{background:#eee5d9;color:#2b211a}
.contact-form-section .contact-number{color:#a94b24}
.contact-form-section h2{max-width:760px;color:#211a16}
.contact-form-heading>p:last-child{margin:30px 0 0;color:#8f3d1d;font-size:clamp(1.2rem,2vw,1.55rem);font-weight:900}
.contact-form-panel{min-width:0;padding:clamp(26px,4vw,48px);background:#e3d6c7}
.contact-status{margin:0 0 28px;padding:16px 18px;border-left:3px solid #a94b24;background:rgba(255,255,255,.34);color:#4d2b1b;font-size:.95rem!important;font-weight:800}
.contact-status.is-error{border-left-color:#6d321c}
.contact-form{display:grid;gap:24px}
.contact-field{display:grid;gap:9px}
.contact-field label{color:#37261d;font-size:.75rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.contact-field label span{color:#a94b24}
.contact-field label small{color:#846d5d;font-size:.65rem;font-weight:800;letter-spacing:.06em}
.contact-field :where(input,select,textarea){width:100%;border:1px solid rgba(54,35,24,.28);border-radius:0;background:#f7f0e7;color:#211a16;font:inherit;font-size:1rem;line-height:1.45}
.contact-field :where(input,select){min-height:50px;padding:11px 13px}
.contact-field textarea{min-height:170px;padding:13px;resize:vertical}
.contact-field :where(input,select,textarea):focus{outline:2px solid #d96a22;outline-offset:2px}
.contact-submit{justify-self:start;border:0;font-family:inherit;cursor:pointer}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-footer{display:flex;justify-content:space-between;gap:24px;padding-block:28px;padding-inline:max(var(--contact-side),calc((100% - var(--contact-max))/2));background:#0e0b09;color:rgba(255,255,255,.5);font-size:.74rem;letter-spacing:.04em}
.contact-footer a{color:var(--accent);font-weight:900;text-decoration:none}
.back-to-top{position:fixed;z-index:30;right:clamp(16px,2vw,24px);bottom:max(clamp(16px,2vw,24px),env(safe-area-inset-bottom));width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(18,15,13,.76);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#f2e8df;font-family:inherit;font-size:1.1rem;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 6px 22px rgba(0,0,0,.16)}
.back-to-top:hover{background:rgba(38,28,23,.9)}
.back-to-top:focus-visible{outline:2px solid #f18a4d;outline-offset:3px}
.back-to-top[hidden]{display:none}

@media(max-width:760px){
  .contact-hero{height:auto;min-height:680px}
  .contact-hero-inner{padding-top:150px;padding-bottom:88px}
  .contact-hero h1{font-size:clamp(2.55rem,11.6vw,4.2rem);line-height:1.04}
  .contact-booking-grid,.contact-form-grid{grid-template-columns:1fr}
  .contact-booking-copy{align-self:auto}
  .contact-footer{flex-direction:column}
}

@media(max-width:520px){
  .contact-form-panel{padding:28px 22px}
}

@media(prefers-reduced-motion:reduce){.contact-page *,.contact-page *::before,.contact-page *::after{scroll-behavior:auto!important;transition:none!important}}
