:root {
  --black: #070806;
  --coal: #10110f;
  --ivory: #eee8dc;
  --gold: #c6a15b;
  --champagne: #d8bd83;
  --muted: #9b968c;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--black);
  color: var(--ivory);
  font-family: Arial, Helvetica, sans-serif;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  font: inherit;
  color: inherit;
}
::selection {
  background: var(--gold);
  color: #090909;
}
em {
  font-family: Georgia, serif;
  font-weight: 400;
  color: var(--champagne);
}
.lux-header {
  height: 106px;
  padding: 0 4vw;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: 190px 1fr auto;
  align-items: center;
  border-bottom: 1px solid #ffffff18;
  z-index: 30;
}
.logo img {
  width: 126px;
  height: 80px;
  object-fit: contain;
  filter: drop-shadow(0 4px 14px #000);
}
.lux-header nav {
  display: flex;
  justify-content: center;
  gap: clamp(16px, 2vw, 34px);
}
.lux-header nav a {
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #ded9cf;
  position: relative;
  padding: 10px 0;
}
.lux-header nav a:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: 0.35s;
}
.lux-header nav a:hover:after {
  width: 100%;
}
.head-actions {
  display: flex;
  align-items: center;
  gap: 17px;
}
.lang,
.menu {
  background: none;
  border: 0;
  cursor: pointer;
}
.lang {
  font-size: 9px;
  letter-spacing: 0.13em;
  color: #77736a;
}
.lang b {
  color: var(--champagne);
  font-weight: 400;
}
.lang span {
  padding: 0 5px;
}
.contact-pill {
  padding: 13px 17px;
  border: 1px solid #c6a15b77;
  font-size: 9px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  transition: 0.3s;
}
.contact-pill:hover {
  background: var(--gold);
  color: #090909;
}
.menu {
  display: none;
  width: 34px;
}
.menu i {
  display: block;
  height: 1px;
  background: var(--champagne);
  margin: 7px;
}
.mobile-menu {
  display: none;
}
.cinema-hero {
  height: 100svh;
  min-height: 740px;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background: url("/home-cinema.webp") center/cover;
  animation: heroZoom 16s ease-in-out infinite alternate;
}

/* Consistent vector arrows: never rendered as mobile emoji. */
.premium-arrow {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 26px;
  height: 14px;
  font-style: normal;
  vertical-align: middle;
  transition:
    transform 0.35s ease,
    opacity 0.35s ease;
}
.premium-arrow::before {
  content: "";
  position: absolute;
  width: 23px;
  height: 1px;
  top: 7px;
  left: 0;
  background: currentColor;
}
.premium-arrow::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  top: 3px;
  right: 1px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}
a:hover > .premium-arrow,
button:hover > .premium-arrow {
  transform: translate(2px, -2px);
}
.event-panel > .premium-arrow {
  position: absolute;
  right: 27px;
  bottom: 28px;
  z-index: 2;
  color: var(--champagne);
}
.up-mark,
.back-mark {
  position: relative;
  display: inline-block;
  width: 12px;
  height: 12px;
  font-style: normal;
}
.up-mark::before,
.back-mark::before {
  content: "";
  position: absolute;
  inset: 3px;
  border-top: 1px solid currentColor;
  border-left: 1px solid currentColor;
}
.up-mark::before {
  transform: rotate(45deg) translate(2px, 2px);
}
.back-mark::before {
  transform: rotate(-45deg) translate(2px, 2px);
}

.direct-contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}
.inner-hero .direct-contact-actions > a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 42px;
  min-width: 180px;
  margin: 0;
  padding: 17px 19px;
  border: 1px solid rgba(216, 189, 131, 0.58);
  background: rgba(8, 9, 7, 0.52);
  color: #f4d792;
  font-size: 8px;
  letter-spacing: 0.2em;
  transition: 0.35s;
}
.inner-hero .direct-contact-actions > a:hover {
  background: var(--gold);
  color: #111;
  transform: translateY(-4px);
}

@media (max-width: 600px) {
  .premium-arrow {
    width: 24px;
    height: 14px;
  }
  .direct-contact-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .inner-hero .direct-contact-actions > a {
    min-width: 0;
    gap: 18px;
  }
}

