/* Shared readability layer, loaded after the original page styles. */
.privacy-page { padding-block:64px 88px; }
.privacy-page h1 { margin-bottom:20px; }
.privacy-copy { max-width:760px; margin-top:44px; }
.privacy-copy h2 { font-size:1.75rem; margin-top:36px; margin-bottom:12px; }
.privacy-copy p { font-size:1rem; line-height:1.75; }
.privacy-copy a, .privacy-link a { font-weight:600; }
.privacy-link { font-size:.875rem; margin-top:20px; }
@media(max-width:760px) { .privacy-page { padding-block:40px 64px; } }
html { -webkit-text-size-adjust: 100%; }
body { overflow-wrap: break-word; }
button { font-family: inherit; }
button:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }

/* Essential information remains full size on phones. */
.intro, .page-intro, .dorm-hero .page-intro,
.section-heading > p, .step-copy p, .info-grid p,
.help-intro > p:not(.eyebrow), .help-more > div > p:not(.eyebrow),
.dorm-questions > div > p:not(.eyebrow), .page-links p,
.pod-copy > p, .room-heading > p, .room-card-copy > p:not(.room-label),
.arrival-photo-grid p, .walkthrough-copy > p:not(.eyebrow),
.dorm-next p:not(.eyebrow), details p {
  font-size: 1rem;
  line-height: 1.7;
}
summary, .pod-questions summary { font-size: 1rem; line-height: 1.5; }
.dorm-facts, .pod-facts > div { font-size: 1rem; line-height: 1.6; }
.room-card-copy > p.room-facilities,
.dorm-note, .booking-note, .hotel-reference, .dorm-bathroom-note,
.arrival-booking-note, .hero-footnote, .update-note, .video-status,
.pod-copy > p.pod-note, .dorm-hero-media figcaption, .dorm-photo-grid figcaption,
.pod-dialog-bottom p, .footer-inner p span, .footer-small {
  font-size: .875rem;
  line-height: 1.6;
}
.eyebrow, .small-label, .hero-copy .eyebrow, .section-heading .eyebrow,
.walkthrough-copy .eyebrow, .dorm-hero .eyebrow,
.step-copy .small-label, .info-grid .small-label, .page-links .small-label,
.arrival-photo-grid .small-label, .room-label, .pod-category,
.pod-signoff > span, .arrival-nav-inner > span,
.hero-main-photo figcaption span:first-child {
  font-size: .75rem;
  line-height: 1.6;
  letter-spacing: .12em;
}
.button, .site-header .header-action, .site-header nav a,
.footer-nav, .footer-inner > a:last-child, .breadcrumbs, .dorm-switcher a,
.text-link, .help-page .text-link, .help-more .text-link,
.dorm-hero-copy .text-link, .dorm-next .text-link, .pod-copy .text-link,
.page-link-action, .room-gallery-button, .video-open,
.arrival-nav-inner a, .pod-dialog button {
  font-size: .875rem;
  line-height: 1.5;
}
.text-link, .page-link-action, .room-gallery-button { min-height: 44px; }
.room-photo-count, .photo-enlarge, .dorm-photo-grid a > span {
  font-size: .75rem;
  line-height: 1.5;
}
.site-header nav { flex-wrap: wrap; gap: 8px 24px; }
.site-header nav a { min-height: 44px; }
.button { max-width: 100%; gap: 20px; white-space: normal; }
.button > span, summary > span { flex-shrink: 0; }
.hero > *, .dorm-hero > *, .walkthrough-grid > *, .help-section > *,
.help-more > *, .page-links > *, .dorm-photo-grid > *,
.arrival-photo-grid > *, .room-cards > *, .pods-grid > * { min-width: 0; }
.dorm-facts dt, .dorm-facts dd, .pod-facts dt, .pod-facts dd {
  min-width: 0; overflow-wrap: anywhere;
}
.dorm-facts dt, .pod-facts dt { flex: 1; }
.dorm-facts dd, .pod-facts dd { flex: 1.35; }
.pod-dialog { overflow-y: auto; overscroll-behavior: contain; }
.pod-dialog-top > span, .pod-dialog-bottom p { min-width: 0; }
.pod-dialog button { flex-shrink: 0; }
.pod-dialog-top { position: sticky; top: 0; z-index: 1; background: var(--cream); }
.pod-dialog-image { height: min(58dvh, 620px); }

