/* Photographs get their own space and retain the full source composition. */
.subhero {
  display:grid; grid-template-columns:1fr 1.05fr; align-items:center;
  gap:6%; padding:150px 6% 65px; height:auto; min-height:0;
}
.subhero-copy { grid-column:1; grid-row:1; width:100%; min-height:0; padding:0; }
.subhero h1 { font-size:clamp(44px,5.2vw,78px); }
.subhero-media { grid-column:2; grid-row:1; background:var(--surface); }
.subhero-photo { position:static; width:100%; height:auto; max-height:560px; object-fit:contain; }
.subhero-media:focus-visible { outline-offset:8px; }
.room-image,.home-rooms .room-image { height:clamp(300px,36vw,460px); background:var(--panel-bg); }
.home-rooms .room-image { height:clamp(270px,28vw,360px); }
.room-image img { object-fit:contain; }
.room-image:hover img { transform:none; }
.room-tag { top:12px; left:12px; border:1px solid var(--border); }
.detail-dialog .dialog-room-image { width:100%; height:auto; max-height:62svh; object-fit:contain; background:var(--panel-bg); }
.dining-image img,.wellness-grid img,.about-photo img { width:100%; height:auto; object-fit:contain; }
.intro-images { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:18px; min-height:0; }
.intro-main,.intro-small { position:static; width:100%; height:auto; border:0; transform:none; box-shadow:0 12px 32px #21101618; }
.intro-main img,.intro-small img { width:100%; height:auto; object-fit:contain; }
.intro-seal { position:static; grid-column:1 / -1; justify-self:center; width:100px; height:100px; margin-top:5px; }
.weddings {
  display:grid; grid-template-columns:1fr 1.1fr; align-items:center; gap:45px 7%;
  height:auto; min-height:0; padding:90px 7%; overflow:visible;
}
.wedding-copy { position:static; inset:auto; grid-column:1; grid-row:1 / span 2; width:100%; max-width:none; padding:0; }
.wedding-copy h2 { font-size:clamp(45px,4.7vw,70px); }
.wedding-main { grid-column:2; grid-row:1; background:var(--surface); }
.wedding-main img { width:100%; height:auto; object-fit:contain; }
.wedding-photo { position:static; grid-column:2; grid-row:2; width:74%; max-width:none; justify-self:end; margin:0; transform:none; box-shadow:0 10px 25px #21101620; }
.wedding-photo img { width:100%; height:auto; object-fit:contain; }
.wedding-photo span { padding:14px 8px; line-height:1.5; }
.photo-dialog { width:min(95vw,1200px); max-width:95vw; color:var(--panel-text); }
.photo-dialog img { display:block; width:auto; height:auto; max-height:calc(92svh - 80px); max-width:100%; margin:auto; object-fit:contain; }
.photo-dialog p { max-width:90vw; margin:0 auto; overflow-wrap:anywhere; }
.facade-thumbnails { display:block; }
.facade-thumbnails>span { display:block; max-width:none; margin-bottom:10px; }
.facade-thumbnails>div { display:flex; flex-wrap:wrap; gap:9px; }
.exterior-thumbnail img { object-fit:contain; }
@media(max-width:1100px) {
  .subhero { gap:5%; padding-top:145px; }
  .intro-images { grid-template-columns:1fr 1fr; gap:12px; }
  .wedding-copy h2 { font-size:48px; }
}
@media(max-width:800px) {
  .subhero { grid-template-columns:1fr; gap:30px; padding:120px 7% 55px; }
  .subhero-copy { grid-column:1; grid-row:1; padding:0; }
  .subhero-media { grid-column:1; grid-row:2; }
  .subhero-photo { position:static; height:auto; max-height:500px; }
  .subhero h1 { font-size:clamp(40px,9vw,62px); margin-bottom:20px; }
  .subhero-copy>p:last-child { margin-bottom:0; }
  .room-image,.home-rooms .room-image { height:420px; }
  .intro-images { grid-template-columns:1.2fr 1fr; max-width:540px; }
  .intro-seal { width:95px; height:95px; }
  .weddings { grid-template-columns:1fr; gap:35px; padding:65px 7%; }
  .wedding-copy { grid-column:1; grid-row:1; }
  .wedding-main { grid-column:1; grid-row:2; }
  .wedding-photo { grid-column:1; grid-row:3; width:85%; max-width:420px; }
  .detail-dialog .dialog-room-image { height:auto; max-height:58svh; }
  .facade-thumbnails>span { text-align:center; }
  .facade-thumbnails>div { justify-content:center; gap:7px; }
}
@media(max-width:400px) {
  .room-image,.home-rooms .room-image { height:360px; }
  .subhero h1 { font-size:40px; }
  .wedding-copy h2 { font-size:42px; }
  .wedding-photo { width:100%; }
  .intro-images { grid-template-columns:1fr; }
  .intro-small { width:70%; justify-self:end; }
  .intro-seal { grid-column:1; }
}
