@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/font-0.woff2) format('woff2');
}
@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/font-1.woff2) format('woff2');
}
@font-face {
  font-family: 'Cormorant';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/font-2.woff2) format('woff2');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/font-3.woff2) format('woff2');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/font-4.woff2) format('woff2');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/font-5.woff2) format('woff2');
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(fonts/font-6.woff2) format('woff2');
}
:root {
  --bg:#111111;
  --surface:#191919;
  --surface-2:#222222;
  --ink:#f5f5f5;
  --muted:#b9b9b9;
  --red:#d62b36;
  --red-deep:#d62b36;
  --line:#3b3b3b;
  --border-subtle:#3b3b3b;
  --border-strong:#737373;
  --surface-hover:#242424;
  --font-display:'Cormorant',Georgia,serif;
  --font-body:'Montserrat',Arial,sans-serif;
  --header:94px;
  --ease:cubic-bezier(.2,.7,.3,1);
  --space-sm:16px;
  --space-md:32px;
  --space-lg:64px;
  --space-xl:112px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:120px
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:16px/1.85 var(--font-body);
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select {
  font:inherit
}
button,a,input,summary {
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent
}
img {
  display:block;
  max-width:100%
}
figure {
  margin:0
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2 {
  font:500 64px/1.08 var(--font-display);
  letter-spacing:-1.1px;
  text-wrap:balance;
  margin-bottom:28px
}
h1 {
  font-size:88px
}
h3 {
  font-size:20px;
  line-height:1.45;
  font-weight:500;
  margin-bottom:18px
}
p {
  color:var(--muted);
  margin-bottom:24px
}
button {
  cursor:pointer
}
a,button,summary,input {
  transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s
}
a:hover {
  color:var(--brand-text)
}
a:active {
  color:var(--brand-text)
}
:focus-visible {
  outline:2px solid var(--brand-text);
  outline-offset:6px
}
[hidden] {
  display:none!important
}
.wrap {
  width:min(1240px,calc(100% - 112px));
  margin-inline:auto
}
section {
  padding:var(--space-xl) 0
}
.eyebrow {
  font-size:11px;
  line-height:1.6;
  letter-spacing:2.4px;
  font-weight:500;
  color:var(--brand-text);
  text-transform:uppercase
}
.lead {
  font-size:17px;
  line-height:1.85;
  max-width:640px
}
.btn {
  display:inline-flex;
  min-height:54px;
  align-items:center;
  justify-content:center;
  padding:15px 27px;
  font-size:12px;
  line-height:1.6;
  letter-spacing:1.3px;
  text-transform:uppercase;
  font-weight:600;
  background:var(--red-deep);
  color:white;
  border:1px solid var(--red-deep);
  border-radius:1px;
  cursor:pointer;
  text-align:center
}
.btn:hover {
  background:#cb333e;
  color:white;
  border-color:#cb333e
}
.btn:active {
  background:#841b23;
  border-color:#841b23;
  box-shadow:inset 0 2px 6px #0005
}
.btn:focus-visible {
  outline:2px solid var(--brand-text);
  outline-offset:5px
}
.btn.secondary {
  background:transparent;
  border-color:var(--border-strong);
  color:var(--ink)
}
.btn.secondary:hover {
  background:#eeeeee;
  color:#1c1c1c;
  border-color:#eeeeee
}
.btn.secondary:active {
  background:#cdcdcd;
  border-color:#cdcdcd;
  box-shadow:inset 0 2px 6px #0002
}
.btn[aria-disabled=true],button:disabled {
  opacity:.5;
  pointer-events:none
}
.actions {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  margin-top:38px
}
.textlink,.link {
  display:inline-block;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1px;
  line-height:1.7;
  padding:10px 0;
  border-bottom:1px solid #a3a3a3
}
.textlink:hover,.link:hover {
  color:var(--brand-text);
  border-color:var(--brand-text)
}
.textlink:active,.link:active {
  color:var(--brand-text);
  border-color:var(--brand-text)
}
header {
  position:sticky;
  top:0;
  z-index:100;
  background:#111111f5;
  border-bottom:1px solid var(--border-subtle);
  backdrop-filter:blur(14px)
}
nav {
  display:flex;
  align-items:center;
  gap:28px;
  width:min(1440px,calc(100% - 80px));
  margin:auto;
  min-height:var(--header)
}
.brand {
  display:flex;
  align-items:center;
  gap:14px;
  font-size:23px;
  line-height:1.15;
  font-weight:600;
  letter-spacing:1.2px;
  flex-shrink:0;
  margin-right:auto
}
.brand img {
  width:37px;
  height:55px;
  object-fit:contain;
  background:#f5f5f5;
  padding:3px
}
.brand small {
  font-size:9px;
  letter-spacing:3.4px;
  font-weight:400;
  color:#c5c5c5;
  display:block;
  margin-top:7px
}
.brand:hover {
  color:white
}
.navlinks {
  display:flex;
  gap:24px;
  align-items:center
}
.navlinks a {
  position:relative;
  display:flex;
  align-items:center;
  min-height:48px;
  font-size:16px;
  white-space:nowrap;
  color:#d5d5d5
}
.navlinks a:after {
  content:'';
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:1px;
  background:var(--brand-text);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s
}
.navlinks a:hover {
  color:#fff
}
.navlinks a:hover:after,.navlinks a.active:after {
  transform:scaleX(1)
}
.navlinks a.active {
  color:#fff;
  font-weight:600
}
.navlinks a:active {
  color:var(--brand-text)
}
.navbook {
  font-size:11px;
  padding-inline:22px
}
.mobiletoggle {
  display:none
}
.skip {
  background:var(--ink);
  color:var(--bg);
  padding:10px 20px;
  z-index:120
}
.cinema {
  position:relative;
  isolation:isolate;
  min-height:710px;
  padding:0;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#181818
}
.cinema-photo {
  position:absolute;
  inset:0 0 0 32%;
  z-index:-2
}
.cinema-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:55% 40%;
  filter:saturate(.65) contrast(1.1)
}
.cinema:after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#111111 5%,#111111ed 27%,#111111a3 49%,#11111125 75%),linear-gradient(0deg,#111111 0%,transparent 20%,transparent 80%,#11111133)
}
.cinema-inner {
  padding-top:64px
}
.hero-kicker {
  font-size:11px;
  font-weight:500;
  letter-spacing:3px;
  display:flex;
  align-items:center;
  gap:16px;
  color:#dedede
}
.red-line {
  width:45px;
  height:1px;
  background:var(--brand-text)
}
.cinema h1 {
  font-size:clamp(68px,7vw,104px);
  line-height:1.04;
  letter-spacing:-1.5px;
  margin:32px 0;
  max-width:830px
}
.cinema h1 em {
  font-weight:400;
  color:var(--brand-text)
}
.cinema p {
  font-size:15px;
  line-height:1.95;
  color:#d0d0d0;
  max-width:570px
}
.cinema-bottom {
  display:flex;
  gap:80px;
  margin-top:80px;
  border-top:1px solid #7676764f;
  padding:22px 0;
  font-size:9px;
  letter-spacing:2px;
  color:#c9c9c9;
  max-width:750px
}
.vertical-note {
  position:absolute;
  right:24px;
  top:50%;
  writing-mode:vertical-rl;
  letter-spacing:3px;
  font-size:9px;
  color:#e8e8e8
}
.intro-line {
  padding:62px 0;
  border-bottom:1px solid var(--line)
}
.intro-line .wrap {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:100px;
  align-items:center
}
.intro-line p {
  font:400 35px/1.3 var(--font-display);
  margin:0;
  color:var(--ink);
  letter-spacing:-.3px
}
.intro-line p span {
  color:#f5f5f5
}
.intro-line .wrap>div {
  font-size:16px;
  color:#b0b0b0;
  max-width:450px
}
.sectionhead {
  display:flex;
  justify-content:space-between;
  gap:40px;
  align-items:end;
  margin-bottom:44px
}
.sectionhead h2 {
  margin:18px 0 0;
  max-width:700px
}
.sectionhead>p {
  font-size:16px;
  max-width:330px;
  margin-bottom:0
}
.sectionhead>.textlink {
  white-space:nowrap;
  margin-bottom:5px
}
.featured-deck {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}
.feature-image {
  height:370px;
  position:relative;
  display:block;
  overflow:hidden
}
.feature-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.8);
  transition:transform .6s var(--ease),filter .6s
}
.feature-image:hover img {
  transform:scale(1.035);
  filter:saturate(1)
}
.feature-image:active img {
  filter:brightness(.8)
}
.feature-index {
  position:absolute;
  top:17px;
  left:20px;
  font:400 24px/1 var(--font-display);
  background:#111111b0;
  padding:8px 12px;
  color:white
}
.feature-title {
  display:flex;
  gap:15px;
  justify-content:space-between;
  align-items:center;
  margin:25px 0 16px;
  border-bottom:1px solid var(--line);
  padding-bottom:18px
}
.feature-title h3 {
  font:500 28px/1.1 var(--font-display);
  letter-spacing:-.3px;
  margin:0;
  max-width:220px
}
.feature-title>span {
  font-size:15px;
  white-space:nowrap;
  color:var(--brand-text)
}
.feature-item p {
  font-size:15px;
  line-height:1.9;
  margin-bottom:0;
  color:#adadad
}
.about-feature {
  background:#1b1b1b
}
.about-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}
.about-photos {
  position:relative;
  padding:0 74px 70px 0;
  min-height:600px
}
.about-main img {
  width:100%;
  height:530px;
  object-fit:cover;
  object-position:50% 30%;
  filter:saturate(.7)
}
.about-small {
  position:absolute;
  right:0;
  bottom:0;
  width:49%;
  border:8px solid var(--border-subtle)
}
.about-small img {
  height:260px;
  width:100%;
  object-fit:cover
}
.photo-label {
  position:absolute;
  bottom:26px;
  left:0;
  font-size:9px;
  letter-spacing:2px;
  color:#c7c7c7
}
.about-copy h2 {
  font-size:63px;
  margin-top:23px
}
.about-copy p {
  font-size:16px;
  line-height:1.95
}
.about-copy .btn {
  margin-top:13px
}
.space-feature {
  position:relative;
  isolation:isolate;
  min-height:570px;
  display:flex;
  align-items:center
}
.space-photo {
  position:absolute;
  inset:0;
  z-index:-2
}
.space-photo img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.55)
}
.space-feature:after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#111111ef,#111111a6 50%,#11111140),#11111122
}
.space-copy h2 {
  font-size:75px;
  margin:25px 0;
  max-width:800px
}
.space-copy p {
  max-width:440px;
  color:#d5d5d5;
  font-size:16px
}
.space-copy .eyebrow {
  color:var(--brand-text)
}
.space-copy .btn {
  margin-top:14px
}
.destination-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px
}
.destination-card {
  position:relative;
  display:block;
  min-height:410px;
  overflow:hidden
}
.destination-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.55);
  transition:transform .6s var(--ease)
}
.destination-card:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(transparent,#111111e0)
}
.destination-card>div {
  position:absolute;
  z-index:1;
  bottom:30px;
  left:32px;
  right:32px
}
.destination-card span {
  font-size:10px;
  letter-spacing:2px
}
.destination-card h3 {
  font:500 39px/1.2 var(--font-display);
  margin:13px 0;
  color:#fff
}
.destination-card .destination-link {
  display:inline-block;
  letter-spacing:1px;
  font-size:10px;
  border-bottom:1px solid #a7a7a7;
  padding-bottom:5px
}
.destination-card:hover img {
  transform:scale(1.025)
}
.destination-card:hover {
  color:var(--brand-text)
}
.academy-feature {
  background:#e2e2e2;
  color:#222222
}
.academy-layout {
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:90px;
  align-items:center
}
.academy-layout h2 {
  font-size:63px;
  margin:23px 0
}
.academy-layout p {
  font-size:16px;
  color:#555555;
  max-width:460px
}
.academy-feature .eyebrow {
  color:#8c2530
}
.academy-feature .btn.secondary {
  border-color:var(--border-strong);
  color:#252525
}
.academy-feature .btn.secondary:hover {
  background:#252525;
  color:#fff
}
.academy-photo img {
  width:100%;
  height:480px;
  object-fit:cover
}
.journal-grid {
  display:grid;
  grid-template-columns:1.15fr .8fr .85fr;
  gap:24px;
  align-items:start
}
.journal-grid img {
  width:100%;
  height:350px;
  object-fit:cover;
  filter:saturate(.65)
}
.journal-grid img:nth-child(2) {
  height:280px;
  margin-top:70px
}
.journal-grid img:nth-child(3) {
  height:320px;
  margin-top:30px
}
.product-section {
  border-top:1px solid var(--line);
  background:#191919
}
.product-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:center
}
.product-inner h2 {
  margin:18px 0 0
}
.product-inner p {
  font-size:16px;
  max-width:450px
}
.booking {
  background:#191919;
  padding:80px 0;
  border-top:1px solid var(--border-subtle);
  border-bottom:1px solid var(--border-subtle)
}
.booking-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:70px
}
.booking h2 {
  font-size:61px;
  margin:20px 0
}
.booking p {
  font-size:16px;
  margin-bottom:0
}
.booking-actions {
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  gap:18px;
  align-items:center
}
.booking-phone {
  font-size:16px;
  letter-spacing:2px;
  color:var(--brand-text)
}
.booking-actions .btn {
  min-width:225px
}
.page-intro {
  padding:85px 0 65px;
  background:#1a1a1a;
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden
}
.page-intro:after {
  content:'NHỰA STYLE';
  position:absolute;
  right:-40px;
  bottom:-25px;
  font:500 150px/.9 var(--font-display);
  color:#ffffff03;
  pointer-events:none;
  white-space:nowrap
}
.page-intro h1 {
  font-size:85px;
  max-width:1000px;
  margin:23px 0
}
.page-intro .lead {
  font-size:15px;
  max-width:620px;
  margin:0
}
.services-main {
  padding-top:74px
}
.combo-grid {
  border-top:1px solid var(--border-strong)
}
.combo {
  display:grid;
  grid-template-columns:1fr 1.2fr .55fr;
  gap:45px;
  align-items:center;
  padding:42px 25px 42px 0;
  border-bottom:1px solid var(--border-subtle);
  transition:background-color .25s
}
.combo:hover {
  background:#1b1b1b
}
.combo .eyebrow {
  font-size:10px;
  letter-spacing:2px
}
.combo h3 {
  font:500 32px/1.12 var(--font-display);
  letter-spacing:0;
  max-width:300px;
  margin:16px 0
}
.price {
  font:400 36px/1.1 var(--font-display);
  color:var(--brand-text);
  margin:0
}
.price span {
  font-size:21px;
  vertical-align:super;
  margin-left:4px
}
.combo-includes>p {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:#b7b7b7;
  margin-bottom:16px
}
.combo ul {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:25px;
  row-gap:7px;
  list-style:none;
  padding:0;
  margin:0
}
.combo li {
  position:relative;
  padding-left:12px;
  font-size:12px;
  line-height:1.8;
  color:#d2d2d2
}
.combo li:before {
  content:'';
  height:3px;
  width:3px;
  background:var(--brand-text);
  position:absolute;
  top:10px;
  left:0
}
.combo .btn {
  font-size:10px;
  padding:13px 18px;
  width:100%;
  min-height:49px
}
.combo.signature {
  background:#1e1e1e
}
.combo.signature:hover {
  background:#262626
}
.combo.signature .combo-top {
  padding-left:24px
}
.single-section {
  background:#1b1b1b
}
.price-heading {
  display:flex;
  justify-content:space-between;
  gap:50px;
  align-items:end;
  margin-bottom:50px
}
.price-heading h2 {
  margin-bottom:0
}
.price-heading>p {
  font-size:15px;
  margin-bottom:0
}
.price-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:75px
}
.price-row {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:20px;
  padding:20px 0;
  border-bottom:1px solid var(--border-subtle);
  font-size:15px
}
.price-row strong {
  font-size:15px;
  font-weight:500;
  color:var(--brand-text);
  white-space:nowrap;
  font-variant-numeric:tabular-nums
}
.editorial {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center
}
.editorial-media {
  position:relative
}
.editorial-media>img {
  height:540px;
  width:100%;
  object-fit:cover;
  filter:saturate(.7)
}
.editorial-copy h2 {
  font-size:62px;
  margin-top:24px
}
.editorial-copy p {
  font-size:16px;
  line-height:1.95
}
.editorial-copy .btn {
  margin-top:12px
}
.values-section,.gallery-section {
  background:#1b1b1b
}
.values-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:55px
}
.values-grid article {
  border-top:1px solid var(--border-strong);
  padding-top:25px
}
.values-grid article>span {
  font:400 40px/1 var(--font-display);
  color:var(--brand-text)
}
.values-grid h3 {
  font:500 32px/1.2 var(--font-display);
  margin:25px 0 20px
}
.values-grid p {
  font-size:15px;
  line-height:1.9
}
.faq-section {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:90px
}
.faq-section h2 {
  font-size:58px;
  max-width:500px
}
details {
  padding:23px 0;
  border-bottom:1px solid var(--border-subtle)
}
details:first-of-type {
  border-top:1px solid var(--border-subtle)
}
summary {
  font-size:16px;
  line-height:1.8;
  cursor:pointer;
  font-weight:500;
  padding-right:15px
}
summary:hover {
  color:var(--brand-text)
}
summary:active {
  color:var(--brand-text)
}
details[open] summary {
  color:var(--brand-text);
  margin-bottom:15px
}
details p {
  font-size:15px!important;
  margin-bottom:0;
  line-height:1.9
}
.branch-toolbar {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:40px;
  margin-bottom:42px
}
.search-field {
  max-width:520px;
  flex:1
}
.search-field label {
  display:block;
  margin-bottom:12px;
  font-size:15px
}
input[type=search] {
  width:100%;
  min-height:54px;
  background:#191919;
  border:1px solid var(--border-strong);
  padding:12px 18px;
  color:var(--ink);
  border-radius:1px;
  font-size:15px
}
input[type=search]::placeholder {
  color:#aaaaaa
}
input[type=search]:hover {
  border-color:#c3c3c3
}
input[type=search]:focus {
  outline:2px solid var(--brand-text);
  outline-offset:3px;
  border-color:var(--brand-text)
}
.filters {
  display:flex;
  gap:10px;
  flex-wrap:wrap
}
.filters button {
  min-height:50px;
  padding:11px 20px;
  background:transparent;
  border:1px solid var(--border-strong);
  color:#dddddd;
  font-size:12px;
  border-radius:1px
}
.filters button:hover {
  background:#292929;
  border-color:#b3b3b3
}
.filters button:active {
  background:#222222;
  box-shadow:inset 0 2px 5px #0005
}
.filters button[aria-pressed=true] {
  background:#e9e9e9;
  border-color:#e9e9e9;
  color:#222222
}
.grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}
.card.branch {
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--border-strong);
  background:#191919;
  padding:30px;
  min-height:275px;
  transition:background-color .25s
}
.card.branch:hover {
  background:#242424
}
.num {
  font-size:9px;
  letter-spacing:2px;
  color:#bdbdbd
}
.branch h3 {
  font:500 34px/1.2 var(--font-display);
  margin:25px 0 16px
}
.branch p {
  font-size:12px;
  flex:1;
  color:#b9b9b9
}
.branch .link {
  font-size:10px;
  align-self:start
}
.video iframe {
  width:100%;
  aspect-ratio:16/9;
  border:0;
  background:#242424
}
.video h3 {
  font-size:16px;
  line-height:1.7;
  font-weight:500;
  margin:20px 0 10px
}
.video .link {
  font-size:10px
}
.video {
  padding-bottom:15px
}
.gallery {
  columns:3;
  column-gap:25px
}
.gallery button {
  display:block;
  width:100%;
  border:0;
  padding:0;
  background:none;
  cursor:zoom-in;
  margin:0 0 25px;
  overflow:hidden
}
.gallery img {
  width:100%;
  height:auto;
  transition:transform .5s,filter .5s;
  filter:saturate(.75)
}
.gallery button:hover img {
  transform:scale(1.025);
  filter:saturate(1)
}
.gallery button:active img {
  filter:brightness(.8)
}
dialog {
  max-width:94vw;
  max-height:94vh;
  border:1px solid var(--border-strong);
  background:#191919;
  color:#f3f3f3;
  padding:18px
}
dialog::backdrop {
  background:#000e
}
dialog img {
  max-width:85vw;
  max-height:78vh
}
dialog button {
  display:block;
  margin:0 0 18px auto;
  padding:8px 25px;
  min-height:44px;
  font-size:12px;
  border:1px solid var(--border-strong);
  background:#222222;
  color:white
}
dialog button:hover {
  background:#a12c35;
  border-color:#a12c35
}
dialog button:active {
  background:#741c23
}
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px
}
.contact-entry {
  padding-bottom:28px;
  margin-bottom:30px;
  border-bottom:1px solid var(--border-subtle)
}
.contact-entry a {
  display:block;
  font-size:16px;
  margin-top:14px;
  overflow-wrap:anywhere
}
.contact-entry a:hover {
  text-decoration:underline;
  text-underline-offset:6px
}
.contact-entry .large-contact {
  font:500 64px/1.2 var(--font-display);
  letter-spacing:1px
}
.contact-entry p {
  font-size:12px;
  margin:18px 0 0
}
.contact-panel {
  background:#202020;
  padding:45px
}
.contact-panel h2 {
  font-size:51px;
  margin-top:24px
}
.contact-panel ol {
  padding-left:22px
}
.contact-panel li {
  padding-left:8px;
  margin-bottom:24px
}
.contact-panel h3 {
  font-size:16px;
  font-weight:500;
  margin-bottom:7px
}
.contact-panel p {
  font-size:12px;
  margin-bottom:0
}
.contact-panel li::marker {
  font-family:var(--font-display);
  color:var(--brand-text)
}
.contact-panel .btn {
  margin-top:15px
}
.stickycall {
  display:none
}
footer {
  padding:75px 0 25px;
  background:#111111
}
.foot {
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:70px
}
.foot .brand {
  margin-bottom:27px
}
.foot .eyebrow {
  font-size:10px;
  color:#cccccc
}
.foot p {
  font-size:12px;
  line-height:2
}
.foot a:not(.brand) {
  display:block;
  font-size:12px;
  margin:10px 0;
  color:#b9b9b9;
  overflow-wrap:anywhere
}
.foot a:not(.brand):hover {
  color:var(--brand-text)
}
.copyright {
  border-top:1px solid var(--border-subtle);
  display:flex;
  justify-content:space-between;
  gap:25px;
  margin-top:50px;
  padding-top:24px;
  font-size:9px;
  letter-spacing:1px;
  color:#aaaaaa
}
@media(max-width:1250px) {
  nav {
    gap:20px;
    width:calc(100% - 56px)
  }
  .navlinks {
    gap:17px
  }
  .navlinks a {
    font-size:15px
  }
  .brand {
    font-size:21px
  }
  .navbook {
    padding-inline:18px
  }
  .about-layout {
    gap:70px
  }
  .combo {
    gap:30px
  }
  .cinema h1 {
    font-size:88px
  }
  .wrap {
    width:calc(100% - 88px)
  }
}
@media(max-width:1080px) {
  :root {
    --header:82px
  }
  .mobiletoggle {
    display:block;
    order:1;
    min-height:46px;
    min-width:70px;
    background:transparent;
    border:1px solid var(--border-strong);
    color:white;
    padding:8px 15px;
    font-size:15px
  }
  .mobiletoggle:hover {
    background:#292929
  }
  .mobiletoggle:active {
    background:#151515
  }
  .mobiletoggle[aria-expanded=true] {
    background:#e4e4e4;
    color:#222222
  }
  .navlinks {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    max-height:calc(100dvh - var(--header));
    overflow:auto;
    background:#151515;
    border-bottom:1px solid var(--border-strong);
    padding:22px 32px 28px
  }
  .navlinks.open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:2px
  }
  .navlinks a {
    font-size:16px;
    min-height:49px
  }
  .navlinks a:after {
    width:38px
  }
  .brand img {
    height:50px;
    width:34px
  }
  .brand {
    font-size:23px
  }
  .navbook {
    font-size:11px
  }
  .cinema {
    min-height:680px
  }
  .cinema h1 {
    font-size:83px
  }
  .cinema-photo {
    left:22%
  }
  .cinema:after {
    background:linear-gradient(90deg,#111111f5,#111111b5 45%,#11111135),linear-gradient(0deg,#111111,transparent 30%)
  }
  .feature-image {
    height:310px
  }
  .feature-title {
    align-items:start;
    flex-direction:column;
    gap:10px
  }
  .feature-title h3 {
    font-size:30px
  }
  .about-layout {
    gap:55px
  }
  .about-copy h2 {
    font-size:55px
  }
  .about-photos {
    padding-right:50px;
    min-height:560px
  }
  .about-main img {
    height:470px
  }
  .about-small img {
    height:220px
  }
  .academy-layout {
    gap:55px
  }
  .academy-layout h2 {
    font-size:55px
  }
  .price-list {
    column-gap:40px
  }
  .combo {
    grid-template-columns:1fr 1.2fr;
    gap:25px
  }
  .combo-action {
    grid-column:2
  }
  .combo .btn {
    width:auto;
    min-width:170px
  }
  .combo.signature .combo-top {
    padding-left:15px
  }
  .editorial {
    gap:55px
  }
  .editorial-copy h2 {
    font-size:54px
  }
  .grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .contact-layout {
    gap:55px
  }
  .contact-entry .large-contact {
    font-size:54px
  }
  .foot {
    gap:40px
  }
}
@media(max-width:760px) {
  :root {
    --header:78px;
    --space-xl:68px
  }
  html {
    scroll-padding-top:100px
  }
  body {
    font-size:16px
  }
  h1 {
    font-size:53px;
    letter-spacing:-.6px
  }
  h2 {
    font-size:46px;
    letter-spacing:-.5px
  }
  .wrap {
    width:calc(100% - 40px)
  }
  nav {
    width:calc(100% - 36px);
    gap:12px
  }
  .brand {
    font-size:20px;
    gap:10px;
    letter-spacing:.6px
  }
  .brand small {
    font-size:8px;
    letter-spacing:2.7px
  }
  .brand img {
    height:46px;
    width:31px
  }
  .navbook {
    display:none
  }
  .navlinks {
    padding-inline:22px
  }
  .eyebrow {
    font-size:10px;
    letter-spacing:1.8px
  }
  .btn {
    min-height:52px;
    font-size:11px;
    padding:14px 22px
  }
  .actions {
    gap:12px;
    margin-top:30px
  }
  .cinema {
    min-height:680px;
    align-items:start
  }
  .cinema-inner {
    padding-top:76px
  }
  .cinema-photo {
    left:0
  }
  .cinema-photo img {
    object-position:60% 45%;
    filter:saturate(.6)
  }
  .cinema:after {
    background:linear-gradient(90deg,#111111eb,#1111117d),linear-gradient(0deg,#111111,transparent 60%)
  }
  .hero-kicker {
    font-size:9px;
    letter-spacing:2px;
    gap:12px
  }
  .red-line {
    width:28px
  }
  .cinema h1 {
    font-size:clamp(44px,12vw,62px);
    line-height:1.1;
    margin:30px 0;
    letter-spacing:-.8px;
    max-width:440px
  }
  .cinema p {
    font-size:15px;
    max-width:310px;
    line-height:1.9
  }
  .cinema-bottom {
    display:block;
    margin-top:65px;
    padding-top:22px;
    font-size:8px;
    letter-spacing:1.5px
  }
  .cinema-bottom span {
    display:block;
    margin-bottom:8px
  }
  .vertical-note {
    display:none
  }
  .intro-line {
    padding:40px 0
  }
  .intro-line .wrap {
    grid-template-columns:1fr;
    gap:24px
  }
  .intro-line p {
    font-size:32px
  }
  .intro-line .wrap>div {
    font-size:15px;
    line-height:1.9
  }
  .sectionhead {
    display:block;
    margin-bottom:30px
  }
  .sectionhead h2 {
    font-size:45px;
    margin-top:18px
  }
  .sectionhead>.textlink {
    margin-top:20px
  }
  .sectionhead>p {
    margin-top:22px;
    font-size:15px
  }
  .featured-deck {
    grid-template-columns:1fr;
    gap:38px
  }
  .feature-image {
    height:360px
  }
  .feature-title {
    flex-direction:row;
    align-items:center;
    margin:22px 0 14px;
    padding-bottom:17px
  }
  .feature-title h3 {
    font-size:31px;
    max-width:225px
  }
  .feature-title>span {
    font-size:15px
  }
  .feature-item p {
    font-size:15px
  }
  .about-layout {
    grid-template-columns:1fr;
    gap:40px
  }
  .about-photos {
    min-height:500px;
    padding:0 55px 60px 0
  }
  .about-main img {
    height:440px
  }
  .about-small {
    width:48%;
    border-width:6px
  }
  .about-small img {
    height:205px
  }
  .photo-label {
    font-size:8px;
    bottom:20px;
    letter-spacing:1.3px
  }
  .about-copy h2 {
    font-size:49px
  }
  .about-copy p {
    font-size:16px
  }
  .space-feature {
    min-height:520px
  }
  .space-copy h2 {
    font-size:55px
  }
  .space-copy p {
    font-size:15px;
    max-width:310px
  }
  .space-feature:after {
    background:linear-gradient(90deg,#111111ec,#1111118a)
  }
  .destination-grid {
    grid-template-columns:1fr;
    gap:24px
  }
  .destination-card {
    min-height:355px
  }
  .destination-card>div {
    left:25px;
    bottom:26px;
    right:25px
  }
  .destination-card h3 {
    font-size:37px
  }
  .destination-card span {
    font-size:9px
  }
  .academy-layout {
    grid-template-columns:1fr;
    gap:36px
  }
  .academy-layout h2 {
    font-size:48px
  }
  .academy-layout p {
    font-size:16px
  }
  .academy-photo img {
    height:390px
  }
  .journal-grid {
    grid-template-columns:1fr 1fr;
    gap:16px
  }
  .journal-grid img {
    height:260px
  }
  .journal-grid img:nth-child(2) {
    height:260px;
    margin:0
  }
  .journal-grid img:nth-child(3) {
    grid-column:1/-1;
    height:240px;
    margin:0
  }
  .product-inner {
    grid-template-columns:1fr;
    gap:25px
  }
  .product-inner h2 {
    font-size:46px
  }
  .product-inner p {
    font-size:15px
  }
  .booking {
    padding:55px 0
  }
  .booking-inner {
    display:block
  }
  .booking h2 {
    font-size:49px
  }
  .booking p {
    font-size:15px
  }
  .booking-actions {
    align-items:start;
    margin-top:30px
  }
  .booking-phone {
    font-size:16px
  }
  .page-intro {
    padding:55px 0 45px
  }
  .page-intro h1 {
    font-size:56px;
    line-height:1.08;
    margin:22px 0
  }
  .page-intro .lead {
    font-size:16px;
    line-height:1.9
  }
  .page-intro:after {
    font-size:90px;
    bottom:-15px
  }
  .services-main {
    padding-top:54px
  }
  .combo {
    display:block;
    padding:30px 22px 34px 0
  }
  .combo h3 {
    font-size:36px;
    margin:15px 0
  }
  .price {
    font-size:38px
  }
  .combo-includes {
    margin:27px 0
  }
  .combo ul {
    grid-template-columns:1fr;
    row-gap:8px
  }
  .combo li {
    font-size:16px
  }
  .combo-includes>p {
    font-size:10px
  }
  .combo .btn {
    font-size:11px;
    min-height:50px;
    padding:12px 22px
  }
  .combo.signature {
    padding-left:22px
  }
  .combo.signature .combo-top {
    padding-left:0
  }
  .price-heading {
    display:block;
    margin-bottom:30px
  }
  .price-heading h2 {
    font-size:46px
  }
  .price-heading>p {
    font-size:12px;
    margin-top:22px
  }
  .price-list {
    grid-template-columns:1fr;
    gap:0
  }
  .price-row {
    font-size:15px;
    padding:20px 0;
    gap:18px
  }
  .price-row strong {
    font-size:12px
  }
  .editorial {
    grid-template-columns:1fr;
    gap:36px
  }
  .editorial-media>img {
    height:430px
  }
  .editorial-copy h2 {
    font-size:49px
  }
  .editorial-copy p {
    font-size:16px
  }
  .editorial.reverse .editorial-copy {
    order:1
  }
  .editorial.reverse .editorial-media {
    order:0
  }
  .values-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .values-grid h3 {
    font-size:32px;
    margin-top:20px
  }
  .values-grid article>span {
    font-size:35px
  }
  .values-grid p {
    font-size:16px
  }
  .faq-section {
    grid-template-columns:1fr;
    gap:24px
  }
  .faq-section h2 {
    font-size:48px
  }
  .branch-toolbar {
    display:block
  }
  .search-field {
    max-width:none
  }
  .filters {
    margin-top:24px
  }
  .filters button {
    font-size:12px;
    min-height:48px;
    padding-inline:17px
  }
  .grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .card.branch {
    padding:27px;
    min-height:260px
  }
  .branch h3 {
    font-size:34px
  }
  .branch p {
    font-size:16px
  }
  .num {
    font-size:10px
  }
  .branch .link {
    font-size:11px
  }
  .video h3 {
    font-size:16px
  }
  .gallery {
    columns:2;
    column-gap:16px
  }
  .gallery button {
    margin-bottom:16px
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:40px
  }
  .contact-entry .large-contact {
    font-size:52px
  }
  .contact-entry a {
    font-size:16px
  }
  .contact-entry p {
    font-size:15px
  }
  .contact-panel {
    padding:30px 25px
  }
  .contact-panel h2 {
    font-size:45px
  }
  .contact-panel h3 {
    font-size:15px
  }
  .contact-panel p {
    font-size:15px
  }
  .foot {
    grid-template-columns:1fr 1fr;
    gap:35px 25px
  }
  .foot>div:first-child {
    grid-column:1/-1
  }
  .foot a:not(.brand) {
    font-size:12px
  }
  .copyright {
    display:block;
    margin-top:35px;
    font-size:8px
  }
  .copyright span {
    display:block;
    margin-bottom:10px
  }
  footer {
    padding-top:60px
  }
  .textlink,.link {
    font-size:10px
  }
}
@media(max-width:380px) {
  .cinema h1 {
    font-size:44px
  }
  .cinema .btn {
    padding-inline:16px;
    font-size:10px
  }
  .price-row {
    flex-wrap:wrap;
    gap:5px
  }
  .price-row strong {
    margin-left:auto
  }
  .feature-title {
    gap:10px
  }
  .feature-title h3 {
    font-size:28px
  }
  .feature-title>span {
    font-size:12px
  }
  .contact-entry .large-contact {
    font-size:45px
  }
  .page-intro h1 {
    font-size:51px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .feature-image:hover img,.destination-card:hover img,.gallery button:hover img {
    transform:none
  }
}
.feature-item p,.about-copy p,.space-copy p,.academy-layout p,.product-inner p,.editorial-copy p,.intro-line .wrap>div,.page-intro .lead,.values-grid p,.contact-panel p {
  font-size:16px
}
.combo li {
  font-size:14px
}
.price-row,.price-row strong {
  font-size:15px
}
.btn {
  font-size:13px
}
.navbook {
  font-size:12px
}
.combo .btn {
  font-size:12px
}
.feature-title>span {
  font-size:16px
}
.branch p {
  font-size:15px
}
.foot a:not(.brand),.foot p {
  font-size:14px
}
@media(max-width:760px) {
  .cinema p {
    font-size:15px
  }
  .feature-title h3 {
    font-size:30px
  }
  .feature-title>span {
    font-size:14px
  }
  .btn {
    font-size:12px
  }
  .combo li {
    font-size:15px
  }
  .price-row {
    font-size:14px
  }
  .price-row strong {
    font-size:13px
  }
  .contact-entry p {
    font-size:14px
  }
  .cinema .btn {
    font-size:11px
  }
}
.textlink,.link {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.foot a:not(.brand) {
  min-height:32px
}
.cinema .btn {
  min-height:54px
}
/* Revision 4: compact section headings and service image overlays. */
h2,.sectionhead h2,.about-copy h2,.space-copy h2,.academy-layout h2,.product-inner h2,.booking h2,.price-heading h2,.editorial-copy h2,.faq-section h2,.contact-panel h2 {
  font-size:clamp(30px,3vw,42px);
  line-height:1.2;
  letter-spacing:-.5px;
  text-wrap:pretty
}
.sectionhead>div {
  min-width:0;
  flex:1
}
.sectionhead h2 {
  max-width:none
}
.about-copy h2,.academy-layout h2,.editorial-copy h2,.product-inner h2 {
  font-size:clamp(30px,2.7vw,38px)
}
.space-copy h2 {
  max-width:none
}
.booking h2 {
  max-width:none
}
.feature-item {
  container-type:inline-size;
  min-width:0
}
.feature-image {
  height:440px;
  isolation:isolate;
  color:#fff
}
.feature-image:after {
  content:'';
  position:absolute;
  inset:30% 0 0;
  z-index:0;
  background:linear-gradient(180deg,transparent 0%,rgba(8,8,8,.7) 48%,rgba(8,8,8,.97) 100%);
  pointer-events:none
}
.feature-image img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover
}
.feature-index {
  z-index:1
}
.feature-overlay {
  position:absolute;
  z-index:1;
  inset:auto 20px 23px;
  pointer-events:none
}
.feature-overlay .feature-title {
  display:flex;
  flex-direction:row;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  border:0;
  margin:0 0 13px;
  padding:0
}
.feature-overlay .feature-title h3 {
  font-size:clamp(18px,6.15cqw,27px);
  font-weight:500;
  line-height:1.25;
  letter-spacing:-.25px;
  white-space:nowrap;
  max-width:none;
  color:#fff;
  flex-shrink:0;
  margin:0
}
.feature-overlay .feature-title>span {
  font-size:clamp(12px,3.6cqw,15px);
  font-weight:500;
  white-space:nowrap;
  color:var(--brand-text);
  font-variant-numeric:lining-nums tabular-nums;
  flex-shrink:0
}
.feature-overlay>p {
  font-size:14px;
  line-height:1.75;
  color:#e4e4e4;
  margin:0;
  min-height:74px
}
.feature-image:hover {
  color:#fff
}
.feature-image:focus-visible {
  outline-offset:5px
}
.services-more {
  display:flex;
  justify-content:center;
  margin-top:36px
}
@media(min-width:761px) and (max-width:1100px) {
  .featured-deck {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .feature-image {
    height:440px
  }
}
@media(max-width:760px) {
  h2,.sectionhead h2,.about-copy h2,.space-copy h2,.academy-layout h2,.product-inner h2,.booking h2,.price-heading h2,.editorial-copy h2,.faq-section h2,.contact-panel h2 {
    font-size:clamp(28px,7.4vw,36px);
    line-height:1.25
  }
  .featured-deck {
    gap:24px
  }
  .feature-image {
    height:420px
  }
  .feature-overlay {
    inset:auto 16px 20px
  }
  .feature-overlay .feature-title {
    gap:8px
  }
  .feature-overlay .feature-title h3 {
    font-size:clamp(18px,6.15cqw,27px)
  }
  .feature-overlay .feature-title>span {
    font-size:clamp(12px,3.6cqw,15px)
  }
  .feature-overlay>p {
    font-size:14px;
    min-height:74px
  }
  .services-more {
    margin-top:28px
  }
}
/* Revision 5 — brand-red interaction, regional cards and mixed media gallery. */
:root {
  --brand:#d62b36;
  --brand-hover:#b9202b;
  --brand-active:#941924;
  --brand-text:#f04444;
  --brand-focus:#f04444
}
a:hover,a:active {
  color:var(--brand-text)
}
.eyebrow,.space-copy .eyebrow,.hero-kicker .red-line,.booking-phone,.combo .price,.price-row strong,.feature-overlay .feature-title>span {
  color:var(--brand-text)
}
.red-line {
  background:var(--brand)
}
.navlinks a:after {
  background:var(--brand)
}
.navlinks a:hover,.navlinks a.active {
  color:var(--ink)
}
.btn,.location-button {
  background:var(--brand);
  border-color:var(--brand);
  color:#fff
}
.btn:hover,.location-button:hover {
  background:var(--brand-hover);
  border-color:var(--brand-hover);
  color:#fff
}
.btn:active,.location-button:active {
  background:var(--brand-active);
  border-color:var(--brand-active);
  color:#fff;
  box-shadow:inset 0 2px 5px #0004
}
.btn.secondary {
  background:transparent;
  border-color:var(--border-strong);
  color:var(--ink)
}
.btn.secondary:hover,.academy-feature .btn.secondary:hover {
  background:var(--brand-hover);
  border-color:var(--brand-hover);
  color:#fff
}
.btn.secondary:active,.academy-feature .btn.secondary:active {
  background:var(--brand-active);
  border-color:var(--brand-active);
  color:#fff
}
.btn:focus-visible,.mobiletoggle:focus-visible,.filters button:focus-visible,.media-tile:focus-visible {
  outline:2px solid var(--brand-focus);
  outline-offset:5px
}
.mobiletoggle:hover {
  background:var(--brand-hover);
  border-color:var(--brand-hover);
  color:#fff
}
.mobiletoggle:active,.mobiletoggle[aria-expanded=true] {
  background:var(--brand-active);
  border-color:var(--brand-active);
  color:#fff
}
.filters button:hover {
  background:var(--brand-hover);
  border-color:var(--brand-hover);
  color:#fff
}
.filters button:active,.filters button[aria-pressed=true] {
  background:var(--brand-active);
  border-color:var(--brand-active);
  color:#fff
}
.feature-overlay .feature-title>span {
  font-size:clamp(18px,4.8cqw,21px);
  font-weight:600
}
.price {
  font-size:42px;
  font-variant-numeric:lining-nums tabular-nums
}
.price-row strong {
  font-size:17px;
  font-weight:600
}
.destination-card {
  position:relative;
  min-height:440px;
  border:1px solid var(--border-subtle)
}
.destination-card:after {
  background:linear-gradient(180deg,#11111108 0%,#11111140 30%,#111111f2 100%)
}
.destination-card .destination-copy {
  bottom:34px;
  left:34px;
  right:34px
}
.destination-card .destination-eyebrow {
  font-size:10px;
  letter-spacing:2px;
  color:#ededed
}
.destination-card .destination-city {
  font:600 clamp(34px,3.6vw,51px)/1.15 var(--font-body);
  text-transform:uppercase;
  letter-spacing:1px;
  color:#fff;
  border-left:4px solid var(--brand);
  padding-left:18px;
  margin:20px 0 16px
}
.destination-copy p {
  font-size:15px;
  color:#e2e2e2;
  margin-bottom:25px
}
.destination-copy .location-button {
  display:inline-flex;
  min-height:50px;
  font-size:12px;
  padding:13px 25px
}
.gallery-more {
  display:flex;
  justify-content:center;
  margin-top:38px
}
.media-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:205px;
  gap:20px
}
.media-tile {
  position:relative;
  display:block;
  width:100%;
  min-width:0;
  border:0;
  padding:0;
  background:#222222;
  cursor:pointer;
  overflow:hidden;
  text-align:left;
  color:white;
  isolation:isolate
}
.media-tile:first-child {
  grid-column:span 2;
  grid-row:span 2
}
.media-tile:after {
  content:'';
  position:absolute;
  inset:30% 0 0;
  background:linear-gradient(transparent,#000c);
  z-index:0;
  pointer-events:none
}
.media-tile img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.85);
  transition:transform .4s var(--ease),filter .3s
}
.media-tile:hover img {
  transform:scale(1.035);
  filter:saturate(1)
}
.media-tile:active img {
  filter:brightness(.8)
}
.media-tile .media-kind {
  position:absolute;
  top:16px;
  left:16px;
  background:#111111d9;
  border:1px solid #ffffff50;
  padding:5px 10px;
  color:#fff;
  font-size:10px;
  letter-spacing:1.5px;
  z-index:1
}
.media-tile[data-media-type=video] .media-kind {
  background:var(--brand);
  border-color:var(--brand)
}
.media-tile .media-caption {
  position:absolute;
  bottom:18px;
  left:20px;
  right:20px;
  font-size:14px;
  line-height:1.6;
  color:#fff;
  z-index:1
}
.media-tile:first-child .media-caption {
  font:500 33px/1.2 var(--font-display);
  max-width:440px
}
.media-open {
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  padding:10px 17px;
  border:1px solid #fff9;
  background:#111111bf;
  white-space:nowrap;
  font-size:12px;
  font-weight:600;
  color:white;
  opacity:0;
  z-index:1;
  transition:opacity .2s
}
.media-tile:hover .media-open,.media-tile:focus-visible .media-open {
  opacity:1
}
.media-pagination {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px;
  margin-top:36px
}
.media-page-status {
  font-size:13px;
  color:var(--muted);
  white-space:nowrap
}
.media-dialog {
  width:min(1100px,94vw);
  max-width:94vw;
  max-height:94dvh;
  margin:auto;
  padding:24px;
  border:1px solid var(--border-strong);
  background:#181818;
  color:var(--ink);
  overflow:auto
}
.media-dialog::backdrop {
  background:#080808ee
}
.media-dialog .media-dialog-head {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:28px;
  margin-bottom:20px
}
.media-counter {
  display:block;
  color:var(--brand-text);
  font-size:12px;
  letter-spacing:2px;
  margin-bottom:9px
}
.media-dialog h2 {
  font:500 30px/1.25 var(--font-display);
  margin:0;
  color:var(--ink)
}
.media-dialog button {
  margin:0;
  float:none;
  display:inline-flex;
  min-height:46px;
  min-width:84px;
  padding:11px 20px;
  font-size:12px
}
.media-stage {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:200px;
  background:#0b0b0b
}
.media-preview-image {
  display:block;
  width:100%;
  height:min(60vh,640px);
  max-height:60vh;
  max-width:100%;
  object-fit:contain
}
.media-preview-video {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  border:0;
  max-height:60vh
}
.media-dialog-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:20px
}
.media-dialog-foot .textlink {
  font-size:11px
}
.foot {
  grid-template-columns:1.2fr .95fr .75fr 1.2fr;
  gap:48px
}
footer .footer-heading {
  font:700 15px/1.5 var(--font-body);
  text-transform:uppercase;
  letter-spacing:1.8px;
  color:#fff;
  margin:0 0 23px;
  padding-bottom:16px;
  border-bottom:1px solid var(--border-subtle);
  position:relative
}
footer .footer-heading:after {
  content:'';
  position:absolute;
  left:0;
  bottom:-1px;
  width:34px;
  height:2px;
  background:var(--brand)
}
.foot .footer-group a {
  font-size:14px;
  font-weight:400;
  min-height:32px;
  color:#b9b9b9;
  margin:10px 0
}
.foot .footer-group a:hover,.foot .footer-group a:active {
  color:var(--brand-text)
}
@media(max-width:1050px) {
  .foot {
    grid-template-columns:1.15fr 1fr;
    gap:40px 65px
  }
  .media-grid {
    grid-auto-rows:185px;
    gap:16px
  }
  .destination-card .destination-copy {
    left:26px;
    right:26px
  }
}
@media(max-width:760px) {
  .feature-overlay .feature-title>span {
    font-size:18px
  }
  .feature-overlay .feature-title {
    gap:8px
  }
  .price {
    font-size:40px
  }
  .price-row strong {
    font-size:16px
  }
  .destination-card {
    min-height:400px
  }
  .destination-card .destination-copy {
    left:24px;
    right:24px;
    bottom:28px
  }
  .destination-card .destination-city {
    font-size:36px;
    padding-left:14px;
    margin-top:18px
  }
  .destination-copy p {
    font-size:14px
  }
  .media-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:175px;
    gap:14px
  }
  .media-tile:first-child {
    grid-column:span 2;
    grid-row:span 2
  }
  .media-tile .media-caption {
    font-size:12px;
    left:13px;
    right:13px;
    bottom:13px
  }
  .media-tile .media-kind {
    top:12px;
    left:12px;
    font-size:9px
  }
  .media-tile:first-child .media-caption {
    font-size:28px
  }
  .media-tile .media-open {
    font-size:10px;
    padding:7px 11px
  }
  .gallery-more {
    margin-top:28px
  }
  .media-dialog {
    padding:16px
  }
  .media-dialog .media-dialog-head {
    gap:16px
  }
  .media-dialog h2 {
    font-size:24px
  }
  .media-dialog button {
    font-size:11px;
    padding-inline:14px;
    min-width:68px
  }
  .media-preview-image {
    height:50vh;
    max-height:50vh
  }
  .media-preview-video {
    max-height:50vh
  }
  .media-dialog-foot {
    flex-wrap:wrap;
    gap:10px
  }
  .media-dialog-foot .textlink {
    font-size:9px
  }
  .media-pagination {
    gap:12px;
    flex-wrap:wrap
  }
  .media-pagination .btn {
    font-size:10px;
    padding-inline:15px
  }
  .foot {
    grid-template-columns:1fr 1fr;
    gap:35px 25px
  }
  .foot .footer-brand {
    grid-column:1/-1
  }
  footer .footer-heading {
    font-size:14px
  }
  .foot .footer-group a {
    font-size:14px
  }
  .media-open {
    opacity:1
  }
}
@media(prefers-reduced-motion:reduce) {
  .media-tile img {
    transition:none
  }
  .media-tile:hover img {
    transform:none
  }
  .media-open {
    transition:none
  }
}
/* Revision 6: photographic cards and consistent contact controls */
.values-grid article>span {
  color:var(--brand-text)
}
.product-inner .btn {
  margin-top:14px
}
.photo-combos {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  border:0
}
.photo-combo.combo {
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
  background:var(--surface,#191919);
  border:1px solid var(--border-subtle);
  overflow:hidden;
  align-items:stretch
}
.photo-combo.combo:hover {
  background:#222222
}
.photo-combo .feature-image {
  height:340px;
  container-type:inline-size
}
.photo-combo .feature-overlay {
  padding:24px 18px
}
.photo-combo .feature-title {
  margin:0;
  padding:0;
  border:0;
  gap:8px
}
.photo-combo .feature-title h3 {
  font:500 clamp(18px,6.15cqw,27px)/1.15 var(--font-display);
  white-space:nowrap;
  max-width:none;
  letter-spacing:-.4px;
  margin:0
}
.photo-combo .feature-title>span {
  font-size:clamp(17px,5.3cqw,21px);
  font-weight:600
}
.combo-details {
  padding:26px;
  display:flex;
  flex:1;
  flex-direction:column;
  gap:25px
}
.photo-combo .combo-includes {
  flex:1
}
.photo-combo .combo-includes>p {
  color:var(--ink);
  font-size:11px;
  font-weight:600
}
.photo-combo.combo ul {
  grid-template-columns:1fr;
  gap:9px
}
.photo-combo.combo li {
  font-size:14px
}
.photo-combo.combo .btn {
  font-size:11px;
  min-height:48px;
  margin-top:auto
}
.branch-photo-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px
}
.card.branch {
  padding:0;
  min-height:0;
  overflow:hidden;
  background:#191919;
  border:1px solid var(--border-subtle)
}
.branch-photo {
  height:235px;
  position:relative;
  overflow:hidden
}
.branch-photo:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(transparent 30%,#111111c9)
}
.branch-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease
}
.branch:hover .branch-photo img {
  transform:scale(1.04)
}
.branch-city {
  position:absolute;
  bottom:22px;
  left:24px;
  z-index:1;
  color:#fff;
  font:700 25px/1.2 var(--font-body);
  text-transform:uppercase;
  border-left:3px solid var(--brand);
  padding-left:12px
}
.branch-detail {
  padding:25px;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.branch-detail .num {
  color:var(--brand-text);
  font-size:10px;
  letter-spacing:1.5px
}
.branch-detail h3 {
  font:500 30px/1.2 var(--font-display);
  margin:16px 0 10px
}
.branch-detail p {
  font-size:14px;
  margin:0 0 24px
}
.branch-detail .map-button {
  margin-top:auto;
  min-height:46px;
  font-size:10px;
  width:100%
}
.branch-photo-note {
  font-size:12px;
  color:var(--muted);
  margin-top:20px
}
.contact-dock {
  position:fixed;
  right:20px;
  bottom:max(22px,env(safe-area-inset-bottom));
  z-index:60;
  display:flex;
  flex-direction:column;
  gap:9px
}
.dock-link {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  position:relative;
  color:#fff;
  background:#1e1e1e;
  border:1px solid var(--border-strong);
  border-radius:50%;
  box-shadow:0 4px 18px #0005;
  transition:background .2s,border-color .2s,transform .2s
}
.dock-link:first-child {
  background:var(--brand);
  border-color:var(--brand)
}
.dock-link svg {
  width:23px;
  height:23px
}
.dock-link span {
  position:absolute;
  right:60px;
  white-space:nowrap;
  padding:5px 12px;
  border-radius:3px;
  color:#fff;
  background:#292929;
  font-size:12px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s
}
.dock-link:hover,.dock-link:focus-visible {
  background:var(--brand-hover);
  color:white;
  border-color:var(--brand-hover);
  transform:translateY(-2px)
}
.dock-link:focus-visible {
  outline:2px solid #fff;
  outline-offset:3px
}
.dock-link:hover span,.dock-link:focus-visible span {
  opacity:1;
  visibility:visible
}
.dock-link:active {
  background:var(--brand-active);
  transform:translateY(0)
}
@media(max-width:1100px) and (min-width:701px) {
  .photo-combos {
    grid-template-columns:1fr
  }
  .photo-combo.combo {
    display:grid;
    grid-template-columns:1fr 1fr
  }
  .photo-combo .feature-image {
    height:100%;
    min-height:390px
  }
  .branch-photo-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:700px) {
  .photo-combos,.branch-photo-grid {
    grid-template-columns:1fr
  }
  .photo-combo .feature-image {
    height:330px
  }
  .combo-details {
    padding:24px
  }
  .contact-dock {
    right:12px;
    bottom:max(14px,env(safe-area-inset-bottom));
    gap:8px
  }
  .dock-link {
    height:44px;
    width:44px
  }
  .branch-detail {
    padding:24px
  }
  footer .wrap {
    padding-bottom:64px
  }
  .contact-dock~* {
    max-width:100%
  }
}
@media(prefers-reduced-motion:reduce) {
  .dock-link,.branch-photo img {
    transition:none
  }
}
/* Brand colors and staggered contact-icon motion */
.dock-link.dock-maps {
  background:#fff;
  border-color:#e5e7eb;
  color:#4285f4
}
.dock-link.dock-whatsapp {
  background:#25d366;
  border-color:#25d366;
  color:#fff
}
.dock-link.dock-messenger {
  background:linear-gradient(145deg,#0084ff,#5360f5);
  border-color:#2583ff;
  color:#fff
}
.dock-link.dock-phone {
  background:var(--brand);
  border-color:var(--brand);
  color:#fff
}
.dock-link:hover,.dock-link:focus-visible {
  filter:brightness(1.12);
  border-color:#fff
}
.dock-link:active {
  filter:brightness(.85)
}
.dock-link svg {
  animation:contact-wiggle 6s ease-in-out infinite;
  transform-origin:50% 55%
}
.dock-whatsapp svg {
  animation-delay:.3s
}
.dock-messenger svg {
  animation-delay:.6s
}
.dock-phone svg {
  animation-delay:.9s
}
.dock-link:hover svg,.dock-link:focus-visible svg {
  animation:contact-wiggle-hover .55s ease-in-out 1
}
@keyframes contact-wiggle {
  0%,3%,18%,100% {
    transform:rotate(0)
  }
  6%,12% {
    transform:rotate(-12deg)
  }
  9%,15% {
    transform:rotate(12deg)
  }
}
@keyframes contact-wiggle-hover {
  0%,100% {
    transform:rotate(0)
  }
  20%,60% {
    transform:rotate(-14deg)
  }
  40%,80% {
    transform:rotate(14deg)
  }
}
@media(prefers-reduced-motion:reduce) {
  .dock-link svg,.dock-link:hover svg,.dock-link:focus-visible svg {
    animation:none
  }
}
/* Larger contact controls; animate the entire circular button */
.contact-dock {
  gap:12px
}
.dock-link {
  width:58px;
  height:58px;
  animation:contact-circle-shake 6s ease-in-out infinite;
  transform-origin:50% 50%
}
.dock-link svg {
  width:29px;
  height:29px;
  animation:none
}
.dock-link span {
  right:72px
}
.dock-whatsapp {
  animation-delay:.3s
}
.dock-messenger {
  animation-delay:.6s
}
.dock-phone {
  animation-delay:.9s
}
.dock-link:hover,.dock-link:focus-visible {
  animation:contact-circle-hover .6s ease-in-out infinite
}
.dock-link:hover svg,.dock-link:focus-visible svg {
  animation:none
}
.dock-link:active {
  animation:none;
  transform:scale(.95)
}
@keyframes contact-circle-shake {
  0%,3%,18%,100% {
    transform:translateX(0) rotate(0)
  }
  6%,12% {
    transform:translateX(-3px) rotate(-9deg)
  }
  9%,15% {
    transform:translateX(3px) rotate(9deg)
  }
}
@keyframes contact-circle-hover {
  0%,100% {
    transform:translateX(0) rotate(0)
  }
  20%,60% {
    transform:translateX(-2px) rotate(-8deg)
  }
  40%,80% {
    transform:translateX(2px) rotate(8deg)
  }
}
@media(max-width:700px) {
  .contact-dock {
    gap:10px
  }
  .dock-link {
    width:52px;
    height:52px
  }
  .dock-link svg {
    width:27px;
    height:27px
  }
  .dock-link span {
    right:64px
  }
}
@media(prefers-reduced-motion:reduce) {
  .dock-link,.dock-link:hover,.dock-link:focus-visible,.dock-link svg {
    animation:none
  }
}
/* Compact header actions with neutral menu border */
header .navbook.btn {
  min-height:40px;
  padding:9px 15px;
  font-size:10px;
  line-height:1.4;
  letter-spacing:1px;
  border:1px solid var(--brand);
  border-radius:2px
}
header .navbook.btn:hover {
  border-color:var(--brand-hover);
  background:var(--brand-hover)
}
header .navbook.btn:active {
  border-color:var(--brand);
  background:var(--brand-active)
}
header .mobiletoggle {
  min-height:40px;
  min-width:66px;
  padding:8px 13px;
  font-size:14px;
  line-height:1.4;
  border:1px solid #777;
  background:transparent;
  border-radius:2px;
  color:#f5f5f5
}
header .mobiletoggle:hover {
  background:#282828;
  border-color:#aaa;
  color:#fff
}
header .mobiletoggle:active,header .mobiletoggle[aria-expanded=true] {
  background:#333;
  border-color:#bbb;
  color:#fff
}
@media(pointer:coarse) {
  header .navbook.btn,header .mobiletoggle {
    min-height:44px
  }
}
/* Standalone bilingual site: shared layout and language controls. */
html {
  scroll-padding-top:120px
}
[hidden] {
  display:none!important
}
.skip-link {
  position:fixed;
  top:10px;
  left:12px;
  z-index:1000;
  transform:translateY(-180%);
  padding:10px 18px;
  background:#f5f5f5;
  color:#111111
}
.skip-link:focus {
  transform:translateY(0)
}
.site-header nav {
  width:min(1500px,calc(100% - 64px));
  gap:22px;
  min-height:92px
}
.site-header .brand {
  font-size:21px;
  letter-spacing:1px;
  gap:12px
}
.site-header .brand img {
  width:35px;
  height:55px;
  flex:0 0 35px;
  background:#fff;
  object-fit:contain
}
.site-header .navlinks {
  gap:20px
}
.site-header .navlinks a {
  font-size:14px
}
.header-actions {
  display:flex;
  align-items:center;
  gap:14px;
  flex-shrink:0
}
.language-switch {
  font-size:12px;
  font-weight:600;
  border:1px solid #777;
  padding:7px 10px;
  min-height:40px;
  display:grid;
  place-items:center
}
.language-switch:hover {
  color:#fff;
  border-color:var(--brand);
  background:var(--brand)
}
.site-header .navbook.btn {
  font-size:10px;
  padding:9px 15px;
  white-space:nowrap
}
.feature-overlay .feature-title h3 {
  min-width:0
}
.photo-combo .feature-title>span {
  font-size:clamp(16px,4.9cqw,20px)
}
.price-note {
  font-size:13px;
  margin-top:24px
}
.branch-count {
  font-size:13px;
  margin-bottom:25px
}
.not-found {
  min-height:60vh
}
.not-found .btn {
  margin:12px 12px 0 0
}
body:has(dialog[open]) {
  overflow:hidden
}
html[lang=en] .feature-item p {
  font-size:14px
}
html[lang=en] .cinema h1 {
  font-size:clamp(60px,6.6vw,96px)
}
html[lang=en] .about-copy h2,html[lang=en] .space-copy h2,html[lang=en] .academy-layout h2 {
  font-size:clamp(34px,3.7vw,52px)
}
.foot .brand {
  font-size:21px
}
@media(max-width:1250px) {
  .site-header .mobiletoggle {
    display:block;
    order:0
  }
  .site-header .navlinks {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:20px 32px;
    background:#171717;
    border-bottom:1px solid #555;
    box-shadow:0 12px 24px #0003;
    max-height:calc(100dvh - 92px);
    overflow-y:auto;
    z-index:110
  }
  .site-header .navlinks.open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:4px
  }
  .site-header .navlinks a {
    min-height:44px;
    font-size:16px
  }
  .site-header .brand {
    margin-right:auto
  }
  .site-header nav {
    gap:14px
  }
}
@media(max-width:700px) {
  .site-header nav {
    min-height:78px;
    width:calc(100% - 32px);
    gap:10px
  }
  .site-header .brand {
    font-size:16px;
    gap:9px
  }
  .site-header .brand img {
    width:29px;
    height:45px;
    flex-basis:29px
  }
  .site-header .brand small {
    font-size:7px;
    letter-spacing:2px
  }
  .header-actions {
    gap:8px
  }
  .site-header .navbook {
    display:none
  }
  .site-header .mobiletoggle {
    padding:8px 10px;
    min-width:58px;
    font-size:12px
  }
  .language-switch {
    min-height:40px;
    padding:7px 9px
  }
  .site-header .navlinks {
    padding:16px;
    max-height:calc(100dvh - 78px)
  }
  html[lang=en] .cinema h1 {
    font-size:clamp(45px,11vw,66px)
  }
  .photo-combo .feature-title h3 {
    font-size:clamp(18px,6cqw,25px)
  }
  .feature-overlay .feature-title>span {
    font-size:17px
  }
  .contact-entry .large-contact {
    font-size:40px
  }
  .booking-inner {
    gap:32px
  }
  .branch-photo {
    height:250px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}

/* Neutral borders and brand-red interactions across VI / EN. */
.card.branch {
  background:var(--surface);
  border-color:var(--border-subtle);
  transition:background-color .2s,border-color .2s;
}
.card.branch:hover,.card.branch:focus-within {
  background:#1e1e1e;
  border-color:#5a5a5a;
}
input[type=search] {
  background:var(--surface);
  border-color:var(--border-strong);
}
input[type=search]:hover {
  border-color:#a3a3a3;
}
input[type=search]:focus {
  border-color:var(--brand);
  outline-color:var(--brand-focus);
}
.filters button {
  border-color:var(--border-strong);
}
.filters button:hover {
  background:var(--brand-hover);
  border-color:var(--brand-hover);
  color:#fff;
}
.filters button:active,.filters button[aria-pressed=true] {
  background:var(--brand-active);
  border-color:var(--brand-active);
  color:#fff;
}
.btn.secondary {
  border-color:var(--border-strong);
}
.btn.secondary:hover {
  border-color:var(--brand-hover);
}
.btn.secondary:active {
  border-color:var(--brand-active);
}

/* Compact two-position language selector with a selected segment. */
.language-switch {
  position:relative; display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:0; flex:0 0 88px; width:88px;
  min-height:40px; padding:3px; border:1px solid #555;
  border-radius:999px; background:#191919; isolation:isolate;
}
.language-switch:before {
  content:''; position:absolute; inset:3px auto 3px 3px;
  width:calc((100% - 6px)/2); border-radius:999px;
  background:var(--brand); z-index:-1; transform:translateX(0);
  transition:transform .2s ease;
}
.language-switch[data-language=en]:before {transform:translateX(100%);}
.language-switch:hover {background:#191919;border-color:#777;color:inherit;}
.language-option {
  display:grid; place-items:center; min-height:32px; font-size:11px;
  font-weight:600; line-height:1; letter-spacing:.4px; border-radius:999px;
  color:#bdbdbd; position:relative;
}
.language-option:hover,.language-option[aria-current=true] {color:#fff;}
.language-option:focus-visible {outline:2px solid #fff;outline-offset:3px;}
@media(max-width:700px) {
  .language-switch {padding:3px;min-height:40px;}
}
@media(max-width:380px) {
  .site-header nav {width:calc(100% - 24px);gap:8px;}
  .site-header .brand {font-size:13px;gap:7px;}
  .site-header .brand img {width:26px;height:42px;flex-basis:26px;}
  .site-header .brand small {font-size:6px;letter-spacing:1.8px;}
  .site-header .mobiletoggle {min-width:50px;padding:8px;font-size:11px;}
  .language-switch {width:82px;flex-basis:82px;}
}
/* Interior-page heroes share the home page's photographic visual language. */
.inner-hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  align-items:center;
  min-height:560px;
  padding:76px 0 48px;
  background:#111;
  border-bottom:1px solid var(--border-subtle);
}
.inner-hero-photo {
  position:absolute;
  inset:0 0 0 28%;
  z-index:-2;
}
.inner-hero-photo img {
  width:100%;height:100%;object-fit:cover;object-position:60% 40%;
  filter:saturate(.68) brightness(.84);
}
.inner-hero:after {
  content:'';position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,#111 3%,#111111eb 29%,#111111a8 54%,#11111125 100%),linear-gradient(0deg,#111 0%,#11111110 32%,#11111125 100%);
}
.inner-hero-content {max-width:850px;}
.inner-hero .hero-kicker {font-size:10px;letter-spacing:2.3px;color:#eee;line-height:1.6;}
.inner-hero h1 {
  font-size:clamp(52px,5.4vw,78px);line-height:1.05;letter-spacing:-1.1px;
  margin:26px 0 24px;max-width:850px;text-wrap:balance;
}
.inner-hero-description {font-size:16px;line-height:1.85;max-width:610px;color:#d1d1d1;margin-bottom:0;}
.inner-hero .actions {margin-top:30px;gap:14px;}
.inner-hero-signature {
  display:flex;gap:32px;flex-wrap:wrap;max-width:650px;
  border-top:1px solid #ffffff26;padding-top:20px;margin-top:38px;
  font-size:9px;line-height:1.7;letter-spacing:1.6px;color:#bdbdbd;
}
.inner-hero[data-page=about] .inner-hero-photo img {object-position:60% 28%;}
.inner-hero[data-page=services] .inner-hero-photo img {object-position:62% 50%;}
.inner-hero[data-page=academy] .inner-hero-photo img {object-position:60% 34%;}
.inner-hero[data-page=locations] .inner-hero-photo img {object-position:65% 46%;}
.inner-hero[data-page=gallery] .inner-hero-photo img {object-position:64% 42%;}
#page-content {scroll-margin-top:115px;}
@media(max-width:1000px) {
  .inner-hero {min-height:540px;padding-top:64px;}
  .inner-hero-photo {left:16%;}
  .inner-hero-content {max-width:740px;}
  .inner-hero h1 {font-size:clamp(48px,6.4vw,68px);}
}
@media(max-width:700px) {
  .inner-hero {min-height:590px;padding:52px 0 32px;align-items:flex-end;}
  .inner-hero-photo {inset:0;}
  .inner-hero-photo img {filter:saturate(.65) brightness(.65);}
  .inner-hero:after {background:linear-gradient(90deg,#111111db,#11111166),linear-gradient(0deg,#111 0%,#11111196 50%,#11111130 100%);}
  .inner-hero h1 {font-size:clamp(42px,10.7vw,60px);line-height:1.08;letter-spacing:-.6px;margin:22px 0 20px;}
  .inner-hero-description {font-size:15px;line-height:1.8;}
  .inner-hero .hero-kicker {font-size:9px;letter-spacing:1.7px;gap:12px;}
  .inner-hero .red-line {width:28px;flex-shrink:0;}
  .inner-hero .actions {gap:12px;margin-top:25px;}
  .inner-hero .btn {min-height:48px;font-size:10px;padding:12px 17px;letter-spacing:.8px;}
  .inner-hero-signature {font-size:8px;gap:14px;justify-content:space-between;margin-top:30px;padding-top:17px;}
}

/* Natural reading order: brand, language / booking, then Menu at the right edge. */
@media(max-width:1250px) {
  .site-header .mobiletoggle {order:2;flex-shrink:0;}
  .site-header .header-actions {order:1;}
}
/* Motion enhances interaction without hiding content or changing document flow. */
@media(prefers-reduced-motion:no-preference) {
  .site-header .navlinks.open {animation:menu-enter .22s ease-out;}
  .media-dialog[open] {animation:dialog-enter .24s ease-out;}
  @media(hover:hover) and (pointer:fine) {
    .btn {transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s,transform .2s;}
    .btn:hover {transform:translateY(-2px);box-shadow:0 7px 20px #0003;}
    .btn:active {transform:translateY(0);box-shadow:none;}
  }
}
@keyframes menu-enter {from {opacity:.6;transform:translateY(-8px);}to {opacity:1;transform:translateY(0);}}
@keyframes dialog-enter {from {opacity:.65;transform:translateY(12px);}to {opacity:1;transform:translateY(0);}}

/* Editorial motion: photographic crossfade, slow zoom, staggered typography. */
.hero-carousel.cinema {display:block;min-height:0;}
.hero-carousel.cinema:after {content:none;}
.hero-slides {display:grid;isolation:isolate;}
.hero-slide {grid-area:1/1;position:relative;isolation:isolate;display:flex;align-items:center;min-height:710px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .75s ease,visibility .75s;}
.hero-slide.is-active {opacity:1;visibility:visible;pointer-events:auto;z-index:1;}
.hero-slide .cinema-photo {inset:0;overflow:hidden;}
.hero-slide .cinema-photo img {object-position:center 40%;filter:saturate(.65) brightness(.7);}
.hero-slide:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#111 0%,#11111130 35%,#11111135 75%,#11111170 100%),linear-gradient(90deg,#111111a6,#11111125 50%,#11111180);}
.hero-carousel .cinema-inner {padding:88px 0 150px;text-align:center;}
.hero-carousel .hero-kicker {justify-content:center;}
.hero-carousel .hero-title {font:500 clamp(54px,6vw,88px)/1.07 var(--font-display);letter-spacing:-1px;max-width:1120px;margin:30px auto 24px;text-wrap:balance;}
.hero-title span,.hero-title em {display:block;}
.hero-carousel .hero-title em {color:var(--brand-text);font-weight:400;}
.hero-carousel .cinema-inner>p {max-width:960px;text-wrap:balance;margin:0 auto 28px;font-size:15px;min-height:56px;color:#ddd;}
.hero-carousel .actions {justify-content:center;margin-top:28px;}
.hero-toolbar {position:absolute;bottom:38px;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #ffffff30;padding-top:24px;}
.hero-scroll {display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;}
.scroll-track {height:32px;width:1px;background:#ffffff40;position:relative;overflow:hidden;}
.scroll-track:after {content:'';position:absolute;inset:0;background:var(--brand);transform:translateY(-60%);}
.scroll-progress {display:none;}
.space-photo {overflow:hidden;}
@media(prefers-reduced-motion:no-preference) {
  .hero-slide.is-active .cinema-photo img {animation:hero-image-drift 7s cubic-bezier(.2,.6,.3,1) both;}
  .hero-slide.is-active .hero-kicker {animation:hero-copy-in .8s .12s both;}
  .hero-slide.is-active .hero-title span {animation:hero-copy-in 1s .22s both;}
  .hero-slide.is-active .hero-title em {animation:hero-copy-in 1s .36s both;}
  .hero-slide.is-active .cinema-inner>p {animation:hero-copy-in .9s .5s both;}
  .hero-slide.is-active .actions {animation:hero-copy-in .9s .64s both;}
  .scroll-track:after {animation:scroll-cue 2s ease-in-out infinite;}
  .event-dialog[open] {animation:event-enter .55s cubic-bezier(.16,1,.3,1) both;}
  @supports(animation-timeline:scroll()) {
    .scroll-progress {display:block;position:fixed;inset:0 0 auto;height:2px;background:var(--brand);z-index:150;transform-origin:left;animation:reading-progress linear both;animation-timeline:scroll(root block);}
  }
}
@keyframes hero-image-drift {from {transform:scale(1.09);}to {transform:scale(1);}}
@keyframes hero-copy-in {from {opacity:0;transform:translateY(24px);}to {opacity:1;transform:translateY(0);}}
@keyframes scroll-cue {0%,100% {transform:translateY(-100%);}60% {transform:translateY(100%);}}
@keyframes reading-progress {from {transform:scaleX(0);}to {transform:scaleX(1);}}

@keyframes event-enter {from {opacity:0;transform:translateY(24px) scale(.98);}to {opacity:1;transform:none;}}
.event-dialog {padding:0;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);width:min(900px,calc(100% - 40px));max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 28px 100px #0008;}
.event-dialog::backdrop {background:#000b;backdrop-filter:blur(6px);}
.event-layout {display:grid;grid-template-columns:.9fr 1.1fr;}
.event-art {min-height:450px;position:relative;background:#222;}
.event-art img {width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:saturate(.8);}
.event-art:after {content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#19191940);}
.event-copy {padding:70px 42px 45px;align-self:center;}
.event-copy h2 {font-size:clamp(32px,3.5vw,48px);line-height:1.1;margin:20px 0;letter-spacing:-.5px;}
.event-copy p {font-size:14px;line-height:1.9;}
.event-copy .btn {margin-top:8px;}
.event-close {position:absolute;right:15px;top:15px;z-index:2;background:#111e;border:1px solid #777;color:white;min-height:40px;padding:8px 16px;font-size:11px;}
.event-close:hover {background:var(--brand-hover);border-color:var(--brand-hover);}
.event-preview {color:var(--brand-text);font-size:10px!important;text-transform:uppercase;letter-spacing:1px;}
@media(max-width:700px) {
  .hero-slide {min-height:720px;}
  .hero-carousel .cinema-inner {padding:70px 0 160px;}
  .hero-carousel .hero-title,html[lang=en] .hero-carousel .hero-title {font-size:clamp(38px,10vw,60px);line-height:1.1;letter-spacing:-.5px;margin:26px auto 22px;}
  .hero-carousel .cinema-inner>p {font-size:14px;min-height:100px;}
  .hero-toolbar {bottom:26px;gap:20px;flex-direction:column;align-items:flex-start;padding-top:20px;}
  .hero-scroll {font-size:8px;letter-spacing:1px;}
  .scroll-track {height:23px;}
  .event-dialog {width:calc(100% - 28px);max-height:calc(100dvh - 28px);}
  .event-layout {grid-template-columns:1fr;}
  .event-art {height:180px;min-height:0;}
  .event-art img {object-position:50% 40%;}
  .event-copy {padding:28px 26px 30px;}
  .event-copy h2 {font-size:34px;}
  .event-copy .eyebrow {font-size:9px;}
}
@media(prefers-reduced-motion:reduce) {
  .hero-slide {transition:none;}
  .scroll-progress {display:none;}
}

html {scrollbar-gutter:stable;}

@media(min-width:701px) {.hero-toolbar {padding-right:76px;}}

/* Quiet hero footer and neutral close control. */
.hero-toolbar {justify-content:flex-end;}
@media(max-width:700px) {.hero-toolbar {align-items:flex-end;}}
.event-close {border-color:#777;outline:none;}
.event-close:hover {background:#2b2b2b;border-color:#aaa;color:#fff;}
.event-close:active {background:#333;border-color:#bbb;}
.event-close:focus-visible {outline:none;border-color:#ddd;box-shadow:inset 0 0 0 1px #ddd;}

@media(max-width:700px) {.hero-toolbar {padding-right:64px;}}

/* JS arms below-fold content before entry; no-JS content stays visible. */
@media(prefers-reduced-motion:no-preference){.ns-reveal-pending{opacity:0}}

/* Independent photographic backgrounds. Content stays on its own, stationary layer. */
.scene-section{position:relative;isolation:isolate;overflow:hidden;overflow:clip;background-color:#111;}
.scene-section>.section-backdrop{position:absolute;inset:-80px 0;z-index:-1;pointer-events:none;user-select:none;}
.section-backdrop>img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;opacity:.78;}
.section-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,12,12,.76),rgba(12,12,12,.86)),linear-gradient(90deg,rgba(12,12,12,.24),transparent 55%,rgba(12,12,12,.18));}
.scene-section:nth-of-type(even)>.section-backdrop:after{background:linear-gradient(180deg,rgba(12,12,12,.83),rgba(12,12,12,.73)),linear-gradient(90deg,rgba(12,12,12,.22),transparent,rgba(12,12,12,.22));}
.space-feature.scene-section:after{display:none;}
.scene-section .price-list{background:rgba(17,17,17,.65);}
.scene-section .contact-panel{background:rgba(25,25,25,.91);}
.scene-section .branch-toolbar input{background:rgba(17,17,17,.9);}
@media(min-width:1024px) and (hover:hover) and (prefers-reduced-motion:no-preference){
 @supports (animation-timeline:view()) and (view-timeline-name:--section-scene){
  .scene-section{view-timeline-name:--section-scene;view-timeline-axis:block;}
  .scene-section>.section-backdrop>img{animation:section-background-drift linear both;animation-timeline:--section-scene;animation-range:entry 0% exit 100%;}
 }
}
@keyframes section-background-drift{from{transform:translate3d(0,-56px,0);}to{transform:translate3d(0,56px,0);}}
@media(max-width:1023px),(hover:none),(prefers-reduced-motion:reduce){.scene-section>.section-backdrop>img{animation:none;transform:none;will-change:auto;}}
/* Keep background photographs quiet so the red brand and foreground images lead. */
.section-backdrop>img{filter:grayscale(.82);}
/* Keep foreground text readable above photographic accents. */
.scene-section{color:var(--ink);}

.booking.scene-section>.section-backdrop>img{object-position:center 42%;}


.course-nav { position: relative; }
.site-header .course-menu {
  display: none; position: absolute; z-index: 115; top: 100%; left: 0;
  min-width: 160px; padding: 6px 12px; background: #171717;
}
.course-nav:hover .course-menu,
.course-nav:focus-within .course-menu { display: block; }
.site-header .course-menu a { display: flex; align-items: center; min-height: 44px; }
.course-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.course-card { background: #181818; border: 1px solid #3a3a3a; }
.course-photo { display: block; aspect-ratio: 4/3; overflow: hidden; }
.course-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.course-copy { padding: clamp(20px,3vw,36px); }
.course-copy h2 { margin: 12px 0; }
.course-copy .btn { margin-top: 16px; }
@media(max-width:1250px) {
  .site-header .course-menu { display: block; position: static; padding: 0 16px; }
}
@media(max-width:700px) {
  .course-grid { grid-template-columns: 1fr; }
}
