:root {
  --bg: #0D0E10;
  --surface: #15171A;
  --elevated: #1C1F22;
  --ivory: #F2EEE7;
  --text: #F5F1EB;
  --text-dark: #171719;
  --muted: #AAA49B;
  --muted-dark: #706B66;
  --border: #303236;
  --oxblood: #8C2938;
  --cta: #9E3043;
  --cta-hover: #B53A50;
  --champagne: #C7A679;
  --available: #4CA578;
  --radius: 16px;
  --radius-sm: 12px;
  --container: 1320px;
  --ease: 180ms ease;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 112px 0; }
.section-dark { background: var(--bg); color: var(--text); }
.section-light { background: #F7F3ED; color: var(--text-dark); }
.section-ivory { background: var(--ivory); color: var(--text-dark); }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 80;
  transition: background var(--ease), border-color var(--ease), backdrop-filter var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header.scrolled {
  background: rgba(13,14,16,.88);
  border-bottom-color: rgba(255,255,255,.08);
  backdrop-filter: blur(18px);
}
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: 210px; }
.brand-mark {
  width: 42px; height: 42px; border: 1px solid rgba(199,166,121,.65); color: var(--champagne);
  display: grid; place-items: center; border-radius: 50%; font-family: Georgia, "Times New Roman", serif; font-size: 18px;
}
.brand-copy { display: flex; flex-direction: column; line-height: 1.1; }
.brand-copy strong { font-family: Georgia, "Times New Roman", serif; letter-spacing: .18em; font-size: 18px; font-weight: 400; }
.brand-copy small { margin-top: 6px; font-size: 8px; letter-spacing: .2em; color: var(--muted); }
.desktop-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.desktop-nav a { font-size: 14px; color: #D7D3CC; position: relative; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: var(--champagne); transition: right var(--ease); }
.desktop-nav a:hover::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 14px; }
.phone-link { font-size: 14px; white-space: nowrap; }
.icon-button, .menu-toggle {
  border: 0; background: transparent; color: inherit; min-width: 44px; min-height: 44px; border-radius: 50%; display: grid; place-items: center;
}
.icon-button { position: relative; font-size: 24px; }
.icon-button b { position: absolute; top: 0; right: 0; background: var(--cta); width: 18px; height: 18px; border-radius: 50%; font-size: 10px; display: grid; place-items: center; }
.menu-toggle { display: none; gap: 5px; }
.menu-toggle span { display: block; width: 22px; height: 1px; background: currentColor; }
.mobile-menu { display: none; }

