/* ════════════════════════════════════════════════════════════════
   Hotel Sangam, Karad — sangamhotel.com revamp
   Built from the Sangam Hotel Design System (claude.ai/design).
   Single merged stylesheet: webfonts → tokens → base → components
   → page sections → responsive.
   ════════════════════════════════════════════════════════════════ */

/* ─── Webfonts — Google Fonts latin subsets, self-hosted ───────── */
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-500.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-500-italic.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/cormorant-garamond-600.woff2") format("woff2");
}
@font-face {
  font-family: "Tiro Devanagari Marathi";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FF;
  src: url("../fonts/tiro-devanagari-marathi-400-deva.woff2") format("woff2");
}
@font-face {
  font-family: "Tiro Devanagari Marathi";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/tiro-devanagari-marathi-400.woff2") format("woff2");
}
@font-face {
  font-family: "Mulish";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/mulish-400.woff2") format("woff2");
}
@font-face {
  font-family: "Mulish";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/mulish-500.woff2") format("woff2");
}
@font-face {
  font-family: "Mulish";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/mulish-600.woff2") format("woff2");
}
@font-face {
  font-family: "Mulish";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/mulish-700.woff2") format("woff2");
}

/* ─── Color tokens ──────────────────────────────────────────────
   Brand crimson sampled from the original logotype (#9A1C1C).
   Warm ivory/sand neutrals echo the hotel's golden photography. */
:root {
  /* Brand · Sangam Crimson */
  --crimson-900: #4F0E10;
  --crimson-800: #6A1315;
  --crimson-700: #821719;
  --crimson-600: #9A1C1C;   /* primary brand red — logo ink */
  --crimson-500: #B02E2C;
  --crimson-200: #E3B7AF;
  --crimson-100: #F3DEDA;
  --crimson-50:  #FAF0EC;

  /* Warm neutrals · Ivory → Ink */
  --ivory-0: #FDFBF7;
  --ivory-1: #FAF6EF;
  --sand-1:  #F2EBDF;
  --sand-2:  #E6DBC9;
  --ink-1:   #2B2118;
  --ink-2:   #54473C;
  --ink-3:   #87786A;
  --line-1:  #E3D9C9;
  --line-2:  #CDBFA9;

  /* Accents */
  --brass-600: #A07B33;
  --brass-500: #B58F4A;
  --brass-100: #F1E6CE;
  --river-600: #2F6B66;
  --river-100: #DCEAE6;

  /* Feedback */
  --success: #3E7C4F;
  --warning: #B3681C;
  --error:   #821719;

  /* Semantic aliases */
  --surface-page:    var(--ivory-1);
  --surface-card:    var(--ivory-0);
  --surface-sunken:  var(--sand-1);
  --surface-brand:   var(--crimson-600);
  --surface-inverse: #221911;
  --text-body:     var(--ink-1);
  --text-secondary:var(--ink-2);
  --text-muted:    var(--ink-3);
  --text-brand:    var(--crimson-600);
  --text-on-brand: #FBF3E9;
  --text-on-photo: #FFFFFF;
  --border-subtle: var(--line-1);
  --border-strong: var(--line-2);
  --focus-ring: 0 0 0 2px var(--ivory-0), 0 0 0 4px var(--crimson-500);

  /* Typography */
  --font-display: "Cormorant Garamond", "Times New Roman", serif;
  --font-body: "Mulish", "Segoe UI", system-ui, sans-serif;
  --font-deva: "Tiro Devanagari Marathi", "Noto Serif Devanagari", serif;
  --text-xs: 12px;
  --text-sm: 13.5px;
  --text-base: 15px;
  --text-md: 17px;
  --text-lg: 20px;
  --display-sm: 28px;
  --display-md: 40px;
  --display-lg: 56px;
  --display-xl: 78px;
  --leading-body: 1.65;
  --leading-snug: 1.4;
  --leading-display: 1.08;
  --tracking-caps: 0.22em;
  --tracking-wide: 0.06em;
  --tracking-display: -0.01em;

  /* Spacing — 4px base, generous rhythm */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-28: 112px;
  --container-max: 1140px;
  --container-pad: 24px;

  /* Radii, shadows, motion */
  --radius-xs: 3px;
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-pill: 999px;
  --radius-arch: 999px 999px 6px 6px;
  --shadow-card: 0 1px 2px rgba(43, 28, 16, 0.05), 0 10px 28px -14px rgba(43, 28, 16, 0.18);
  --shadow-raised: 0 2px 4px rgba(43, 28, 16, 0.06), 0 18px 44px -16px rgba(43, 28, 16, 0.26);
  --shadow-pop: 0 24px 64px -20px rgba(43, 28, 16, 0.38);
  --protection-bottom: linear-gradient(to top, rgba(24, 14, 8, 0.78), rgba(24, 14, 8, 0.32) 45%, rgba(24, 14, 8, 0) 75%);
  --protection-full: linear-gradient(rgba(24, 14, 8, 0.38), rgba(24, 14, 8, 0.38));
  --photo-grade: saturate(0.92) contrast(1.02);
  --ease-out: cubic-bezier(0.22, 0.61, 0.21, 1);
  --dur-quick: 160ms;
  --dur-base: 240ms;
  --dur-slow: 480ms;
}

