@font-face {
  font-family: "Cinzel";
  src: url("../assets/fonts/cinzel-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("../assets/fonts/plus-jakarta-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

:root {
  --emerald: #0B3B2C;
  --deep: #06241B;
  --gold: #C5A059;
  --light-gold: #D9BD79;
  --cream: #F7F3EA;
  --white: #FFFFFF;
  --ink: #111713;
  --gray: #5B625E;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #d9d9d5; color: var(--ink); }
body { font-family: "Plus Jakarta Sans", Arial, sans-serif; }
img { display: block; max-width: 100%; }
h1, h2, h3, p, blockquote { margin: 0; }

.brochure { width: 210mm; margin: 0 auto; box-shadow: 0 0 50px rgba(0,0,0,.22); }
.page {
  width: 210mm;
  height: 297mm;
  position: relative;
  overflow: hidden;
  page-break-after: always;
  background: var(--cream);
}
.page:last-child { page-break-after: auto; }
.page-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
h1, h2, h3 { font-family: "Cinzel", Georgia, serif; font-weight: 600; }
h2 { font-size: 13.2mm; line-height: .98; letter-spacing: -.5mm; color: var(--deep); }
h2 em { color: var(--gold); font-style: normal; }
.section-index { font-size: 2.5mm; font-weight: 700; letter-spacing: .85mm; text-transform: uppercase; color: var(--gold); margin-bottom: 5mm; }
.light-index { color: var(--light-gold); }
.page-header {
  position: absolute; top: 10mm; left: 15mm; right: 15mm; height: 8mm;
  display: flex; align-items: center; justify-content: space-between;
  border-bottom: .25mm solid rgba(197,160,89,.55);
  color: var(--deep); z-index: 8;
}
.page-header span { font-family: "Cinzel", serif; font-size: 2.6mm; font-weight: 700; letter-spacing: .35mm; text-transform: uppercase; }
.page-header small { font-size: 2.1mm; letter-spacing: .45mm; text-transform: uppercase; color: var(--gray); }
.light-header { color: #fff; border-color: rgba(217,189,121,.55); }
.light-header small { color: rgba(255,255,255,.72); }
.page-foot {
  position: absolute; bottom: 8mm; left: 15mm; right: 15mm; height: 4mm;
  display: flex; align-items: center; gap: 4mm; z-index: 12;
}
.page-foot span { height: .25mm; background: var(--gold); flex: 1; }
.page-foot b { color: var(--gold); font-size: 2.4mm; letter-spacing: .3mm; }
.page-foot.inverted b { color: var(--light-gold); }
.textile {
  background-image:
    linear-gradient(135deg, transparent 42%, rgba(197,160,89,.22) 42% 48%, transparent 48%),
    linear-gradient(45deg, transparent 42%, rgba(197,160,89,.12) 42% 48%, transparent 48%);
  background-size: 10mm 10mm;
}

/* Cover */
.cover { color: #fff; }
.cover .page-bg { object-position: 50% center; }
.cover-wash { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,36,27,.82), rgba(6,36,27,.48) 45%, rgba(6,36,27,.92)); }
.cover-pattern { position: absolute; top: 0; right: 0; width: 50mm; height: 100%; opacity: .6; }
.cover-top { position: absolute; top: 16mm; left: 18mm; right: 18mm; display: flex; justify-content: space-between; align-items: center; z-index: 3; }
.cover-logo { width: 21mm; height: 26mm; object-fit: contain; object-position: left center; filter: drop-shadow(0 2mm 3mm rgba(0,0,0,.25)); }
.eyebrow { font-size: 2.4mm; letter-spacing: .7mm; text-transform: uppercase; }
.cover-content { position: absolute; left: 18mm; top: 93mm; width: 155mm; z-index: 3; }
.gold-rule { width: 31mm; height: .6mm; background: var(--gold); margin-bottom: 9mm; }
.kicker { font-size: 2.6mm; letter-spacing: .65mm; text-transform: uppercase; color: rgba(255,255,255,.82); margin-bottom: 8mm; }
.cover h1 { font-size: 27mm; line-height: .82; letter-spacing: -1.2mm; text-transform: uppercase; }
.cover-tagline { margin-top: 11mm; font-family: "Cinzel", serif; font-size: 7mm; line-height: 1.35; color: var(--light-gold); }
.cover-footer { position: absolute; bottom: 17mm; left: 18mm; right: 18mm; z-index: 3; display: flex; justify-content: space-between; border-top: .25mm solid rgba(217,189,121,.65); padding-top: 5mm; text-transform: uppercase; font-size: 2.7mm; letter-spacing: .7mm; }
.cover-footer strong { color: var(--light-gold); }

/* Welcome */
.welcome { background: var(--cream); display: grid; grid-template-columns: 55% 45%; }
.split-photo { position: relative; overflow: hidden; height: 100%; }
.split-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, rgba(6,36,27,.3)); }
.split-photo img { width: 100%; height: 100%; object-fit: cover; }
.photo-number { position: absolute; left: 12mm; bottom: 16mm; z-index: 2; color: rgba(255,255,255,.4); font-family: "Cinzel"; font-size: 25mm; }
.vertical-note { position: absolute; top: 21mm; right: 6mm; writing-mode: vertical-rl; z-index: 2; color: #fff; font-size: 2mm; letter-spacing: .5mm; text-transform: uppercase; }
.split-copy { position: relative; padding: 32mm 12mm 18mm 13mm; }
.split-copy .page-header { left: 10mm; right: 10mm; top: 10mm; }
.split-copy h2 { font-size: 10.5mm; }
.mini-rule { width: 16mm; height: .5mm; background: var(--gold); margin: 7mm 0; }
.split-copy > p { font-size: 2.62mm; line-height: 1.7; color: var(--gray); margin-bottom: 3.5mm; }
.split-copy blockquote { border-left: .6mm solid var(--gold); padding-left: 4mm; margin: 6mm 0; font-family: "Cinzel"; font-size: 3.6mm; line-height: 1.55; color: var(--emerald); }
.indicator-row { display: grid; grid-template-columns: repeat(3,1fr); border-top: .25mm solid rgba(197,160,89,.5); padding-top: 4mm; gap: 3mm; }
.indicator-row b { display: block; color: var(--gold); font-size: 2mm; margin-bottom: 2mm; }
.indicator-row span { font-size: 2.1mm; line-height: 1.45; color: var(--deep); font-weight: 600; }
.welcome .page-foot { left: 122mm; }

/* Essence */
.essence { padding: 32mm 15mm 18mm; }
.title-row { display: flex; justify-content: space-between; align-items: end; margin-bottom: 11mm; }
.title-row > p { width: 55mm; color: var(--gray); font-size: 2.8mm; line-height: 1.6; border-left: .5mm solid var(--gold); padding-left: 5mm; margin-bottom: 2mm; }
.purpose-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 76mm 66mm; gap: 4mm; }
.purpose-card { position: relative; padding: 8mm; border-radius: 2mm; overflow: hidden; }
.purpose-card.dark { background: var(--deep); color: #fff; }
.purpose-card.cream { background: #ebe3d2; grid-column: 1; grid-row: 2; }
.big-n { position: absolute; right: 6mm; top: 3mm; font-family: "Cinzel"; font-size: 16mm; color: rgba(197,160,89,.2); }
.card-label { font-size: 2mm; letter-spacing: .7mm; text-transform: uppercase; color: var(--gold); margin-bottom: 7mm; }
.purpose-card h3 { font-size: 6.2mm; line-height: 1.1; margin-bottom: 6mm; }
.purpose-card > p:last-child { font-size: 2.5mm; line-height: 1.65; color: rgba(255,255,255,.75); }
.purpose-card.cream > p:last-child { color: var(--gray); }
.image-card { grid-column: 2; grid-row: 1 / span 2; padding: 0; }
.image-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,36,27,.9), transparent 62%); }
.image-card img { width:100%; height:100%; object-fit:cover; }
.image-card-caption { position:absolute; z-index:2; bottom:10mm; left:8mm; color:#fff; font-family:"Cinzel"; font-size:6.5mm; line-height:1.15; }
.image-card-caption small { font-family:"Plus Jakarta Sans"; font-size:2.3mm; letter-spacing:.5mm; color:var(--light-gold); text-transform:uppercase; }
.values-block { margin-top: 8mm; display: grid; grid-template-columns: 42mm 1fr; gap: 8mm; align-items: center; }
.values-title { display:flex; align-items:center; gap:4mm; }
.values-title span { font-family:"Cinzel"; font-size:12mm; color:var(--gold); }
.values-title p { font-size:2.4mm; text-transform:uppercase; line-height:1.45; letter-spacing:.35mm; }
.value-list { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5mm 5mm; }
.value-list span { border-bottom:.25mm solid rgba(197,160,89,.5); padding-bottom:2mm; font-size:2.4mm; color:var(--gray); }
.bottom-pattern { position:absolute; right:0; bottom:0; width:38mm; height:38mm; opacity:.65; }

/* Services */
.services { padding: 32mm 15mm 18mm; background:#fff; }
.service-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:10mm; }
.service-heading > p { color:var(--gold); font-family:"Cinzel"; font-size:3.5mm; line-height:1.5; text-align:right; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3mm; }
.service-grid article { min-height:54mm; border:.25mm solid #ddd8cc; padding:6mm; position:relative; border-radius:1.5mm; background:#fcfbf7; }
.service-grid article:nth-child(even) { background:var(--deep); color:#fff; border-color:var(--deep); }
.service-grid b { display:block; color:var(--gold); font-size:2mm; margin-bottom:5mm; }
.service-grid h3 { font-size:4.7mm; line-height:1.08; margin-bottom:5mm; }
.service-grid p { color:var(--gray); font-size:2.2mm; line-height:1.55; }
.service-grid article:nth-child(even) p { color:rgba(255,255,255,.67); }
.service-photo { height:48mm; margin-top:5mm; position:relative; overflow:hidden; border-radius:1.5mm; }
.service-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,36,27,.9), rgba(6,36,27,.15)); }
.service-photo img { width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.service-photo div { position:absolute; left:8mm; top:9mm; z-index:2; color:#fff; }
.service-photo small { font-size:2mm; letter-spacing:.65mm; color:var(--light-gold); }
.service-photo strong { display:block; margin-top:3mm; font-family:"Cinzel"; font-size:5.5mm; line-height:1.2; }

/* Destinations */
.destinations { background:var(--deep); color:#fff; padding:32mm 15mm 18mm; }
.dest-title h2 { color:#fff; margin-bottom:10mm; }
.mosaic { display:grid; grid-template-columns:1.25fr 1fr 1fr; grid-template-rows:74mm 57mm; gap:3mm; }
.tile { position:relative; overflow:hidden; border-radius:1.5mm; }
.tile::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,36,27,.92), transparent 67%); }
.tile img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.tile > div { position:absolute; z-index:2; left:6mm; bottom:5mm; right:4mm; }
.tile span { color:var(--light-gold); font-size:2mm; }
.tile h3 { font-size:4.8mm; line-height:1.05; margin:1.5mm 0; }
.tile p { font-size:1.9mm; color:rgba(255,255,255,.72); text-transform:uppercase; letter-spacing:.2mm; }
.antigua { grid-row:span 2; }
.atitlan { grid-column:span 2; }
.dest-footer { margin-top:8mm; display:flex; justify-content:center; gap:5mm; color:rgba(255,255,255,.55); font-size:2.2mm; letter-spacing:.35mm; text-transform:uppercase; }
.dest-footer span { color:var(--gold); }

/* Personalized */
.personalized { background:#fff; }
.experience-photo { position:absolute; top:0; left:0; width:100%; height:155mm; object-fit:cover; object-position:center 46%; }
.photo-panel { position:absolute; top:0; left:0; width:100%; height:155mm; background:linear-gradient(90deg, rgba(6,36,27,.94), rgba(6,36,27,.6) 52%, rgba(6,36,27,.05)); }
.exp-copy { position:absolute; left:15mm; top:42mm; width:90mm; color:#fff; }
.exp-copy h2 { color:#fff; }
.exp-copy p { margin-top:8mm; width:78mm; font-size:2.8mm; line-height:1.7; color:rgba(255,255,255,.76); }
.experience-list { position:absolute; top:155mm; left:0; right:0; height:92mm; padding:13mm 15mm; display:grid; grid-template-columns:43mm 1fr; gap:11mm; background:var(--cream); }
.list-head { border-right:.25mm solid rgba(197,160,89,.6); display:flex; gap:4mm; align-items:start; padding-top:2mm; }
.list-head span { font-family:"Cinzel"; font-size:13mm; color:var(--gold); }
.list-head p { font-size:2.4mm; line-height:1.5; text-transform:uppercase; letter-spacing:.35mm; padding-top:3mm; }
.pill-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:3mm 8mm; }
.pill-grid span { font-size:2.6mm; color:var(--gray); padding-bottom:2mm; border-bottom:.25mm solid #d7d0c1; }
.pill-grid span::before { content:"◆"; color:var(--gold); font-size:1.5mm; margin-right:3mm; }
.experience-quote { position:absolute; left:15mm; bottom:17mm; font-family:"Cinzel"; color:var(--emerald); font-size:4.8mm; line-height:1.4; }

/* Partnerships */
.partnerships { padding:32mm 15mm 18mm; background:var(--cream); }
.partner-intro { display:grid; grid-template-columns:1.4fr .8fr; gap:12mm; align-items:end; margin-bottom:9mm; }
.partner-intro h2 { font-size:11mm; }
.partner-intro > p { font-size:2.5mm; line-height:1.7; color:var(--gray); border-left:.5mm solid var(--gold); padding-left:5mm; }
.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2.5mm; margin-bottom:7mm; }
.benefit-grid div { min-height:28mm; background:#fff; padding:4mm; border-top:.7mm solid var(--gold); }
.benefit-grid b { display:block; font-size:1.9mm; color:var(--gold); margin-bottom:3mm; }
.benefit-grid span { font-size:2.15mm; line-height:1.45; color:var(--deep); }
.ally-block { display:grid; grid-template-columns:45% 55%; height:92mm; background:var(--deep); color:#fff; border-radius:1.5mm; overflow:hidden; }
.ally-block img { width:100%; height:100%; object-fit:cover; }
.ally-block > div { padding:8mm 9mm; }
.ally-block small { color:var(--light-gold); font-size:1.9mm; letter-spacing:.6mm; }
.ally-block h3 { font-size:5.6mm; line-height:1.2; margin:3mm 0 5mm; }
.ally-block ul { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:3mm 5mm; }
.ally-block li { font-size:2.05mm; line-height:1.4; color:rgba(255,255,255,.72); border-top:.25mm solid rgba(217,189,121,.35); padding-top:2mm; }

/* Process */
.process { padding:32mm 15mm 18mm; background:#fff; }
.process-title { width:150mm; }
.process-title > p { margin-top:6mm; color:var(--gray); font-size:2.8mm; }
.timeline { position:relative; margin-top:15mm; display:grid; grid-template-columns:repeat(5,1fr); gap:4mm; }
.timeline-line { position:absolute; top:9mm; left:8mm; right:8mm; height:.4mm; background:linear-gradient(90deg,var(--gold),#e5dbc3); }
.timeline article { position:relative; }
.timeline article > b { position:relative; z-index:2; display:flex; align-items:center; justify-content:center; width:18mm; height:18mm; border-radius:50%; background:var(--deep); color:var(--light-gold); font-family:"Cinzel"; font-size:5mm; border:1.2mm solid #fff; box-shadow:0 0 0 .35mm var(--gold); }
.timeline article > div { margin-top:7mm; }
.timeline small { color:var(--gold); font-size:1.75mm; letter-spacing:.45mm; }
.timeline h3 { font-size:4.2mm; line-height:1.18; margin:3mm 0; }
.timeline p { font-size:2.15mm; line-height:1.55; color:var(--gray); }
.process-signoff { position:absolute; left:15mm; right:15mm; bottom:34mm; height:39mm; background:var(--cream); padding:9mm; display:flex; align-items:center; justify-content:center; gap:3mm; font-family:"Cinzel"; font-size:5mm; color:var(--deep); }
.process-signoff b { color:var(--gold); font-weight:600; }

/* Promise */
.promise { color:#fff; padding:32mm 15mm 18mm; }
.promise-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.promise-wash { position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,36,27,.98), rgba(6,36,27,.82) 62%, rgba(6,36,27,.65)); }
.promise-content { position:relative; z-index:3; margin-top:18mm; width:176mm; }
.promise h2 { color:#fff; font-size:14mm; }
.promise-copy { width:103mm; margin-top:12mm; }
.promise-copy p { font-size:2.9mm; line-height:1.75; color:rgba(255,255,255,.74); margin-bottom:4mm; }
.pillar-row { margin-top:14mm; display:grid; grid-template-columns:repeat(4,1fr); gap:4mm; }
.pillar-row div { border-top:.5mm solid var(--gold); padding-top:4mm; }
.pillar-row b { color:var(--light-gold); display:block; font-size:2mm; margin-bottom:2mm; }
.pillar-row span { font-family:"Cinzel"; font-size:4mm; }
.promise-line { width:28mm; height:.6mm; background:var(--gold); margin:17mm 0 7mm; }
.promise blockquote { font-family:"Cinzel"; font-size:7mm; line-height:1.35; color:var(--light-gold); }

/* Contact */
.contact { color:#fff; }
.contact-wash { position:absolute; inset:0; background:linear-gradient(105deg, rgba(6,36,27,.98) 0%, rgba(6,36,27,.89) 48%, rgba(6,36,27,.5) 100%); }
.contact-pattern { position:absolute; right:0; top:0; width:70mm; height:100%; opacity:.7; }
.contact-top { position:absolute; z-index:3; top:17mm; left:18mm; right:18mm; display:flex; justify-content:space-between; align-items:center; border-bottom:.25mm solid rgba(217,189,121,.5); padding-bottom:6mm; }
.contact-top img { width:18mm; height:23mm; object-fit:contain; object-position:left center; }
.contact-top span { font-size:2.2mm; letter-spacing:.6mm; text-transform:uppercase; color:rgba(255,255,255,.7); }
.contact-content { position:absolute; z-index:3; left:18mm; top:65mm; width:174mm; }
.contact h2 { color:#fff; font-size:20mm; line-height:.9; }
.contact-lead { width:105mm; margin-top:8mm; font-size:3.1mm; line-height:1.7; color:rgba(255,255,255,.75); }
.contact-card { margin-top:14mm; width:174mm; min-height:76mm; padding:9mm; background:rgba(247,243,234,.96); color:var(--ink); display:grid; grid-template-columns:1fr 1.05fr 36mm; gap:8mm; align-items:center; border-radius:2mm; }
.person small { font-size:1.9mm; letter-spacing:.55mm; color:var(--gold); }
.person h3 { font-size:7mm; margin:3mm 0; color:var(--deep); }
.person span { color:var(--gray); font-size:2.4mm; }
.contact-details { display:flex; flex-direction:column; gap:4mm; }
.contact-details a { display:flex; gap:3mm; align-items:center; color:var(--gray); font-size:2.4mm; text-decoration:none; border-bottom:.25mm solid #d9d1c1; padding-bottom:3mm; }
.contact-details b { width:7mm; height:7mm; display:flex; justify-content:center; align-items:center; background:var(--emerald); color:#fff; border-radius:50%; font-size:2mm; }
.qr-wrap { color:var(--deep); text-decoration:none; text-align:center; }
.qr-wrap img { width:32mm; height:32mm; object-fit:contain; padding:2mm; background:#fff; margin:0 auto 2mm; }
.qr-wrap span { font-size:1.65mm; line-height:1.35; letter-spacing:.35mm; }
.closing { position:absolute; z-index:3; left:18mm; bottom:32mm; font-family:"Cinzel"; font-size:5.4mm; line-height:1.5; }
.closing span, .closing strong { display:block; }
.closing strong { color:var(--light-gold); font-weight:600; }

@media screen and (max-width: 900px) {
  .brochure { transform-origin: top left; width: 210mm; box-shadow: none; }
  body { overflow-x: auto; }
}

@page { size: A4; margin: 0; }
@media print {
  html, body { width: 210mm; background: #fff; }
  .brochure { margin: 0; box-shadow: none; }
  .page { width: 210mm; height: 297mm; break-after: page; page-break-after: always; }
  .page:last-child { break-after: auto; page-break-after: auto; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
}