.btn {
  border: 1px solid transparent; min-height: 54px; padding: 0 24px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-weight: 600; font-size: 15px;
  transition: transform var(--ease), background var(--ease), border-color var(--ease), color var(--ease);
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--cta); color: #fff; }
.btn-primary:hover { background: var(--cta-hover); }
.btn-secondary { border-color: #5A5B5E; color: inherit; background: transparent; }
.btn-secondary:hover { border-color: var(--champagne); }
.btn-small { min-height: 44px; padding: 0 18px; font-size: 13px; }
.btn-ghost { background: transparent; border-color: rgba(0,0,0,.18); color: var(--text-dark); }
.btn-card { width: 100%; background: var(--text-dark); color: #fff; min-height: 46px; }
.btn-block { width: 100%; }

.eyebrow { display: inline-flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: .18em; font-size: 11px; color: var(--champagne); }
.eyebrow::before { content: ""; width: 26px; height: 1px; background: currentColor; }
.eyebrow.dark { color: var(--oxblood); }
h1,h2,h3 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; margin: 0; line-height: 1.08; }
h1 { font-size: clamp(54px, 6.3vw, 92px); letter-spacing: -.03em; }
h2 { font-size: clamp(40px, 4vw, 58px); letter-spacing: -.02em; }
h3 { font-size: 26px; }

.hero { min-height: 840px; display: flex; align-items: stretch; padding-top: 78px; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; width: 640px; height: 640px; border-radius: 50%; filter: blur(80px); background: rgba(140,41,56,.12); left: -240px; top: 160px; }
.hero-grid { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 760px; align-items: center; gap: 72px; position: relative; z-index: 1; }
.hero-copy { padding: 72px 0; }
.hero-copy h1 { margin-top: 20px; max-width: 740px; }
.hero-lead { max-width: 650px; color: #C1BCB4; font-size: 18px; line-height: 1.7; margin: 28px 0 34px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-proof { display: flex; flex-wrap: wrap; gap: 18px 26px; margin-top: 34px; color: #B9B3AA; font-size: 13px; }
.status-dot { width: 8px; height: 8px; display: inline-block; background: var(--available); border-radius: 50%; margin-right: 8px; box-shadow: 0 0 0 6px rgba(76,165,120,.08); }
.hero-visual { height: 100%; min-height: 760px; position: relative; }
.hero-image { position: absolute; inset: 0; border-left: 1px solid rgba(255,255,255,.08); }
.hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,14,16,.42), transparent 28%, transparent 70%, rgba(13,14,16,.14)); }
.hero-glass-card { position: absolute; right: 34px; bottom: 36px; width: min(330px, calc(100% - 68px)); padding: 22px 24px; border-radius: 16px; background: rgba(17,18,20,.58); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(14px); display: flex; flex-direction: column; gap: 6px; }
.hero-glass-card small { text-transform: uppercase; letter-spacing: .16em; color: var(--champagne); }
.hero-glass-card strong { font-family: Georgia, "Times New Roman", serif; font-size: 26px; font-weight: 400; }
.hero-glass-card span { color: #C8C2B9; font-size: 13px; }

.luxury-image { background-size: cover; background-position: center; position: relative; overflow: hidden; }
.luxury-image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.32)); }
.luxury-hero {
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.28)),
    url('./assets/images/hero.webp');
}
.spa-room { background-image: url('./assets/images/interior-01.webp'); }
.jacuzzi { background-image: url('./assets/images/interior-02.webp'); }
.lounge { background-image: url('./assets/images/interior-03.webp'); }
.corridor { background-image: url('./assets/images/interior-04.webp'); }