/* ─── Base ──────────────────────────────────────────────────────── */
* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-body);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  margin: 0;
}

a { color: var(--text-brand); text-decoration-color: var(--crimson-200); text-underline-offset: 3px; }

::selection { background: var(--crimson-100); }

img { max-width: 100%; }

.sgm-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--ivory-0); color: var(--crimson-600);
  padding: 10px 18px; font-weight: 700;
}
.sgm-skip-link:focus { left: 0; }

.sgm-container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}

/* ─── Button ────────────────────────────────────────────────────── */
.sgm-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-body); font-weight:700; text-transform:uppercase; letter-spacing:var(--tracking-caps); border-radius:var(--radius-xs); cursor:pointer; text-decoration:none; border:1px solid transparent; transition:background var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out); white-space:nowrap; }
.sgm-btn:focus-visible { outline:none; box-shadow:var(--focus-ring); }
.sgm-btn[disabled], .sgm-btn[aria-disabled="true"] { opacity:0.45; pointer-events:none; }
.sgm-btn--md { font-size:12px; padding:13px 24px; }
.sgm-btn--sm { font-size:11px; padding:9px 16px; }
.sgm-btn--lg { font-size:13px; padding:17px 32px; }
.sgm-btn--primary { background:var(--crimson-600); color:var(--text-on-brand); }
.sgm-btn--primary:hover { background:var(--crimson-700); }
.sgm-btn--primary:active { background:var(--crimson-800); }
.sgm-btn--secondary { background:transparent; color:var(--crimson-600); border-color:var(--crimson-600); }
.sgm-btn--secondary:hover { background:var(--crimson-50); }
.sgm-btn--secondary:active { background:var(--crimson-100); }
.sgm-btn--ghost { background:transparent; color:var(--crimson-600); padding-left:4px; padding-right:4px; }
.sgm-btn--ghost:hover { text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--crimson-200); }
.sgm-btn--inverse { background:var(--ivory-0); color:var(--crimson-600); }
.sgm-btn--inverse:hover { background:var(--ivory-1); }