/* Contact form: editorial, spacious and fully functional. */
.contact-form-shell {
  padding: 120px 9vw;
  display: grid;
  grid-template-columns: 0.75fr 1.25fr;
  gap: 9vw;
  background: var(--ivory);
  color: #171713;
}
.contact-form-intro > span,
.contact-success > span {
  color: #8a672e;
  font-size: 8px;
  letter-spacing: 0.27em;
}
.contact-form-intro h2,
.contact-success h2 {
  margin: 25px 0;
  font:
    400 clamp(44px, 5vw, 76px)/1.02 Georgia,
    serif;
  letter-spacing: -0.04em;
}
.contact-form-intro p,
.contact-success p {
  max-width: 530px;
  color: #635e55;
  font:
    15px/1.8 Georgia,
    serif;
}
.contact-form-shell form {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px 22px;
}
.contact-form-shell label {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.contact-form-shell label > span {
  color: #735728;
  font-size: 8px;
  letter-spacing: 0.18em;
}
.contact-form-shell input,
.contact-form-shell select,
.contact-form-shell textarea {
  width: 100%;
  padding: 15px 2px;
  border: 0;
  border-bottom: 1px solid #9e927f;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: #171713;
  font:
    16px Georgia,
    serif;
}
.contact-form-shell textarea {
  resize: vertical;
}
.contact-form-shell input:focus,
.contact-form-shell select:focus,
.contact-form-shell textarea:focus {
  border-bottom-color: #8a672e;
  box-shadow: 0 1px 0 #8a672e;
}
.contact-form-shell .form-message,
.contact-form-shell .form-consent,
.contact-form-shell .form-submit,
.contact-form-shell .form-error {
  grid-column: 1 / -1;
}
.contact-form-shell .form-consent {
  flex-direction: row;
  align-items: flex-start;
  gap: 12px;
}
.contact-form-shell .form-consent input {
  width: 17px;
  height: 17px;
  margin: 0;
  accent-color: #8a672e;
}
.contact-form-shell .form-consent span {
  max-width: 580px;
  color: #635e55;
  font:
    12px/1.5 Georgia,
    serif;
  letter-spacing: 0;
}
.form-submit,
.contact-success button {
  min-height: 62px;
  padding: 18px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 0;
  background: #161713;
  color: #e7c778;
  cursor: pointer;
  font-size: 9px;
  letter-spacing: 0.2em;
  transition: 0.35s;
}
.form-submit:hover,
.contact-success button:hover {
  background: #8a672e;
  color: #fff;
}
.form-submit:disabled {
  cursor: wait;
  opacity: 0.55;
}
.form-error {
  color: #872f26;
  font-size: 13px;
}
.form-trap {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0;
  pointer-events: none;
}
.contact-success {
  display: block;
  text-align: center;
}
.contact-success h2,
.contact-success p {
  margin-left: auto;
  margin-right: auto;
}
.contact-success button {
  margin: 35px auto 0;
}
@media (max-width: 850px) {
  .contact-form-shell {
    padding: 90px 7vw;
    grid-template-columns: 1fr;
    gap: 55px;
  }
}
@media (max-width: 600px) {
  .contact-form-shell form {
    grid-template-columns: 1fr;
  }
  .contact-form-shell form > * {
    grid-column: 1 !important;
  }
}
.hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, #050605ed 0%, #080907b8 38%, #07080638 73%),
    linear-gradient(0deg, #070806a8, transparent 40%);
}
@keyframes heroZoom {
  to {
    transform: scale(1.075);
  }
}
.hero-content {
  position: relative;
  z-index: 2;
  padding: 115px 8vw 40px;
  max-width: 1030px;
}
.hero-content > span,
.title-row > span,
.digital-copy > span,
.manifesto-v2 > span,
.inner-hero div > span,
.craft div > span,
.process .title-row > span {
  color: var(--champagne);
  font-size: 9px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}
.hero-content h1 {
  font:
    400 clamp(52px, 6.2vw, 102px)/0.98 Georgia,
    serif;
  letter-spacing: -0.04em;
  margin: 30px 0;
  max-width: 1000px;
}
.hero-content h1 em {
  font-size: 0.78em;
}
.hero-content p {
  font:
    16px/1.75 Georgia,
    serif;
  color: #c6c0b5;
  max-width: 620px;
  margin: 0 0 37px;
}
.gold-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 62px;
  background: var(--gold);
  color: #111;
  padding: 18px 21px;
  font-size: 9px;
  letter-spacing: 0.19em;
  transition: 0.3s;
}
.gold-button:hover {
  transform: translateY(-4px);
  box-shadow: 0 15px 35px #0008;
  background: var(--champagne);
}
.vertical-sign {
  position: absolute;
  right: 24px;
  top: 45%;
  z-index: 3;
  writing-mode: vertical-rl;
  font-size: 7px;
  letter-spacing: 0.45em;
  color: #aaa69d;
}
.scroll-cue {
  position: absolute;
  bottom: 28px;
  left: 8vw;
  z-index: 3;
  font-size: 7px;
  letter-spacing: 0.3em;
  color: #aaa69d;
  display: flex;
  align-items: center;
  gap: 18px;
}
.scroll-cue i {
  width: 80px;
  height: 1px;
  background: #aaa69d;
  position: relative;
}
.scroll-cue i:after {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
  position: absolute;
  right: 0;
  top: -2px;
}
.reveal {
  opacity: 1;
  transform: none;
  transition:
    opacity 0.85s,
    transform 0.85s;
}
.reveal.will-reveal {
  opacity: 0;
  transform: translateY(35px);
}
.reveal.will-reveal.visible {
  opacity: 1;
  transform: none;
}
.manifesto-v2 {
  min-height: 730px;
  padding: 140px 12vw;
  position: relative;
  background: var(--ivory);
  color: #151512;
  display: grid;
  grid-template-columns: 160px 1fr;
  align-content: center;
}
.manifesto-v2 > span {
  color: #80622f;
}
.manifesto-v2 h2 {
  font:
    400 clamp(44px, 6vw, 92px)/1.02 Georgia,
    serif;
  letter-spacing: -0.035em;
  margin: 0;
  max-width: 1050px;
}
.manifesto-v2 p {
  grid-column: 2;
  max-width: 600px;
  margin: 40px 0 0 auto;
  font:
    16px/1.8 Georgia,
    serif;
  color: #625d54;
}
.manifesto-v2 img {
  position: absolute;
  right: 4vw;
  bottom: 2vw;
  width: 250px;
  opacity: 0.055;
  filter: grayscale(1);
}
.event-stage {
  padding: 145px 6vw 165px;
  background: #0e0f0d;
}
.title-row {
  display: grid;
  grid-template-columns: 25% 1fr;
  align-items: start;
  margin-bottom: 70px;
}
.title-row h2 {
  font:
    400 clamp(40px, 5vw, 77px)/1.03 Georgia,
    serif;
  letter-spacing: -0.035em;
  margin: 0;
}
.event-panels {
  height: 660px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: #322c22;
}
.event-panel {
  position: relative;
  overflow: hidden;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  transition: flex 0.5s;
}
.event-panel img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.65);
  transition:
    transform 0.8s,
    filter 0.5s;
}
.event-panel:hover img {
  transform: scale(1.07);
  filter: saturate(1);
}
.panel-wash {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, #070806f5 0, transparent 70%);
}
.event-panel > span,
.event-panel h3,
.event-panel p,
.event-panel b {
  position: relative;
  z-index: 2;
}
.event-panel > span {
  position: absolute;
  top: 27px;
  left: 27px;
  color: var(--champagne);
  font-size: 9px;
}
.event-panel h3 {
  font:
    400 31px Georgia,
    serif;
  margin: 0;
}
.event-panel p {
  color: #aaa59a;
  line-height: 1.6;
  font-size: 12px;
  min-height: 40px;
}
.event-panel b {
  color: var(--champagne);
  font-weight: 400;
  position: absolute;
  right: 27px;
  bottom: 28px;
}
.digital-v2 {
  min-height: 850px;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  background:
    radial-gradient(circle at 80% 40%, #2a2114, transparent 36%), #070806;
}
.digital-image {
  height: 720px;
  position: relative;
  margin-left: 7vw;
}
.digital-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.digital-image:before {
  content: "";
  position: absolute;
  inset: 22px;
  border: 1px solid #d8bd8344;
  z-index: 2;
}
.digital-image span {
  position: absolute;
  bottom: 40px;
  left: 42px;
  font-size: 8px;
  letter-spacing: 0.3em;
  z-index: 3;
}
.digital-copy {
  padding: 8vw;
}
.digital-copy h2 {
  font:
    400 clamp(45px, 5.5vw, 80px)/1.02 Georgia,
    serif;
  letter-spacing: -0.035em;
  margin: 28px 0;
}
.digital-copy p {
  font:
    16px/1.8 Georgia,
    serif;
  color: #aaa49a;
}
.digital-copy a {
  display: flex;
  justify-content: space-between;
  border-top: 1px solid #ffffff25;
  margin-top: 45px;
  padding-top: 22px;
  color: var(--champagne);
  font-size: 9px;
  letter-spacing: 0.2em;
}
.closing {
  padding: 170px 7vw;
  text-align: center;
  background: #12120e;
  position: relative;
  overflow: hidden;
}
.closing > img {
  position: absolute;
  width: 500px;
  opacity: 0.04;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.closing .gold-button {
  position: relative;
  z-index: 3;
  border: 0;
  cursor: pointer;
}
.closing > span,
.closing h2,
.closing p {
  position: relative;
  z-index: 2;
}
.closing > span {
  color: var(--champagne);
  font-size: 8px;
  letter-spacing: 0.35em;
}
.closing h2 {
  font:
    400 clamp(48px, 6vw, 88px) Georgia,
    serif;
  margin: 28px 0;
}
.closing p {
  color: #aaa49a;
  font:
    16px Georgia,
    serif;
  margin: 0 0 38px;
}
.grand-footer {
  padding: 90px 6vw 30px;
  background: #050604;
  border-top: 1px solid #ffffff16;
}
.footer-top {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: center;
  padding-bottom: 50px;
  border-bottom: 1px solid #ffffff18;
}
.footer-top p {
  color: #8f8a80;
  font:
    13px/1.6 Georgia,
    serif;
  max-width: 300px;
}
.footer-top > a {
  color: var(--champagne);
  font-size: 11px;
  justify-self: end;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.2fr;
  padding: 65px 0;
}
.footer-grid > div:not(.footer-sign) {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.footer-grid span {
  color: var(--champagne);
  font-size: 8px;
  letter-spacing: 0.25em;
  margin-bottom: 10px;
}
.footer-grid a,
.footer-grid p {
  font-size: 11px;
  color: #8f8a80;
  margin: 0;
  transition: 0.2s;
}
.footer-grid a:hover {
  color: var(--ivory);
}
.footer-sign {
  font:
    38px/1.1 Georgia,
    serif;
  text-align: right;
  color: #77736a;
}
.footer-sign em {
  font-size: 58px;
}
.footer-bottom {
  padding-top: 25px;
  border-top: 1px solid #ffffff18;
  display: flex;
  justify-content: space-between;
  color: #646159;
  font-size: 7px;
  letter-spacing: 0.16em;
}
.footer-bottom button {
  border: 0;
  background: none;
  cursor: pointer;
  color: #9c978c;
  font-size: 7px;
  letter-spacing: 0.16em;
}
.inner-hero {
  height: 88svh;
  min-height: 680px;
  position: relative;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.inner-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: heroZoom 15s ease-in-out infinite alternate;
}
.inner-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, #070806ed 0, transparent 70%),
    linear-gradient(90deg, #070806ad, transparent);
}
.inner-hero > div {
  position: relative;
  z-index: 2;
  padding: 150px 8vw 80px;
  width: 100%;
}
.inner-hero div > a {
  display: block;
  margin-bottom: 70px;
  font-size: 8px;
  letter-spacing: 0.2em;
  color: #beb8ad;
}
.inner-hero h1 {
  font:
    400 clamp(65px, 9vw, 150px)/0.85 Georgia,
    serif;
  letter-spacing: -0.05em;
  margin: 25px 0;
}
.inner-hero p {
  font:
    18px Georgia,
    serif;
  color: #c6c0b5;
}
.page-intro {
  padding: 150px 10vw;
  background: var(--ivory);
  color: #171713;
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: 45px;
}
.page-intro h2 {
  font:
    400 clamp(40px, 5vw, 76px)/1.05 Georgia,
    serif;
  margin: 0;
}
.page-intro p {
  font:
    15px/1.8 Georgia,
    serif;
  color: #635e55;
  margin: 0;
}
.craft {
  min-height: 820px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.craft > img {
  width: 100%;
  height: 820px;
  object-fit: cover;
}
.craft > div {
  padding: 9vw;
}
.craft h2 {
  font:
    400 clamp(40px, 5vw, 73px)/1.03 Georgia,
    serif;
  margin: 28px 0;
}
.craft p {
  font:
    16px/1.8 Georgia,
    serif;
  color: #aaa49a;
}
.process {
  padding: 140px 9vw;
  background: var(--ivory);
  color: #171713;
}
.process .title-row > span {
  color: #80622f;
}
.process-row {
  display: grid;
  grid-template-columns: 130px 1fr auto;
  align-items: center;
  padding: 28px 0;
  border-top: 1px solid #b4aa98;
}
.process-row span {
  color: #8a6b38;
  font-size: 10px;
}
.process-row h3 {
  font:
    400 27px Georgia,
    serif;
  margin: 0;
}
.process-row b {
  color: #8a6b38;
}
.next-page {
  padding: 100px 8vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.next-page span {
  font:
    42px Georgia,
    serif;
}
.next-page a {
  padding: 18px 25px;
  background: var(--gold);
  color: #111;
  font-size: 9px;
  letter-spacing: 0.2em;
}
.contact-hero {
  height: 72svh;
  min-height: 610px;
  background:
    radial-gradient(circle at 70% 30%, #342715, transparent 30%), #090a08;
}
.contact-hero h1 {
  font-size: clamp(52px, 7vw, 105px);
}
.contact-hero p {
  max-width: 620px;
  line-height: 1.7;
}
.contact-layout {
  padding: 100px 8vw;
  background: var(--ivory);
  color: #171713;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.contact-layout > div {
  border-top: 1px solid #a49a89;
  padding-top: 25px;
}
.contact-layout span {
  display: block;
  color: #80622f;
  font-size: 8px;
  letter-spacing: 0.23em;
  margin-bottom: 24px;
}
.contact-layout a,
.contact-layout p {
  font:
    25px Georgia,
    serif;
}
@media (max-width: 1100px) {
  .lux-header {
    grid-template-columns: 150px 1fr auto;
  }
  .lux-header nav {
    display: none;
  }
  .menu {
    display: block;
  }
  .mobile-menu {
    display: flex;
    position: absolute;
    top: 106px;
    left: 0;
    right: 0;
    max-height: 0;
    overflow: hidden;
    background: #080907f6;
    flex-direction: column;
    transition: 0.5s;
  }
  .mobile-menu.open {
    max-height: 520px;
    padding: 20px 6vw 35px;
  }
  .mobile-menu a {
    padding: 14px 0;
    border-bottom: 1px solid #ffffff12;
    font:
      25px Georgia,
      serif;
  }
  .event-panels {
    height: auto;
    grid-template-columns: 1fr 1fr;
  }
  .event-panel {
    height: 520px;
  }
  .page-intro {
    grid-template-columns: 90px 1fr;
  }
  .page-intro p {
    grid-column: 2;
  }
  .digital-v2 {
    grid-template-columns: 1fr 1fr;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 55px;
  }
  .footer-sign {
    text-align: left;
  }
}
@media (max-width: 700px) {
  .lux-header {
    height: 82px;
    padding: 0 5vw;
    grid-template-columns: 100px 1fr;
  }
  .lux-header .logo img {
    width: 92px;
    height: 65px;
  }
  .head-actions {
    justify-self: end;
  }
  .contact-pill {
    display: none;
  }
  .mobile-menu {
    top: 82px;
  }
  .cinema-hero {
    min-height: 690px;
  }
  .hero-content {
    padding: 110px 7vw 40px;
  }
  .hero-content h1 {
    font-size: 51px;
  }
  .hero-content p {
    font-size: 14px;
  }
  .vertical-sign {
    display: none;
  }
  .manifesto-v2 {
    min-height: 650px;
    padding: 100px 7vw;
    grid-template-columns: 1fr;
  }
  .manifesto-v2 h2 {
    font-size: 43px;
    margin-top: 25px;
  }
  .manifesto-v2 p {
    grid-column: 1;
    margin-left: 0;
  }
  .event-stage {
    padding: 100px 5vw;
  }
  .title-row {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .event-panels {
    grid-template-columns: 1fr;
  }
  .event-panel {
    height: 470px;
  }
  .digital-v2 {
    grid-template-columns: 1fr;
    padding: 80px 6vw;
  }
  .digital-image {
    height: 520px;
    margin: 0;
  }
  .digital-copy {
    padding: 65px 0 0;
  }
  .digital-copy h2 {
    font-size: 46px;
  }
  .closing {
    padding: 110px 7vw;
  }
  .footer-top {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .footer-top > a {
    justify-self: start;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-bottom {
    flex-direction: column;
    gap: 16px;
  }
  .inner-hero {
    height: 75svh;
    min-height: 600px;
  }
  .inner-hero > div {
    padding: 130px 7vw 60px;
  }
  .inner-hero div > a {
    margin-bottom: 55px;
  }
  .inner-hero h1 {
    font-size: 61px;
  }
  .page-intro {
    padding: 100px 7vw;
    grid-template-columns: 1fr;
  }
  .page-intro p {
    grid-column: 1;
  }
  .craft {
    grid-template-columns: 1fr;
  }
  .craft > img {
    height: 570px;
  }
  .craft > div {
    padding: 90px 7vw;
  }
  .process {
    padding: 100px 7vw;
  }
  .process-row {
    grid-template-columns: 55px 1fr auto;
  }
  .process-row h3 {
    font-size: 20px;
  }
  .next-page {
    display: block;
    padding: 80px 7vw;
  }
  .next-page span {
    display: block;
    margin-bottom: 35px;
    font-size: 35px;
  }
  .contact-layout {
    grid-template-columns: 1fr;
    padding: 80px 7vw;
  }
  .contact-layout a,
  .contact-layout p {
    font-size: 21px;
  }
}

/* Cinematic heroes: no visible grey text column, only a continuous tonal fade. */
.inner-hero > div {
  width: 100%;
  margin: 0;
  padding: 150px 8vw 72px;
  background: none;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.inner-overlay {
  background:
    radial-gradient(
      ellipse at 28% 78%,
      rgba(0, 0, 0, 0.9) 0,
      rgba(0, 0, 0, 0.55) 29%,
      transparent 61%
    ),
    linear-gradient(
      0deg,
      rgba(3, 4, 3, 0.92) 0,
      rgba(3, 4, 3, 0.18) 60%,
      rgba(3, 4, 3, 0.22)
    );
}
.inner-hero h1,
.inner-hero p {
  max-width: 980px;
}

/* Event grid: layered cinema cards with light sweep, depth and an active reveal. */
.event-panels {
  gap: 12px;
  background: transparent;
  perspective: 1600px;
}
.event-panel {
  isolation: isolate;
  border: 1px solid rgba(216, 189, 131, 0.18);
  transform: translateZ(0);
  transition:
    transform 0.55s cubic-bezier(0.2, 0.8, 0.2, 1),
    border-color 0.35s,
    box-shadow 0.55s;
}
.event-panel::before {
  content: "";
  position: absolute;
  inset: -40% -80%;
  z-index: 1;
  background: linear-gradient(
    110deg,
    transparent 42%,
    rgba(255, 235, 190, 0.17) 49%,
    transparent 56%
  );
  transform: translateX(-45%) rotate(8deg);
  transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
  pointer-events: none;
}
.event-panel::after {
  content: "";
  position: absolute;
  inset: 16px;
  z-index: 1;
  border: 1px solid rgba(255, 255, 255, 0.09);
  transition: 0.4s;
  pointer-events: none;
}
.event-panel:hover {
  transform: translateY(-14px) scale(1.018);
  z-index: 5;
  border-color: rgba(216, 189, 131, 0.72);
  box-shadow: 0 35px 90px rgba(0, 0, 0, 0.65);
}
.event-panel:hover::before {
  transform: translateX(45%) rotate(8deg);
}
.event-panel:hover::after {
  inset: 10px;
  border-color: rgba(216, 189, 131, 0.42);
}
.event-panel .panel-wash {
  background: linear-gradient(
    0deg,
    rgba(3, 4, 3, 0.98) 0,
    rgba(3, 4, 3, 0.76) 30%,
    transparent 70%
  );
}
.event-panel h3 {
  transition:
    transform 0.45s,
    color 0.35s;
}
.event-panel:hover h3 {
  transform: translateY(-8px);
  color: var(--champagne);
}
.event-panel b {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(216, 189, 131, 0.5);
  display: grid;
  place-items: center;
  border-radius: 50%;
  transition: 0.4s;
}
.event-panel:hover b {
  background: var(--gold);
  color: #090a08;
  transform: rotate(45deg);
}

/* Clickable feature accordion. */
.feature-accordion {
  margin-top: 42px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.feature-item {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}
.feature-item button {
  width: 100%;
  padding: 19px 0;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  text-align: left;
  background: none;
  border: 0;
  cursor: pointer;
  color: #e7e1d7;
}
.feature-item button b {
  color: var(--champagne);
  font: 9px Arial;
  letter-spacing: 0.15em;
}
.feature-item button span {
  font:
    15px Georgia,
    serif;
}
.feature-item button i {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(216, 189, 131, 0.38);
  border-radius: 50%;
  color: var(--champagne);
  font-style: normal;
  transition: 0.35s;
}
.feature-item.active button i {
  transform: rotate(180deg);
  background: var(--gold);
  color: #111;
}
.feature-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.feature-answer p {
  overflow: hidden;
  margin: 0 !important;
  padding: 0 40px 0 0;
  opacity: 0;
  transition:
    opacity 0.35s,
    padding 0.5s;
  font-size: 13px !important;
}
.feature-item.active .feature-answer {
  grid-template-rows: 1fr;
}
.feature-item.active .feature-answer p {
  opacity: 1;
  padding-bottom: 22px;
}

/* Interactive NFC cinema. */
.nfc-demo {
  min-height: 850px;
  padding: 120px 8vw;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 8vw;
  align-items: center;
  background:
    radial-gradient(
      circle at 72% 50%,
      rgba(198, 161, 91, 0.15),
      transparent 35%
    ),
    #080907;
  overflow: hidden;
  cursor: pointer;
}
.nfc-copy > span {
  color: var(--champagne);
  font-size: 9px;
  letter-spacing: 0.27em;
}
.nfc-copy h2 {
  font:
    400 clamp(46px, 5.5vw, 82px)/1.02 Georgia,
    serif;
  letter-spacing: -0.04em;
  margin: 30px 0;
}
.nfc-copy p {
  font:
    16px/1.75 Georgia,
    serif;
  color: #aaa49a;
  max-width: 530px;
}
.nfc-copy button {
  margin-top: 30px;
  padding: 15px 20px;
  background: transparent;
  border: 1px solid rgba(216, 189, 131, 0.55);
  color: var(--champagne);
  font-size: 8px;
  letter-spacing: 0.19em;
}
.nfc-stage {
  height: 610px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 1200px;
}
.invite-prop {
  position: absolute;
  left: 4%;
  width: 270px;
  height: 390px;
  background: linear-gradient(145deg, #171816, #070806);
  border: 1px solid rgba(216, 189, 131, 0.42);
  box-shadow: 0 25px 70px #000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transform: rotateY(8deg) rotateZ(-5deg);
  transition: transform 1.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  z-index: 4;
}
.invite-prop img {
  width: 150px;
  height: 150px;
  object-fit: contain;
}
.invite-prop span {
  position: absolute;
  bottom: 28px;
  font-size: 8px;
  letter-spacing: 0.3em;
  color: var(--champagne);
}
.demo-phone {
  position: absolute;
  right: 5%;
  width: 300px;
  height: 590px;
  border: 2px solid #4b4232;
  border-radius: 47px;
  padding: 9px;
  background: #050604;
  box-shadow: 0 35px 100px #000;
  transform: rotateY(-8deg) rotateZ(3deg);
  transition:
    transform 1s,
    box-shadow 1s;
  z-index: 3;
}
.demo-screen {
  height: 100%;
  border-radius: 38px;
  background:
    linear-gradient(rgba(5, 6, 4, 0.62), rgba(5, 6, 4, 0.93)),
    url("/home-cinema.webp") center/cover;
  padding: 58px 24px 25px;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0.22;
  filter: saturate(0.2);
  transition:
    opacity 0.8s 0.35s,
    filter 0.8s 0.35s;
}
.demo-screen > img {
  width: 100px;
  height: 85px;
  object-fit: contain;
}
.demo-welcome {
  margin-top: auto;
  font-size: 8px;
  letter-spacing: 0.25em;
  color: var(--champagne);
}
.demo-date {
  font:
    76px/0.85 Georgia,
    serif;
  color: #fff;
  margin: 22px 0 35px;
  text-align: center;
}
.demo-date span {
  display: block;
  font: 8px Arial;
  letter-spacing: 0.2em;
  color: var(--champagne);
  margin-top: 14px;
}
.demo-options {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}
.demo-options span {
  padding: 11px 5px;
  text-align: center;
  border: 1px solid rgba(216, 189, 131, 0.4);
  font-size: 7px;
  letter-spacing: 0.1em;
}
.demo-options span:last-child {
  grid-column: 1/-1;
}
.demo-notch {
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  width: 85px;
  height: 20px;
  border-radius: 20px;
  background: #000;
  z-index: 5;
}
.signal {
  position: absolute;
  left: 43%;
  z-index: 6;
  width: 110px;
  height: 110px;
  display: grid;
  place-items: center;
  opacity: 0;
  transition: opacity 0.4s;
}
.signal i {
  position: absolute;
  border: 1px solid var(--champagne);
  border-radius: 50%;
  animation: nfcPulse 1.7s ease-out infinite;
}
.signal i:nth-child(1) {
  width: 35px;
  height: 35px;
}
.signal i:nth-child(2) {
  width: 67px;
  height: 67px;
  animation-delay: 0.25s;
}
.signal i:nth-child(3) {
  width: 100px;
  height: 100px;
  animation-delay: 0.5s;
}
@keyframes nfcPulse {
  0% {
    opacity: 0;
    transform: scale(0.55);
  }
  45% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(1.18);
  }
}
.nfc-demo.activated .invite-prop {
  transform: translateX(180px) rotateY(2deg) rotateZ(-1deg) scale(0.88);
}
.nfc-demo.activated .signal {
  opacity: 1;
}
.nfc-demo.activated .demo-phone {
  transform: rotateY(0) rotateZ(0) scale(1.035);
  box-shadow: 0 35px 120px rgba(198, 161, 91, 0.24);
}
.nfc-demo.activated .demo-screen {
  opacity: 1;
  filter: saturate(1);
}
@media (max-width: 900px) {
  .nfc-demo {
    grid-template-columns: 1fr;
    padding: 100px 6vw;
  }
  .nfc-stage {
    transform: scale(0.82);
    margin-inline: -10vw;
  }
  .event-panels {
    gap: 10px;
  }
}
@media (max-width: 600px) {
  .inner-hero > div {
    padding: 130px 7vw 52px;
  }
  .nfc-stage {
    height: 520px;
    transform: scale(0.64);
    margin-inline: -28vw;
  }
  .invite-prop {
    left: 0;
  }
  .demo-phone {
    right: 0;
  }
  .event-panel:hover {
    transform: translateY(-7px) scale(1.01);
  }
}

/* Final hero structure: the overlay is never treated as a content box. */
.inner-hero > .inner-overlay {
  position: absolute;
  inset: 0;
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  z-index: 1;
}
.inner-hero > .inner-content {
  position: relative;
  z-index: 3;
  width: 100%;
  margin: 0;
  padding: 150px 8vw 72px;
  background: none;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.inner-content > a {
  display: inline-flex;
  margin-bottom: 30px;
  padding: 8px 11px;
  background: rgba(0, 0, 0, 0.5);
  color: #fffaf0;
}
.inner-content > span {
  display: inline-block;
  width: fit-content;
  padding: 8px 12px;
  color: #f4d792;
  background: rgba(3, 4, 3, 0.68);
  border: 1px solid rgba(244, 215, 146, 0.33);
  text-shadow: 0 2px 10px #000;
}
.hero-contact-card {
  position: absolute;
  left: 5vw;
  bottom: 5vh;
  z-index: 5;
  width: min(380px, 38vw);
  padding: 24px 26px;
  background: linear-gradient(
    115deg,
    rgba(5, 6, 4, 0.92),
    rgba(15, 14, 10, 0.72)
  );
  border-left: 2px solid var(--champagne);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.38);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  gap: 13px;
  transform: translateY(0);
  transition: 0.4s;
}
.hero-contact-card:hover {
  transform: translateY(-8px);
  background: linear-gradient(
    115deg,
    rgba(15, 14, 10, 0.97),
    rgba(40, 31, 18, 0.82)
  );
}
.hero-contact-card span {
  color: var(--champagne);
  font-size: 7px;
  letter-spacing: 0.22em;
}
.hero-contact-card strong {
  font:
    21px/1.25 Georgia,
    serif;
  font-weight: 400;
}
.hero-contact-card b {
  font-size: 7px;
  letter-spacing: 0.18em;
  color: #e9e3d8;
  margin-top: 6px;
}
.inner-content {
  padding-left: 54vw !important;
}
.inner-content h1 {
  font-size: clamp(58px, 7.2vw, 126px);
}

/* Process rows now behave as live routes instead of static lines. */
.process-row {
  position: relative;
  overflow: hidden;
  transition:
    padding 0.4s,
    color 0.35s,
    background 0.35s;
}
.process-row::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 2px;
  background: var(--gold);
  transition: width 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.process-row::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(198, 161, 91, 0.13), transparent 68%);
  transform: translateX(-105%);
  transition: transform 0.55s;
}
.process-row:hover {
  padding-left: 24px;
  color: #8a672e;
}
.process-row:hover::before {
  width: 100%;
}
.process-row:hover::after {
  transform: none;
}
.process-row > * {
  position: relative;
  z-index: 1;
}
.process-row b {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(138, 103, 46, 0.4);
  border-radius: 50%;
  transition: 0.4s;
}
.process-row:hover b {
  transform: rotate(45deg);
  background: var(--gold);
  color: #111;
}

/* About Vestiige editorial chapter. */
.about-manifesto {
  min-height: 800px;
  padding: 130px 9vw;
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 9vw;
  align-items: center;
  background:
    radial-gradient(
      circle at 24% 50%,
      rgba(198, 161, 91, 0.16),
      transparent 31%
    ),
    #080907;
}
.about-mark {
  height: 530px;
  position: relative;
  border: 1px solid rgba(216, 189, 131, 0.22);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.about-mark::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  border: 1px solid rgba(216, 189, 131, 0.2);
  border-radius: 50%;
  animation: aboutOrbit 15s linear infinite;
}
.about-mark::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  border: 1px solid rgba(216, 189, 131, 0.34);
  border-radius: 50%;
  animation: aboutOrbit 10s linear infinite reverse;
}
.about-mark img {
  width: 280px;
  height: 280px;
  object-fit: contain;
  position: relative;
  z-index: 2;
  filter: drop-shadow(0 20px 35px #000);
}
.about-mark i {
  position: absolute;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--champagne);
  top: 50%;
  left: 7%;
  box-shadow: 0 0 25px var(--champagne);
  animation: aboutFloat 4s ease-in-out infinite alternate;
}
.about-mark i:last-child {
  left: auto;
  right: 9%;
  top: 28%;
  animation-delay: 1.2s;
}
@keyframes aboutOrbit {
  to {
    transform: rotate(360deg);
  }
}
@keyframes aboutFloat {
  to {
    transform: translateY(90px);
    opacity: 0.35;
  }
}
.about-manifesto > div:last-child > span {
  color: var(--champagne);
  font-size: 8px;
  letter-spacing: 0.27em;
}
.about-manifesto h2 {
  font:
    400 clamp(46px, 5.5vw, 82px)/1.02 Georgia,
    serif;
  letter-spacing: -0.04em;
  margin: 28px 0;
}
.about-manifesto p {
  font:
    16px/1.8 Georgia,
    serif;
  color: #aaa49a;
  max-width: 650px;
}
.about-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--ivory);
  color: #171713;
  padding: 0 7vw;
}
.about-pillars article {
  min-height: 430px;
  padding: 80px 45px;
  border-left: 1px solid #bcb2a0;
  transition: 0.45s;
}
.about-pillars article:last-child {
  border-right: 1px solid #bcb2a0;
}
.about-pillars article:hover {
  background: #dfd4c1;
  transform: translateY(-12px);
}
.about-pillars span {
  color: #8a672e;
  font-size: 9px;
  letter-spacing: 0.2em;
}
.about-pillars h3 {
  font:
    48px Georgia,
    serif;
  margin: 10px 0 25px;
}

#contact-details {
  scroll-margin-top: 106px;
}
.about-pillars p {
  font:
    14px/1.8 Georgia,
    serif;
  color: #625d54;
}
.about-belief {
  padding: 150px 9vw;
  text-align: center;
  background: #11120f;
}
.about-belief p {
  color: var(--champagne);
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.about-belief h2 {
  font:
    400 clamp(48px, 6vw, 88px)/1.05 Georgia,
    serif;
  max-width: 1000px;
  margin: 35px auto 55px;
}
.about-belief a {
  display: inline-flex;
  padding: 18px 24px;
  background: var(--gold);
  color: #111;
  font-size: 8px;
  letter-spacing: 0.18em;
  transition: 0.3s;
}
.about-belief a:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px #000;
}
@media (max-width: 900px) {
  .inner-content {
    padding-left: 7vw !important;
    padding-bottom: 220px !important;
  }
  .hero-contact-card {
    width: 70vw;
    left: 7vw;
  }
  .about-manifesto {
    grid-template-columns: 1fr;
  }
  .about-pillars {
    grid-template-columns: 1fr;
  }
  .about-pillars article {
    min-height: 300px;
    border-right: 1px solid #bcb2a0;
  }
  .about-pillars h3 {
    margin-top: 35px;
  }
}
@media (max-width: 600px) {
  .hero-contact-card {
    width: 86vw;
    left: 7vw;
    bottom: 3vh;
    padding: 18px 20px;
  }
  .inner-content {
    padding: 120px 7vw 210px !important;
  }
  .inner-content h1 {
    font-size: 54px;
  }
  .about-manifesto {
    padding: 100px 7vw;
  }
  .about-mark {
    height: 390px;
  }
  .about-mark img {
    width: 210px;
  }
  .about-pillars {
    padding: 0 5vw;
  }
}
.hero-bg {
  background-image: url("/home-cinema.webp");
  animation-duration: 19s;
  will-change: transform;
}

/* Final cinematic interaction pass. */
.logo {
  perspective: 500px;
}
.logo img {
  transform-origin: 50% 58%;
  transition:
    transform 0.75s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.75s ease;
}
.logo:hover img {
  transform: translateY(-3px) rotateY(12deg) scale(1.1);
  filter: drop-shadow(0 0 13px rgba(216, 189, 131, 0.64))
    drop-shadow(0 12px 20px rgba(0, 0, 0, 0.65));
}

.contact-hero .gold-button {
  margin-top: 30px;
  width: fit-content;
  border: 0;
  cursor: pointer;
}

.event-panel > span {
  display: none;
}
.event-panel h3 {
  bottom: 80px;
}
.event-panel p {
  bottom: 43px;
}

.craft {
  position: relative;
  overflow: hidden;
}
.craft::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    115deg,
    transparent 38%,
    rgba(216, 189, 131, 0.07),
    transparent 62%
  );
  transform: translateX(-100%);
  animation: craftLight 9s ease-in-out infinite;
}
.craft > img {
  transition:
    transform 1.4s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.8s ease;
}
.craft:hover > img {
  transform: scale(1.035);
  filter: saturate(1.08) contrast(1.03);
}
@keyframes craftLight {
  0%,
  68%,
  100% {
    transform: translateX(-100%);
  }
  82% {
    transform: translateX(100%);
  }
}

.process-journey {
  border-top: 1px solid rgba(138, 103, 46, 0.35);
}
.process-row {
  display: block;
  padding: 0;
  color: #171713;
  border-bottom: 1px solid rgba(138, 103, 46, 0.35);
}
.process-row button {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: 138px;
  padding: 30px 0;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 40px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.process-row button h3 {
  margin: 0;
  font:
    400 clamp(28px, 3vw, 48px)/1.1 Georgia,
    serif;
  transition:
    transform 0.45s cubic-bezier(0.16, 1, 0.3, 1),
    color 0.35s;
}
.process-row button b {
  font:
    300 22px/1 Arial,
    sans-serif;
}
.process-row:hover,
.process-row.active {
  padding-left: 0;
  color: #8a672e;
}
.process-row:hover button h3,
.process-row.active button h3 {
  transform: translateX(18px);
}
.process-row.active button b {
  transform: rotate(180deg);
  background: var(--gold);
  color: #111;
}
.process-answer {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}
.process-answer p {
  overflow: hidden;
  max-width: 850px;
  margin: 0;
  padding: 0 90px 0 18px;
  color: #625d54;
  opacity: 0;
  font:
    16px/1.8 Georgia,
    serif;
  transition:
    opacity 0.45s ease,
    padding 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}
.process-row.active .process-answer {
  grid-template-rows: 1fr;
}
.process-row.active .process-answer p {
  padding-bottom: 38px;
  opacity: 1;
}

@media (max-width: 700px) {
  .process-row button {
    min-height: 105px;
    gap: 18px;
  }
  .process-row button h3 {
    font-size: 27px;
  }
  .process-answer p {
    padding-right: 20px;
  }
}
.hero-shade {
  background:
    linear-gradient(
      90deg,
      #030403fa 0%,
      #050604e8 39%,
      #07080673 72%,
      #0708063b
    ),
    linear-gradient(0deg, #070806d4 0, transparent 48%);
}
.panel-wash {
  background:
    linear-gradient(0deg, #040504fa 0, #070806e9 33%, #07080655 72%),
    linear-gradient(90deg, #05060570, transparent);
}
.event-panel h3,
.inner-hero h1 {
  text-shadow: 0 5px 25px #000;
}
.event-panel p {
  color: #eee9df;
  text-shadow: 0 2px 12px #000;
}
.inner-overlay {
  background:
    linear-gradient(0deg, #040504fc 0, #070806ed 30%, #07080666 72%),
    linear-gradient(90deg, #050605ed 0, #07080678 53%, transparent);
}
.inner-hero p {
  color: #f3eee5;
  text-shadow: 0 3px 16px #000;
  max-width: 720px;
  line-height: 1.55;
}
.feature-marquee {
  overflow: hidden;
  background: var(--gold);
  color: #080907;
  padding: 15px 0;
  white-space: nowrap;
}
.feature-marquee div {
  font:
    12px Georgia,
    serif;
  letter-spacing: 0.35em;
  animation: marquee 20s linear infinite;
  width: max-content;
}
@keyframes marquee {
  to {
    transform: translateX(-50%);
  }
}
.feature-list {
  list-style: none;
  margin: 45px 0 0;
  padding: 0;
}
.feature-list li {
  display: grid;
  grid-template-columns: 55px 1fr;
  border-top: 1px solid #ffffff24;
  padding: 18px 0;
  color: #d8d2c7;
  font:
    13px Georgia,
    serif;
}
.feature-list li b {
  font: 9px Arial;
  color: var(--champagne);
  letter-spacing: 0.15em;
}
.editorial-copy {
  padding: 130px 10vw;
  background: var(--ivory);
  color: #171713;
  display: grid;
  grid-template-columns: 150px 1fr 1fr;
  gap: 50px;
  align-items: start;
}
.editorial-copy > span {
  color: #80622f;
  font-size: 8px;
  letter-spacing: 0.25em;
}
.editorial-copy h2 {
  font:
    400 clamp(42px, 5vw, 78px)/1.03 Georgia,
    serif;
  margin: 0;
}
.editorial-copy p,
.editorial-copy div p {
  font:
    15px/1.8 Georgia,
    serif;
  color: #625d54;
  margin: 0 0 12px;
}
.editorial-copy.dark {
  background: #0c0d0b;
  color: var(--ivory);
}
.editorial-copy.dark > span {
  color: var(--champagne);
}
.editorial-copy.dark p {
  color: #aaa49a;
}
.contact-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(100deg, #050604 10%, #0b0c09db 48%, transparent),
    radial-gradient(circle at 82% 37%, #c6a15b26, transparent 24%);
}
@media (max-width: 700px) {
  .editorial-copy {
    padding: 90px 7vw;
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .editorial-copy h2 {
    font-size: 43px;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
  }
  .hero-bg,
  .feature-marquee div {
    animation: none !important;
  }
  .reveal {
    opacity: 1;
    transform: none;
  }
}

/* Permanent contrast system: navigation and image copy remain legible on every frame. */
.lux-header {
  position: fixed;
  background: linear-gradient(180deg, rgba(4, 5, 4, 0.94), rgba(4, 5, 4, 0.78));
  border-bottom-color: rgba(216, 189, 131, 0.28);
  backdrop-filter: blur(18px) saturate(120%);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}
.lux-header nav a {
  color: #fffaf0;
  font-weight: 600;
  text-shadow:
    0 2px 8px #000,
    0 0 16px #000;
}
.lang {
  color: #f2ede4;
  text-shadow: 0 2px 8px #000;
}
.lang b {
  color: #f2cf86;
  font-weight: 700;
}
.contact-pill {
  color: #fffaf0;
  border-color: rgba(242, 207, 134, 0.72);
  background: rgba(0, 0, 0, 0.3);
  text-shadow: 0 2px 8px #000;
}
.hero-content > span,
.inner-hero > div > span,
.event-panel > span,
.digital-image > span {
  display: inline-block;
  width: fit-content;
  padding: 8px 12px;
  color: #f4d792;
  background: rgba(3, 4, 3, 0.68);
  border: 1px solid rgba(244, 215, 146, 0.33);
  text-shadow: 0 2px 10px #000;
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}
.inner-hero > div {
  width: min(1120px, 90vw);
  margin: 0 5vw 5vh;
  padding: 38px 46px 42px;
  background: linear-gradient(105deg, rgba(3, 4, 3, 0.9), rgba(3, 4, 3, 0.62));
  border-left: 2px solid var(--champagne);
  box-shadow: 0 20px 70px rgba(0, 0, 0, 0.38);
  backdrop-filter: blur(11px);
  -webkit-backdrop-filter: blur(11px);
}
.inner-hero div > a {
  display: inline-flex;
  margin-bottom: 34px;
  padding: 8px 11px;
  color: #fff9ee;
  background: rgba(0, 0, 0, 0.52);
  text-shadow: 0 2px 9px #000;
}
.inner-hero h1 {
  color: #fffaf1;
}
.inner-hero p {
  color: #fffaf1;
  font-weight: 600;
}
@media (max-width: 700px) {
  .inner-hero > div {
    width: 92vw;
    margin: 0 4vw 4vh;
    padding: 28px 24px 32px;
  }
  .inner-hero div > a {
    margin-bottom: 24px;
  }
}

html[data-lang="pt"] .lang-en{display:none!important}
html[data-lang="en"] .lang-pt{display:none!important}
button{cursor:pointer}
.form-status{grid-column:1/-1}

/* V3 cPanel compatibility: content must never disappear if observer/print/full-page capture does not fire. */
.reveal,
.reveal.will-reveal,
.reveal.will-reveal.visible {
  opacity: 1 !important;
  transform: none !important;
}
@media print {
  .reveal,
  .reveal.will-reveal,
  .reveal.will-reveal.visible {
    opacity: 1 !important;
    transform: none !important;
  }
}


/* =========================================================
   VESTIIGE V4 — LEGIBILITY / TYPOGRAPHY REFINEMENT
   ========================================================= */

/* Base readability */
body {
  font-size: 16px;
  line-height: 1.55;
}

/* Header / navigation */
.lux-header nav a {
  font-size: 12px !important;
  letter-spacing: .16em !important;
}
.lang {
  font-size: 12px !important;
  letter-spacing: .12em !important;
}
.contact-pill {
  font-size: 12px !important;
  letter-spacing: .12em !important;
}

/* Small editorial labels / eyebrow text */
.hero-content > span,
.title-row > span,
.digital-copy > span,
.page-intro > span,
.inner-content > span,
.craft > div > span,
.contact-form-intro > span,
.editorial-copy > span,
.about-manifesto span,
.nfc-copy > span,
.footer-grid > div > span,
.vertical-sign,
.scroll-cue {
  font-size: 12px !important;
  letter-spacing: .16em !important;
  line-height: 1.4 !important;
}

/* Paragraphs / body copy */
.hero-content p,
.manifesto-v2 p,
.digital-copy p,
.closing p,
.inner-content p,
.page-intro p,
.craft p,
.process-answer p,
.feature-answer p,
.about-manifesto p,
.about-pillars p,
.about-belief p,
.nfc-copy p,
.contact-form-intro p,
.editorial-copy p,
.contact-layout p,
.grand-footer p {
  font-size: 16px !important;
  line-height: 1.7 !important;
}

/* Cards and secondary supporting copy */
.event-panel p,
.hero-contact-card span,
.hero-contact-card strong,
.next-page span,
.next-page a {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

/* Buttons / CTAs */
.gold-button,
.digital-copy a,
.about-belief a,
.hero-contact-card b,
.form-submit,
.nfc-copy button {
  font-size: 13px !important;
  letter-spacing: .12em !important;
}

/* Accordions / automated lists */
.feature-item button span,
.process-row button h3 {
  font-size: 18px !important;
  line-height: 1.35 !important;
}
.feature-answer p,
.process-answer p {
  font-size: 15px !important;
  line-height: 1.65 !important;
}

/* Contact form */
#contact-form label > span,
.form-consent span {
  font-size: 12px !important;
  letter-spacing: .08em !important;
  line-height: 1.45 !important;
}
#contact-form input,
#contact-form select,
#contact-form textarea {
  font-size: 16px !important;
  line-height: 1.5 !important;
}
.form-status {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

/* Footer — intentionally larger than previous version */
.footer-top p,
.footer-top a {
  font-size: 14px !important;
  line-height: 1.6 !important;
}
.footer-grid a,
.footer-grid p {
  font-size: 13px !important;
  line-height: 1.7 !important;
}
.footer-bottom,
.footer-bottom button {
  font-size: 11px !important;
  letter-spacing: .08em !important;
}

/* Maintain premium feel by keeping big typography cinematic */
.cinema-hero h1,
.inner-content h1,
.contact-hero h1,
.manifesto-v2 h2,
.title-row h2,
.digital-copy h2,
.closing h2,
.page-intro h2,
.craft h2,
.about-manifesto h2,
.about-belief h2,
.contact-form-intro h2 {
  text-wrap: balance;
}

/* Tablet */
@media (max-width: 1100px) {
  .lux-header nav a {
    font-size: 11px !important;
    letter-spacing: .12em !important;
  }

  .hero-content p,
  .manifesto-v2 p,
  .digital-copy p,
  .closing p,
  .inner-content p,
  .page-intro p,
  .craft p,
  .about-manifesto p,
  .about-pillars p,
  .nfc-copy p,
  .contact-form-intro p {
    font-size: 16px !important;
  }

  .feature-item button span,
  .process-row button h3 {
    font-size: 17px !important;
  }
}

/* Mobile */
@media (max-width: 760px) {
  body {
    font-size: 16px;
  }

  .mobile-menu a {
    font-size: 17px !important;
    letter-spacing: .08em !important;
  }

  .lang {
    font-size: 12px !important;
  }

  .hero-content > span,
  .title-row > span,
  .digital-copy > span,
  .inner-content > span,
  .craft > div > span,
  .contact-form-intro > span,
  .editorial-copy > span,
  .about-manifesto span,
  .nfc-copy > span,
  .scroll-cue {
    font-size: 11px !important;
    letter-spacing: .12em !important;
  }

  .hero-content p,
  .manifesto-v2 p,
  .digital-copy p,
  .closing p,
  .inner-content p,
  .page-intro p,
  .craft p,
  .feature-answer p,
  .process-answer p,
  .about-manifesto p,
  .about-pillars p,
  .about-belief p,
  .nfc-copy p,
  .contact-form-intro p,
  .editorial-copy p {
    font-size: 16px !important;
    line-height: 1.65 !important;
  }

  .event-panel p,
  .hero-contact-card span,
  .hero-contact-card strong {
    font-size: 14px !important;
  }

  .feature-item button span,
  .process-row button h3 {
    font-size: 17px !important;
  }

  .gold-button,
  .digital-copy a,
  .about-belief a,
  .hero-contact-card b,
  .form-submit,
  .nfc-copy button {
    font-size: 12px !important;
    letter-spacing: .10em !important;
  }

  #contact-form label > span,
  .form-consent span {
    font-size: 12px !important;
    letter-spacing: .06em !important;
  }

  #contact-form input,
  #contact-form select,
  #contact-form textarea {
    font-size: 16px !important; /* avoids Safari auto-zoom */
  }

  .footer-top p,
  .footer-top a {
    font-size: 14px !important;
  }

  .footer-grid a,
  .footer-grid p {
    font-size: 13px !important;
  }

  .footer-bottom,
  .footer-bottom button {
    font-size: 11px !important;
  }
}


/* =========================================================
   VESTIIGE V5 — TARGETED FIXES
   1) Automated lists/process text enlarged on ALL inner pages
   2) Page-ending CTA reduced on ALL inner pages
   3) Hero cover CTA made clearly legible on ALL inner pages
   ========================================================= */

/* 1 — ALL PAGE LISTS / PROCESS ROWS */
.process-row button h3,
.feature-item button span {
  font-size: 20px !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  font-weight: 500 !important;
}

.process-row {
  min-height: 118px !important;
}

.process-row > button {
  min-height: 118px !important;
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

.process-row button b,
.feature-item button i {
  flex: 0 0 auto;
}

/* 2 — BOTTOM CTA ON EVERY INNER PAGE: reduce scale */
.next-page {
  min-height: 300px !important;
  padding-top: 70px !important;
  padding-bottom: 70px !important;
}

.next-page span {
  font-size: clamp(30px, 3.2vw, 48px) !important;
  line-height: 1.08 !important;
}

.next-page a {
  font-size: clamp(20px, 2.1vw, 32px) !important;
  line-height: 1.1 !important;
  padding: 28px 36px !important;
  min-height: auto !important;
}

/* 3 — COVER IMAGE CTA: make text readable */
.hero-contact-card {
  background: rgba(8, 8, 7, .88) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.hero-contact-card span {
  font-size: 12px !important;
  color: #d8bd83 !important;
  opacity: 1 !important;
  letter-spacing: .16em !important;
}

.hero-contact-card strong {
  font-size: 16px !important;
  color: #f2eadb !important;
  opacity: 1 !important;
  line-height: 1.5 !important;
}

.hero-contact-card b {
  font-size: 13px !important;
  color: #d8bd83 !important;
  opacity: 1 !important;
  letter-spacing: .12em !important;
}

/* Tablet */
@media (max-width: 1100px) {
  .process-row button h3,
  .feature-item button span {
    font-size: 19px !important;
  }

  .next-page {
    min-height: 260px !important;
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }

  .next-page span {
    font-size: clamp(28px, 4vw, 42px) !important;
  }

  .next-page a {
    font-size: clamp(18px, 2.6vw, 27px) !important;
    padding: 24px 30px !important;
  }
}

/* Mobile */
@media (max-width: 760px) {
  .process-row {
    min-height: 100px !important;
  }

  .process-row > button {
    min-height: 100px !important;
    padding: 22px 18px !important;
  }

  .process-row button h3,
  .feature-item button span {
    font-size: 17px !important;
    line-height: 1.4 !important;
  }

  .next-page {
    min-height: auto !important;
    padding: 54px 28px !important;
    gap: 28px !important;
  }

  .next-page span {
    font-size: 28px !important;
    line-height: 1.12 !important;
  }

  .next-page a {
    width: auto !important;
    max-width: 100% !important;
    font-size: 18px !important;
    line-height: 1.15 !important;
    padding: 18px 22px !important;
    white-space: nowrap !important;
  }

  .hero-contact-card {
    width: min(86vw, 390px) !important;
    padding: 24px !important;
  }

  .hero-contact-card span {
    font-size: 11px !important;
  }

  .hero-contact-card strong {
    font-size: 15px !important;
  }

  .hero-contact-card b {
    font-size: 12px !important;
  }
}


/* =========================================================
   VESTIIGE V6 — REAL ACCORDION / PROCESS TYPE SCALE FIX
   ========================================================= */

/* Feature accordions inside the dark craft sections */
.feature-item button span {
  font-size: 24px !important;
  line-height: 1.35 !important;
  font-weight: 400 !important;
}

.feature-answer p {
  font-size: 18px !important;
  line-height: 1.7 !important;
  max-width: 760px !important;
}

/* Large process accordion rows on cream backgrounds */
.process-row button h3 {
  font-size: clamp(32px, 2.7vw, 44px) !important;
  line-height: 1.15 !important;
  font-weight: 400 !important;
}

.process-answer p {
  font-size: 18px !important;
  line-height: 1.75 !important;
}

/* Give process titles enough visual weight without huge dead space */
.process-row,
.process-row > button {
  min-height: 128px !important;
}

.process-row > button {
  padding-top: 28px !important;
  padding-bottom: 28px !important;
}

/* Tablet */
@media (max-width: 1100px) {
  .feature-item button span {
    font-size: 22px !important;
  }

  .feature-answer p {
    font-size: 17px !important;
  }

  .process-row button h3 {
    font-size: 32px !important;
  }

  .process-answer p {
    font-size: 17px !important;
  }
}

/* Mobile */
@media (max-width: 760px) {
  .feature-item button {
    padding-top: 22px !important;
    padding-bottom: 22px !important;
  }

  .feature-item button span {
    font-size: 20px !important;
    line-height: 1.35 !important;
    padding-right: 12px !important;
  }

  .feature-answer p {
    font-size: 16px !important;
    line-height: 1.65 !important;
    padding-right: 12px !important;
  }

  .process-row,
  .process-row > button {
    min-height: 108px !important;
  }

  .process-row > button {
    padding: 24px 18px !important;
  }

  .process-row button h3 {
    font-size: 26px !important;
    line-height: 1.2 !important;
  }

  .process-answer p {
    font-size: 16px !important;
    line-height: 1.65 !important;
    padding-right: 18px !important;
  }
}


/* =========================================================
   VESTIIGE V7 — CONTACT FORM TYPOGRAPHY + SELECT LANGUAGE FIX
   ========================================================= */

/* Contact section labels and explanatory copy */
.contact-form-intro > span {
  font-size: 14px !important;
  letter-spacing: .14em !important;
}

.contact-form-intro p {
  font-size: 18px !important;
  line-height: 1.7 !important;
}

#contact-form label > span {
  font-size: 13px !important;
  letter-spacing: .12em !important;
  line-height: 1.4 !important;
}

#contact-form input,
#contact-form select,
#contact-form textarea {
  font-size: 17px !important;
  line-height: 1.5 !important;
}

.form-consent span {
  font-size: 14px !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
}

.form-submit {
  font-size: 14px !important;
}

/* Confirmation message — more visible and premium */
.form-status.form-success {
  margin-top: 18px !important;
  padding: 22px 24px !important;
  border-left: 3px solid #d8bd83 !important;
  background: rgba(216,189,131,.08) !important;
  font-size: 24px !important;
  line-height: 1.25 !important;
  color: #7d5b1e !important;
}

.form-status.form-success small {
  display: block !important;
  margin-top: 8px !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #5d5549 !important;
}

/* Mobile contact typography */
@media (max-width: 760px) {
  .contact-form-intro > span {
    font-size: 12px !important;
  }

  .contact-form-intro p {
    font-size: 16px !important;
  }

  #contact-form label > span {
    font-size: 12px !important;
    letter-spacing: .08em !important;
  }

  #contact-form input,
  #contact-form select,
  #contact-form textarea {
    font-size: 16px !important;
  }

  .form-consent span {
    font-size: 13px !important;
  }

  .form-status.form-success {
    font-size: 21px !important;
    padding: 18px 20px !important;
  }

  .form-status.form-success small {
    font-size: 15px !important;
  }
}


/* =========================================================
   VESTIIGE V8 — FINAL LEGIBILITY / RESPONSIVE OVERRIDE
   IMPORTANT: this layer intentionally targets the ACTUAL nested
   elements used by the static conversion.
   ========================================================= */

:root {
  --v8-body: 17px;
  --v8-small: 13px;
  --v8-label: 13px;
}

/* ---------- GLOBAL READABILITY (everything except display headings) ---------- */
body {
  font-size: var(--v8-body) !important;
}

p,
li {
  line-height: 1.65;
}

/* Navigation + small UI */
.lux-header nav a {
  font-size: 13px !important;
  letter-spacing: .12em !important;
}
.lang,
.contact-pill {
  font-size: 12px !important;
}
.mobile-menu a {
  font-size: 18px !important;
}

/* Eyebrows / labels throughout the site */
.hero-content > span,
.title-row > span,
.digital-copy > span,
.inner-content > span,
.craft > div > span,
.contact-form-intro > span,
.editorial-copy > span,
.about-manifesto span,
.nfc-copy > span,
.contact-layout span,
.footer-grid > div > span,
.vertical-sign,
.scroll-cue {
  font-size: 13px !important;
  line-height: 1.4 !important;
  letter-spacing: .14em !important;
}

/* Paragraph copy throughout */
.hero-content p,
.manifesto-v2 p,
.digital-copy p,
.closing p,
.inner-content p,
.page-intro p,
.craft > div > p,
.about-manifesto p,
.about-pillars p,
.about-belief p,
.nfc-copy p,
.contact-form-intro p,
.editorial-copy p,
.contact-layout p {
  font-size: 17px !important;
  line-height: 1.7 !important;
}

/* Cards / supporting text */
.event-panel p {
  font-size: 15px !important;
  line-height: 1.5 !important;
}
.event-panel h3 {
  line-height: 1.1 !important;
}

/* Buttons that used to be microscopic */
.gold-button,
.digital-copy a,
.about-belief a,
.form-submit,
.nfc-copy button,
.next-page a {
  font-size: 14px !important;
  letter-spacing: .10em !important;
}

/* ---------- HERO CONTACT CARD ON ALL INNER PAGES ---------- */
.hero-contact-card {
  width: min(460px, 42vw) !important;
  padding: 30px 32px !important;
  gap: 18px !important;
  background: linear-gradient(115deg, rgba(4,5,4,.96), rgba(18,15,10,.90)) !important;
  border-left: 3px solid #d8bd83 !important;
}
.hero-contact-card > span {
  font-size: 15px !important;
  letter-spacing: .15em !important;
  line-height: 1.45 !important;
  color: #e4c982 !important;
}
.hero-contact-card > strong {
  font-size: 20px !important;
  line-height: 1.45 !important;
  color: #f2eadc !important;
}
.hero-contact-card > b {
  font-size: 16px !important;
  letter-spacing: .11em !important;
  color: #f2d98f !important;
}
.hero-contact-card .premium-arrow {
  width: 31px !important;
}

/* ---------- FEATURE ACCORDIONS (dark section) ---------- */
.feature-accordion .feature-item > button > span {
  font-size: 21px !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
}
.feature-accordion .feature-item > button {
  padding-top: 23px !important;
  padding-bottom: 23px !important;
}
.feature-accordion .feature-answer > p {
  font-size: 17px !important;
  line-height: 1.72 !important;
}

/* ---------- PROCESS ACCORDIONS (cream section) ----------
   Original CSS has ".process-row span { font-size:10px }".
   Because the PT/EN text is inside a span INSIDE h3, that rule
   was overriding every previous h3 increase. This targets the
   actual text node explicitly.
*/
.process-journey .process-row > button > h3 {
  font-size: clamp(28px, 2.4vw, 38px) !important;
  line-height: 1.15 !important;
}
.process-journey .process-row > button > h3 > span,
.process-journey .process-row > button > h3 > .lang-pt,
.process-journey .process-row > button > h3 > .lang-en {
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: 0 !important;
  color: inherit !important;
}
.process-journey .process-answer > p {
  font-size: 17px !important;
  line-height: 1.72 !important;
}
.process-journey .process-row > button {
  min-height: 120px !important;
  padding: 28px 0 !important;
}

/* ---------- END CTA ON ALL INNER PAGES ---------- */
.next-page {
  min-height: auto !important;
  padding: 64px 8vw !important;
  gap: 48px !important;
}
.next-page > span {
  font-size: clamp(28px, 3vw, 42px) !important;
  line-height: 1.1 !important;
}
.next-page > a {
  font-size: 17px !important;
  line-height: 1.15 !important;
  padding: 22px 30px !important;
  white-space: nowrap !important;
}

/* ---------- CONTACT FORM ---------- */
.contact-form-intro > span {
  font-size: 14px !important;
}
.contact-form-intro p {
  font-size: 18px !important;
}

.contact-form-shell label > span {
  font-size: 13px !important;
  line-height: 1.4 !important;
  letter-spacing: .11em !important;
}

.contact-form-shell input,
.contact-form-shell select {
  font-size: 17px !important;
  min-height: 52px !important;
}

/* Actual visible text box requested */
.contact-form-shell .form-message textarea {
  min-height: 190px !important;
  margin-top: 4px !important;
  padding: 16px 18px !important;
  border: 1px solid rgba(115,87,40,.55) !important;
  background: rgba(255,255,255,.20) !important;
  font-size: 17px !important;
  line-height: 1.6 !important;
  resize: vertical !important;
}
.contact-form-shell .form-message textarea:focus {
  border-color: #8a672e !important;
  box-shadow: 0 0 0 1px #8a672e !important;
}

.contact-form-shell .form-consent span {
  font-size: 14px !important;
  line-height: 1.55 !important;
}

/* Strong, unmistakable success state */
.form-status.form-success {
  margin-top: 22px !important;
  padding: 26px 28px !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 18px !important;
  border: 1px solid rgba(138,103,46,.35) !important;
  border-left: 4px solid #b78a3d !important;
  background: rgba(216,189,131,.13) !important;
  color: #171713 !important;
  animation: v8SuccessIn .45s ease both;
}
.form-status.form-success .success-mark {
  width: 38px !important;
  height: 38px !important;
  flex: 0 0 38px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  background: #b78a3d !important;
  color: #fff !important;
  font: 18px/1 Arial, sans-serif !important;
}
.form-status.form-success strong {
  display: block !important;
  margin-bottom: 6px !important;
  font: 400 25px/1.15 Georgia, serif !important;
  color: #2b251b !important;
}
.form-status.form-success small {
  display: block !important;
  font: 15px/1.55 Georgia, serif !important;
  color: #625a4e !important;
}
@keyframes v8SuccessIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- FOOTER: no microscopic copy ---------- */
.footer-bottom,
.footer-bottom button {
  font-size: 11px !important;
}

/* ---------- TABLET ---------- */
@media (max-width: 1100px) {
  .lux-header nav a { font-size: 12px !important; }

  .process-journey .process-row > button > h3 {
    font-size: 29px !important;
  }

  .hero-contact-card {
    width: min(430px, 45vw) !important;
  }
}

/* ---------- MOBILE ---------- */
@media (max-width: 760px) {
  .hero-content > span,
  .title-row > span,
  .digital-copy > span,
  .inner-content > span,
  .craft > div > span,
  .contact-form-intro > span,
  .editorial-copy > span,
  .about-manifesto span,
  .nfc-copy > span,
  .contact-layout span,
  .scroll-cue {
    font-size: 12px !important;
  }

  .hero-content p,
  .manifesto-v2 p,
  .digital-copy p,
  .closing p,
  .inner-content p,
  .page-intro p,
  .craft > div > p,
  .about-manifesto p,
  .about-pillars p,
  .about-belief p,
  .nfc-copy p,
  .contact-form-intro p,
  .editorial-copy p {
    font-size: 16px !important;
  }

  .hero-contact-card {
    width: calc(100% - 40px) !important;
    left: 20px !important;
    bottom: 26px !important;
    padding: 24px 22px !important;
    gap: 14px !important;
  }
  .hero-contact-card > span { font-size: 12px !important; }
  .hero-contact-card > strong { font-size: 17px !important; }
  .hero-contact-card > b { font-size: 14px !important; }

  .feature-accordion .feature-item > button > span {
    font-size: 19px !important;
  }
  .feature-accordion .feature-answer > p {
    font-size: 16px !important;
  }

  .process-journey .process-row > button > h3 {
    font-size: 25px !important;
  }
  .process-journey .process-row > button > h3 > span {
    font-size: inherit !important;
  }
  .process-journey .process-answer > p {
    font-size: 16px !important;
  }

  .next-page {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    padding: 48px 24px !important;
    gap: 26px !important;
  }
  .next-page > span {
    margin: 0 !important;
    font-size: 28px !important;
  }
  .next-page > a {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    padding: 17px 20px !important;
    font-size: 15px !important;
    white-space: normal !important;
  }

  .contact-form-shell label > span {
    font-size: 12px !important;
  }
  .contact-form-shell input,
  .contact-form-shell select,
  .contact-form-shell textarea {
    font-size: 16px !important;
  }
  .contact-form-shell .form-message textarea {
    min-height: 170px !important;
  }
  .contact-form-shell .form-consent span {
    font-size: 13px !important;
  }

  .form-status.form-success {
    padding: 20px !important;
    gap: 14px !important;
  }
  .form-status.form-success strong {
    font-size: 21px !important;
  }
  .form-status.form-success small {
    font-size: 14px !important;
  }

  /* Compact footer on mobile */
  .grand-footer {
    padding-bottom: 24px !important;
  }
  .footer-top {
    gap: 20px !important;
  }
  .footer-top p,
  .footer-top a {
    font-size: 14px !important;
  }
  .footer-grid a,
  .footer-grid p {
    font-size: 13px !important;
  }
}


/* =========================================================
   VESTIIGE V9 — FIXES BASEADOS NOS 3 SCREENSHOTS
   Causa: regras antigas aplicavam 9/10px aos spans internos PT/EN.
   ========================================================= */

/* 1) PROCESS ACCORDIONS — título e descrição realmente legíveis */
.process-journey .process-row > button > h3 {
  font-size: 30px !important;
  line-height: 1.18 !important;
}

.process-journey .process-row > button > h3 > span,
.process-journey .process-row .process-answer > p > span {
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

.process-journey .process-row .process-answer > p {
  font-size: 18px !important;
  line-height: 1.7 !important;
  color: #5d554a !important;
}

/* 2) CTA FINAL — reduzir de forma real, incluindo os spans PT/EN internos */
.next-page {
  padding: 52px 8vw !important;
  min-height: auto !important;
}

.next-page > span {
  font-size: 30px !important;
  line-height: 1.15 !important;
}

.next-page > a {
  font-size: 16px !important;
  line-height: 1.2 !important;
  padding: 18px 26px !important;
}

.next-page > a > span {
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

/* 3) SOBRE — Matéria / Tecnologia / Memória
   A regra antiga .about-pillars span {font-size:9px} estava a encolher
   tanto os títulos como os parágrafos porque PT/EN são spans.
*/
.about-pillars h3 {
  font-size: 30px !important;
  line-height: 1.2 !important;
  margin: 0 0 22px !important;
}

.about-pillars h3 > span {
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: 0 !important;
  color: #8a672e !important;
}

.about-pillars p {
  font-size: 17px !important;
  line-height: 1.75 !important;
  letter-spacing: 0 !important;
}

.about-pillars p > span {
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
  color: inherit !important;
}

/* Tablet */
@media (max-width: 1100px) {
  .process-journey .process-row > button > h3 {
    font-size: 27px !important;
  }
  .process-journey .process-row .process-answer > p {
    font-size: 17px !important;
  }

  .next-page > span {
    font-size: 28px !important;
  }
  .next-page > a {
    font-size: 15px !important;
    padding: 17px 23px !important;
  }

  .about-pillars h3 {
    font-size: 28px !important;
  }
  .about-pillars p {
    font-size: 16px !important;
  }
}

/* Mobile */
@media (max-width: 760px) {
  .process-journey .process-row > button > h3 {
    font-size: 23px !important;
  }
  .process-journey .process-row .process-answer > p {
    font-size: 16px !important;
  }

  .next-page {
    padding: 42px 24px !important;
    gap: 22px !important;
  }
  .next-page > span {
    font-size: 25px !important;
  }
  .next-page > a {
    font-size: 14px !important;
    padding: 15px 18px !important;
  }

  .about-pillars article {
    min-height: 240px !important;
    padding: 48px 28px !important;
  }
  .about-pillars h3 {
    font-size: 26px !important;
  }
  .about-pillars p {
    font-size: 16px !important;
  }
}

/* V11 — legal pages + consent */
.legal-hero{min-height:46vh;padding:150px 8vw 78px;background:radial-gradient(circle at 82% 18%,rgba(216,189,131,.08),transparent 30%),#090a08;color:#f3eee3;display:flex;align-items:flex-end;position:relative;overflow:hidden}
.legal-hero:after{content:"";position:absolute;left:8vw;right:8vw;bottom:0;height:1px;background:linear-gradient(90deg,rgba(216,189,131,.55),rgba(216,189,131,.05))}
.legal-kicker{display:block;margin-bottom:20px;font:600 11px/1.2 Arial,sans-serif;letter-spacing:.28em;text-transform:uppercase;color:#d8bd83}
.legal-hero h1{max-width:930px;margin:0;font:400 clamp(42px,6vw,82px)/.98 Georgia,serif;letter-spacing:-.035em}
.legal-hero p{max-width:720px;margin:28px 0 0;color:rgba(243,238,227,.7);font-size:16px;line-height:1.7}
.legal-shell{background:#f4efe5;padding:90px 8vw 110px}
.legal-layout{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:260px minmax(0,1fr);gap:80px;align-items:start}
.legal-index{position:sticky;top:120px;padding:25px 0;border-top:1px solid rgba(83,67,42,.24);border-bottom:1px solid rgba(83,67,42,.24)}
.legal-index>span{display:block;margin-bottom:16px;font:700 10px/1 Arial,sans-serif;letter-spacing:.22em;color:#9b793c}
.legal-index a{display:block;padding:8px 0;color:#5b5348;font-size:13px;text-decoration:none;transition:.2s ease}.legal-index a:hover{color:#a27d3f;transform:translateX(3px)}
.legal-content{max-width:790px}.updated{display:inline-block;margin-bottom:38px;padding:9px 13px;border:1px solid rgba(162,125,63,.28);font:600 10px/1 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#826631}
.legal-section{scroll-margin-top:120px;padding:0 0 42px;margin:0 0 42px;border-bottom:1px solid rgba(83,67,42,.16)}.legal-section:last-child{border-bottom:0}
.legal-section h2{margin:0 0 18px;color:#1a1916;font:400 clamp(27px,3vw,38px)/1.15 Georgia,serif}.legal-section h3{margin:26px 0 10px;color:#2c2924;font:600 16px/1.35 Arial,sans-serif}
.legal-section p,.legal-section li{color:#5b5348;font-size:16px;line-height:1.8}.legal-section p{margin:0 0 15px}.legal-section ul{margin:12px 0 18px;padding-left:22px}.legal-section strong{color:#27231e}.legal-section a{color:#8b6b34;text-underline-offset:3px}
.legal-note{margin:24px 0;padding:22px 24px;border-left:2px solid #d8bd83;background:rgba(216,189,131,.09);color:#50483d;font-size:14px;line-height:1.7}
.footer-legal-links{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.footer-legal-links a,.footer-legal-links button{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:none;cursor:pointer}.footer-legal-links a:hover,.footer-legal-links button:hover{color:#d8bd83}
#v-consent-banner{position:fixed;z-index:99998;left:22px;right:22px;bottom:22px;display:none;max-width:1160px;margin:auto;background:rgba(9,10,8,.985);border:1px solid rgba(216,189,131,.3);box-shadow:0 26px 80px rgba(0,0,0,.34);color:#f4efe5}
#v-consent-banner.is-visible{display:block;animation:vConsentIn .45s ease both}.v-consent-inner{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center;padding:24px 26px}.v-consent-copy strong{display:block;margin-bottom:7px;font:400 21px/1.2 Georgia,serif}.v-consent-copy p{margin:0;max-width:680px;font-size:13px;line-height:1.65;color:rgba(244,239,229,.68)}.v-consent-copy a{color:#d8bd83}
.v-consent-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.v-consent-btn{min-height:44px;padding:0 16px;border:1px solid rgba(216,189,131,.45);background:transparent;color:#f3eee3;font:700 10px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.v-consent-btn.primary{border-color:#d8bd83;background:#d8bd83;color:#11110f}
#v-consent-modal{position:fixed;z-index:99999;inset:0;display:none;place-items:center;padding:24px;background:rgba(0,0,0,.66);backdrop-filter:blur(8px)}#v-consent-modal.is-visible{display:grid}.v-consent-panel{width:min(680px,100%);max-height:90vh;overflow:auto;background:#f4efe5;color:#25221d;border:1px solid rgba(216,189,131,.52);box-shadow:0 28px 90px rgba(0,0,0,.36)}
.v-consent-panel-head{display:flex;justify-content:space-between;gap:20px;padding:28px 30px 22px;border-bottom:1px solid rgba(83,67,42,.16)}.v-consent-panel-head span{display:block;margin-bottom:8px;font:700 10px/1 Arial,sans-serif;letter-spacing:.18em;color:#9a763b}.v-consent-panel-head h2{margin:0;font:400 30px/1.1 Georgia,serif}.v-consent-close{width:38px;height:38px;border:1px solid rgba(83,67,42,.22);background:transparent;cursor:pointer;font-size:22px}
.v-consent-panel-body{padding:10px 30px 24px}.v-consent-intro{margin:14px 0 12px;color:#655d51;font-size:14px;line-height:1.65}.v-consent-category{padding:20px 0;border-top:1px solid rgba(83,67,42,.14)}.v-consent-category-row{display:flex;justify-content:space-between;gap:22px}.v-consent-category h3{margin:0 0 7px;font:600 15px/1.3 Arial,sans-serif}.v-consent-category p{margin:0;color:#6a6155;font-size:13px;line-height:1.6}
.v-toggle{flex:0 0 auto;width:48px;height:27px;border:0;border-radius:999px;background:#c7c0b4;position:relative;cursor:pointer}.v-toggle:after{content:"";position:absolute;width:21px;height:21px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.18);transition:.2s}.v-toggle[aria-checked="true"]{background:#9a763b}.v-toggle[aria-checked="true"]:after{left:24px}.v-toggle[disabled]{opacity:.65;cursor:not-allowed}
.v-consent-panel-foot{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:20px 30px 28px;border-top:1px solid rgba(83,67,42,.16)}.v-consent-panel-foot .v-consent-btn{color:#1b1b18;border-color:rgba(27,27,24,.42)}.v-consent-panel-foot .v-consent-btn.primary{color:#11110f;border-color:#d8bd83}
.consent-card{border:1px solid rgba(83,67,42,.18);background:#fbf8f1;padding:26px;margin:20px 0 18px}.consent-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.consent-card h3{margin:0 0 7px}.consent-card p{font-size:14px;margin:0}.consent-state{margin-top:22px;font:600 11px/1.4 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8a6a36}.consent-page-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.consent-page-actions button{border:1px solid #1b1b18;background:#1b1b18;color:#f4efe5;padding:14px 18px;font:700 11px/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.consent-page-actions button.secondary{background:transparent;color:#1b1b18}
@keyframes vConsentIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:900px){.legal-hero{padding:130px 7vw 64px;min-height:40vh}.legal-shell{padding:70px 7vw 90px}.legal-layout{grid-template-columns:1fr;gap:34px}.legal-index{position:relative;top:auto}.v-consent-inner{grid-template-columns:1fr;gap:20px}.v-consent-actions{justify-content:flex-start}}
@media(max-width:620px){.legal-hero{padding:115px 24px 48px}.legal-hero h1{font-size:43px}.legal-shell{padding:54px 24px 72px}.legal-section p,.legal-section li{font-size:15px}#v-consent-banner{left:10px;right:10px;bottom:10px}.v-consent-inner{padding:21px 19px}.v-consent-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.v-consent-actions .primary{grid-column:1/-1}.v-consent-btn{width:100%}#v-consent-modal{padding:10px}.v-consent-panel-head,.v-consent-panel-body,.v-consent-panel-foot{padding-left:20px;padding-right:20px}}


/* =========================================================
   V11.3 — HEADER DESKTOP FIT (REAL SELECTORS)
   ========================================================= */
@media (min-width: 1101px) {
  .lux-header{
    padding-left:2.2vw !important;
    padding-right:2.2vw !important;
    grid-template-columns:145px minmax(0,1fr) auto !important;
    column-gap:14px !important;
  }

  .lux-header .logo img{
    width:108px !important;
    height:76px !important;
  }

  .lux-header nav{
    min-width:0 !important;
    justify-content:center !important;
    gap:clamp(10px,1.15vw,19px) !important;
  }

  .lux-header nav a{
    flex:0 0 auto !important;
    white-space:nowrap !important;
    font-size:10px !important;
    letter-spacing:.115em !important;
    line-height:1 !important;
  }

  .lux-header nav a .lang-pt,
  .lux-header nav a .lang-en{
    white-space:nowrap !important;
  }

  .head-actions{
    flex:0 0 auto !important;
    gap:10px !important;
    white-space:nowrap !important;
  }

  .lang{
    font-size:9px !important;
    letter-spacing:.09em !important;
  }

  .lang span{
    padding-left:3px !important;
    padding-right:3px !important;
  }

  .contact-pill{
    padding:13px 14px !important;
    font-size:9px !important;
    letter-spacing:.10em !important;
    white-space:nowrap !important;
  }
}

/* Extra room only on narrower desktop widths before mobile menu takes over */
@media (min-width:1101px) and (max-width:1320px){
  .lux-header{
    padding-left:1.4vw !important;
    padding-right:1.4vw !important;
    grid-template-columns:120px minmax(0,1fr) auto !important;
    column-gap:10px !important;
  }

  .lux-header .logo img{
    width:96px !important;
  }

  .lux-header nav{
    gap:9px !important;
  }

  .lux-header nav a{
    font-size:9px !important;
    letter-spacing:.085em !important;
  }

  .head-actions{
    gap:7px !important;
  }

  .contact-pill{
    padding:12px 11px !important;
  }
}

/* ==========================================================
   LONG INNER-HERO TITLE — CASAMENTOS
   Three controlled lines keep the SEO H1 fully visible in the hero.
   ========================================================== */
.inner-hero .inner-content h1.hero-title-long {
  font-size: clamp(46px, 4.35vw, 72px);
  line-height: 0.92;
  max-width: 780px;
  margin-top: 18px;
  margin-bottom: 18px;
}

@media (max-width: 700px) {
  .inner-hero .inner-content h1.hero-title-long {
    font-size: clamp(38px, 10.5vw, 54px);
    line-height: 0.96;
    max-width: 100%;
    margin-top: 16px;
    margin-bottom: 16px;
  }
}


/* HOME HERO — keep CTA visible on desktop */
@media (min-width: 1101px) {
  .cinema-hero {
    min-height: 860px;
    height: max(100svh, 860px);
  }

  .hero-content {
    padding-top: 95px;
    padding-bottom: 70px;
  }

  .hero-content h1 {
    font-size: clamp(48px, 5.6vw, 92px);
    margin: 24px 0;
  }

  .hero-content p {
    margin-bottom: 28px;
  }
}

/* HOME HERO — MOBILE FIX */
@media (max-width: 700px) {
  .cinema-hero {
    height: auto !important;
    min-height: 100svh !important;
    overflow: hidden;
  }

  .hero-content {
    padding: 105px 7vw 85px !important;
  }

  .hero-content h1 {
    font-size: clamp(40px, 11vw, 48px) !important;
    line-height: 0.98 !important;
    margin: 22px 0 !important;
    letter-spacing: -0.035em !important;
  }

  .hero-content h1 em {
    font-size: 0.72em !important;
    line-height: 1.08 !important;
  }

  .hero-content p {
    font-size: 16px !important;
    line-height: 1.65 !important;
    margin-bottom: 26px !important;
  }

  .hero-content .gold-button {
    margin-bottom: 20px;
  }

  .scroll-cue {
    display: none !important;
  }
}