*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:99}
.skip:focus{top:8px}
h1,h2,h3{text-wrap:balance;font-weight:inherit}
p{text-wrap:pretty}
.ph{font-size:.82em;padding:.1em .45em;border:1px dashed currentColor;border-radius:3px;opacity:.75;white-space:normal}
[hidden]{display:none!important}

/* reveal: only hides things when JS is running and motion is allowed */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
  .js .rv.in{opacity:1;transform:none}
  .js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 26px;border:1.5px solid var(--ink);background:transparent;cursor:pointer;text-decoration:none;font-weight:600;transition:background .2s,color .2s,transform .2s,border-color .2s}
.btn:hover{transform:translateY(-2px)}
.btn--solid{background:var(--btn-bg,var(--ink));color:var(--btn-fg,var(--paper));border-color:var(--btn-bg,var(--ink))}
.copy{min-height:44px;padding:0 18px;border:1.5px solid currentColor;background:transparent;cursor:pointer;font-weight:600;font-size:.9rem;border-radius:999px}
.copy:hover{background:var(--ink);color:var(--paper)}

/* booking form (shared structure) */
.form{display:grid;gap:18px}
.form .row{display:grid;gap:18px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
.form label small{font-weight:400;opacity:.7}
.form input,.form select,.form textarea{width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--line-strong,#8a8277);background:var(--field,#fff);border-radius:var(--field-radius,4px);font-weight:400}
.form textarea{min-height:130px;resize:vertical}
.form-status{min-height:1.5em;font-size:.95rem}
.form-status.ok{font-weight:600}
@media(min-width:700px){.form .row{grid-template-columns:1fr 1fr}}

/* press kit, footer helpers */
.sheet-link{font-weight:600}
.nb{white-space:nowrap}
.cta__ph{margin-left:10px}