.trust-strip { background: #111214; border-top: 1px solid rgba(255,255,255,.07); border-bottom: 1px solid rgba(255,255,255,.07); }
.trust-grid { display: grid; grid-template-columns: repeat(5,1fr); min-height: 108px; }
.trust-grid > div { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 4px; border-right: 1px solid rgba(255,255,255,.07); }
.trust-grid > div:last-child { border-right: 0; }
.trust-grid strong { font-family: Georgia, "Times New Roman", serif; font-size: 25px; font-weight: 400; color: var(--ivory); }
.trust-grid span { color: var(--muted); font-size: 12px; }

.section-head { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 42px; }
.section-head > div { max-width: 760px; }
.section-head h2 { margin-top: 14px; }
.section-head p { color: var(--muted-dark); font-size: 16px; margin: 18px 0 0; max-width: 720px; }
.light-head p { color: var(--muted); }

.quick-filters, .program-tabs { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 30px; }
.chip, .program-tabs button {
  border: 1px solid rgba(0,0,0,.14); background: rgba(255,255,255,.5); color: var(--text-dark); border-radius: 999px; min-height: 42px; padding: 0 18px; transition: all var(--ease);
}
.chip.active, .chip:hover, .program-tabs button.active, .program-tabs button:hover { background: var(--text-dark); color: #fff; border-color: var(--text-dark); }
.master-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.master-card { background: #fff; border: 1px solid rgba(0,0,0,.09); border-radius: var(--radius); overflow: hidden; transition: transform var(--ease), border-color var(--ease), box-shadow var(--ease); }
.master-card:hover { transform: translateY(-2px); border-color: rgba(140,41,56,.25); box-shadow: 0 18px 42px rgba(15,15,16,.08); }
.master-photo { aspect-ratio: 4/5; background-size: cover; background-position: center; position: relative; overflow: hidden; }
.master-photo::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 58%, rgba(0,0,0,.4)); }
.fav-btn { position: absolute; z-index: 2; right: 14px; top: 14px; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); color: #fff; background: rgba(0,0,0,.28); backdrop-filter: blur(10px); font-size: 22px; }
.fav-btn.active { background: var(--cta); border-color: var(--cta); }
.master-status, .video-badge { position: absolute; z-index: 2; left: 14px; bottom: 14px; border-radius: 999px; padding: 7px 10px; font-size: 11px; color: #fff; background: rgba(0,0,0,.45); backdrop-filter: blur(8px); }
.master-status::before { content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background: var(--available); margin-right:7px; }
.video-badge { left: auto; right: 14px; }
.master-info { padding: 20px; }
.master-title-row { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; }
.master-title-row h3 { font-size: 25px; }
.master-age { color: var(--muted-dark); font-size: 13px; }
.master-meta { color: var(--muted-dark); margin: 8px 0 12px; font-size: 14px; }
.master-tags { display: flex; gap: 7px; flex-wrap: wrap; min-height: 31px; }
.master-tags span { font-size: 11px; background: #F0EBE4; border-radius: 999px; padding: 6px 9px; }
.master-bottom { display: flex; justify-content: space-between; gap: 18px; border-top: 1px solid #E9E3DB; margin: 18px 0; padding-top: 16px; }
.master-bottom > div { display:flex; flex-direction:column; gap:3px; }
.master-bottom small { color: var(--muted-dark); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.master-bottom strong { font-size: 15px; }

.catalog-toolbar { margin-top: 34px; display: grid; grid-template-columns: 1fr 240px; gap: 12px; }
.search-field { height: 54px; border: 1px solid rgba(0,0,0,.13); border-radius: 12px; display: flex; align-items: center; padding: 0 16px; gap: 10px; background: #fff; }
.search-field input { border: 0; outline: 0; flex: 1; background: transparent; }
.catalog-toolbar select { height: 54px; border: 1px solid rgba(0,0,0,.13); border-radius: 12px; background: #fff; padding: 0 14px; }
.catalog-footer { margin-top: 16px; display: flex; align-items:center; justify-content:space-between; gap: 16px; color: var(--muted-dark); }

.smart-choice { overflow: hidden; position: relative; }
.smart-choice::after { content:""; position:absolute; width:520px; height:520px; border-radius:50%; background: rgba(140,41,56,.14); filter: blur(90px); right:-160px; bottom:-180px; }
.smart-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; position:relative; z-index:1; }
.smart-copy h2 { margin: 16px 0 20px; max-width: 620px; }
.smart-copy p { color: var(--muted); max-width: 560px; }
.smart-steps { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px; }
.smart-steps span { border:1px solid rgba(255,255,255,.12); padding: 10px 12px; border-radius:999px; color:#C7C1B9; font-size:12px; }
.quiz-card { background: #F3EEE7; color: var(--text-dark); border-radius: 20px; padding: 28px; min-height: 430px; }
.quiz-progress { height: 4px; background: #DED6CC; border-radius:999px; overflow:hidden; margin-bottom: 34px; }
.quiz-progress span { display:block; width: 33.33%; height:100%; background: var(--cta); transition: width 240ms ease; }
.quiz-step { display:none; }
.quiz-step.active { display:block; animation: fadeUp 260ms ease; }
.quiz-step small { color: var(--muted-dark); text-transform:uppercase; letter-spacing:.13em; }
.quiz-step h3 { margin: 10px 0 24px; font-size: 34px; }
.quiz-step > button:not(.btn) { width:100%; min-height: 62px; margin: 8px 0; border:1px solid #D7CEC3; background:#fff; color:var(--text-dark); border-radius:12px; text-align:left; padding: 0 18px; transition: all var(--ease); }
.quiz-step > button:not(.btn):hover { border-color: var(--oxblood); transform: translateX(3px); }
.quiz-result-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:22px; }

.program-tabs button { background: transparent; }
.program-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
.program-card { background:#fff; border:1px solid rgba(0,0,0,.09); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; min-height: 430px; }
.program-visual { height: 190px; position:relative; background: linear-gradient(135deg,#2A2021,#161719); }
.program-visual::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 70% 30%, rgba(199,166,121,.35), transparent 26%), linear-gradient(130deg, transparent 50%, rgba(140,41,56,.25)); }
.program-visual b { position:absolute; left:18px; top:18px; color:var(--champagne); font-family:"Prata"; font-size:56px; font-weight:400; opacity:.8; }
.program-body { padding: 22px; display:flex; flex-direction:column; flex:1; }
.program-body h3 { font-size: 29px; margin-bottom: 10px; }
.program-body p { color:var(--muted-dark); margin:0 0 18px; font-size:14px; }
.program-features { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px; }
.program-features span { background:#F0EBE4; padding:6px 9px; border-radius:999px; font-size:11px; }
.program-pricing { margin-top:auto; display:flex; align-items:end; justify-content:space-between; border-top:1px solid #ECE5DC; padding-top:18px; }
.program-pricing strong { font-size:24px; }
.program-pricing span { color:var(--muted-dark); font-size:13px; }

.interior-grid { display:grid; grid-template-columns: 1.5fr .75fr; grid-template-rows: 260px 260px; gap:14px; }
.interior-card { border-radius:16px; border:1px solid rgba(255,255,255,.08); }
.interior-card.large { grid-row: 1 / span 2; }
.fact-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:1px; background: rgba(255,255,255,.08); margin-top:34px; border:1px solid rgba(255,255,255,.08); border-radius:16px; overflow:hidden; }
.fact-grid article { background:#111214; padding:28px; }
.fact-grid b { color:var(--champagne); font-size:12px; letter-spacing:.14em; }
.fact-grid h3 { margin:18px 0 8px; font-size:22px; }
.fact-grid p { margin:0; color:var(--muted); font-size:13px; }

.reviews-layout { display:grid; grid-template-columns: .75fr 1.25fr; gap:80px; align-items:start; }
.rating-big { font-family:"Prata"; font-size:96px; line-height:.95; margin-top:24px; }
.stars { color: var(--champagne); letter-spacing:.14em; margin: 12px 0 18px; }
.reviews-summary p { color:var(--muted-dark); max-width:400px; }
.review-stack { display:grid; gap:14px; }
.review-card { background:#fff; border:1px solid rgba(0,0,0,.09); border-radius:16px; padding:24px; }
.review-card p { margin:16px 0 0; font-size:17px; line-height:1.65; }
.review-meta { display:flex; align-items:center; justify-content:space-between; gap:14px; color:var(--muted-dark); font-size:12px; }
.review-meta strong { color:var(--text-dark); }

.faq-grid { display:grid; grid-template-columns: .7fr 1.3fr; gap:80px; }
.faq-grid h2 { margin:14px 0 18px; }
.faq-grid p { color:var(--muted-dark); }
.accordion { border-top:1px solid rgba(0,0,0,.14); }
.accordion-item { width:100%; background:transparent; border:0; border-bottom:1px solid rgba(0,0,0,.14); color:var(--text-dark); padding:20px 0; text-align:left; display:grid; grid-template-columns:1fr auto; gap:18px; align-items:center; }
.accordion-item span { font-size:16px; font-weight:600; }
.accordion-item b { font-size:22px; font-weight:400; transition:transform var(--ease); }
.accordion-item div { grid-column:1/-1; color:var(--muted-dark); max-height:0; overflow:hidden; opacity:0; transition:max-height 240ms ease, opacity 240ms ease, padding 240ms ease; }
.accordion-item.active b { transform:rotate(45deg); }
.accordion-item.active div { max-height:160px; opacity:1; padding-top:6px; }

.contact-grid { display:grid; grid-template-columns: .85fr 1.15fr; gap:80px; align-items:center; }
.contact-copy h2 { margin:15px 0 20px; }
.contact-copy p { color:var(--muted); max-width:620px; }
.contact-lines { display:flex; flex-direction:column; gap:7px; margin:28px 0; color:#CBC5BC; }
.map-placeholder { min-height: 430px; border-radius:20px; overflow:hidden; position:relative; background:#E9E2D7; }
.map-grid { position:absolute; inset:0; opacity:.52; background-image: linear-gradient(#B7B0A7 1px, transparent 1px), linear-gradient(90deg,#B7B0A7 1px,transparent 1px); background-size:44px 44px; transform:rotate(-8deg) scale(1.25); }
.map-placeholder::after { content:""; position:absolute; inset:0; background: radial-gradient(circle at 54% 52%, transparent 0 120px, rgba(255,255,255,.35) 121px 100%); }
.map-pin { position:absolute; z-index:2; left:52%; top:48%; transform:translate(-50%,-50%); width:58px; height:58px; border-radius:50% 50% 50% 0; rotate:-45deg; background:var(--cta); color:white; display:grid; place-items:center; font-family:"Prata"; font-size:22px; box-shadow:0 16px 34px rgba(140,41,56,.25); }
.map-pin::after { content:"V"; rotate:45deg; }
.map-pin { font-size:0; }
.map-label { position:absolute; z-index:3; left:24px; bottom:24px; background:#fff; color:var(--text-dark); border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; box-shadow:0 14px 30px rgba(0,0,0,.1); }
.map-label span { color:var(--muted-dark); font-size:12px; }

.site-footer { background:#0A0B0C; border-top:1px solid rgba(255,255,255,.07); padding:62px 0 22px; }
.footer-grid { display:grid; grid-template-columns:1.6fr repeat(3,1fr); gap:44px; }
.footer-grid > div { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.footer-grid p { color:var(--muted); max-width:380px; font-size:13px; }
.footer-grid strong { margin-bottom:8px; }
.footer-grid a,.footer-grid span { color:#B7B2AA; font-size:13px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); margin-top:42px; padding-top:18px; display:flex; justify-content:space-between; color:#77736D; font-size:12px; }

.modal-backdrop { position:fixed; inset:0; z-index:100; background:rgba(0,0,0,.68); backdrop-filter:blur(8px); display:none; align-items:center; justify-content:center; padding:20px; }
.modal-backdrop.open { display:flex; }
.modal-card { width:min(620px,100%); max-height:calc(100vh - 40px); overflow:auto; background:var(--ivory); color:var(--text-dark); border-radius:20px; padding:30px; position:relative; animation:modalIn 220ms ease; }
.modal-card h2 { font-size:42px; margin:12px 0 10px; }
.modal-card > p { color:var(--muted-dark); }
.modal-close { position:absolute; right:16px; top:16px; width:44px; height:44px; border-radius:50%; border:1px solid rgba(0,0,0,.14); background:transparent; font-size:24px; }
#bookingForm { display:grid; gap:14px; margin-top:24px; }
#bookingForm label { display:grid; gap:7px; font-size:12px; color:var(--muted-dark); }
#bookingForm input,#bookingForm select,#bookingForm textarea { width:100%; border:1px solid #D3CABF; border-radius:12px; background:#fff; color:var(--text-dark); padding:0 14px; outline:none; }
#bookingForm input,#bookingForm select { height:52px; }
#bookingForm textarea { padding-top:12px; resize:vertical; }
#bookingForm small { text-align:center; color:var(--muted-dark); }
.form-success { display:none; border:1px solid #BFD9CB; background:#EAF4EE; color:#2B6246; padding:18px; border-radius:12px; margin-top:22px; flex-direction:column; gap:4px; }
.form-success.show { display:flex; }
.gallery-modal-card { width:min(1040px,100%); background:#101113; padding:16px; }
.gallery-grid-modal { display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:320px; gap:12px; }
.gallery-grid-modal > div { border-radius:12px; }

.mobile-bottom-nav, .mobile-sticky-cta { display:none; }

.reveal { opacity:0; transform:translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity:1; transform:none; }
.reveal-card { animation: fadeUp .4s ease both; }
@keyframes fadeUp { from { opacity:0; transform:translateY(10px);} to { opacity:1; transform:none;} }
@keyframes modalIn { from { opacity:0; transform:translateY(12px) scale(.98);} to { opacity:1; transform:none;} }

@media (max-width: 1180px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:grid; }
  .phone-link { display:none; }
  .hero-grid { gap:36px; }
  .master-grid, .program-grid { grid-template-columns: repeat(2,1fr); }
  .fact-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 900px) {
  .container { width:min(calc(100% - 28px), var(--container)); }
  .section { padding:78px 0; }
  .header-actions .btn-small { display:none; }
  .mobile-menu { position:absolute; left:14px; right:14px; top:72px; padding:18px; border-radius:16px; background:rgba(18,19,21,.98); border:1px solid rgba(255,255,255,.08); display:none; flex-direction:column; gap:8px; box-shadow:0 24px 60px rgba(0,0,0,.35); }
  .mobile-menu.open { display:flex; }
  .mobile-menu a { padding:12px 4px; }
  .hero { min-height:auto; }
  .hero-grid { grid-template-columns:1fr; min-height:auto; }
  .hero-copy { padding:74px 0 28px; }
  .hero-visual { min-height:620px; }
  .hero-image { border-left:0; border-top:1px solid rgba(255,255,255,.08); }
  .trust-grid { grid-template-columns:repeat(2,1fr); }
  .trust-grid > div { min-height:92px; border-bottom:1px solid rgba(255,255,255,.07); }
  .trust-grid > div:nth-child(2n) { border-right:0; }
  .trust-grid > div:last-child { grid-column:1/-1; }
  .smart-grid,.reviews-layout,.faq-grid,.contact-grid { grid-template-columns:1fr; gap:44px; }
  .interior-grid { grid-template-columns:1fr 1fr; grid-template-rows:360px 240px; }
  .interior-card.large { grid-column:1/-1; grid-row:auto; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 640px) {
  body { padding-bottom: 124px; }
  .container { width:min(calc(100% - 24px), var(--container)); }
  .site-header { background:rgba(13,14,16,.82); backdrop-filter:blur(14px); }
  .header-inner { min-height:62px; }
  .brand { min-width:auto; }
  .brand-mark { width:36px; height:36px; }
  .brand-copy strong { font-size:15px; }
  .brand-copy small { font-size:7px; }
  .header-actions .icon-button { display:none; }
  h1 { font-size:46px; line-height:1.02; }
  h2 { font-size:36px; }
  h3 { font-size:24px; }
  .hero { padding-top:62px; }
  .hero-grid { width:100%; }
  .hero-copy { width:min(calc(100% - 24px), var(--container)); margin-inline:auto; padding:54px 0 22px; }
  .hero-copy h1 { margin-top:14px; }
  .hero-lead { font-size:16px; margin:20px 0 24px; }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-actions .btn { width:100%; }
  .hero-proof { display:grid; gap:10px; margin-top:22px; }
  .hero-visual { min-height:520px; }
  .hero-glass-card { left:12px; right:12px; bottom:12px; width:auto; }
  .trust-grid { grid-template-columns:1fr 1fr; }
  .section { padding:64px 0; }
  .section-head { align-items:flex-start; flex-direction:column; margin-bottom:28px; }
  .section-head .btn { width:100%; }
  .quick-filters,.program-tabs { overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; scrollbar-width:none; margin-right:-12px; }
  .quick-filters::-webkit-scrollbar,.program-tabs::-webkit-scrollbar { display:none; }
  .chip,.program-tabs button { white-space:nowrap; }
  .master-grid,.program-grid { grid-template-columns:1fr; gap:14px; }
  .master-card { display:grid; grid-template-columns: 42% 58%; min-height:250px; }
  .master-photo { aspect-ratio:auto; min-height:100%; }
  .master-info { padding:15px; display:flex; flex-direction:column; }
  .master-title-row h3 { font-size:22px; }
  .master-meta { margin:5px 0 8px; font-size:12px; }
  .master-bottom { margin:12px 0; padding-top:11px; }
  .master-bottom small { font-size:8px; }
  .master-bottom strong { font-size:13px; }
  .master-tags { min-height:auto; }
  .master-tags span { font-size:9px; padding:5px 7px; }
  .fav-btn { width:38px; height:38px; right:9px; top:9px; }
  .video-badge { display:none; }
  .catalog-toolbar { grid-template-columns:1fr; }
  .catalog-footer { align-items:stretch; flex-direction:column; }
  .catalog-footer .btn { width:100%; }
  .smart-grid { gap:34px; }
  .quiz-card { padding:20px; min-height:410px; }
  .quiz-step h3 { font-size:29px; }
  .quiz-result-actions { display:grid; }
  .program-card { min-height:auto; }
  .interior-grid { grid-template-columns:1fr; grid-template-rows:320px 210px 210px; }
  .interior-card.large { grid-column:auto; }
  .fact-grid { grid-template-columns:1fr; }
  .rating-big { font-size:78px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; gap:6px; }
  .gallery-grid-modal { grid-template-columns:1fr; grid-auto-rows:250px; }
  .modal-backdrop { align-items:flex-end; padding:0; }
  .modal-card { width:100%; max-height:90vh; border-radius:20px 20px 0 0; padding:24px 18px 30px; }
  .modal-card h2 { font-size:34px; padding-right:42px; }

  .mobile-bottom-nav { position:fixed; z-index:75; left:0; right:0; bottom:0; height:68px; background:rgba(13,14,16,.96); backdrop-filter:blur(16px); border-top:1px solid rgba(255,255,255,.08); display:grid; grid-template-columns:repeat(4,1fr); }
  .mobile-bottom-nav a,.mobile-bottom-nav button { color:#C9C3BB; background:transparent; border:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:4px; font-size:17px; }
  .mobile-bottom-nav b { font-size:9px; font-weight:500; }
  .mobile-sticky-cta { position:fixed; z-index:74; left:12px; right:12px; bottom:78px; height:50px; border:0; border-radius:12px; background:var(--cta); color:#fff; display:block; font-weight:700; box-shadow:0 14px 28px rgba(140,41,56,.28); }
}

/* === Competitor-audit additions: offers / journey / SEO / rules / articles === */
.offers-section { border-top: 1px solid rgba(255,255,255,.06); }
.offer-grid { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:16px; }
.offer-card { min-height:280px; border:1px solid rgba(255,255,255,.1); border-radius:18px; background:linear-gradient(180deg,#16181b,#111214); padding:28px; display:flex; flex-direction:column; align-items:flex-start; position:relative; overflow:hidden; }
.offer-card::after { content:""; position:absolute; width:220px; height:220px; border-radius:50%; right:-80px; bottom:-110px; background:rgba(199,166,121,.08); filter:blur(10px); }
.offer-card.featured { background:linear-gradient(135deg,#24181b 0%,#141517 58%,#101113 100%); }
.offer-card.featured::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 75% 25%,rgba(140,41,56,.28),transparent 35%); }
.offer-kicker { position:relative; z-index:1; color:var(--champagne); font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
.offer-card h3 { position:relative; z-index:1; font-size:31px; margin:18px 0 12px; }
.offer-card p { position:relative; z-index:1; color:var(--muted); margin:0 0 28px; max-width:520px; }
.offer-card a,.link-button { position:relative; z-index:1; margin-top:auto; color:#F1EAE1; font-weight:600; font-size:14px; }
.link-button { border:0; background:transparent; padding:0; }
.offer-card a:hover,.link-button:hover { color:var(--champagne); }

.visit-section { border-top:1px solid rgba(0,0,0,.07); }
.journey-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:#D7D0C7; border:1px solid #D7D0C7; border-radius:18px; overflow:hidden; }
.journey-grid article { background:#F7F3ED; padding:30px 26px 34px; min-height:250px; }
.journey-grid span { display:inline-grid; width:48px; height:48px; place-items:center; border-radius:50%; border:1px solid rgba(140,41,56,.3); color:var(--oxblood); font-family:Georgia,"Times New Roman",serif; font-size:15px; }
.journey-grid h3 { margin:28px 0 12px; font-size:24px; }
.journey-grid p { margin:0; color:var(--muted-dark); font-size:14px; line-height:1.7; }

.seo-about { border-top:1px solid rgba(0,0,0,.06); }
.seo-about-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:80px; align-items:start; }
.seo-copy h2 { margin:16px 0 24px; max-width:850px; }
.seo-copy p { color:#4F4B47; font-size:16px; line-height:1.85; margin:0 0 18px; }
.seo-copy p a { color:var(--oxblood); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.seo-links { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:30px; }
.seo-links a { border:1px solid rgba(0,0,0,.12); background:#fff; padding:15px 16px; border-radius:12px; font-weight:600; font-size:13px; transition:all var(--ease); }
.seo-links a:hover { border-color:rgba(140,41,56,.35); transform:translateY(-1px); }
.seo-proof-card { border:1px solid rgba(0,0,0,.1); background:#fff; border-radius:18px; overflow:hidden; position:sticky; top:110px; }
.seo-proof-image { height:290px; }
.seo-proof-body { padding:24px; }
.seo-proof-body > span { display:block; color:var(--oxblood); text-transform:uppercase; letter-spacing:.13em; font-size:10px; margin-bottom:12px; }
.seo-proof-body ul { margin:0 0 22px; padding-left:20px; color:#4F4B47; }
.seo-proof-body li { margin:8px 0; }

.rules-section { border-top:1px solid rgba(255,255,255,.06); }
.rules-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:90px; align-items:start; }
.rules-grid h2 { margin:16px 0 18px; }
.rules-lead { color:var(--muted); max-width:520px; margin:0 0 28px; }
.rule-list { border-top:1px solid rgba(255,255,255,.12); }
.rule-list article { display:grid; grid-template-columns:58px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.rule-list article > span { color:var(--champagne); font-size:12px; letter-spacing:.12em; }
.rule-list h3 { font-size:23px; margin:0 0 8px; }
.rule-list p { color:var(--muted); margin:0; font-size:14px; line-height:1.7; }

.articles-section { border-top:1px solid rgba(0,0,0,.06); }
.article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.article-card { background:#fff; border:1px solid rgba(0,0,0,.09); border-radius:18px; overflow:hidden; transition:transform var(--ease),box-shadow var(--ease); }
.article-card:hover { transform:translateY(-2px); box-shadow:0 18px 42px rgba(15,15,16,.07); }
.article-cover { height:210px; }
.article-body { padding:22px; }
.article-body > span { color:var(--oxblood); text-transform:uppercase; font-size:10px; letter-spacing:.14em; }
.article-body h3 { margin:12px 0 10px; font-size:25px; }
.article-body p { color:var(--muted-dark); font-size:14px; line-height:1.65; min-height:68px; }
.article-body a { font-weight:600; font-size:13px; }

@media (max-width: 1180px) {
  .offer-grid { grid-template-columns:1fr 1fr; }
  .offer-card.featured { grid-column:1/-1; }
  .journey-grid { grid-template-columns:repeat(2,1fr); }
  .seo-about-grid,.rules-grid { gap:48px; }
}

@media (max-width: 900px) {
  .seo-about-grid,.rules-grid { grid-template-columns:1fr; }
  .seo-proof-card { position:relative; top:auto; }
  .article-grid { grid-template-columns:1fr 1fr; }
  .article-card:last-child { grid-column:1/-1; }
}

@media (max-width: 640px) {
  .offer-grid,.journey-grid,.article-grid { grid-template-columns:1fr; }
  .offer-card.featured,.article-card:last-child { grid-column:auto; }
  .offer-card { min-height:245px; padding:22px; }
  .journey-grid article { min-height:auto; padding:24px 20px; }
  .seo-links { grid-template-columns:1fr; }
  .seo-copy p { font-size:15px; line-height:1.75; }
  .seo-proof-image { height:230px; }
  .rule-list article { grid-template-columns:44px 1fr; gap:12px; }
  .article-cover { height:190px; }
}
