:root {
  --paper: #eeece7;
  --paper-deep: #e2ded6;
  --white: #f8f7f3;
  --ink: #252321;
  --muted: #77736c;
  --rule: rgba(37, 35, 33, .22);
  --dark: #292725;
  --accent: #a46e59;
  --serif: "Libre Bodoni", Georgia, serif;
  --sans: "Montserrat", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--dark); color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.55; }
a { color: inherit; }
img { max-width: 100%; }
.site-frame { max-width: 1480px; margin: 0 auto; overflow: hidden; background: var(--paper); }
.section-shell { width: min(100%, 1320px); margin: 0 auto; padding-left: clamp(24px, 5vw, 76px); padding-right: clamp(24px, 5vw, 76px); }

.site-header { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; min-height: 82px; padding-top: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--rule); }
.brand { display: inline-flex; flex-direction: column; width: max-content; text-decoration: none; line-height: 1; }
.brand-name, .footer-brand { font-size: 1.12rem; font-weight: 700; letter-spacing: .17em; }
.brand-sub { margin-top: 7px; color: var(--muted); font-size: .57rem; letter-spacing: .13em; text-transform: uppercase; }
.site-header nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 42px); }
.site-header nav a { font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.site-header nav a small { display: block; margin-bottom: 2px; color: var(--muted); font-size: .57rem; font-weight: 500; letter-spacing: .06em; }
.header-tools { display: flex; align-items: center; justify-self: end; gap: 18px; }
.header-menu { position: relative; }
.menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
.menu-toggle:hover, .menu-toggle[aria-expanded="true"] { background: transparent; color: var(--accent); }
.menu-dots { display: inline-flex; align-items: center; gap: 3px; }
.menu-dots i { display: block; width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
.menu-panel { position: absolute; top: calc(100% + 12px); right: 0; z-index: 10; display: grid; min-width: 160px; padding: 7px; border: 1px solid var(--rule); border-radius: 14px; background: var(--paper); box-shadow: 0 14px 30px rgba(37, 35, 33, .12); }
.menu-panel[hidden] { display: none; }
.menu-panel a { padding: 11px 13px; color: var(--ink); font-size: .65rem; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.menu-panel a:hover { background: var(--paper-deep); color: var(--accent); }
a span, a i { font-style: normal; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: .98; }
h1 { margin-bottom: 34px; font-size: clamp(4.4rem, 10vw, 10rem); letter-spacing: -.065em; }
h1 em, h2 em { font-weight: 400; }
h2 { margin-bottom: 24px; font-size: clamp(3rem, 6vw, 6.2rem); letter-spacing: -.055em; }
h3 { margin-bottom: 9px; font-size: clamp(1.6rem, 2.6vw, 2.2rem); letter-spacing: -.035em; }
.kicker { margin-bottom: 18px; color: var(--muted); font-size: .64rem; font-weight: 600; letter-spacing: .15em; line-height: 1.4; text-transform: uppercase; }
.kicker span { margin-right: 12px; color: var(--accent); }
.text-link { display: inline-flex; align-items: center; gap: 7px; border-bottom: 1px solid var(--ink); padding-bottom: 4px; font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.text-link:hover { color: var(--accent); border-color: var(--accent); }

.hero { display: grid; grid-template-columns: minmax(0, .92fr) minmax(360px, .88fr); align-items: center; gap: clamp(45px, 8vw, 140px); min-height: 730px; padding-top: 80px; padding-bottom: 94px; }
.hero-copy { padding-left: clamp(0px, 2vw, 30px); }
.hero h1 em { display: inline-block; margin-left: 1.1em; }
.hero-lede { max-width: 480px; margin-bottom: 8px; font-size: clamp(1.05rem, 1.5vw, 1.35rem); font-weight: 500; line-height: 1.35; }
.hero-support { max-width: 475px; margin-bottom: 0; color: var(--muted); font-size: .85rem; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 33px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 15px; min-height: 49px; padding: 14px 21px; border: 1px solid transparent; border-radius: 14px; font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-dark { background: var(--dark); color: var(--white); }
.button-dark:hover { background: var(--accent); }
.button-outline { border-color: var(--ink); background: transparent; }
.button-outline:hover { background: var(--ink); color: var(--paper); }
.hero-index { display: flex; justify-content: space-between; max-width: 480px; margin-top: 76px; padding-top: 12px; border-top: 1px solid var(--rule); color: var(--muted); font-size: .58rem; font-weight: 600; letter-spacing: .14em; }
.hero-media { position: relative; min-height: 615px; background: #a98d80; overflow: hidden; }
.hero-media::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 72%, rgba(32, 27, 24, .23)); content: ""; pointer-events: none; }
.hero-media img, .hero-media video { display: block; width: 100%; height: 100%; min-height: 615px; object-fit: cover; filter: saturate(.82) contrast(1.03); pointer-events: none; }
.hero-media-tag { position: absolute; top: 24px; left: 24px; z-index: 1; color: var(--white); font-size: .6rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }
.hero-media-caption { position: absolute; right: 24px; bottom: 22px; z-index: 1; color: var(--white); font-family: var(--serif); font-size: 1.3rem; line-height: .95; text-align: right; }

.statement { display: grid; grid-template-columns: .7fr 1.25fr .65fr; align-items: end; gap: 30px; padding-top: 94px; padding-bottom: 112px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.statement-text { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 6vw, 6.7rem); letter-spacing: -.065em; line-height: .84; }
.statement-note { max-width: 245px; margin: 0 0 4px auto; color: var(--muted); font-size: .79rem; }

.section-block { padding-top: 122px; padding-bottom: 132px; }
.section-intro { max-width: 540px; margin-bottom: 60px; }
.section-intro > p:last-child, .section-heading > p { max-width: 330px; margin-bottom: 0; color: var(--muted); font-size: .82rem; }
.service-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(26px, 5vw, 75px); align-items: start; }
.service-image { margin: 0; background: var(--dark); }
.service-image img { display: block; width: 100%; aspect-ratio: .84; object-fit: cover; filter: grayscale(.5) contrast(1.05); }
.service-image figcaption { display: flex; justify-content: space-between; gap: 20px; padding: 15px 17px 17px; color: var(--white); font-size: .6rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.service-image figcaption span { color: #c49883; }
.service-list { border-top: 1px solid var(--ink); }
.service-card { display: grid; grid-template-columns: 1fr 30px; gap: 15px; align-items: start; min-height: 132px; padding: 23px 0 25px; border-bottom: 1px solid var(--rule); }
.service-number { color: var(--accent); font-size: .68rem; font-weight: 600; letter-spacing: .1em; }
.service-card h3 { margin: 0 0 10px; font-size: clamp(1.8rem, 3.1vw, 3rem); }
.service-card p { max-width: 500px; margin: 0; color: var(--muted); font-size: .78rem; }

.training { border-top: 1px solid var(--rule); }
.training-list { border-top: 1px solid var(--ink); }
.training-card { display: grid; grid-template-columns: 1fr 30px; gap: 15px; align-items: start; min-height: 125px; padding: 23px 0 25px; border-bottom: 1px solid var(--rule); }
.training-number { color: var(--accent); font-size: .68rem; font-weight: 600; letter-spacing: .1em; }
.training-card h3 { margin: 0 0 9px; font-size: clamp(1.8rem, 3.1vw, 3rem); }
.training-card p { margin: 0; color: var(--muted); font-size: .78rem; }
.training-card p a { border-bottom: 1px solid var(--ink); text-decoration: none; }
.training-card p a:hover { color: var(--accent); border-color: var(--accent); }
.training-card i { font-style: normal; }

.approach { background: var(--dark); color: var(--paper); }
.approach .kicker, .approach .section-intro > p:last-child, .approach-grid p { color: #aaa59d; }
.approach .kicker span, .approach-grid span { color: #c39882; }
.split-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; max-width: none; margin-bottom: 73px; }
.split-intro h2 { margin-bottom: 0; }
.split-intro > p { align-self: end; justify-self: end; max-width: 260px !important; margin: 0 0 8px !important; }
.approach-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; border-top: 1px solid rgba(238, 236, 231, .35); }
.approach-grid article { min-height: 210px; padding: 25px 22px 20px 0; border-bottom: 1px solid rgba(238, 236, 231, .35); }
.approach-grid article + article { padding-left: 22px; border-left: 1px solid rgba(238, 236, 231, .35); }
.approach-grid h3 { margin-top: 0; font-size: clamp(2rem, 3.6vw, 3.3rem); }
.approach-grid p { max-width: 230px; margin-bottom: 0; font-size: .78rem; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 52px; }
.section-heading h2 { margin-bottom: 0; }
.portfolio-grid { display: grid; grid-template-columns: 1fr .72fr .72fr; grid-auto-rows: 255px; gap: 15px; }
.portfolio-card { position: relative; display: block; min-width: 0; overflow: hidden; background: var(--dark); color: var(--white); text-decoration: none; }
.portfolio-card::after, .reel-grid a::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(27, 24, 21, .66)); content: ""; pointer-events: none; }
.portfolio-card img, .reel-grid img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.portfolio-card:hover img, .reel-grid a:hover img { transform: scale(1.045); }
.portfolio-feature { grid-row: span 2; }
.portfolio-wide { grid-column: span 2; }
.portfolio-education { grid-row: span 2; }
.portfolio-label { position: absolute; right: 17px; bottom: 15px; left: 17px; z-index: 1; display: flex; justify-content: space-between; gap: 10px; font-size: .66rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.portfolio-label b { margin-right: auto; color: #d5ae98; font-weight: 600; }
.portfolio-label i { font-size: .9rem; font-style: normal; }

.image-statement { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(38px, 8vw, 130px); align-items: center; padding-top: 38px; padding-bottom: 130px; }
.image-statement-photo { background: var(--dark); }
.image-statement-photo img { display: block; width: 100%; aspect-ratio: 1.2; object-fit: cover; }
.image-statement-copy h2 { max-width: 560px; }
.image-statement-copy > p:not(.kicker) { max-width: 420px; margin-bottom: 28px; color: var(--muted); font-size: .83rem; }

.reel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.reel-grid a { position: relative; display: block; min-height: 430px; overflow: hidden; color: var(--white); text-decoration: none; background: var(--dark); }
.reel-grid a span { position: absolute; right: 16px; bottom: 16px; left: 16px; z-index: 1; display: flex; justify-content: space-between; font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.reel-grid a i { font-style: normal; }

.reviews { padding-top: 0; }
.review-card { display: grid; grid-template-columns: 1fr .75fr; gap: 70px; align-items: end; padding: clamp(35px, 6vw, 80px); background: var(--dark); color: var(--paper); }
.review-card h2 { margin-bottom: 0; }
.review-card > div:last-child { max-width: 335px; }
.review-card > div:last-child > p:not(.review-rating) { color: #aaa59d; font-size: .82rem; }
.review-rating { margin-bottom: 17px; color: #d4ae96; font-family: var(--serif); font-size: 2.4rem; line-height: 1; }
.button-cream { margin-top: 10px; background: var(--paper); color: var(--ink); }
.button-cream:hover { background: var(--accent); color: var(--white); }

.techs { border-bottom: 1px solid var(--rule); }
.techs .section-heading > p { margin: 0 0 8px; }
.tech-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.tech-card { min-height: 280px; padding: 27px 25px; border: 1px solid var(--rule); background: var(--white); }
.tech-card.is-coming-soon { position: relative; overflow: hidden; }
.tech-card.is-coming-soon::after { position: absolute; inset: 0; z-index: 1; background: rgba(248, 247, 243, .22); content: ""; pointer-events: none; }
.tech-card.is-coming-soon > *:not(.coming-soon) { filter: blur(14px); opacity: .4; }
.tech-card .coming-soon { position: absolute; top: 50%; left: 50%; z-index: 2; padding: 10px 13px; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); font-size: .63rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; transform: translate(-50%, -50%); white-space: nowrap; }
.tech-card > span { color: var(--accent); font-size: .68rem; font-weight: 600; letter-spacing: .1em; }
.tech-card h3 { max-width: 420px; margin-top: 55px; }
.lumore-card h3 { text-wrap: balance; }
.tech-card p { max-width: 440px; min-height: 48px; margin-bottom: 28px; color: var(--muted); font-size: .78rem; }
.tech-card .text-link { margin-top: 10px; font-size: .63rem; }

.promo { display: grid; grid-template-columns: 1fr .75fr; gap: 70px; align-items: end; background: var(--accent); color: var(--white); }
.promo .kicker { color: rgba(248, 247, 243, .72); }
.promo .kicker span { color: var(--white); }
.promo h2 { margin-bottom: 30px; }
.promo-copy > p:last-child { max-width: 480px; margin-bottom: 0; color: rgba(248, 247, 243, .82); font-size: .84rem; }
.promo-side { max-width: 390px; }
.promo-video { overflow: hidden; background: rgba(37, 35, 33, .24); }
.promo-video video { display: block; width: 100%; max-height: 390px; object-fit: cover; pointer-events: none; }
.promo-details { max-width: 340px; margin-top: 24px; }
.promo-details p { margin-bottom: 0; color: rgba(248, 247, 243, .82); font-size: .78rem; }
.promo-details strong { color: var(--white); }

.booking { display: grid; grid-template-columns: 1fr .7fr; gap: 60px; align-items: end; min-height: 570px; padding-top: 100px; padding-bottom: 100px; background: var(--paper-deep); }
.booking-copy h2 { margin-bottom: 30px; }
.booking-copy > p:not(.kicker):not(.booking-policy) { max-width: 465px; color: var(--muted); font-size: .87rem; }
.booking-policy { max-width: 525px; margin: 26px 0 29px; padding: 17px 19px; border-left: 2px solid var(--accent); background: rgba(255, 255, 255, .4); color: var(--muted); font-size: .75rem; }
.booking-policy strong { display: block; margin-bottom: 4px; color: var(--ink); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.booking-policy-link { margin-bottom: 18px; }
.booking-side { display: flex; flex-direction: column; justify-content: space-between; align-self: stretch; min-height: 270px; padding: 28px; border: 1px solid var(--ink); background: var(--dark); color: var(--paper); }
.booking-side-brand,
.booking-side-studio { display: block; font-family: var(--serif); letter-spacing: -.07em; line-height: .8; }
.booking-side-brand { font-size: clamp(2.6rem, 5vw, 5.5rem); }
.booking-side-studio { margin-top: 6px; font-size: calc(clamp(2.6rem, 5vw, 5.5rem) - 3px); }
.booking-side p { margin: auto 0 0; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.booking-side small { margin-top: 25px; color: #aaa59d; font-size: .65rem; }

.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 86px; color: var(--muted); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.site-footer a { text-decoration: none; }
.footer-brand-group { display: inline-flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.footer-brand { color: var(--ink); }
.footer-studio { color: var(--muted); font-size: 1.12rem; font-weight: 700; letter-spacing: .17em; }
.whatsapp-float { position: fixed; left: 24px; bottom: 24px; z-index: 20; display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid var(--white); border-radius: 50%; background: var(--dark); color: var(--white); box-shadow: 0 8px 22px rgba(34, 32, 30, .18); transition: transform .2s ease, background .2s ease; }
.whatsapp-float svg { display: block; width: 23px; height: 23px; fill: currentColor; }
.whatsapp-float:hover { background: var(--ink); transform: translateY(-2px); }
.back-to-top { position: fixed; right: 24px; bottom: 24px; z-index: 20; min-height: 44px; padding: 12px 16px; border: 1px solid var(--ink); border-radius: 14px; background: var(--dark); color: var(--white); cursor: pointer; font: inherit; font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s ease, visibility .2s ease, transform .2s ease, background .2s ease; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--accent); }

.policy-page { padding-top: 92px; padding-bottom: 112px; }
.policy-page-heading { margin-bottom: 52px; }
.policy-page-heading h1 { margin-bottom: 0; }
.policy-page-intro { max-width: 390px; margin-top: 30px; margin-bottom: 0; color: var(--muted); font-size: .82rem; }
.policy-document { display: grid; gap: 18px; max-width: 900px; margin: 0 auto; }
.policy-document img { display: block; width: 100%; height: auto; border: 1px solid var(--rule); background: var(--white); }
.policy-back { margin-top: 32px; }

.price-page { padding-top: 92px; padding-bottom: 112px; }
.price-page-heading { display: grid; grid-template-columns: 1fr .8fr; gap: 60px; align-items: end; margin-bottom: 58px; }
.price-page-heading h1 { margin-bottom: 0; }
.price-page-intro { max-width: 430px; margin: 0 0 6px; color: var(--muted); font-size: .82rem; }
.price-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 42px; }
.price-group { border-top: 1px solid var(--ink); padding-top: 22px; }
.price-group h2 { margin-bottom: 25px; font-size: clamp(2.5rem, 4.7vw, 4.7rem); }
.price-list { display: grid; gap: 0; }
.price-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 28px; min-width: 0; padding: 18px 0; border-bottom: 1px solid var(--rule); }
.price-item > div { min-width: 0; }
.price-item h3 { margin: 0 0 6px; font-family: var(--sans); font-size: .86rem; font-weight: 600; letter-spacing: .03em; line-height: 1.25; }
.price-item p { max-width: 390px; margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.55; overflow-wrap: anywhere; }
.price-item > strong { white-space: nowrap; color: var(--ink); font-size: .74rem; font-weight: 600; letter-spacing: .06em; }
.price-note { max-width: 700px; margin: 42px 0 0; color: var(--muted); font-size: .75rem; }
.price-back { margin-top: 32px; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; padding-top: 4px; }
  .header-tools { grid-column: 2; grid-row: 1; gap: 12px; }
  .hero { grid-template-columns: 1fr .9fr; gap: 35px; min-height: 640px; padding-top: 60px; }
  .hero-media, .hero-media img, .hero-media video { min-height: 540px; }
  .statement { grid-template-columns: .65fr 1.35fr; }
  .statement-note { grid-column: 2; margin-left: 0; }
  .service-layout { grid-template-columns: .72fr 1.28fr; }
  .portfolio-grid { grid-auto-rows: 220px; }
  .reel-grid a { min-height: 350px; }
  .price-grid { grid-template-columns: 1fr; gap: 44px; }
  .price-item p { max-width: none; }
}

@media (max-width: 640px) {
  body { background: var(--paper); }
  .site-header { min-height: 105px; padding-top: 16px; padding-bottom: 16px; }
  .site-header nav a { font-size: .6rem; }
  .menu-toggle { width: 30px; height: 30px; }
  .hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding-top: 54px; padding-bottom: 70px; }
  h1 { margin-bottom: 27px; font-size: clamp(4rem, 21vw, 7rem); }
  .hero h1 em { margin-left: .55em; }
  .hero-media, .hero-media img, .hero-media video { min-height: 460px; }
  .hero-index { margin-top: 47px; }
  .statement { display: block; padding-top: 70px; padding-bottom: 77px; }
  .statement-text { margin: 48px 0 42px; font-size: clamp(3.2rem, 16vw, 6rem); }
  .statement-note { max-width: 300px; margin: 0; }
  .section-block { padding-top: 80px; padding-bottom: 90px; }
  .section-intro { margin-bottom: 43px; }
  .section-intro h2, .section-heading h2 { font-size: clamp(3.3rem, 15vw, 5.5rem); }
  .service-layout { display: flex; flex-direction: column; }
  .service-image { width: 100%; }
  .service-image img { aspect-ratio: .92; }
  .service-card { grid-template-columns: 1fr 24px; min-height: 142px; padding-top: 21px; padding-bottom: 23px; }
  .service-card h3 { font-size: 2rem; }
  .training-card { grid-template-columns: 1fr 24px; min-height: 142px; padding-top: 21px; padding-bottom: 23px; }
  .training-card h3 { font-size: 2rem; }
  .split-intro { display: block; margin-bottom: 48px; }
  .split-intro > p { margin-top: 30px !important; }
  .approach-grid { display: block; }
  .approach-grid article, .approach-grid article + article { min-height: 0; padding: 24px 0; border-left: 0; }
  .approach-grid h3 { margin-top: 0; }
  .section-heading { display: block; margin-bottom: 37px; }
  .section-heading .text-link { margin-top: 25px; }
  .portfolio-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 220px; gap: 9px; }
  .portfolio-feature { grid-row: span 2; }
  .portfolio-wide { grid-column: span 2; }
  .portfolio-education { grid-row: span 2; }
  .portfolio-label { right: 10px; bottom: 10px; left: 10px; font-size: .53rem; }
  .image-statement { display: flex; flex-direction: column; align-items: stretch; gap: 40px; padding-top: 10px; padding-bottom: 90px; }
  .image-statement-photo img { aspect-ratio: 1; }
  .reel-grid { grid-template-columns: 1fr; gap: 10px; }
  .reel-grid a { min-height: 430px; }
  .review-card { display: block; padding: 35px 24px 29px; }
  .review-card > div:last-child { margin-top: 50px; }
  .techs .section-heading > p { margin-top: 23px; }
  .tech-grid { grid-template-columns: 1fr; }
  .tech-card { min-height: 0; padding: 24px 20px 28px; }
  .tech-card h3 { margin-top: 45px; }
  .tech-card p { min-height: 0; }
  .promo { display: block; }
  .promo-details { margin-top: 45px; }
  .booking { display: block; min-height: 0; padding-top: 80px; padding-bottom: 80px; }
  .booking-side { min-height: 250px; margin-top: 50px; }
  .policy-page { padding-top: 70px; padding-bottom: 80px; }
  .policy-page-heading { margin-bottom: 38px; }
  .price-page { padding-top: 70px; padding-bottom: 80px; }
  .price-page-heading { display: block; margin-bottom: 42px; }
  .price-page-intro { margin-top: 30px; }
  .price-grid { grid-template-columns: 1fr; gap: 44px; }
  .price-group h2 { font-size: clamp(2.7rem, 13vw, 4.5rem); }
  .price-item { grid-template-columns: 1fr; gap: 9px; }
  .price-item p { max-width: none; }
  .price-item > strong { justify-self: start; }
  .site-footer { align-items: flex-start; flex-direction: column; padding-top: 27px; padding-bottom: 31px; }
  .back-to-top { right: 16px; bottom: 16px; }
  .whatsapp-float { left: 16px; bottom: 16px; width: 42px; height: 42px; }
  .whatsapp-float svg { width: 21px; height: 21px; }
}
