@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap');

:root {
  --ink: #26342e;
  --deep: #34463e;
  --sage: #657d70;
  --sage-soft: #a9b8ad;
  --clay: #bd765e;
  --sand: #ded2bd;
  --mist: #edf0e9;
  --paper: #f3efe6;
  --cream: #e9e4d8;
  --line: rgba(38, 52, 46, .16);
  --shadow: 0 24px 70px rgba(43, 57, 50, .13);
  --radius: 1.5rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: 'DM Sans', sans-serif; line-height: 1.65; overflow-x: hidden; }
h1, h2, h3, h4, .navbar-brand { font-family: 'Manrope', sans-serif; letter-spacing: -.035em; }
h1 { font-size: clamp(3.25rem, 7.5vw, 7.8rem); line-height: .91; font-weight: 600; }
h2 { font-size: clamp(2.3rem, 4.5vw, 4.8rem); line-height: 1.02; font-weight: 600; }
h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); }
a { color: inherit; text-underline-offset: .25em; }
img { display: block; width: 100%; object-fit: cover; background: var(--cream); }
.section-space { padding: clamp(5rem, 10vw, 9rem) 0; position: relative; }
.eyebrow { display: inline-flex; gap: .55rem; align-items: center; margin-bottom: 1.25rem; color: var(--sage); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.section-heading { max-width: 790px; }
.split-heading { max-width: none; display: grid; grid-template-columns: 1.3fr .7fr; gap: 8vw; align-items: end; }
.split-heading p { font-size: 1.08rem; margin-bottom: .8rem; }
.btn { border-radius: 100px; font-weight: 700; padding: .75rem 1.3rem; }
.btn-lg { padding: .95rem 1.55rem; }
.btn-accent { color: #f7f1e8; background: var(--clay); border-color: var(--clay); }
.btn-accent:hover, .btn-accent:focus { color: #f7f1e8; background: #a9614b; border-color: #a9614b; transform: translateY(-2px); }
.btn-glass { color: #f7f1e8; border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.1); backdrop-filter: blur(12px); }
.btn-glass:hover { color: var(--ink); background: var(--mist); }
.text-link { display: inline-flex; align-items: center; gap: .7rem; font-weight: 700; text-decoration: none; border-bottom: 1px solid; }
.text-link:hover i { transform: translateX(.25rem); }
.card-premium { position: relative; padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(237,240,233,.68); box-shadow: var(--shadow); }
.card-index { color: var(--sage); font-size: .75rem; letter-spacing: .14em; }
.feature-icon { display: block; margin: 3rem 0 1rem; color: var(--clay); font-size: 2rem; }

/* Shared header */
.site-header { position: relative; z-index: 1000; background: rgba(243,239,230,.94); border-bottom: 1px solid var(--line); }
.utility-bar { padding: .55rem 0; color: var(--mist); background: var(--deep); font-size: .73rem; letter-spacing: .02em; }
.utility-bar p { font-weight: 700; }
.utility-contacts { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.utility-contacts span, .utility-contacts a { display: inline-flex; gap: .45rem; align-items: center; color: inherit; text-decoration: none; }
.navbar { min-height: 86px; padding: .8rem 0; }
.navbar-brand img { width: auto; height: 52px; background: transparent; }
.nav-link { margin: 0 .15rem; color: var(--ink); font-size: .91rem; font-weight: 600; }
.nav-link:hover, .nav-link:focus { color: var(--clay); }
.navbar-toggler { color: var(--ink); border: 1px solid var(--line); border-radius: 50%; width: 46px; height: 46px; }
.mobile-header-contacts { display: grid; gap: .6rem; border-top: 1px solid var(--line); font-size: .86rem; }
.mobile-header-contacts span, .mobile-header-contacts a { display: flex; gap: .6rem; align-items: center; text-decoration: none; }

/* Hero */
.hero-section { position: relative; min-height: calc(100svh - 124px); background-size: cover; background-position: center; isolation: isolate; overflow: hidden; }
.hero-section::before { content: ''; position: absolute; inset: 1.5rem; z-index: -1; border: 1px solid rgba(255,255,255,.2); border-radius: 1rem; pointer-events: none; }
.hero-orbit { position: absolute; top: 10%; right: 10%; width: 31vw; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; }
.hero-orbit::before, .hero-orbit::after { content: ''; position: absolute; border: inherit; border-radius: inherit; }
.hero-orbit::before { inset: 18%; }.hero-orbit::after { inset: 38%; background: rgba(255,255,255,.06); }
.hero-lead { max-width: 700px; margin-top: 1.6rem; font-size: clamp(1.05rem, 1.7vw, 1.35rem); color: rgba(255,255,255,.86); }
.hero-license, .hero-offline { width: fit-content; padding: .45rem .8rem; border-radius: .35rem; font-weight: 700; }
.hero-license { color: var(--ink); background: var(--sand); }
.hero-offline { border: 1px solid rgba(255,255,255,.4); background: rgba(32,44,39,.45); letter-spacing: .06em; }
.glass-panel { padding: 2rem; border: 1px solid rgba(255,255,255,.25); border-radius: var(--radius); background: rgba(34,47,41,.46); box-shadow: 0 25px 70px rgba(0,0,0,.2); backdrop-filter: blur(17px); }
.status-line { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.5rem; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.status-line .fa-circle { color: #aec5a6; font-size: .5rem; }
.hero-rail { display: grid; grid-template-columns: repeat(3, 1fr) auto; align-items: center; gap: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.3); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.hero-rail a { display: grid; place-items: center; width: 42px; height: 42px; color: var(--ink); background: var(--mist); border-radius: 50%; text-decoration: none; }

/* Introduction */
.intro-section { background: var(--paper); }
.bento-grid { display: grid; grid-template-columns: 1.1fr .9fr .65fr; grid-template-rows: 1fr 1fr; gap: 1rem; }
.bento-story { grid-row: 1 / 3; }
.bento-image { position: relative; grid-row: 1 / 3; min-height: 550px; overflow: hidden; border-radius: var(--radius); }
.bento-image img { height: 100%; }
.floating-label { position: absolute; right: 1rem; bottom: 1rem; padding: .7rem 1rem; color: var(--ink); background: var(--sand); border-radius: 100px; font-size: .75rem; font-weight: 700; }
.bento-stat { display: flex; flex-direction: column; justify-content: end; box-shadow: none; }
.bento-stat strong { font-size: clamp(2.8rem, 5vw, 5rem); line-height: 1; }
.bento-stat span { font-weight: 700; }.bento-stat p { margin: .8rem 0 0; font-size: .85rem; }
.accent-card { color: var(--mist); background: var(--deep); }.accent-card span { color: var(--sand); }

/* Game selector */
.game-section { background: var(--mist); }
.section-sticky { top: 2rem; }
.game-selector { display: flex; gap: .5rem; margin-bottom: 1rem; padding: .5rem; background: var(--cream); border-radius: 100px; }
.game-tab { flex: 1; padding: .8rem; color: var(--sage); border: 0; border-radius: 100px; background: transparent; font-weight: 700; }
.game-tab span { margin-right: .4rem; font-size: .68rem; }
.game-tab.active { color: var(--mist); background: var(--deep); }
.game-panel { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 470px; overflow: hidden; border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.game-panel[hidden] { display: none; }.game-panel img { height: 100%; min-height: 470px; }.game-panel > div { padding: clamp(2rem, 5vw, 4rem); align-self: center; }
.feature-list { display: grid; gap: .6rem; padding: 0; list-style: none; }.feature-list i { margin-right: .6rem; color: var(--clay); }

/* Editorial */
.editorial-section { background-size: cover; background-position: center; }
.editorial-quote { position: relative; margin: 0; padding: clamp(2rem, 5vw, 4rem); border: 1px solid rgba(255,255,255,.26); border-radius: var(--radius); background: rgba(255,255,255,.1); box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.editorial-quote i { position: absolute; top: -1.4rem; left: 2rem; display: grid; place-items: center; width: 3.2rem; height: 3.2rem; color: var(--ink); background: var(--sand); border-radius: 50%; }
.editorial-quote strong { display: block; font-family: 'Manrope', sans-serif; font-size: clamp(1.55rem, 3vw, 3rem); line-height: 1.18; }
.quote-note { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.program-strip { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }
.program-strip article { padding: 2rem; border-right: 1px solid rgba(255,255,255,.25); }.program-strip article:last-child { border: 0; }.program-strip i { color: var(--sand); font-size: 1.5rem; }
.program-strip h3 { margin-top: 1rem; }.program-strip p { margin: 0; color: rgba(255,255,255,.72); }

/* Packages */
.package-section { background: var(--cream); }
.price-card { height: 100%; padding: 2rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.price-card h3 { margin-top: 2.5rem; }.price-card strong { display: block; margin: 2rem 0; font-size: 2rem; }.price-card ul { display: grid; gap: .7rem; padding-left: 1.1rem; margin-bottom: 2rem; }
.price-card.featured { position: relative; color: var(--mist); background-size: cover; transform: translateY(-1rem); box-shadow: var(--shadow); }
.recommended { position: absolute; top: 1rem; right: 1rem; padding: .35rem .7rem; color: var(--ink); background: var(--sand); border-radius: 100px; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.estimator { display: grid; grid-template-columns: 1.4fr 1fr 1fr .8fr; gap: 2rem; align-items: center; padding: 2rem; border-radius: var(--radius); background: var(--sand); }
.estimator h3 { margin: 0; }.estimator label { display: grid; gap: .5rem; font-size: .78rem; font-weight: 700; text-transform: uppercase; }.estimator output { font-size: 1.1rem; }.estimate-result { padding-left: 1.5rem; border-left: 1px solid rgba(38,52,46,.3); }.estimate-result small, .estimate-result strong { display: block; }.estimate-result strong { font-size: 1.6rem; }

/* Gallery */
.gallery-section { background: var(--paper); overflow: hidden; }
.editorial-gallery { display: grid; grid-template-columns: 1.1fr .8fr 1.1fr; grid-template-rows: 270px 270px; gap: 1rem; }
.editorial-gallery figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--radius); }.editorial-gallery img { height: 100%; transition: transform .7s ease; }.editorial-gallery figure:hover img { transform: scale(1.035); }
.gallery-tall { grid-row: 1 / 3; }.gallery-wide { grid-column: 2 / 4; }
.editorial-gallery figcaption { position: absolute; right: .8rem; bottom: .8rem; left: .8rem; display: flex; justify-content: space-between; padding: .7rem 1rem; color: var(--mist); background: rgba(38,52,46,.72); border-radius: 100px; backdrop-filter: blur(10px); }

/* Process */
.process-section { background: var(--mist); }
.process-track { position: relative; }.process-track::before { content: ''; position: absolute; top: 0; bottom: 0; left: 2.65rem; width: 1px; background: var(--line); }
.process-track article { position: relative; display: grid; grid-template-columns: 3rem 1fr auto; gap: 1.5rem; align-items: center; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.process-track article > span { z-index: 1; display: grid; place-items: center; width: 3rem; height: 3rem; color: var(--mist); background: var(--sage); border-radius: 50%; }.process-track article > i { color: var(--clay); font-size: 1.5rem; }.process-track h3, .process-track p { margin-bottom: .25rem; }
.process-promise { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.5rem; padding: 2rem; color: var(--mist); background-size: cover; border-radius: var(--radius); }.process-promise strong { font-size: 1.2rem; }.process-promise i { margin-right: .4rem; color: var(--sand); }

/* Voices and FAQ */
.voices-faq-section { background: var(--paper); }
.guest-quote { margin: 2rem 0; font-family: 'Manrope', sans-serif; font-size: clamp(1.5rem, 2.6vw, 2.5rem); line-height: 1.25; }
.guest-dossier { display: flex; align-items: center; gap: 1rem; }.guest-dossier img { width: 68px; height: 68px; border-radius: 50%; }.guest-dossier strong, .guest-dossier span { display: block; }.guest-dossier span { color: var(--sage); font-size: .85rem; }.stars { color: var(--clay); font-size: .7rem; }
.faq-head { padding: 0 1.25rem; }.accordion { --bs-accordion-bg: transparent; --bs-accordion-border-color: var(--line); }.accordion-button { color: var(--sage); background: transparent; font-size: 1.05rem; font-weight: 700; box-shadow: none !important; }.accordion-button:not(.collapsed) { color: var(--sage); background: var(--cream); }.accordion-body { color: var(--sage); background: var(--cream); }

/* Booking */
.booking-section { background: var(--sand); }
.booking-shell { display: grid; grid-template-columns: 1.25fr .75fr; overflow: hidden; border-radius: calc(var(--radius) + .5rem); background: var(--paper); box-shadow: var(--shadow); }
.booking-form-wrap { padding: clamp(2rem, 6vw, 5rem); }.form-control, .form-select { min-height: 50px; color: var(--ink); background-color: var(--mist); border-color: transparent; border-radius: .7rem; }.form-control:focus, .form-select:focus { background: #f7f4ec; border-color: var(--sage); box-shadow: 0 0 0 .2rem rgba(101,125,112,.15); }.form-label { font-size: .78rem; font-weight: 700; }
.concierge-card { display: flex; flex-direction: column; justify-content: end; padding: 2rem; background-size: cover; background-position: center; }.concierge-card img { width: 96px; height: 96px; margin-bottom: 1.5rem; border: 4px solid rgba(255,255,255,.5); border-radius: 50%; }.concierge-card ul { display: grid; gap: .7rem; padding: 0; list-style: none; }.concierge-card li { padding-top: .7rem; border-top: 1px solid rgba(255,255,255,.2); }

/* Final and footer */
.final-section { min-height: 670px; display: flex; align-items: center; background-size: cover; background-position: center; }
.final-grid { display: grid; grid-template-columns: 1.5fr .5fr; gap: 4rem; align-items: center; }.final-grid p { max-width: 680px; color: rgba(255,255,255,.78); font-size: 1.1rem; }.final-note { display: grid; gap: .5rem; padding-left: 2rem; border-left: 1px solid rgba(255,255,255,.3); }.final-note i { color: var(--sand); font-size: 2.5rem; }.final-note span { color: rgba(255,255,255,.65); }.final-grid .notify-form { grid-column: 1 / 3; max-width: 680px; }.notify-form label { display: block; margin-bottom: .6rem; font-weight: 700; }.notify-form small { display: block; margin-top: .5rem; opacity: .72; }
.cookie-banner { position: fixed; right: 1.25rem; bottom: 1.25rem; left: 1.25rem; z-index: 2000; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; max-width: 1100px; margin: auto; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(243,239,230,.97); box-shadow: 0 20px 80px rgba(25,34,30,.24); backdrop-filter: blur(15px); }.cookie-banner[hidden] { display: none; }.cookie-banner h2 { margin-bottom: .5rem; font-size: 1.4rem; }.cookie-banner p { margin: 0; }.cookie-actions { display: flex; gap: .6rem; }
.site-footer { padding-top: 5rem; background: #2d3d36; }
.footer-top { display: grid; grid-template-columns: 1.2fr .8fr; gap: 4rem; align-items: center; padding: 2.5rem; background-size: cover; border: 1px solid rgba(255,255,255,.16); border-radius: var(--radius); }.footer-top h2 { font-size: clamp(1.8rem, 3vw, 3rem); }.footer-main { display: grid; grid-template-columns: 1.3fr .6fr 1fr 1fr; gap: 3rem; padding: 5rem 0 3rem; border-bottom: 1px solid rgba(255,255,255,.15); }.footer-brand img { width: auto; height: 64px; margin-bottom: 1.5rem; background: transparent; }.footer-brand p { max-width: 280px; color: rgba(255,255,255,.65); }.offline-stamp { display: inline-flex; gap: .5rem; padding: .4rem .7rem; border: 1px solid rgba(255,255,255,.25); border-radius: 100px; font-size: .76rem; }.site-footer h3 { margin-bottom: 1.2rem; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }.site-footer ul { display: grid; gap: .6rem; padding: 0; list-style: none; }.site-footer a { color: inherit; text-decoration: none; }.site-footer a:hover { color: var(--sand); }.footer-contact li { color: rgba(255,255,255,.72); }.footer-contact i { width: 1.3rem; }.footer-company p { color: rgba(255,255,255,.7); }.footer-social { display: flex; gap: .6rem; }.footer-social a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; }.offline-warning { display: grid; grid-template-columns: auto 1fr; gap: 1rem; margin: 2rem 0; padding: 1.25rem; color: var(--sand); border: 1px solid rgba(222,210,189,.3); border-radius: 1rem; }.offline-warning i { margin-top: .35rem; }.offline-warning p { margin: 0; font-size: .82rem; }.footer-bottom { display: flex; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 0 2rem; color: rgba(255,255,255,.58); font-size: .78rem; }.footer-bottom p { margin: 0; }.footer-bottom div { display: flex; flex-wrap: wrap; gap: 1.3rem; }
.toast { color: var(--ink); background: var(--mist); border-color: var(--line); }

@media (max-width: 991.98px) {
  .utility-contacts { display: none; }.navbar-collapse { padding: 1.5rem 0; }.navbar-nav { align-items: stretch !important; }.nav-link { padding: .75rem 0; border-bottom: 1px solid var(--line); }
  .hero-section { min-height: 860px; }.hero-docket { max-width: 520px; }.split-heading, .booking-shell, .footer-top { grid-template-columns: 1fr; }.bento-grid { grid-template-columns: 1fr 1fr; }.bento-story { grid-row: auto; }.bento-image { grid-row: auto; min-height: 420px; }.bento-stat { min-height: 230px; }.section-sticky { position: static !important; }.estimator { grid-template-columns: 1fr 1fr; }.editorial-gallery { grid-template-columns: 1fr 1fr; }.gallery-tall { grid-row: 1 / 3; }.gallery-wide { grid-column: auto; }.booking-shell { overflow: visible; }.concierge-card { min-height: 580px; }.footer-main { grid-template-columns: 1fr 1fr; }.footer-top { gap: 1.5rem; }.footer-top .notify-form { max-width: 600px; }
}

@media (max-width: 767.98px) {
  .section-space { padding: 4.5rem 0; }.hero-section { min-height: 820px; }.hero-section::before { inset: .6rem; }.hero-orbit { width: 75vw; }.hero-rail { grid-template-columns: 1fr auto; }.hero-rail span:nth-child(2), .hero-rail span:nth-child(3) { display: none; }
  .split-heading, .bento-grid, .game-panel, .program-strip, .estimator, .editorial-gallery, .final-grid, .cookie-banner, .footer-main { grid-template-columns: 1fr; }.bento-image { min-height: 390px; }.game-selector { align-items: stretch; border-radius: 1rem; overflow-x: auto; }.game-tab { min-width: 145px; border-radius: .7rem; }.game-panel img { min-height: 300px; height: 300px; }.program-strip article { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.25); }.quote-note { flex-direction: column; }.price-card.featured { transform: none; }.estimate-result { padding: 1rem 0 0; border-top: 1px solid rgba(38,52,46,.3); border-left: 0; }.editorial-gallery { grid-template-rows: none; }.editorial-gallery figure, .gallery-tall, .gallery-wide { grid-column: auto; grid-row: auto; min-height: 320px; }.process-promise { flex-direction: column; }.booking-form-wrap { padding: 2rem 1.25rem; }.concierge-card { min-height: 520px; }.final-grid { gap: 2rem; }.final-grid .notify-form { grid-column: auto; }.cookie-actions { flex-direction: column; }.footer-main { gap: 2.5rem; }.footer-bottom { flex-direction: column; }.footer-top { padding: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