@media (max-width: 760px) {
  .site-header { gap: 14px; }
  .site-header nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
  .site-header nav a { justify-content: center; text-align: center; padding: 8px 2px; }
  .site-header .booking-action { font-size: .875rem; }
  h1, .page-heading h1, .arrival-section h1, .help-page h1, .dorm-hero h1 {
    font-size: clamp(2.25rem, 8.8vw, 2.75rem);
    letter-spacing: -.035em;
    line-height: 1.12;
  }
  .dorm-switcher { gap: 8px; }
  .dorm-switcher a { flex: 1 1 140px; justify-content: center; text-align: center; }
  .booking-buttons { flex-direction: column; align-items: stretch; }
  .booking-buttons .button { width: 100%; }
  .dorm-hero-media img { height: auto; max-height: 480px; }
  .arrival-video { max-width: min(100%, 320px); }
  .dorm-photo-grid { grid-template-columns: 1fr; gap: 24px; }
  .dorm-photo-grid img { height: auto; aspect-ratio: 4 / 3; }
  .pod-dialog-top, .pod-dialog-bottom { gap: 10px; padding: 12px; }
  .pod-dialog-bottom { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .pod-dialog-bottom p { overflow-wrap: anywhere; }
  .pod-dialog-image { height: 48dvh; }
  .footer-nav { gap: 8px 24px; }
}
@media (max-width: 360px) {
  .site-header { padding-left: 16px; padding-right: 16px; }
  .wrap { width: calc(100% - 32px); }
  .dorm-facts > div, .pod-facts > div { gap: 12px; }
  .room-card-copy { padding: 20px 16px; }
  .hero-main-photo figcaption span:last-child { font-size: 21px; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .pod-dialog { max-height: calc(100dvh - 16px); }
  .pod-dialog-image { height: 42dvh; }
}

/* Guest help topic links and direct contact details. */
.faq-jumps { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:24px; }
.faq-jumps a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; font-weight:600; }
.guest-contact { font-size:.875rem; line-height:1.7; margin-top:18px; }
.guest-contact a { display:inline-block; padding:10px 0; }
.arrival-booking-note a, .info-grid p a, .dorm-next p a { font-weight:600; }

/* Matching borders keep action labels and arrows on the same inner edges. */
.button { border: 1px solid transparent; }
.button-outline, .dorm-hero-copy button.button-outline { border-color: var(--green); }
.button > span, .header-action > span { display: inline-block; width: 1.25em; text-align: center; line-height: 1; }

/* One mobile content grid, shared by every page and the header. */
@media (max-width: 760px) {
  :root { --mobile-gutter: 24px; }
  .wrap { width: calc(100% - 2 * var(--mobile-gutter)); }
  .site-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-inline: var(--mobile-gutter);
    column-gap: 14px;
  }
  .site-header > .wordmark { justify-self: start; }
  .site-header > .header-action { grid-column: 2; grid-row: 1; justify-self: end; }
  .site-header nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.3fr) minmax(0, 1.1fr);
    gap: 4px;
    align-items: stretch;
  }
  .site-header nav a {
    justify-content: center;
    text-align: center;
    padding-inline: 0;
    white-space: nowrap;
  }
  .faq-jumps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 16px;
    align-items: stretch;
  }
  .faq-jumps a {
    min-width: 0;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left;
    padding-block: 11px;
    margin: 0;
  }
  .booking-buttons { display: grid; grid-template-columns: minmax(0, 1fr); }
  .booking-buttons .button, .page-cta .button, .dorm-next .button { width: 100%; }
}
/* Shared spaces and attributed guest excerpts follow the existing page grid. */
.shared-spaces { padding-block: 72px; }
.facility-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.facility-card { min-width:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--paper); }
.facility-card { display:flex; flex-direction:column; }
.facility-card img { width:100%; height:260px; object-fit:cover; }
.facility-card figure { position:relative; }
.facility-card figcaption { padding:10px 24px; font-size:.875rem; border-bottom:1px solid var(--line); }
.facility-copy { padding:28px 24px; display:flex; flex:1; flex-direction:column; }
.facility-copy .small-label, .communal-kitchen .small-label { margin-bottom:12px; }
.facility-copy h3 { margin-bottom:16px; }
.facility-copy p:not(.small-label), .communal-kitchen p:not(.small-label) { font-size:1rem; line-height:1.7; }
.facility-copy p.facility-note { font-size:.875rem; line-height:1.6; color:var(--muted); }
.facility-copy .facility-note { margin-top:14px; }
.shared-spaces .text-link, .guest-reviews .text-link { display:inline-flex; align-items:center; gap:20px; margin-top:18px; }
.facility-copy .text-link { align-self:flex-start; margin-top:auto; padding-top:18px; }
.communal-kitchen { display:grid; grid-template-columns:1fr 1.35fr; gap:32px; margin-top:28px; padding:28px 24px; border:1px solid var(--line); border-radius:8px; }
.communal-kitchen > * { min-width:0; }
.communal-kitchen > div:last-child { display:flex; flex-direction:column; min-height:0; }
.communal-kitchen > div:last-child .text-link { align-self:flex-start; margin-top:auto; padding-top:18px; }
.guest-reviews { padding-block:64px; background:var(--mint); border-top:1px solid var(--line); }
.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.review-card { display:flex; flex-direction:column; min-width:0; padding:28px 24px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.review-card blockquote { margin:0 0 24px; flex:1; }
.review-card blockquote p { font-family:var(--serif); font-size:1.5rem; line-height:1.4; text-indent:-.4em; }
.review-card figcaption { font-size:.875rem; line-height:1.6; }
.review-card figcaption span { display:block; color:var(--muted); }
@media (max-width:760px) {
  .shared-spaces { padding-block:48px; }
  .facility-grid, .review-grid, .communal-kitchen { grid-template-columns:minmax(0,1fr); gap:24px; }
  .facility-card img { height:auto; aspect-ratio:4/3; }
  .facility-card:nth-child(2) img { aspect-ratio:816/350; }
  .facility-copy, .review-card, .communal-kitchen { padding:24px; }
  .guest-reviews { padding-block:48px; }
}

/* The supplied arch monogram replaces the decorative G/Auckland stamp. */
.station-stamp img { width: 61%; height: 67%; object-fit: contain; }

/* Temporary supplied Georgie logo, shared by the header and footer. */
.wordmark {
  display: inline-block;
  flex: 0 0 auto;
}
.wordmark > span { display: block; }
.wordmark img {
  display: block;
  width: 180px;
  height: auto;
}
.footer-inner .wordmark img { width: 180px; }
@media (max-width:760px) {
  .site-header .wordmark img { width: 150px; }
  .footer-inner .wordmark img { width: 165px; }
}
@media (max-width:360px) {
  .site-header .wordmark img { width: 128px; }
}

/* Keep the desktop brand modest and give each navigation item breathing room. */
@media (min-width: 761px) {
  .site-header .wordmark img { width: 150px; }
  .site-header nav { gap: clamp(26px, 3vw, 44px); }
}

/* The verified shared-kitchen photograph sits beside its existing description. */
.communal-kitchen { grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); grid-template-rows:auto 1fr; }
.kitchen-photo { grid-column:1; grid-row:1 / 3; }
.kitchen-photo img { width:100%; height:auto; max-height:440px; object-fit:cover; border-radius:6px; }
.kitchen-photo figcaption { font-size:.875rem; line-height:1.6; margin-top:10px; color:var(--muted); }
.communal-kitchen > div { grid-column:2; }
@media (min-width:761px) {
  .communal-kitchen > div:last-child { grid-row:2; }
}
@media (max-width:760px) {
  .communal-kitchen { grid-template-columns:minmax(0,1fr); grid-template-rows:none; }
  .kitchen-photo, .communal-kitchen > div { grid-column:auto; grid-row:auto; }
  .kitchen-photo img { max-height:none; }
}

