/* Topic links stay in document flow; only #navigation is the header menu. */
.jump-links{font-size:.875rem}

/* Mobile and tablet corrections. Desktop rules remain in the existing sheets. */
@media(max-width:850px){
  :root{--page-gutter:clamp(20px,4vw,32px)}
  html{scroll-padding-top:calc(var(--site-header-height,100px) + 16px);scroll-padding-bottom:calc(var(--mobile-actions-height,0px) + 16px)}
  section[id]{scroll-margin-top:0}
  main,main>*,section>*,.section-heading>*,.hero-copy,.intro-copy,.launch-room-card,.card-body,.feature-link,.feature-section>*,.dining-banner>*,.event-banner>*,.contact-panel,.room-facts>*,.three-columns>*,.two-columns>*,.questions,.info-details,.info-details>div{min-width:0}
  .section-wrap{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
  header{gap:12px;flex-wrap:wrap;padding:16px var(--page-gutter)}
  header .wordmark{font-size:1.65rem}
  .menu-toggle{gap:8px;min-height:44px;margin-left:auto;flex-shrink:0}
  #navigation{max-height:calc(100vh - var(--site-header-height,100px) - var(--mobile-actions-height,0px) - 16px);max-height:calc(100dvh - var(--site-header-height,100px) - var(--mobile-actions-height,0px) - 16px);overflow-y:auto;overscroll-behavior:contain;padding:16px var(--page-gutter)}
  #navigation>a{min-height:44px}
  .jump-links{position:static;inset:auto;display:flex;flex-direction:row;align-items:stretch;flex-wrap:wrap;width:auto;max-height:none;gap:10px;box-shadow:none;padding-top:0;padding-bottom:28px}
  .jump-links a{max-width:100%;min-height:44px;display:flex;align-items:center;white-space:normal}

  .hero{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;min-height:0}
  .hero-copy{padding:44px var(--page-gutter) 36px}
  .hero-copy h1{font-size:clamp(3rem,8.5vw,4.8rem);line-height:1.08;max-width:100%}
  .hero-detail{max-width:38rem}
  .hero-foot{max-width:100%;gap:12px;margin-top:30px;align-items:center}
  .hero-foot>span:last-child{min-width:0;overflow-wrap:anywhere}
  .hero-foot .fine-line{width:20px}
  /* A minimum height must not transfer through an aspect ratio into a wider
     automatic grid-item width on phones. Let width follow the page directly. */
  .hero-photo.hero-carousel{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;width:100%;min-width:0;max-width:100%;aspect-ratio:auto;min-height:clamp(22rem,75vw,40rem);justify-self:stretch}
  .hero-carousel .hero-slides{grid-column:1;grid-row:1/-1;width:100%;min-width:0;max-width:100%;overflow:hidden}
  .hero-carousel .hero-slide{width:100%;min-width:0;max-width:100%;overflow:hidden}
  .hero-carousel .hero-slide img{display:block;width:100%;min-width:0;max-width:100%;height:100%;object-fit:cover}
  .hero-carousel .photo-label{position:relative;grid-column:1;grid-row:2;align-self:end;left:auto;right:auto;bottom:auto;margin:0 var(--page-gutter) 14px;max-width:100%;font-size:clamp(1.5rem,4.5vw,2.3rem);line-height:1.15;white-space:normal}
  .hero-carousel .hero-photo-caption{position:relative;grid-column:1;grid-row:3;left:auto;right:auto;bottom:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;margin:0 var(--page-gutter) 22px;padding-top:14px;line-height:1.5}
  .hero-photo-caption>span{min-width:0;overflow-wrap:anywhere}
  .hero-carousel::after{background:linear-gradient(180deg,transparent 45%,#0c271ada 100%)}

  .intro{grid-template-columns:minmax(0,1fr);gap:24px}
  .intro-copy{padding-top:0;max-width:none}
  .section-heading{align-items:flex-start;gap:18px}
  .section-heading .text-link{margin-top:0}
  .launch-room-grid{grid-template-columns:minmax(0,1fr)}
  .launch-room-card{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facility-photos{grid-template-rows:minmax(0,1fr);min-width:0}
  .feature-link .facility-photos img{display:block;min-width:0;min-height:0}
  .feature-section,.home-celebrate,.dining,.faq,.contact-panels{grid-template-columns:minmax(0,1fr);row-gap:32px}
  .feature-section .feature-visual{position:static}
  .dining-banner,.event-banner{grid-template-columns:minmax(0,1fr);gap:28px;padding:clamp(20px,4vw,32px)}
  .home-banquet-photo .photo-open{aspect-ratio:4/3}
  .room-facts{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr)}
  .event-capacities{flex-wrap:wrap;gap:24px}
  .event-capacities>div{flex:1 1 110px;min-width:0}
  .contact-panel{padding:clamp(18px,4vw,28px)}
  .contact-panel a,.breadcrumb,.policy-links a{overflow-wrap:anywhere}
  .action-row{max-width:100%;gap:12px}
  .button,.text-link{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
  .button{justify-content:center;text-align:center;gap:12px}
  .booking-strip{align-items:flex-start}
  .booking-strip .button{flex-shrink:1}
  .table-scroll{width:100%;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
  .table-scroll th,.table-scroll td{overflow-wrap:anywhere}
  .table-scroll thead th{white-space:normal}
  .info-details>summary{gap:14px;line-height:1.55;overflow-wrap:anywhere;align-items:flex-start}
  .info-details>summary>span{flex:0 0 20px;text-align:center}
  .site-footer .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-footer .footer-bottom{min-width:0}
  .social-links{flex-wrap:wrap;gap:12px 20px}
  #photo-viewer{max-width:96vw;max-height:94vh;max-height:94dvh;padding:14px}
  .viewer-top{position:sticky;top:0;z-index:1;background:var(--deep);padding-bottom:8px}
  .viewer-top,.viewer-controls{flex-wrap:wrap;gap:10px}
  #viewer-caption{font-size:clamp(1.3rem,4.5vw,1.6rem);line-height:1.25;overflow-wrap:anywhere}
  #photo-viewer button{max-width:100%}
}

@media(max-width:700px){
  /* Size each stacked group to its longest label, including padding and arrow. */
  .action-row,.membership-join-actions{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;width:max-content;max-width:100%}
  .action-row>.button,.membership-join-actions>.button{width:100%;justify-content:center;text-align:center}
  h2{font-size:clamp(2.1rem,8vw,3rem);line-height:1.1;overflow-wrap:anywhere}
  .page-intro h1{font-size:clamp(2.35rem,10vw,3.8rem);line-height:1.08;overflow-wrap:anywhere}
  .hero-copy h1{font-size:clamp(3rem,12vw,4.5rem)}
  .dining-title h2{font-size:clamp(2.1rem,8.6vw,3.4rem)}
  .dining-banner h2,.event-banner h2,.contact-panel h2,.booking-strip h2,.reading-section>h2{font-size:clamp(2rem,8vw,2.8rem);line-height:1.12}
  .dining-banner h3,.three-columns h3,.two-columns h3{font-size:clamp(1.8rem,7vw,2.2rem);line-height:1.15;overflow-wrap:anywhere}
  .eyebrow{max-width:100%;overflow-wrap:anywhere}
  .launch-room-card{display:flex;flex-direction:column}
  .card-image{height:auto;aspect-ratio:1.55;flex:none}
  .card-image img{display:block}
  .card-body{padding:24px}
  .card-body h3{font-size:clamp(2rem,8vw,2.4rem);line-height:1.12}
  .home-experiences{grid-template-columns:minmax(0,1fr);gap:34px}
  .three-columns,.two-columns{grid-template-columns:minmax(0,1fr);gap:28px}
  .three-columns>div:last-child{grid-column:auto}
  .detail-gallery{display:flex;flex-direction:column;max-height:none;gap:8px}
  .detail-gallery .gallery-lead{height:auto;max-height:none;aspect-ratio:1.55;flex:none}
  .gallery-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
  .gallery-rail .photo-open{height:80px;min-width:0}
  .gallery-rail .photo-zoom{display:none}
  .room-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
  .room-facts>div:nth-child(2){grid-column:1/-1;grid-row:2}
  .room-facts strong{font-size:1.8rem;overflow-wrap:anywhere}
  .home-dining-photo .photo-open{aspect-ratio:1.4}
  .paired-photos{grid-template-columns:minmax(0,1fr)}
  .paired-photos .photo-open{aspect-ratio:1.7}
  .event-capacities strong{font-size:clamp(3.5rem,14vw,4.5rem)}
  .large-contact{font-size:clamp(1.7rem,7vw,2.1rem)}
  .policy-links{align-items:flex-start;flex-direction:column}
}

@media(max-width:580px){
  body{padding-bottom:var(--mobile-actions-height,calc(58px + env(safe-area-inset-bottom,0px)))}
  .mobile-actions{left:0;right:0;width:100%;max-width:100vw;min-width:0;box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
  .mobile-actions a{width:100%;min-width:0;max-width:100%;padding:12px 6px;text-align:center;overflow-wrap:anywhere;line-height:1.4}
  .hero-copy .action-row{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-copy .action-row .button{width:100%;padding:14px 10px;line-height:1.4}
  .viewer-controls>span{display:none}
}

@media(max-width:380px){
  .card-body{padding:20px}
  .hero-copy .action-row{grid-template-columns:minmax(0,1fr);width:max-content;max-width:100%}
  .site-footer .footer-top{grid-template-columns:minmax(0,1fr)}
  .footer-top>div{grid-column:auto}
}
