/* Explicit SVG paths keep controls consistent across phone and desktop fonts. */
.icon{display:inline-block;width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
/* The triangle path's visual weight is centred in its viewBox; no extra x-offset. */
.icon-play{display:block;fill:currentColor;stroke:none;width:17px;height:17px;transform:none}
.play-small,.play-large{padding:0;flex-shrink:0}
.play-large .icon{width:30px;height:30px;transform:none}
.button{min-height:44px;padding:10px 20px;gap:28px;line-height:1}
.button>span,.nav-booking>span{display:flex;align-items:center;font-size:inherit;line-height:1}
.header nav .nav-booking{min-height:44px;padding:8px 16px;align-items:center;line-height:1}
.photo-open{width:40px;height:40px;color:var(--text)}
.photo-open .icon{width:20px;height:20px}
/* Only horizontal browsing belongs to the video rail. Off-screen reveal
   transforms must not create an independently scrollable vertical area. */
.video-rail{overflow-y:hidden}
/* Keep the original thirds above, then show the additional photos in pairs. */
.photo-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.photo-grid>figure{grid-column:span 2}
.photo-grid .photo-tall{grid-column:1/3}
.photo-grid .photo-wide{grid-column:3/-1}
.photo-grid .photo-pair{grid-column:span 3}
.photo-grid .photo-landscape button{aspect-ratio:3/2}
@media(max-width:520px){
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .photo-grid>figure,.photo-grid .photo-wide,.photo-grid .photo-pair{grid-column:auto}
  .photo-grid .photo-tall,.photo-grid .photo-blue,.photo-grid .photo-landscape{grid-column:1/-1}
  .photo-grid .photo-landscape button{aspect-ratio:3/2!important}
}
figcaption a,.text-link,.rider-note a,.footer>a:last-child,.dialog-toolbar a{display:inline-flex;align-items:center;gap:8px}
figcaption a{min-height:44px}
figcaption a .icon,.text-link .icon,.rider-note .icon,.footer .icon,.dialog-toolbar a .icon{width:16px;height:16px}
.rail-controls button,.lightbox-prev,.lightbox-next{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0}
.document-icon .icon{width:24px;height:24px}
.dialog-toolbar button .icon{width:22px;height:22px}
.hero-actions{margin-top:38px}
.hero-subtitle{margin-bottom:0}
.hero-content{filter:drop-shadow(0 2px 18px #10091045)}
.contact-layout{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:clamp(45px,9vw,150px);margin-top:60px;padding-top:40px;border-top:1px solid #d0b5c43a;align-items:start}
.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:22px;min-width:0}
.contact-details p{color:#d1becd;font-size:13px;line-height:1.9;margin-bottom:16px}
.contact-email{font-size:clamp(18px,1.9vw,28px);overflow-wrap:anywhere}
.contact-email span{margin-left:10px}
.contact-form{position:relative;display:flex;flex-direction:column;gap:25px;width:100%;max-width:530px;justify-self:end}
.form-honeypot{position:absolute;left:-10000px;height:1px;width:1px;overflow:hidden;pointer-events:none}
.contact-field{position:relative}
.contact-field label{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.contact-field input,.contact-field textarea{display:block;width:100%;appearance:none;-webkit-appearance:none;border:0;border-bottom:1px solid #d0b5c470;border-radius:0;background:transparent;color:var(--text);padding:13px 0;font:16px/1.6 Manrope,Arial,sans-serif;transition:border-color .25s,box-shadow .25s}
.contact-field textarea{resize:vertical;min-height:120px;max-height:400px}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:#c9b6c5a8;font-size:13px}
.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:var(--cream);box-shadow:0 8px 16px -12px #e5bac0}
.contact-field input:-webkit-autofill,.contact-field input:-webkit-autofill:hover,.contact-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px #342630 inset;caret-color:var(--text)}
.form-submit{display:flex;align-items:center;justify-content:flex-start;gap:25px;align-self:start;background:transparent;padding:12px 0;text-transform:uppercase;letter-spacing:.2em;font-size:10px;min-height:44px}
.form-submit .icon{transition:transform .25s}
.form-submit:hover .icon{transform:translateX(5px)}
.form-submit:disabled{opacity:.55;cursor:wait}
.form-status{font-size:13px;line-height:1.8;outline:none}
.form-status:empty{display:none}
.form-status[data-state=error]{color:#ffbdc5}
.form-status[data-state=success]{color:var(--cream)}
.form-note{font-size:10px;line-height:1.7;color:#c9b6c5b0}
@media(max-width:800px){.contact-layout{grid-template-columns:1fr;gap:45px;margin-top:40px;padding-top:30px}.contact-form{max-width:none}.contact-details p{margin-bottom:2px}.contact-details{gap:16px}.hero-content{filter:drop-shadow(0 2px 12px #100910a0)}.photo-open{width:36px;height:36px}.photo-open .icon{width:19px;height:19px}.photo-grid .photo-tall button{height:calc(100% - 44px)}}
@media(max-width:520px){.hero-content{padding-top:250px}.hero{min-height:780px}.hero-art img{object-position:82% top}.hero-art::after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#140e1555)}.hero-actions{gap:20px;margin-top:28px}.photo-grid .photo-tall button{height:auto}.contact-details .contact-email{font-size:20px}.photo-dialog-image{bottom:110px}.lightbox-prev,.lightbox-next{bottom:30px}}
@media(prefers-reduced-motion:reduce){.form-submit .icon{transition:none}}