/* ─── Badge ─────────────────────────────────────────────────────── */
.sgm-badge { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-body); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:var(--tracking-caps); border-radius:var(--radius-pill); padding:5px 12px; white-space:nowrap; }
.sgm-badge--brand { background:var(--crimson-600); color:var(--text-on-brand); }
.sgm-badge--soft { background:var(--crimson-50); color:var(--crimson-600); }
.sgm-badge--brass { background:var(--brass-100); color:var(--brass-600); }
.sgm-badge--sand { background:var(--sand-1); color:var(--ink-2); }
.sgm-badge--success { background:#E7F0E8; color:var(--success); }

/* ─── Section heading ───────────────────────────────────────────── */
.sgm-sh { max-width: 62ch; }
.sgm-sh--center { margin-left:auto; margin-right:auto; text-align:center; }
.sgm-sh__eyebrow { font-family:var(--font-body); font-weight:700; font-size:var(--text-xs); text-transform:uppercase; letter-spacing:var(--tracking-caps); color:var(--brass-600); }
.sgm-sh__eyebrow--crimson { color:var(--crimson-600); }
.sgm-sh__title { font-family:var(--font-display); font-weight:600; font-size:var(--display-md); line-height:var(--leading-display); letter-spacing:var(--tracking-display); color:var(--text-body); margin-top:10px; }
.sgm-sh__lead { font-family:var(--font-body); font-size:var(--text-md); line-height:var(--leading-body); color:var(--text-secondary); margin-top:14px; margin-bottom:0; }
.sgm-sh--onDark .sgm-sh__title { color:#F4EDE2; }
.sgm-sh--onDark .sgm-sh__lead { color:#C9BBA8; }

/* ─── Divider (संगम confluence mark) ────────────────────────────── */
.sgm-divider { display:flex; align-items:center; gap:14px; justify-content:center; border:none; margin:0; }
.sgm-divider__line { height:1px; flex:0 1 120px; background:var(--line-2); }
.sgm-divider__mark { font-family:var(--font-deva); font-size:17px; color:var(--brass-600); line-height:1; }

/* ─── Room card ─────────────────────────────────────────────────── */
.sgm-room { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-sm); box-shadow:var(--shadow-card); overflow:hidden; font-family:var(--font-body); display:flex; flex-direction:column; transition:box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.sgm-room:hover { box-shadow:var(--shadow-raised); transform:translateY(-2px); }
.sgm-room__media { position:relative; aspect-ratio:16/10; overflow:hidden; }
.sgm-room__media img { width:100%; height:100%; object-fit:cover; display:block; filter:var(--photo-grade); transition:transform var(--dur-slow) var(--ease-out); }
.sgm-room:hover .sgm-room__media img { transform:scale(1.03); }
.sgm-room__badge { position:absolute; top:12px; left:12px; }
.sgm-room__body { padding:18px 20px 20px; display:flex; flex-direction:column; gap:6px; flex:1; }
.sgm-room__name { font-family:var(--font-display); font-weight:600; font-size:var(--display-sm); line-height:var(--leading-snug); color:var(--text-body); }
.sgm-room__desc { font-size:var(--text-sm); color:var(--text-secondary); margin:0; }
.sgm-room__foot { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:14px; }
.sgm-room__price { display:flex; flex-direction:column; }
.sgm-room__amount { font-family:var(--font-display); font-weight:600; font-size:26px; color:var(--crimson-600); line-height:1; }
.sgm-room__per { font-size:var(--text-xs); color:var(--text-muted); margin-top:4px; }

/* ─── Testimonial card ──────────────────────────────────────────── */
.sgm-quote { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-sm); box-shadow:var(--shadow-card); padding:26px 26px 22px; font-family:var(--font-body); display:flex; flex-direction:column; gap:16px; margin:0; }
.sgm-quote__text { font-family:var(--font-display); font-style:italic; font-weight:500; font-size:21px; line-height:1.45; color:var(--text-body); margin:0; }
.sgm-quote__text::before { content:"\201C"; color:var(--brass-500); }
.sgm-quote__text::after { content:"\201D"; color:var(--brass-500); }
.sgm-quote__meta { display:flex; align-items:center; gap:10px; margin-top:auto; flex-wrap:wrap; }
.sgm-quote__name { font-weight:700; font-size:var(--text-sm); color:var(--text-body); text-transform:uppercase; letter-spacing:var(--tracking-wide); }
.sgm-quote__context { font-size:var(--text-xs); color:var(--text-muted); }
.sgm-quote__stars { color:var(--brass-500); font-size:13px; letter-spacing:2px; margin-left:auto; }

/* ─── Amenity tile ──────────────────────────────────────────────── */
.sgm-amenity { display:flex; align-items:flex-start; gap:14px; font-family:var(--font-body); padding:16px 4px; }
.sgm-amenity__icon { color:var(--brass-600); flex:none; display:flex; margin-top:2px; }
.sgm-amenity__title { font-weight:700; font-size:var(--text-sm); color:var(--text-body); }
.sgm-amenity__desc { font-size:var(--text-sm); color:var(--text-muted); margin:3px 0 0; }

/* ─── Nav bar ───────────────────────────────────────────────────── */
.sgm-sticky { position:sticky; top:0; z-index:20; }
.sgm-nav { font-family:var(--font-body); display:flex; align-items:center; gap:32px; padding:14px 28px; background:var(--ivory-1); border-bottom:1px solid var(--border-subtle); }
.sgm-nav--overlay { background:rgba(250, 246, 239, 0.88); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.sgm-nav__logo { display:flex; align-items:center; flex:none; }
.sgm-nav__logo img { height:58px; width:auto; display:block; }
.sgm-nav__links { display:flex; align-items:center; gap:26px; margin-left:auto; flex-wrap:wrap; }
.sgm-nav__link { font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:var(--tracking-caps); color:var(--ink-2); text-decoration:none; padding:6px 0; border-bottom:2px solid transparent; transition:color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out); }
.sgm-nav__link:hover { color:var(--crimson-600); }
.sgm-nav__link--active { color:var(--crimson-600); border-bottom-color:var(--crimson-600); }
.sgm-nav__cta { flex:none; }

/* ─── Footer ────────────────────────────────────────────────────── */
.sgm-footer { background:var(--surface-inverse); color:#C9BBA8; font-family:var(--font-body); padding:56px 28px 28px; }
.sgm-footer__grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; max-width:var(--container-max); margin:0 auto; }
.sgm-footer__logo img { height:54px; width:auto; display:block; }
.sgm-footer__tagline { font-family:var(--font-display); font-style:italic; font-weight:500; font-size:19px; color:#F4EDE2; margin:16px 0 0; }
.sgm-footer__heading { font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:var(--tracking-caps); color:#8A7A66; margin-bottom:14px; }
.sgm-footer__list { display:grid; gap:9px; font-size:var(--text-sm); }
.sgm-footer__list a { color:#C9BBA8; text-decoration:none; transition:color var(--dur-quick) var(--ease-out); }
.sgm-footer__list a:hover { color:#F4EDE2; }
.sgm-footer__divider { max-width:var(--container-max); margin:36px auto 0; }
.sgm-footer__bottom { max-width:var(--container-max); margin:40px auto 0; padding-top:22px; border-top:1px solid rgba(201, 187, 168, 0.18); display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:var(--text-xs); color:#8A7A66; flex-wrap:wrap; }
.sgm-footer .sgm-divider__line { background:rgba(201, 187, 168, 0.3); }

/* ─── Booking bar — direct-booking CTA ──────────────────────────── */
.sgm-booking { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-sm); box-shadow:var(--shadow-raised); padding:22px 26px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-family:var(--font-body); flex-wrap:wrap; }
.sgm-booking__note { font-size:var(--text-md); font-weight:600; color:var(--text-body); margin:0; }
.sgm-booking__sub { display:block; font-size:var(--text-xs); font-weight:400; color:var(--text-muted); margin-top:3px; }

/* ─── Page sections (Home) ──────────────────────────────────────── */
.sgm-hero { position:relative; height:560px; }
.sgm-hero__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:contrast(1.03); }
.sgm-hero__scrim { position:absolute; inset:0; background:linear-gradient(to top, rgba(18,11,6,0.8) 0%, rgba(18,11,6,0.34) 36%, rgba(18,11,6,0.12) 68%, rgba(18,11,6,0) 100%); }
.sgm-hero__content { position:absolute; left:0; right:0; bottom:96px; color:var(--text-on-photo); text-shadow:0 1px 2px rgba(0,0,0,0.45), 0 2px 24px rgba(0,0,0,0.55); }
.sgm-hero__kicker { font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:var(--tracking-caps); color:#F8EDD6; text-shadow:0 0 4px rgba(0,0,0,0.95), 0 1px 10px rgba(0,0,0,0.95), 0 2px 3px rgba(0,0,0,0.9); }
.sgm-hero__title { font-size:var(--display-xl); color:#FFFFFF; max-width:14ch; margin-top:12px; }
.sgm-hero__lead { font-size:var(--text-lg); max-width:44ch; margin:16px 0 0; color:rgba(255,255,255,0.88); }
.sgm-hero__map { margin:18px 0 0; }
.sgm-hero__map a { display:inline-flex; align-items:center; gap:8px; color:#fff; font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:var(--tracking-caps); text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.55); padding-bottom:4px; transition:border-color var(--dur-quick) var(--ease-out); }
.sgm-hero__map a:hover { border-bottom-color:#fff; }
.sgm-hero__map a:focus-visible { outline:none; box-shadow:var(--focus-ring); }

.sgm-booking-wrap { margin-top:-52px; position:relative; z-index:5; }

.sgm-section-amenities { padding-top:var(--space-20); }
.sgm-amenities-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--space-4); }

.sgm-section-rooms { padding-top:var(--space-28); }
.sgm-rooms-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }
.sgm-rooms-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-6); margin-top:var(--space-10); }

.sgm-section-dining { background:var(--surface-sunken); margin-top:var(--space-28); padding:var(--space-20) 0; }
.sgm-dining-grid { display:grid; grid-template-columns:5fr 7fr; gap:var(--space-16); align-items:center; }
.sgm-dining-photo { width:100%; height:460px; object-fit:cover; border-radius:var(--radius-arch); filter:var(--photo-grade); }
.sgm-dining-badges { display:flex; gap:10px; margin-top:var(--space-6); flex-wrap:wrap; }
.sgm-dining-hours { font-size:var(--text-sm); color:var(--text-muted); margin-top:var(--space-6); margin-bottom:0; }

.sgm-section-club { position:relative; }
.sgm-club__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:var(--photo-grade); }
.sgm-club__scrim { position:absolute; inset:0; background:var(--protection-full); }
.sgm-club__content { position:relative; padding-top:var(--space-28); padding-bottom:var(--space-28); }
.sgm-club__cta { margin-top:var(--space-8); }

.sgm-section-quotes { padding-top:var(--space-28); padding-bottom:var(--space-28); }
.sgm-quotes-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-6); margin-top:var(--space-10); }
.sgm-quotes-divider { margin-top:var(--space-16); }

/* ─── Form fields ───────────────────────────────────────────────── */
.sgm-field { display:grid; gap:7px; font-family:var(--font-body); }
.sgm-field__label { font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:var(--tracking-caps); color:var(--ink-2); }
.sgm-field__control { position:relative; display:flex; align-items:center; }
.sgm-input { width:100%; box-sizing:border-box; font-family:var(--font-body); font-size:var(--text-base); color:var(--text-body); background:var(--ivory-0); border:1px solid var(--border-strong); border-radius:var(--radius-xs); padding:12px 14px; transition:border-color var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out); }
.sgm-input::placeholder { color:var(--ink-3); }
.sgm-input:hover { border-color:var(--ink-3); }
.sgm-input:focus { outline:none; border-color:var(--crimson-500); box-shadow:var(--focus-ring); }
.sgm-input[disabled] { background:var(--sand-1); color:var(--ink-3); cursor:not-allowed; }
.sgm-field__hint { font-size:var(--text-xs); color:var(--text-muted); }
.sgm-field--error .sgm-input { border-color:var(--error); }
.sgm-field--error .sgm-field__hint { color:var(--error); }
select.sgm-input { appearance:none; -webkit-appearance:none; padding-right:36px; cursor:pointer; }
.sgm-field__chevron { position:absolute; right:13px; pointer-events:none; color:var(--ink-3); display:flex; }
textarea.sgm-input { resize:vertical; min-height:110px; }
.sgm-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* ─── Inner-page hero (Health club) ─────────────────────────────── */
.sgm-page-hero { position:relative; height:420px; }
.sgm-page-hero__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:var(--photo-grade); }
.sgm-page-hero__scrim { position:absolute; inset:0; background:var(--protection-bottom); }
.sgm-page-hero__content { position:absolute; left:0; right:0; bottom:56px; }
.sgm-page-hero__kicker { font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:var(--tracking-caps); color:#EBD9B8; margin:0; }
.sgm-page-hero__title { font-size:var(--display-lg); color:#FFFFFF; margin-top:10px; }

/* ─── Gallery ───────────────────────────────────────────────────── */
.sgm-section-page { padding-top:var(--space-16); padding-bottom:var(--space-20); }
.sgm-sh__title--lg { font-size:var(--display-lg); }
.sgm-gallery { columns:3; column-gap:20px; margin-top:var(--space-10); }
.sgm-gallery figure { margin:0 0 20px; break-inside:avoid; }
.sgm-gallery img { width:100%; height:auto; display:block; border-radius:var(--radius-sm); filter:var(--photo-grade); }
.sgm-gallery-note { font-size:var(--text-sm); color:var(--text-muted); margin-top:var(--space-6); }
.sgm-gallery-divider { margin-top:var(--space-12); }

/* ─── Health club page ──────────────────────────────────────────── */
.sgm-club-amenities { display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-4); margin-top:var(--space-10); }
.sgm-club-photos { display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-4); }
.sgm-club-photos img { width:100%; height:240px; object-fit:cover; border-radius:var(--radius-sm); filter:var(--photo-grade); }
.sgm-club-ctas { display:flex; align-items:center; justify-content:center; gap:var(--space-6); margin-top:var(--space-16); flex-wrap:wrap; }
.sgm-club-divider { margin-top:var(--space-16); }

