.container { width: var(--container); margin-inline: auto; }
.container--narrow { width: var(--container-narrow); margin-inline: auto; }
.section { padding-block: var(--section-y); position: relative; }
.section--compact { padding-block: clamp(62px, 7vw, 104px); }
.section--dark { background: var(--charcoal); color: var(--white); }
.section--black { background: var(--black); color: var(--white); }
.section--ivory { background: var(--ivory); }
.eyebrow {
  align-items: center;
  display: inline-flex;
  gap: 12px;
  color: var(--gold-dark);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  line-height: 1.3;
  text-transform: uppercase;
}
.section--dark .eyebrow, .section--black .eyebrow, .hero .eyebrow, .page-hero .eyebrow { color: var(--gold); }
.eyebrow::before { content: ""; width: 36px; height: 1px; background: currentColor; }
.display {
  font-family: var(--font-display);
  font-size: clamp(54px, 7vw, 118px);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .88;
}
.title-xl {
  font-family: var(--font-display);
  font-size: clamp(45px, 6vw, 92px);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: .98;
}
.title-lg {
  font-family: var(--font-display);
  font-size: clamp(38px, 4.6vw, 72px);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: 1;
}
.title-md {
  font-family: var(--font-display);
  font-size: clamp(31px, 3vw, 50px);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.05;
}
.lead { max-width: 710px; color: var(--muted); font-size: clamp(18px, 1.55vw, 23px); line-height: 1.65; }
.section--dark .lead, .section--black .lead { color: rgba(255,255,255,.67); }
.body-copy { max-width: 690px; color: var(--muted); }
.body-copy p + p { margin-top: 20px; }
.section-head {
  align-items: end;
  display: grid;
  gap: 28px 48px;
  grid-template-columns: minmax(0, 1.5fr) minmax(270px, .6fr);
  margin-bottom: clamp(46px, 6vw, 92px);
}
.section-head__title { margin-top: 20px; max-width: 950px; }
.section-head__aside { color: var(--muted); max-width: 480px; }
.section--dark .section-head__aside, .section--black .section-head__aside { color: rgba(255,255,255,.62); }
.button {
  align-items: center;
  background: var(--gold);
  border: 1px solid var(--gold);
  color: var(--black);
  cursor: pointer;
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  gap: 28px;
  justify-content: center;
  letter-spacing: .12em;
  min-height: 54px;
  padding: 16px 20px;
  text-transform: uppercase;
  transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.button::after { content: "↗"; font-size: 16px; line-height: 1; transition: transform .35s var(--ease); }
.button:hover::after { transform: translate(3px,-3px); }
.button:hover { background: var(--white); border-color: var(--white); }
.button--ghost { background: transparent; border-color: currentColor; color: inherit; }
.button--ghost:hover { background: var(--white); border-color: var(--white); color: var(--black); }
.button--dark { background: var(--black); border-color: var(--black); color: var(--white); }
.button--dark:hover { background: var(--gold); border-color: var(--gold); color: var(--black); }
.text-link {
  align-items: center;
  border-bottom: 1px solid currentColor;
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  gap: 14px;
  letter-spacing: .12em;
  padding-bottom: 5px;
  text-transform: uppercase;
}
.text-link::after { content: "↗"; transition: transform .3s var(--ease); }
.text-link:hover::after { transform: translate(3px,-3px); }

.site-header {
  color: var(--white);
  height: var(--header-h);
  left: 0;
  position: fixed;
  right: 0;
  top: 0;
  transition: background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease), box-shadow .4s var(--ease);
  z-index: 1000;
}
.site-header.is-hidden { transform: translateY(-105%); }
.site-header.is-scrolled { background: rgba(251,250,247,.94); box-shadow: 0 1px 0 var(--line); color: var(--ink); backdrop-filter: blur(16px); }
.site-header__inner { align-items: center; display: grid; gap: 38px; grid-template-columns: 210px 1fr auto; height: 100%; width: var(--container); margin-inline: auto; }
.brand { display: block; position: relative; width: 188px; }
.brand img { width: 100%; height: auto; }
.brand__light { display: none; }
.site-header.is-scrolled .brand__dark { display: none; }
.site-header.is-scrolled .brand__light { display: block; }
.site-nav { justify-self: center; }
.site-nav ul { align-items: center; display: flex; gap: clamp(18px, 2.2vw, 40px); }
.site-nav a {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .13em;
  padding-block: 12px;
  position: relative;
  text-transform: uppercase;
}
.site-nav a::after { background: var(--gold); bottom: 5px; content: ""; height: 1px; left: 0; position: absolute; transform: scaleX(0); transform-origin: right; transition: transform .35s var(--ease); width: 100%; }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.header-cta { align-items: center; border: 1px solid rgba(255,255,255,.45); display: flex; font-size: 10px; font-weight: 800; gap: 13px; letter-spacing: .12em; padding: 12px 15px; text-transform: uppercase; }
.site-header.is-scrolled .header-cta { border-color: var(--line); }
.menu-toggle { display: none; align-items: center; background: transparent; border: 0; cursor: pointer; gap: 12px; padding: 8px 0; }
.menu-toggle__icon { display: grid; gap: 5px; width: 26px; }
.menu-toggle__icon span { background: currentColor; display: block; height: 1px; width: 100%; }
.menu-toggle__text { font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mobile-menu {
  background: var(--black);
  color: var(--white);
  display: grid;
  grid-template-rows: auto 1fr auto;
  inset: 0;
  opacity: 0;
  padding: 22px max(24px, 5vw) 32px;
  pointer-events: none;
  position: fixed;
  transform: translateY(-16px);
  transition: opacity .45s var(--ease), transform .45s var(--ease);
  visibility: hidden;
  z-index: 2000;
}
.mobile-menu.is-open { opacity: 1; pointer-events: auto; transform: none; visibility: visible; }
.mobile-menu__top { align-items: center; display: flex; justify-content: space-between; }
.mobile-menu__logo { width: min(210px, 48vw); }
.mobile-menu__close { align-items: center; background: transparent; border: 1px solid rgba(255,255,255,.3); color: var(--white); cursor: pointer; display: inline-flex; height: 46px; justify-content: center; width: 46px; }
.mobile-menu__nav { align-self: center; padding-block: 24px; }
.mobile-menu__nav a { display: flex; font-family: var(--font-display); font-size: clamp(42px, 9vw, 72px); font-weight: 500; justify-content: space-between; letter-spacing: -.03em; line-height: 1.08; padding: 7px 0; }
.mobile-menu__nav a::after { color: var(--gold); content: "↗"; font-family: var(--font-sans); font-size: 16px; margin-top: 14px; }
.mobile-menu__foot { border-top: 1px solid var(--line-light); display: flex; flex-wrap: wrap; font-size: 12px; gap: 12px 26px; justify-content: space-between; padding-top: 20px; }
.mobile-menu__foot a { color: rgba(255,255,255,.7); }

.scroll-progress { background: var(--gold); height: 2px; left: 0; position: fixed; top: 0; transform: scaleX(0); transform-origin: left; width: 100%; z-index: 3000; }
.page-transition { align-items: center; background: var(--black); display: flex; inset: 0; justify-content: center; opacity: 0; pointer-events: none; position: fixed; transition: opacity .35s var(--ease); z-index: 4000; }
.page-transition.is-active { opacity: 1; }
.page-transition::before { background: var(--gold); content: ""; height: 1px; transform: scaleX(0); width: min(420px, 70vw); }
.page-transition.is-active::before { animation: transitionLine .7s var(--ease) both; }
@keyframes transitionLine { 0% { transform: scaleX(0); } 55% { transform: scaleX(1); } 100% { transform: scaleX(0); transform-origin: right; } }

.breadcrumbs { color: rgba(255,255,255,.6); display: flex; flex-wrap: wrap; font-size: 10px; font-weight: 700; gap: 8px; letter-spacing: .13em; text-transform: uppercase; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 8px; opacity: .5; }
.breadcrumbs [aria-current="page"] { color: var(--white); }
.page-hero { background: var(--black); color: var(--white); min-height: 70svh; overflow: hidden; padding: calc(var(--header-h) + 82px) 0 82px; position: relative; }
.page-hero--image { min-height: 82svh; }
.page-hero__media { inset: 0; position: absolute; }
.page-hero__media::after { background: linear-gradient(90deg, rgba(6,6,6,.9) 0%, rgba(6,6,6,.55) 46%, rgba(6,6,6,.22) 100%), linear-gradient(0deg, rgba(6,6,6,.6), transparent 55%); content: ""; inset: 0; position: absolute; }
.page-hero__media picture, .page-hero__media img { height: 100%; width: 100%; }
.page-hero__media img { object-fit: cover; }
.page-hero__inner { display: flex; flex-direction: column; justify-content: flex-end; min-height: calc(70svh - var(--header-h) - 164px); position: relative; z-index: 2; }
.page-hero--image .page-hero__inner { min-height: calc(82svh - var(--header-h) - 164px); }
.page-hero h1 { margin-top: 34px; max-width: 1100px; }
.page-hero__lead { color: rgba(255,255,255,.72); font-size: clamp(17px, 1.4vw, 22px); margin-top: 32px; max-width: 680px; }
.page-hero__meta { border-top: 1px solid var(--line-light); display: flex; flex-wrap: wrap; gap: 16px 48px; margin-top: 54px; padding-top: 22px; }
.page-hero__meta span { color: rgba(255,255,255,.63); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.image-reveal { clip-path: inset(0 0 100% 0); transition: clip-path 1s var(--ease); }
.image-reveal.is-visible { clip-path: inset(0); }
.media-frame { background: var(--bone); overflow: hidden; position: relative; }
.media-frame img { height: 100%; object-fit: cover; transition: transform 1s var(--ease); width: 100%; }
.media-frame:hover img { transform: scale(1.025); }
.media-badge { background: rgba(11,11,11,.84); bottom: 18px; color: rgba(255,255,255,.78); font-size: 9px; font-weight: 700; left: 18px; letter-spacing: .12em; padding: 8px 10px; position: absolute; text-transform: uppercase; z-index: 2; }

.cta-panel { align-items: center; display: grid; gap: 42px; grid-template-columns: 1.4fr auto; }
.cta-panel__title { margin-top: 18px; max-width: 920px; }
.cta-panel__actions { display: flex; flex-direction: column; gap: 14px; min-width: 250px; }

.site-footer { background: var(--black); color: var(--white); padding-top: clamp(78px, 9vw, 140px); }
.footer-top { align-items: start; display: grid; gap: 56px; grid-template-columns: minmax(270px, 1.3fr) repeat(3, minmax(140px, .55fr)); padding-bottom: 80px; }
.footer-brand img { width: min(320px, 100%); }
.footer-brand p { color: rgba(255,255,255,.58); margin-top: 28px; max-width: 390px; }
.footer-brand .button { margin-top: 32px; }
.footer-col h2 { color: var(--gold); font-size: 10px; letter-spacing: .16em; margin-bottom: 25px; text-transform: uppercase; }
.footer-col li + li { margin-top: 11px; }
.footer-col a { color: rgba(255,255,255,.66); font-size: 13px; transition: color .25s; }
.footer-col a:hover { color: var(--white); }
.footer-bottom { align-items: center; border-top: 1px solid var(--line-light); color: rgba(255,255,255,.43); display: flex; flex-wrap: wrap; font-size: 11px; gap: 16px 30px; justify-content: space-between; padding-block: 26px; }
.footer-legal { display: flex; flex-wrap: wrap; gap: 20px; }
.footer-credit a { color: rgba(255,255,255,.7); }

.whatsapp-float { align-items: center; background: var(--gold); bottom: 28px; color: var(--black); display: flex; font-size: 10px; font-weight: 800; gap: 10px; letter-spacing: .11em; padding: 15px 18px; position: fixed; right: 28px; text-transform: uppercase; z-index: 900; }
.whatsapp-float svg { height: 18px; width: 18px; }
.mobile-actions { background: var(--black); bottom: 0; display: none; left: 0; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); position: fixed; right: 0; z-index: 950; }
.mobile-actions a { align-items: center; color: var(--white); display: flex; flex: 1; font-size: 11px; font-weight: 800; gap: 9px; justify-content: center; letter-spacing: .08em; min-height: 48px; text-transform: uppercase; }
.mobile-actions a + a { border-left: 1px solid var(--line-light); }
.mobile-actions svg { color: var(--gold); height: 18px; width: 18px; }

.cookie-banner { background: var(--white); bottom: 20px; box-shadow: var(--shadow); display: grid; gap: 20px; grid-template-columns: 1fr auto; left: 20px; max-width: 650px; padding: 24px; position: fixed; transform: translateY(calc(100% + 50px)); transition: transform .55s var(--ease); z-index: 2200; }
.cookie-banner.is-visible { transform: translateY(0); }
.cookie-banner h2 { font-family: var(--font-display); font-size: 25px; font-weight: 500; }
.cookie-banner p { color: var(--muted); font-size: 12px; margin-top: 6px; }
.cookie-banner__actions { align-items: center; display: flex; gap: 10px; }
.cookie-banner__actions button { background: var(--black); border: 1px solid var(--black); color: var(--white); cursor: pointer; font-size: 10px; font-weight: 800; letter-spacing: .1em; min-height: 42px; padding: 10px 14px; text-transform: uppercase; }
.cookie-banner__actions button[data-cookie="necessary"] { background: transparent; color: var(--black); }

.faq { border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__button { align-items: center; background: transparent; border: 0; cursor: pointer; display: flex; font-size: clamp(17px, 1.5vw, 21px); font-weight: 600; justify-content: space-between; padding: 26px 0; text-align: left; width: 100%; }
.faq__button span:last-child { color: var(--gold-dark); font-size: 24px; font-weight: 400; transition: transform .3s var(--ease); }
.faq__button[aria-expanded="true"] span:last-child { transform: rotate(45deg); }
.faq__panel { color: var(--muted); display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--ease); }
.faq__panel > div { overflow: hidden; }
.faq__panel p { max-width: 760px; padding: 0 0 26px; }
.faq__button[aria-expanded="true"] + .faq__panel { grid-template-rows: 1fr; }

.field { display: grid; gap: 9px; }
.field label, .field legend { font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.field input, .field select, .field textarea {
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(20,20,18,.35);
  border-radius: 0;
  color: var(--ink);
  min-height: 52px;
  outline: 0;
  padding: 12px 0;
  width: 100%;
}
.field textarea { min-height: 130px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold-dark); }
.field-error { color: #9e3029; font-size: 11px; min-height: 18px; }
.check-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.check { align-items: start; display: flex; font-size: 13px; gap: 10px; }
.check input { accent-color: var(--gold); flex: 0 0 auto; height: 18px; margin-top: 2px; width: 18px; }
.form-status { border-left: 3px solid var(--gold); color: var(--muted); margin-top: 20px; padding: 14px 18px; }