/* Location benefits retain the existing palette, type and shared page container. */
.location-feature { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:56px; padding-block:64px; border-top:1px solid var(--line); align-items:start; }
.location-feature > * { min-width:0; }
.location-photo { position:sticky; top:24px; }
.location-photo img { width:100%; height:auto; border-radius:8px; }
.location-reason { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.location-reason h3 { font-size:1.75rem; line-height:1.2; margin-bottom:12px; }
.location-reason p { font-size:1rem; line-height:1.7; }
.location-reason .text-link { display:inline-flex; align-items:center; gap:20px; margin-top:12px; }
@media (max-width:760px) {
  .location-feature { grid-template-columns:minmax(0,1fr); gap:28px; padding-block:40px; }
  .location-photo { position:static; }
  .location-reason { margin-top:24px; }
  .location-copy > .button { width:100%; }
}

/* Compact homepage: room choice first, then location, facilities and booking. */
.home-dorms { padding-block:48px; border-top:1px solid var(--line); }
.dorm-comparison { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.dorm-comparison > a { display:flex; flex-direction:column; min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.dorm-comparison img { width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; }
.dorm-comparison > a > div { display:flex; flex:1; flex-direction:column; padding:20px; }
.dorm-comparison h3 { font-family:Cambria,'Times New Roman',serif; font-variant-numeric:lining-nums; font-size:1.5rem; line-height:1.2; }
.dorm-comparison p { margin-top:8px; font-size:.875rem; color:var(--muted); }
.comparison-link { display:flex; justify-content:space-between; gap:8px; margin-top:auto; padding-top:16px; font-size:.875rem; min-height:44px; align-items:center; }
.home-location { padding-block:48px; align-items:center; }
.home-location .location-photo { position:static; }
.home-location .location-copy > p:not(.eyebrow) { margin-top:24px; font-size:1rem; line-height:1.7; }
.location-links { display:flex; flex-wrap:wrap; gap:0 24px; }
.home-facilities { padding-block:48px; border-top:1px solid var(--line); }
.home-facility-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.home-facility-grid article { display:flex; flex-direction:column; min-width:0; background:var(--paper); border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.home-facility-grid img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.home-facility-grid article > div { display:flex; flex:1; flex-direction:column; padding:24px; }
.home-facility-grid h3 { font-size:1.75rem; }
.home-facility-grid p { margin-top:12px; font-size:1rem; line-height:1.65; }
.home-facility-grid .text-link { align-self:flex-start; gap:10px; margin-top:auto; padding-top:18px; }
.home-booking { display:grid; grid-template-columns:1fr auto; align-items:center; gap:32px; padding-block:56px; }
.home-booking .eyebrow { margin-bottom:16px; }
.home-booking p:not(.eyebrow) { margin-top:16px; }
.home-booking-actions { display:flex; flex-direction:column; align-items:stretch; }
.home-booking-actions .button { margin-top:0; }
.home-booking-actions .text-link { justify-content:center; }

/* Natural photo proportions remove the empty pale image surrounds. */
.dorm-hero-media a { border-radius:8px; background:transparent; }
.dorm-hero-media img { width:100%; height:auto; max-height:none; object-fit:contain; }
.dorm-hero-media { max-width:560px; }
@media (max-width:760px) {
  .home-dorms, .home-location, .home-facilities { padding-block:32px; }
  .home-dorms .section-heading, .home-facilities .section-heading { margin-bottom:24px; }
  .dorm-comparison { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .dorm-comparison > a > div { padding:14px 12px; }
  .dorm-comparison h3 { font-size:1.25rem; letter-spacing:-.025em; }
  .dorm-comparison p { font-size:.8125rem; }
  .home-location { gap:24px; }
  .home-location .location-photo img { aspect-ratio:16/9; object-fit:cover; }
  .home-location .location-copy > p:not(.eyebrow) { margin-top:16px; }
  .home-facility-grid { grid-template-columns:1fr; gap:16px; }
  .home-facility-grid article { display:grid; grid-template-columns:104px minmax(0,1fr); align-items:start; }
  .home-facility-grid img { width:104px; height:140px; object-fit:cover; border-radius:0 0 8px 0; }
  .home-facility-grid article > div { padding:20px 16px; }
  .home-facility-grid h3 { font-size:1.5rem; }
  .home-facility-grid p { font-size:.9375rem; line-height:1.6; }
  .home-facility-grid .text-link { margin-top:12px; padding-top:0; }
  body[data-page=home] .guest-reviews { padding-block:32px; }
  body[data-page=home] .review-grid { gap:12px; }
  body[data-page=home] .review-card { padding:20px; }
  body[data-page=home] .review-card blockquote { margin-bottom:12px; }
  .home-booking { grid-template-columns:1fr; gap:24px; padding-block:36px; }
  .home-booking-actions .button { width:100%; }
}
@media (max-width:360px) {
  .home-facility-grid article { grid-template-columns:84px minmax(0,1fr); }
  .home-facility-grid img { width:84px; height:128px; }
  .home-facility-grid article > div { padding:16px 12px; }
}

/* Text links use one accent and clear focus states, without underlines. */
main .text-link, main .comparison-link, main .faq-jumps a,
main .page-link-action, main .room-gallery-button,
main .hero-footnote a, main p a, .privacy-copy a {
  color:var(--orange);
  font-weight:600;
}
.walkthrough-section .text-link { color:var(--cream); }
main .text-link:hover, main .comparison-link:hover, main .faq-jumps a:hover,
main .page-link-action:hover, main .room-gallery-button:hover,
main .hero-footnote a:hover, main p a:hover, .privacy-copy a:hover {
  color:#792e19;
}
main .walkthrough-section .text-link:hover,
main .walkthrough-section .text-link:focus-visible { color:white; }

/* Keep the footer quiet while preserving obvious interaction states. */
.hotel-reference a, .footer-inner > a:last-child {
  color:var(--orange);
  font-weight:600;
}
.guest-contact a, .privacy-link a {
  color:var(--green);
  font-weight:600;
}
.hotel-reference a:hover, .hotel-reference a:focus-visible,
.guest-contact a:hover, .guest-contact a:focus-visible,
.privacy-link a:hover, .privacy-link a:focus-visible,
.footer-inner > a:last-child:hover, .footer-inner > a:last-child:focus-visible {
  color:#792e19;
}


/* Launch polish: location benefit, purposeful photos and compact guest contacts. */
.hero-location { font-size:.875rem; font-weight:600; color:var(--green); margin-bottom:18px; padding-left:12px; border-left:3px solid var(--orange); }
.dorm-essentials { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 24px; padding-block:24px; border-top:1px solid var(--line); }
.dorm-essentials p { color:var(--muted); font-size:1rem; }
.dorm-essentials .text-link { margin-top:0; }
.home-facility-grid img[src$="shared-kitchen.webp"] { object-position:50% 64%; }
.home-facility-grid img[src$="gym.webp"] { object-position:50% 45%; }
.home-facility-grid img[src$="saffron.webp"] { object-position:50% 50%; }
.arrival-photo-grid img { aspect-ratio:auto; height:auto; max-height:none; object-fit:contain; }
footer { padding-block:28px 18px; }
.footer-compact { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.65fr); gap:12px 48px; align-items:start; }
.footer-brand { display:flex; align-items:center; gap:20px; min-width:0; }
.footer-brand .wordmark img { width:125px; }
.footer-brand p { font-family:var(--serif); font-size:1rem; line-height:1.4; }
.footer-brand p span { font-family:Arial,Helvetica,sans-serif; font-size:.8125rem; color:var(--muted); }
.footer-contacts { grid-column:2; grid-row:1 / 3; min-width:0; }
.footer-contacts p { font-size:.875rem; line-height:1.65; }
.footer-contacts a { color:var(--green); font-weight:600; display:inline-flex; align-items:center; min-height:44px; }
.footer-contact-links { display:flex; flex-wrap:wrap; gap:0 20px; }
.footer-quicklinks { display:flex; flex-wrap:wrap; gap:0 20px; font-size:.875rem; }
.footer-quicklinks a { display:inline-flex; align-items:center; min-height:44px; }
.footer-quicklinks a:first-child { color:var(--orange); font-weight:600; }
.footer-compact .hotel-reference { grid-column:1 / -1; margin-top:0; font-size:.875rem; }
.footer-compact .hotel-reference a { display:inline-flex; align-items:center; min-height:44px; }
.footer-compact .footer-small { grid-column:1 / -1; margin-top:0; padding-top:12px; font-size:.8125rem; }
.footer-contacts a:hover, .footer-quicklinks a:hover { color:#792e19; }
@media(max-width:760px) {
  .hero-location { margin-bottom:16px; }
  .dorm-essentials { display:block; padding-block:20px; }
  .dorm-essentials .text-link { margin-top:8px; }
  .home-facility-grid article { display:flex; }
  .home-facility-grid img { width:100%; height:auto; aspect-ratio:4/3; border-radius:0; }
  .home-facility-grid img[src$="saffron.webp"] { aspect-ratio:816/350; }
  .home-facility-grid article > div { padding:20px; }
  .footer-compact { grid-template-columns:minmax(0,1fr); gap:12px; }
  .footer-brand { gap:16px; }
  .footer-brand .wordmark img { width:120px; }
  .footer-contacts { grid-column:1; grid-row:auto; }
  .footer-quicklinks { gap:0 18px; }
}
@media(max-width:360px) {
  .home-facility-grid article { display:flex; }
  .home-facility-grid img { width:100%; height:auto; }
  .home-facility-grid article > div { padding:18px; }
  .footer-brand .wordmark img { width:100px; }
  .footer-brand p { font-size:.875rem; }
}


/* Detail polish: deliberate hero spacing, coordinated cards and legible captions. */
:root { --muted:#59675e; }
.hero-copy .hero-location { margin-bottom:16px; }
.hero-copy h1 { line-height:1.08; }
.hero-copy .intro { margin-top:24px; }
.hero-copy .booking-buttons { margin-top:24px; }
.hero-copy .booking-note { margin-top:16px; }
.hero-copy .hero-footnote { margin-top:12px; }
.hero-photos { height:510px; padding:12px 12px 0 32px; }
.hero-inset { left:14px; bottom:14px; width:210px; transform:rotate(-4deg); }
.hero-inset img { height:132px; }
.station-stamp { right:18px; bottom:20px; width:84px; height:84px; }
:root .hero-main-photo figcaption { background:var(--green); }
.room-card { display:flex; flex-direction:column; }
.room-cover { height:auto; aspect-ratio:4/3; flex:none; min-height:0; overflow:hidden; }
.room-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.room-card-copy { display:flex; flex-direction:column; flex:1; padding:24px; }
.room-card-copy > p.room-facilities { margin-top:16px; padding-top:16px; }
.room-card-copy .room-gallery-button { display:flex; align-items:center; justify-content:space-between; align-self:stretch; gap:16px; margin-top:auto; padding-top:20px; padding-bottom:8px; }
.dorm-comparison > a > div { gap:8px; }
.dorm-comparison p { margin-top:0; line-height:1.6; }
.dorm-comparison .comparison-link { padding-top:8px; }
.room-label, .small-label, .eyebrow, .pod-category,
.arrival-photo-grid .small-label, .step-copy .small-label,
.info-grid .small-label, .page-links .small-label,
.hero-main-photo figcaption span:first-child {
  font-size:.875rem; line-height:1.6; letter-spacing:.06em;
}
.room-label, .small-label, .pod-category,
.arrival-photo-grid .small-label, .step-copy .small-label,
.info-grid .small-label, .page-links .small-label { color:var(--muted); }
.walkthrough-section .small-label, .walkthrough-section .eyebrow { color:var(--cream); }
.room-photo-count, .photo-enlarge, .dorm-photo-grid a > span,
.dorm-comparison p, .six-bed-choice span,
.dorm-note, .booking-note, .dorm-bathroom-note,
.arrival-booking-note, .hero-footnote, .update-note, .video-status,
.pod-copy > p.pod-note, .dorm-hero-media figcaption,
.dorm-photo-grid figcaption, .arrival-photo-grid figcaption,
.facility-card figcaption, .kitchen-photo figcaption,
.review-card figcaption, .pod-dialog-bottom p,
.footer-brand p span, .footer-compact .footer-small {
  font-size:.875rem; line-height:1.6;
}
.footer-compact .footer-small { color:var(--muted); }
.footer-brand p span { color:var(--muted); }
.footer-contacts p { line-height:1.7; }
.intro, .page-intro, .room-card-copy > p:not(.room-label),
.hero-footnote, .booking-note, .dorm-note { color:var(--muted); }
@media(min-width:761px) and (max-width:1050px) {
  .hero-photos { height:465px; padding-left:24px; }
  .hero-inset { width:185px; }
  .hero-inset img { height:116px; }
  .station-stamp { width:76px; height:76px; right:14px; }
}
@media(max-width:760px) {
  .hero { gap:32px; padding-block:32px; }
  .hero-copy .hero-location { margin-bottom:16px; }
  .hero-copy .intro, .hero-copy .booking-buttons { margin-top:20px; }
  .hero-copy .booking-note { margin-top:12px; }
  .hero-photos { height:386px; padding:12px 12px 0 28px; }
  .hero-main-photo { height:300px; }
  .hero-inset { left:12px; bottom:12px; width:clamp(144px,43%,180px); }
  .hero-inset img { height:104px; }
  .station-stamp { right:12px; bottom:18px; width:68px; height:68px; }
  .room-cover { height:auto; aspect-ratio:4/3; }
  .room-card-copy { padding:20px; }
  .room-card-copy .room-gallery-button { margin-top:16px; padding-top:8px; }
  .dorm-comparison > a > div { padding:16px 12px; }
  .dorm-comparison h3 { min-height:2.4em; }
}
@media(max-width:360px) {
  :root .hero-main-photo figcaption { left:16px; max-width:calc(100% - 32px); padding:8px 10px; }
  .station-stamp { width:64px; height:64px; }
  .room-card-copy { padding:20px 18px; }
}

/* Six-bed actions follow the same columns as the bathroom layout cards. */
body[data-room="6-bed-mixed"] .dorm-hero-actions .booking-buttons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body[data-room="6-bed-mixed"] .dorm-hero-actions .booking-buttons .button { width:100%; min-width:0; }
@media(max-width:760px) {
  body[data-room="6-bed-mixed"] .dorm-hero-actions .booking-buttons { grid-template-columns:minmax(0,1fr); }
}