/* ─── Contact page ──────────────────────────────────────────────── */
.sgm-contact-grid { display:grid; grid-template-columns:5fr 7fr; gap:var(--space-16); align-items:start; }
.sgm-contact-rows { display:grid; gap:var(--space-5); margin-top:var(--space-10); font-size:var(--text-base); }
.sgm-contact-row { display:flex; gap:14px; align-items:flex-start; }
.sgm-contact-row__icon { color:var(--brass-600); margin-top:2px; flex:none; display:flex; }
.sgm-contact-row__main { font-weight:700; }
.sgm-contact-row__main a { color:var(--text-body); text-decoration:none; }
.sgm-contact-row__sub { color:var(--text-muted); font-size:var(--text-sm); }
.sgm-contact-row__map { display:inline-flex; align-items:center; gap:6px; margin-top:8px; color:var(--crimson-600); font-weight:700; font-size:var(--text-sm); text-decoration:none; }
.sgm-contact-row__map:hover { text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--crimson-200); }
.sgm-contact-photo { margin-top:var(--space-10); border-radius:var(--radius-sm); overflow:hidden; }
.sgm-contact-photo img { width:100%; height:220px; object-fit:cover; display:block; filter:var(--photo-grade); }
.sgm-contact-card { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-sm); box-shadow:var(--shadow-card); padding:var(--space-10); }
.sgm-contact-form { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); }
.sgm-contact-form .sgm-field--full { grid-column:1 / -1; }
.sgm-contact-form__actions { grid-column:1 / -1; display:flex; justify-content:flex-end; }
.sgm-form-result { text-align:center; padding:var(--space-20) 0; }
.sgm-form-result__title { font-family:var(--font-display); font-weight:600; font-size:var(--display-sm); }
.sgm-form-result__text { color:var(--text-secondary); margin-top:10px; }
.sgm-form-error { grid-column:1 / -1; background:var(--crimson-50); color:var(--crimson-700); border:1px solid var(--crimson-200); border-radius:var(--radius-xs); padding:10px 14px; font-size:var(--text-sm); }

/* ─── Legal pages ───────────────────────────────────────────────── */
.sgm-legal { max-width:760px; margin:0 auto; padding:var(--space-16) var(--container-pad) var(--space-20); }
.sgm-legal__updated { font-size:var(--text-xs); color:var(--text-muted); text-transform:uppercase; letter-spacing:var(--tracking-caps); font-weight:700; margin-top:var(--space-6); }
.sgm-legal h2 { font-family:var(--font-display); font-weight:600; font-size:26px; margin:var(--space-12) 0 0; }
.sgm-legal p { color:var(--text-secondary); font-size:var(--text-base); line-height:1.65; margin:12px 0 0; text-wrap:pretty; }
.sgm-legal-divider { margin-top:var(--space-16); }

/* ─── Responsive ────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  :root { --display-xl: 56px; --display-md: 34px; }
  .sgm-amenities-grid { grid-template-columns:repeat(2, 1fr); }
  .sgm-rooms-grid { grid-template-columns:repeat(2, 1fr); }
  .sgm-quotes-grid { grid-template-columns:repeat(2, 1fr); }
  .sgm-nav { gap:20px; }
  .sgm-nav__links { gap:18px; }
  .sgm-gallery { columns:2; }
  .sgm-club-amenities { grid-template-columns:repeat(2, 1fr); }
  .sgm-club-photos { grid-template-columns:repeat(2, 1fr); }
}

@media (max-width: 720px) {
  :root { --display-xl: 42px; --display-md: 30px; --display-sm: 24px; --space-28: 72px; --space-20: 56px; }
  .sgm-hero { height:520px; }
  .sgm-hero__content { bottom:72px; }
  .sgm-nav { flex-wrap:wrap; padding:12px 18px; gap:12px 18px; }
  .sgm-nav__logo img { height:48px; }
  .sgm-nav__links { order:3; width:100%; gap:14px 18px; margin-left:0; }
  .sgm-nav__cta { margin-left:auto; }
  .sgm-amenities-grid { grid-template-columns:1fr; }
  .sgm-rooms-grid { grid-template-columns:1fr; }
  .sgm-rooms-head { flex-direction:column; align-items:flex-start; gap:12px; }
  .sgm-dining-grid { grid-template-columns:1fr; gap:var(--space-8); }
  .sgm-dining-photo { height:320px; }
  .sgm-quotes-grid { grid-template-columns:1fr; }
  .sgm-booking { justify-content:center; text-align:center; }
  .sgm-footer__grid { grid-template-columns:1fr; gap:28px; }
  .sgm-footer__bottom { flex-direction:column; align-items:flex-start; }
  :root { --display-lg: 38px; }
  .sgm-page-hero { height:340px; }
  .sgm-club-amenities { grid-template-columns:1fr; }
  .sgm-club-photos { grid-template-columns:1fr; }
  .sgm-club-photos img { height:220px; }
  .sgm-contact-grid { grid-template-columns:1fr; gap:var(--space-10); }
  .sgm-contact-card { padding:var(--space-6); }
  .sgm-contact-form { grid-template-columns:1fr; }
}

@media (max-width: 560px) {
  .sgm-gallery { columns:1; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition-duration:0.01ms !important; animation-duration:0.01ms !important; }
}
