*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: Poppins, sans-serif;
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: "JetBrains Mono", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

.carousel-wrap {
  width: 100%;
  overflow: hidden;
}

.carousel-track {
  display: flex;
  gap: 24px;
  align-items: stretch;
}

.gal-card {
  position: relative;
  min-width: 0;
  height: 550px;
  border-radius: 16px;
  overflow: hidden;
  flex-shrink: 0;
  background: #111;
}

/* FULL IMAGE COVER */

.gal-card-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* BODY */

.gal-card-body {
  position: relative;
  width: 100%;
  height: 100%;
}

/* CONTENT OVER IMAGE */

.gal-card-title,
.gal-card-desc {
  position: absolute;
  left: 30px;
  right: 30px;
  color: #fff;
  z-index: 2;
}

.gal-card-title {
  bottom: 90px;
  font-size: 42px;
  line-height: 1.1;
  font-weight: 600;
  margin: 0;
}

.gal-card-desc {
  bottom: 30px;
  font-size: 20px;
  line-height: 1.5;
  margin: 0;
}

/* DARK OVERLAY */

.gal-card-body::after {
  content: "";
 
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.85) 10%,
    rgba(0, 0, 0, 0.1) 55%,
    rgba(0, 0, 0, 0.05) 100%
  );
  z-index: 1;
}

/* QUOTE BOX */

.quote-overlay {
  position: absolute;
  top: 24px;
  left: 24px;
  right: 24px;
  z-index: 5;
  background: rgba(0, 0, 0, 0.75);
  color: #fff;
  padding: 24px;
  border-radius: 12px;
  font-size: 20px;
  line-height: 1.6;
}

.quote-attr {
  display: block;
  margin-top: 16px;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--amber-soft);
}

/* NAVIGATION */

.carousel-nav {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}

.nav-btn {
  width: 52px;
  height: 52px;
  border: none;
  border-radius: 50%;
  background: #111;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
}

.dest-photo {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

:root{
  --olive:#50563D;
  --olive-deep:#3a3f2c;
  --olive-deeper:#2c3021;
  --teal:#0A3D48;
  --amber:#F8AA29;
  --amber-soft:#f9bd57;
  --amber-deep:#d68a14;
  --amber-glow:rgba(248,170,41,.55);
  --amber-warm:rgba(248,170,41,.22);
  --sand:#EDE6D6;
  --sand-soft:#f4efe4;
  --paper:#FAFAF7;
  --cream:#FAF6EE;
  --ink:#0c1416;
  --line:rgba(80,86,61,.18);
  --warm-shadow:0 18px 50px -18px rgba(80,86,61,.35), 0 6px 18px -6px rgba(248,170,41,.18);
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box
}

html{
  scroll-behavior:smooth
}

body{
  font-family:'Poppins',sans-serif;
  font-weight:300;
  background:var(--paper);
  color:var(--olive-deep);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4,.serif{
  font-family:'Playfair Display',serif;
  font-weight:500;
  line-height:1.15;
  color:var(--olive-deeper)
}

img{
  display:block;
  max-width:100%
}

a{
  color:inherit;
  text-decoration:none
}

.wrap{
  max-width:1240px;
  margin:0 auto;
  padding:0 40px
}

.eyebrow{
  font-size:11.5px;
  letter-spacing:.34em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--amber-soft);
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin-bottom:22px;
}

.eyebrow::before{
  content:"";
  width:30px;
  height:1px;
  background:currentColor
}

/* ---------- wordmark (logo image) ---------- */

.wordmark{
  display:inline-flex;
  align-items:center;
  line-height:0;
}

.wordmark img{
  display:block;
  height:34px;
  width:auto;
}

/* ---------- buttons: warm 3D, no black ---------- */

.btn{
  display:inline-block;
  position:relative;
  overflow:hidden;
  padding:22px 48px;
  border:none;
  cursor:pointer;
  font-family:'Poppins',sans-serif;
  font-weight:500;
  font-size:15px;
  letter-spacing:.18em;
  text-transform:uppercase;
  background:linear-gradient(180deg, var(--amber-soft) 0%, var(--amber) 58%, var(--amber-deep) 100%);
  color:var(--olive-deeper);
  border-radius:7px;
  box-shadow:
      inset 0 1px 0 rgba(255,255,255,.55),
      inset 0 -3px 0 rgba(180,118,12,.4),
      0 1px 0 rgba(255,255,255,.22),
      0 10px 20px -4px rgba(248,170,41,.55),
      0 20px 40px -10px rgba(214,138,20,.32),
      0 32px 60px -14px rgba(80,86,61,.32);
  transition:transform .3s cubic-bezier(.2,1,.3,1), box-shadow .3s ease;
  z-index:1;
}

.btn::after{
  /* shine sweep, driven by scroll & on hover */
  content:"";
  position:absolute;
  top:0;
  left:var(--shine, -120%);
  width:60%;
  height:100%;
  background:linear-gradient(110deg,
      transparent 0%,
      rgba(255,255,255,0) 30%,
      rgba(255,255,255,.6) 50%,
      rgba(255,255,255,0) 70%,
      transparent 100%);
  transform:skewX(-22deg);
  pointer-events:none;
  transition:left .9s ease;
}

.btn:hover{
  transform:translateY(-3px);
  box-shadow:
      inset 0 1px 0 rgba(255,255,255,.65),
      inset 0 -3px 0 rgba(180,118,12,.45),
      0 1px 0 rgba(255,255,255,.26),
      0 16px 28px -4px rgba(248,170,41,.65),
      0 28px 52px -10px rgba(214,138,20,.4),
      0 44px 76px -16px rgba(80,86,61,.36);
}

.btn:hover::after{
  left:140%;
  transition:left .9s ease
}

.btn:active{
  transform:translateY(-1px);
  box-shadow:
      inset 0 1px 0 rgba(255,255,255,.35),
      inset 0 -1px 0 rgba(180,118,12,.5),
      0 6px 12px -2px rgba(248,170,41,.4),
      0 12px 22px -8px rgba(80,86,61,.3);
}

/* link CTA ghost */

.btn-ghost{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--olive-deep);
  font-weight:500;
  border-bottom:1px solid rgba(80,86,61,.45);
  padding-bottom:5px;
  transition:gap .25s, color .25s;
  margin-top: 15px !important;
}

.btn-ghost:hover{
  gap:18px;
  color:var(--amber-soft)
}

/* ---------- promo bar ---------- */

.promo-bar{
  background:var(--olive-deeper);
  color:var(--cream);
  padding:13px 24px;
  text-align:center;
  font-size:12.5px;
  letter-spacing:.06em;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  flex-wrap:nowrap;
  font-weight:300;
  line-height:1.4;
}

.promo-lead{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  min-width:0;
}

.promo-bar strong{
  color:var(--amber-soft);
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:11px;
}

.promo-bar .promo-cta{
  background:transparent;
  color:var(--amber-soft);
  padding:4px 0;
  font-weight:500;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  border-bottom:1px solid var(--amber-soft);
}

.promo-bar .promo-cta:hover{
  color:var(--cream);
  border-color:var(--cream)
}

/* ---------- nav ---------- */

.nav{
  background:var(--paper);
  padding:24px 48px;
  display:flex;
  justify-content:center;
  align-items:center;
  border-bottom:1px solid var(--line);
}

/* ---------- hero: full-bleed image ---------- */

.hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--cream);
  overflow:hidden;
  isolation:isolate;
}

/* the image layer. Replace --hero-img with the real photograph URL.
     Until then a sophisticated olive/teal landscape gradient stands in. */

.hero-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
      radial-gradient(1100px 700px at 22% 38%, rgba(80,86,61,.7), transparent 70%),
      radial-gradient(900px 800px at 80% 75%, rgba(10,61,72,.78), transparent 72%),
      linear-gradient(160deg,#1f2418 0%, #2c3021 38%, #0e2a30 100%);
  background-size:cover;
  background-position:center;
  box-shadow: inset 0 0 220px rgba(0,0,0,.65);
  background-color: rgba(0,0,0,.15);
  background-blend-mode: multiply;
}

.hero-bg.has-image{
  background-image:var(--hero-img);
  background-size:cover;
  background-position:center;
  box-shadow: inset 0 0 220px rgba(0,0,0,.65);
  background-color: rgba(0,0,0,.15);
  background-blend-mode: multiply;
}

/* darkening gradient overlay so text always reads */

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
      radial-gradient(ellipse at center, rgba(0,0,0,.18) 0%, rgba(0,0,0,.48) 60%, rgba(0,0,0,.62) 100%),
      linear-gradient(180deg, rgba(12,20,22,.25) 0%, transparent 30%, transparent 70%, rgba(12,20,22,.55) 100%);
  pointer-events:none;
}

/* faint film-grain on top, ties to the rest of the page */

.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.35;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/></svg>");
}

.hero .wrap{
  position:relative;
  z-index:2;
  padding-top:0px;
  padding-bottom:80px
}

/* eyebrow on dark needs a lighter treatment */

.hero .eyebrow{
  color:var(--amber-soft);
}

.hero .eyebrow::before{
  background:currentColor;
  opacity:.7
}

.hero h1{
  font-size:clamp(48px, 6.8vw, 92px);
  font-weight:400;
  color:var(--paper);
  margin:0 auto 30px;
  max-width:1000px;
  line-height:1.06;
  letter-spacing:-.005em;
  text-shadow:0 2px 24px rgba(0,0,0,.32);
}

.hero h1 em{
  font-style:italic;
  color:var(--amber-soft);
  font-weight:500;
  white-space:nowrap;
  position:relative;
  display:inline-block;
}

/* the hand-drawn underline stays, just amber-soft on dark */

.hero h1 em::after{
  content:"";
  position:absolute;
  left:6%;
  right:6%;
  bottom:-2px;
  height:8px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 8' preserveAspectRatio='none'><path d='M2 5 Q 30 1, 60 4 T 120 5 T 198 4' fill='none' stroke='%23f9bd57' stroke-width='2.2' stroke-linecap='round' opacity='.75'/></svg>") no-repeat center/100% 100%;
}

.hero .sub{
  font-size:19px;
  color:rgba(250,250,247,.88);
  max-width:620px;
  margin:0 auto 48px;
  line-height:1.65;
  font-weight:300;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
}

.hero-actions{
  display:flex;
  justify-content:center;
  gap:48px;
  align-items:flex-start;
  flex-wrap:wrap;
}

/* each CTA + its urgency ticker, stacked */

/* slim pill-style live urgency ticker */

/* the ghost CTA needs a small top push so its ticker baseline-aligns with the primary's */

/* the ghost CTA on a dark background reads as a cream-on-cream underline */

.hero .btn-ghost{
  color:var(--cream);
  border-bottom-color:rgba(250,246,238,.5);
}

.hero .btn-ghost:hover{
  color:var(--amber-soft);
  border-bottom-color:var(--amber-soft);
}

/* tiny credibility line at the bottom of the hero */

/* placeholder label (visible only while no real image is set) */

.hero-bg.has-image ~ .hero-img-note{
  display:none
}

/* ---------- split section ---------- */

.section{
  padding:110px 0
}

.split{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:90px;
  align-items:center
}

.split.reverse{
  grid-template-columns:1fr 1.05fr
}

.split.reverse .split-text{
  order:2
}

.split.reverse .split-photo{
  order:1
}

.split h2{
  font-size:clamp(34px, 3.6vw, 48px);
  margin-bottom:26px;
  font-weight:500;
  letter-spacing:-.003em;
}

.split h2 em{
  font-style:italic;
  color:var(--amber-soft);
  font-weight:500
}

.split p{
  color:var(--olive);
  margin-bottom:18px;
  font-size:16.5px;
  line-height:1.75;
}

/* ---------- centered brand promise ---------- */

.promise{
  text-align:center;
  background:var(--sand-soft);
  padding:120px 0;
  position:relative;
}

.promise h2{
  font-size:clamp(36px, 4vw, 56px);
  max-width:940px;
  margin:0 auto 26px;
  font-weight:500;
  line-height:1.18;
  letter-spacing:-.005em;
}

.promise h2 em{
  font-style:italic;
  color:var(--amber-soft)
}

.promise .sub{
  color:var(--olive);
  max-width:680px;
  margin:0 auto 40px;
  font-size:17px;
  line-height:1.7;
}

/* ---------- five threads ---------- */

.thread{
  background:var(--cream);
  padding:36px 30px;
  border:1px solid var(--line);
  border-radius:2px;
  border-top:3px solid var(--amber);
  transition:transform .3s ease, box-shadow .3s ease;
}

.thread:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 50px -20px rgba(80,86,61,.3),
               0 10px 24px -10px rgba(248,170,41,.18);
}

.thread h3{
  font-size:24px;
  margin-bottom:14px;
  font-weight:500;
}

.thread p{
  color:var(--olive);
  font-size:14.5px;
  line-height:1.7
}

/* ---------- four features ---------- */

/* ---------- destinations photo grid ---------- */

.destinations{
  padding:0 0 110px;
  background:var(--paper)
}

/* ---------- knowledge / report ---------- */

.knowledge>.wrap>.knowledge-grid>div:first-child>p{
  color:var(--olive);
  font-size:16.5px;
  line-height:1.7;
}

/* ---------- HVCO download / 3D book ---------- */

.magnet{
  background:var(--sand-soft);
  padding:130px 0;
  position:relative;
  overflow:hidden
}

.magnet-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}

.book-stage{
  perspective:1800px;
  perspective-origin:60% 50%;
  padding:40px 0;
  will-change:transform;
}

.\!book{
  position:relative !important;
  width:78% !important;
  margin:0 auto !important;
  transform-style:preserve-3d !important;
  transform:rotateY(var(--ry,-18deg)) rotateX(var(--rx,4deg)) !important;
  transition:transform .25s ease-out !important;
  will-change:transform !important;
}

.book{
  position:relative;
  width:78%;
  margin:0 auto;
  transform-style:preserve-3d;
  transform:rotateY(var(--ry,-18deg)) rotateX(var(--rx,4deg));
  transition:transform .25s ease-out;
  will-change:transform;
}

.book-cover{
  position:relative;
  width:100%;
  aspect-ratio:720/1019;
  border-radius:3px 6px 6px 3px;
  overflow:hidden;
  box-shadow:
      -2px 0 0 0 rgba(0,0,0,.06),
      30px 40px 70px -20px rgba(44,48,33,.45),
      50px 70px 120px -40px rgba(80,86,61,.35),
      0 0 80px -20px rgba(248,170,41,.18);
}

.book-cover img{
  width:100%;
  height:100%;
  display:block;
  -o-object-fit:cover;
     object-fit:cover;
}

/* spine sheen overlay */

.book-cover::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  bottom:0;
  width:14px;
  background:linear-gradient(90deg,
      rgba(0,0,0,.32) 0%,
      rgba(0,0,0,.05) 40%,
      transparent 100%);
  pointer-events:none;
}

/* pages edge */

.\!book::before{
  content:"" !important;
  position:absolute !important;
  top:6px !important;
  bottom:6px !important;
  right:-6px !important;
  width:8px !important;
  background:linear-gradient(90deg,
      var(--cream) 0%,
      #efe6d3 40%,
      #d8cdb4 100%) !important;
  border-radius:0 4px 4px 0 !important;
  transform:translateZ(-3px) !important;
  box-shadow:0 0 0 1px rgba(0,0,0,.04) !important;
}

.book::before{
  content:"";
  position:absolute;
  top:6px;
  bottom:6px;
  right:-6px;
  width:8px;
  background:linear-gradient(90deg,
      var(--cream) 0%,
      #efe6d3 40%,
      #d8cdb4 100%);
  border-radius:0 4px 4px 0;
  transform:translateZ(-3px);
  box-shadow:0 0 0 1px rgba(0,0,0,.04);
}

/* subtle glow under book */

.book-stage::after{
  content:"";
  display:block;
  width:60%;
  height:32px;
  margin:-12px auto 0;
  background:radial-gradient(ellipse at center,
      rgba(248,170,41,.22) 0%,
      transparent 70%);
  filter:blur(8px);
}

.magnet-text h2{
  font-size:clamp(32px, 3.4vw, 46px);
  margin-bottom:18px;
  font-weight:500;
}

.magnet-text h2 em{
  font-style:italic;
  color:var(--amber-soft)
}

.magnet-text>.sub{
  color:var(--olive);
  font-size:16.5px;
  line-height:1.7;
  margin-bottom:30px;
}

.form-row{
  margin-bottom:14px
}

.form-row label{
  display:block;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--olive);
  margin-bottom:8px;
  font-weight:500;
}

.form-row input{
  width:100%;
  padding:16px 18px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:'Poppins',sans-serif;
  font-size:15px;
  color:var(--olive-deeper);
  border-radius:2px;
  transition:border .2s;
  font-weight:300;
}

.form-row input:focus{
  outline:none;
  border-color:var(--olive)
}

.form-submit{
  width:100%;
  margin-top:14px;
  padding:20px;
}

.form-note{
  margin-top:14px;
  font-size:14px;
  color:var(--olive-deeper);
  text-align:center;
  font-style:italic;
  line-height:1.7;
}

.form-note a{
  color:var(--amber-soft);
  text-decoration:underline;
  font-size:14px;
  font-weight:600;
  line-height:1.7;
  transition: color .2s ease;
}

.form-note a:hover{
  color:var(--amber);
}

/* ---------- founder / about ---------- */

.stat .big{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:42px;
  color:var(--olive-deeper);
  line-height:1;
}

/* ---------- testimonial cards ---------- */

.testimonials{
  background:var(--sand-soft);
  padding:10px 0
}

.testimonials-head{
  text-align:center;
  max-width:720px;
  margin:0 auto 70px
}

.testimonials-head h2{
  font-size:clamp(32px, 3.4vw, 46px);
  margin-bottom:18px;
  font-weight:500;
}

.testimonials-head p{
  color:var(--olive);
  font-size:16.5px
}

.test-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}

.test-card{
  background:var(--paper);
  padding:42px 34px;
  border-radius:2px;
  border-top:2px solid var(--amber);
  box-shadow:0 16px 44px -22px rgba(80,86,61,.28);
  display:flex;
  flex-direction:column;
}

.test-card .qmark{
  font-family:'Playfair Display',serif;
  color:var(--amber-soft);
  font-size:54px;
  line-height:.5;
  margin-bottom:14px;
}

.test-card .quote{
  font-family:'Playfair Display',serif;
  font-style:italic;
  color:var(--olive-deeper);
  font-size:17px;
  line-height:1.55;
  margin-bottom:28px;
  flex:1;
}

.test-card .attr{
  font-family:'Playfair Display',serif;
  color:var(--olive-deep);
  font-size:16px;
  font-weight:500;
}

.test-card .place{
  color:var(--amber-soft);
  font-style:italic;
  font-family:'Playfair Display',serif;
  font-size:14px;
  margin-top:2px;
}

/* ---------- social wall ---------- */

.wall-card .\!name{
  font-family:'Playfair Display',serif !important;
  color:var(--olive-deeper) !important;
  font-size:15px !important;
  font-weight:500 !important;
  margin-bottom:4px !important;
}

.wall-card .name{
  font-family:'Playfair Display',serif;
  color:var(--olive-deeper);
  font-size:15px;
  font-weight:500;
  margin-bottom:4px;
}

.wall-card .meta{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--olive);
  margin-bottom:14px;
}

.wall-card .body{
  color:var(--olive-deep);
  font-size:14px;
  line-height:1.6;
  font-style:italic;
  font-family:'Playfair Display',serif;
}

/* ---------- guarantee ---------- */

.guarantee{
  background:var(--sand-soft);
  padding:120px 0
}

.guarantee-grid{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:70px;
  align-items:center;
  max-width:1080px;
  margin:0 auto;
}

.guarantee-badge{
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--olive) 0%, var(--olive-deeper) 100%);
  color:var(--cream);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin:0 auto;
  border:6px solid var(--amber);
  box-shadow:
      0 30px 60px -20px rgba(44,48,33,.5),
      0 0 60px -20px rgba(248,170,41,.4);
  text-align:center;
  padding:32px;
}

.guarantee-badge .top{
  font-size:11.5px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--amber-soft);
  margin-bottom:10px;
}

.guarantee-badge .big{
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:38px;
  color:var(--cream);
  line-height:1.05;
}

.guarantee-badge .small{
  font-size:10.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-top:12px;
  color:var(--amber-soft);
}

.guarantee h2{
  font-size:clamp(30px, 3.2vw, 42px);
  margin-bottom:22px;
  font-weight:500;
}

.guarantee h2 em{
  font-style:italic;
  color:var(--amber-soft)
}

.guarantee p{
  color:var(--olive);
  margin-bottom:16px;
  font-size:15.5px;
  line-height:1.75
}

/* ---------- final CTA ---------- */

.final-cta{
  background:var(--olive-deeper);
  color:var(--cream);
  padding:130px 0;
  position:relative;
  overflow:hidden;
}

.final-cta::before{
  content:"";
  position:absolute;
  top:-120px;
  right:-120px;
  width:380px;
  height:380px;
  background:radial-gradient(circle, rgba(248,170,41,.28), transparent 70%);
  border-radius:50%;
}

.final-cta::after{
  content:"";
  position:absolute;
  bottom:-120px;
  left:-120px;
  width:320px;
  height:320px;
  background:radial-gradient(circle, rgba(248,170,41,.18), transparent 70%);
  border-radius:50%;
}

.final-cta .wrap{
  position:relative;
  z-index:2;
  text-align:left
}

.final-cta .eyebrow{
  color:var(--amber-soft)
}

.final-cta h2{
  color:var(--cream);
  font-size:clamp(40px, 4.4vw, 64px);
  font-weight:400;
  line-height:1.12;
  margin-bottom:28px;
  max-width:880px;
}

.final-cta h2 em{
  color:var(--amber-soft);
  font-style:italic;
  font-weight:500
}

.final-cta .sub{
  font-size:18px;
  color:rgba(250,246,238,.78);
  max-width:700px;
  margin-bottom:48px;
  line-height:1.65;
  font-weight:300;
}

.final-cta .signoff{
  margin-top:38px;
  color:rgba(250,246,238,.55);
  font-style:italic;
  font-family:'Playfair Display',serif;
  font-size:15px;
}

/* ---------- footer ---------- */

footer{
  background:var(--olive-deeper);
  color:var(--cream);
  padding:60px 0 40px;
  text-align:center;
  font-size:13px;
  border-top:1px solid rgba(250,246,238,.06);
}

footer .wordmark img{
  height:30px
}

footer .strap{
  font-family:'Playfair Display',serif;
  font-style:italic;
  color:var(--amber-soft);
  margin:14px 0 26px;
  font-size:15px;
}

footer .meta{
  color:rgba(250,246,238,.45);
  font-size:12px;
  letter-spacing:.06em;
}

footer .meta span{
  margin:0 14px
}

footer .meta a{
  color:inherit;
  text-decoration:underline;
}

/* ---------- locked CTA state (HVCO unlock) ---------- */

.btn.locked{
  background:linear-gradient(180deg, #d8d0bd 0%, #c5bba3 100%);
  color:rgba(80,86,61,.55);
  cursor:not-allowed;
  box-shadow:
      inset 0 1px 0 rgba(255,255,255,.25),
      inset 0 -1px 0 rgba(0,0,0,.04),
      0 2px 6px rgba(80,86,61,.08);
}

.btn.locked::after{
  display:none
}

.btn.locked:hover{
  transform:none;
  box-shadow:
      inset 0 1px 0 rgba(255,255,255,.25),
      inset 0 -1px 0 rgba(0,0,0,.04),
      0 2px 6px rgba(80,86,61,.08);
}

/* ---------- modal ---------- */

/* HVCO form: select styling matches modal */

.magnet-text select{
  width:100%;
  padding:16px 18px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:'Poppins',sans-serif;
  font-size:15px;
  color:var(--olive-deeper);
  border-radius:2px;
  font-weight:300;
  cursor:pointer;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' width='12' height='8'><path fill='none' stroke='%2350563D' stroke-width='1.5' d='M1 1l5 5 5-5'/></svg>");
  background-repeat:no-repeat;
  background-position:right 18px center;
  padding-right:42px;
}

.magnet-text select:focus{
  outline:none;
  border-color:var(--olive)
}

/* ---------- locked download button ---------- */

.btn.locked,
  .btn:disabled{
  cursor:not-allowed;
  background:linear-gradient(180deg, #e8e2d4 0%, #d6cdb7 100%);
  color:rgba(80,86,61,.55);
  box-shadow:
      inset 0 1px 0 rgba(255,255,255,.4),
      inset 0 -2px 0 rgba(140,130,100,.18),
      0 4px 10px -4px rgba(80,86,61,.18);
  transform:none;
  pointer-events:none;
}

.btn.locked::after,.btn:disabled::after{
  display:none
}

.btn-lock-icon{
  display:inline-block;
  margin-right:8px;
  font-size:14px;
  opacity:.7;
  transition:opacity .25s ease;
}

.btn:not(.locked):not(:disabled) .btn-lock-icon{
  display:none
}

/* ---------- phone group + country dropdown ---------- */

.phone-group{
  display:flex;
  gap:8px;
  align-items:stretch
}

.country-select{
  position:relative;
  width:138px;
  flex-shrink:0
}

.country-trigger{
  width:100%;
  height:100%;
  padding:16px 12px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:'Poppins',sans-serif;
  font-size:14px;
  font-weight:400;
  color:var(--olive-deeper);
  border-radius:2px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:8px;
  text-align:left;
  transition:border-color .2s;
}

.country-trigger:hover{
  border-color:var(--olive)
}

.country-trigger .flag{
  font-size:18px;
  line-height:1
}

.country-trigger .code{
  font-weight:400;
  font-variant-numeric:tabular-nums
}

.country-trigger .caret{
  margin-left:auto;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid var(--olive);
  transition:transform .2s;
}

.country-select.open .country-trigger .caret{
  transform:rotate(180deg)
}

.country-dropdown{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  width:300px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:3px;
  box-shadow:0 18px 40px -12px rgba(44,48,33,.28);
  max-height:280px;
  overflow:hidden;
  z-index:100;
  display:none;
  flex-direction:column;
}

.country-select.open .country-dropdown{
  display:flex
}

.country-search{
  background:var(--cream);
  padding:10px;
  border-bottom:1px solid var(--line);
}

.country-search input{
  width:100%;
  padding:8px 12px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:'Poppins',sans-serif;
  font-size:13px;
  color:var(--olive-deeper);
  border-radius:2px;
  font-weight:300;
}

.country-search input:focus{
  outline:none;
  border-color:var(--olive)
}

.country-list{
  flex:1;
  overflow-y:auto
}

.country-option{
  padding:11px 14px;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  font-family:'Poppins',sans-serif;
  transition:background .15s;
  border-bottom:1px solid rgba(80,86,61,.06);
}

.country-option:last-child{
  border-bottom:none
}

.country-option:hover{
  background:var(--sand-soft)
}

.country-option .flag{
  font-size:18px;
  line-height:1
}

.country-option .name{
  flex:1;
  color:var(--olive-deeper);
  font-weight:300
}

.country-option .\!name{
  flex:1 !important;
  color:var(--olive-deeper) !important;
  font-weight:300 !important
}

.country-option .code{
  color:var(--olive);
  font-size:13px;
  font-variant-numeric:tabular-nums
}

.country-option.empty{
  color:var(--olive);
  font-style:italic;
  cursor:default;
  text-align:center;
  padding:24px 14px;
}

.country-option.empty:hover{
  background:transparent
}

.phone-number{
  flex:1;
  min-width:0
}

/* ---------- modal ---------- */

.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(12,20,22,.78);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  z-index:999;
  display:none;
  opacity:0;
  align-items:flex-start;
  justify-content:center;
  padding:48px 16px;
  overflow-y:auto;
  transition:opacity .35s ease;
}

.modal-overlay.open{
  display:flex;
  opacity:1;
}

.modal{
  background:var(--paper);
  width:100%;
  max-width:580px;
  border-radius:4px;
  padding:54px 54px 44px;
  position:relative;
  margin:auto;
  box-shadow:0 50px 100px -20px rgba(0,0,0,.5),
               0 0 80px -20px rgba(248,170,41,.2);
  animation:scaleModal .4s cubic-bezier(.2,1,.3,1);
  border-top:3px solid var(--amber);
}

.modal-close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  background:transparent;
  border:none;
  cursor:pointer;
  font-size:26px;
  line-height:1;
  color:var(--olive);
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  transition:background .2s, color .2s;
  font-family:'Poppins',sans-serif;
  font-weight:300;
}

.modal-close:hover{
  background:var(--sand);
  color:var(--olive-deeper)
}

.modal .eyebrow{
  margin-bottom:14px
}

.modal h2{
  font-size:30px;
  line-height:1.2;
  font-weight:500;
  color:var(--olive-deeper);
  margin-bottom:10px;
  letter-spacing:-.005em;
}

.modal h2 em{
  font-style:italic;
  color:var(--amber-soft);
  font-weight:500
}

.modal-intro{
  color:var(--olive);
  font-size:14.5px;
  line-height:1.6;
  margin-bottom:28px;
}

.modal .form-row{
  margin-bottom:14px
}

.modal label{
  display:block;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--olive);
  margin-bottom:8px;
  font-weight:500;
}

.modal input[type=text],
  .modal input[type=email],
  .modal input[type=tel],
  .modal select,
  .modal textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:'Poppins',sans-serif;
  font-size:14.5px;
  color:var(--olive-deeper);
  border-radius:2px;
  font-weight:300;
  transition:border-color .2s;
}

.modal input:focus,
  .modal select:focus,
  .modal textarea:focus{
  outline:none;
  border-color:var(--olive)
}

.modal select{
  cursor:pointer;
  -moz-appearance:none;
       appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2350563D' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  background-size:10px;
  padding-right:38px;
}

.modal textarea{
  resize:vertical;
  min-height:78px;
  font-family:'Poppins',sans-serif
}

.modal-actions{
  margin-top:22px
}

.modal-actions .btn{
  width:100%;
  padding:18px
}

.modal-note{
  margin-top:14px;
  text-align:center;
  color:var(--olive);
  font-size:12px;
  font-style:italic;
}

.form-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}

.form-grid-2 .form-row{
  display:flex;
  flex-direction:column;
  margin-bottom:0
}

.form-grid-2 .form-row select{
  margin-top:auto
}

/* modal success state */

.modal-success{
  display:none;
  text-align:center;
  padding:14px 0 6px
}

.modal-success.show{
  display:block;
  animation:fadeOverlay .4s ease
}

.modal-success .tick{
  width:72px;
  height:72px;
  border-radius:50%;
  background:var(--amber);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 24px;
  color:var(--olive-deeper);
  font-size:32px;
  box-shadow:0 12px 30px -8px rgba(248,170,41,.45);
  animation:tickPop .5s cubic-bezier(.2,1.4,.4,1) .1s both;
}

.modal-success h3{
  font-family:'Playfair Display',serif;
  font-size:26px;
  color:var(--olive-deeper);
  margin-bottom:12px;
  font-weight:500;
}

.modal-success h3 em{
  font-style:italic;
  color:var(--amber-soft)
}

.modal-success p{
  color:var(--olive);
  font-size:15px;
  line-height:1.7;
  margin-bottom:26px;
}

@media (max-width:980px){
  .section,.knowledge,.magnet,.founder,.testimonials,.wall,.guarantee,.threads,.features{
    padding:70px 0
  }

  .promise{
    padding:80px 0
  }

  .split,.knowledge-grid,.magnet-grid,.founder-grid,.guarantee-grid{
    grid-template-columns:1fr;
    gap:50px;
  }

  .split.reverse .split-text{
    order:1
  }

  .split.reverse .split-photo{
    order:2
  }

  .threads-grid,.features-grid{
    grid-template-columns:1fr 1fr
  }

  .thread-roots{
    padding:36px 28px
  }

  .thread-roots-inner{
    grid-template-columns:1fr;
    gap:18px
  }

  .photo-grid{
    grid-template-columns:repeat(2,1fr)
  }

  .test-grid{
    grid-template-columns:1fr
  }

  .wall-grid{
    -moz-columns:1;
         columns:1
  }

  .promo-bar{
    flex-direction:column;
    gap:8px;
    padding:14px 18px;
    font-size:11.5px;
    flex-wrap:wrap
  }

  .promo-lead{
    white-space:normal;
    overflow:visible;
    text-overflow:clip
  }

  .nav{
    padding:18px 24px
  }

  .wordmark img{
    height:28px
  }

  .hero{
    min-height:78vh
  }

  .hero .wrap{
    padding-top:48px;
    padding-bottom:96px
  }

  .wrap,.narrow{
    padding:0 22px
  }

  .book{
    width:62%
  }

  .guarantee-badge{
    width:200px;
    height:200px
  }

  .guarantee-badge .big{
    font-size:30px
  }

  .hero-actions{
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    display:flex;
    align-items:center;
    gap:40px;
  }

  .btn-ghost{
    margin-top: 14px !important;
  }

  .cta-block.ghost{
    padding-top:0
  }

  .cta-meta{
    font-size:12.5px;
    max-width:260px
  }

  .hero-foot{
    bottom:24px;
    font-size:13px
  }

  .hero-foot strong{
    font-size:9.5px
  }

  .hero-img-note{
    top:auto;
    bottom:64px;
    right:14px;
    font-size:9px;
    padding:6px 10px;
    letter-spacing:.14em;
  }

  .founder-stats{
    gap:30px
  }

  .stat .big{
    font-size:34px
  }

  .\!book{
    width:62% !important
  }
}

@media (max-width:560px){
  .threads-grid,.features-grid,.photo-grid{
    grid-template-columns:1fr
  }

  .thread-roots-inner{
    grid-template-columns:1fr
  }

  .modal{
    padding:38px 24px 28px
  }

  .modal h2{
    font-size:24px
  }

  .form-grid-2{
    grid-template-columns:1fr
  }

  .country-select{
    width:118px
  }

  .country-dropdown{
    width:260px
  }
}

/* ---------- destination deep dives (v14) ---------- */

.dest-section{
  padding:100px 0;
  background:var(--paper)
}

.dest-section.alt{
  background:var(--sand-soft)
}

.dest-section.deep{
  background:var(--cream)
}

.dest-grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:80px;
  align-items:center;
}

.dest-grid.reverse{
  direction:rtl
}

.dest-grid.reverse > *{
  direction:ltr
}

.dest-photo{
  display:block;
  width:100%;
  max-width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 30px 70px -20px rgba(80,86,61,.35);
}

.dest-photo.lapland{
  background:
      radial-gradient(900px 700px at 30% 25%, rgba(255,255,255,.18), transparent 60%),
      linear-gradient(160deg,#0e2a35 0%, #1a3a48 45%, #2c4a55 100%);
}

.dest-photo.madagascar{
  background:
      radial-gradient(800px 600px at 70% 30%, rgba(248,170,41,.22), transparent 65%),
      linear-gradient(160deg,#5a4a2c 0%, #7a5a30 50%, #3a3520 100%);
}

.dest-photo.borneo{
  background:
      radial-gradient(900px 700px at 25% 70%, rgba(80,86,61,.5), transparent 65%),
      linear-gradient(160deg,#1f3320 0%, #2c4226 45%, #1a2818 100%);
}

.dest-photo::after{
  content:attr(data-label);
  position:absolute;
  bottom:18px;
  left:18px;
  color:rgba(255,255,255,.55);
  font-size:10.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:400;
}

.dest-text .eyebrow{
  margin-bottom:18px
}

.dest-text h2{
  font-size:clamp(34px, 3.6vw, 48px);
  font-weight:500;
  margin-bottom:24px;
  line-height:1.1;
}

.dest-text h2 em{
  font-style:italic;
  color:var(--amber-soft)
}

.dest-text > p{
  color:var(--olive);
  font-size:17px;
  line-height:1.75;
  margin-bottom:28px;
  max-width:520px;
}

.dest-what{
  border-top:1px solid var(--line);
  padding-top:22px;
  margin-top:6px;
}

.dest-what-label{
  font-family:'Poppins',sans-serif;
  font-weight:400;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--olive);
  margin-bottom:18px;
  display:flex;
  align-items:center;
  gap:10px;
}
.dest-what-label::before{
  content:"";
  width:22px;
  height:1px;
  background:var(--amber-soft);
  flex-shrink:0;
}

.dest-list{
  list-style:none;
  padding:0;
  margin:0
}

.dest-list li{
  color:var(--olive-deep);
  font-size:15.5px;
  line-height:1.65;
  padding:12px 0 12px 24px;
  position:relative;
  border-bottom:1px dashed rgba(80,86,61,.15);
}

.dest-list li:last-child{
  border-bottom:none
}

.dest-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  width:10px;
  height:1px;
  background:var(--amber-deep);
}

.dest-list li strong{
  color:var(--olive-deeper);
  font-weight:500;
  font-family:'Playfair Display',serif;
  font-size:16.5px;
  display:block;
  margin-bottom:2px;
}

/* ---------- intro (cut-down brand promise, v14) ---------- */

/* ---------- destination list intro band ---------- */

.dest-intro{
  padding:10px 0 30px;
  background:var(--paper);
  text-align:center;
}

.dest-intro h2{
  font-size:clamp(30px, 3.2vw, 42px);
  font-weight:500;
  margin-bottom:18px;
}

.dest-intro h2 em{
  font-style:italic;
  color:var(--amber-soft)
}

.dest-intro p{
  color:var(--olive);
  font-size:16.5px;
  max-width:680px;
  margin:0 auto
}

@media (max-width: 860px){
  .dest-grid{
    grid-template-columns:1fr;
    gap:40px
  }

  .dest-grid.reverse{
    direction:ltr
  }

  .dest-section{
    padding:70px 0
  }

  .dest-photo{
    aspect-ratio:4/3
  }

  .intro-short{
    padding:80px 0 60px
  }

  .dest-intro{
    padding:70px 0 20px
  }
}

/* ---------- destination gallery carousel (v15) ---------- */

.dest-gallery{
  padding:100px 0 100px;
  background:var(--paper)
}

.gallery-head{
  text-align:center;
  max-width:740px;
  margin:0 auto 50px;
  padding:0 40px;
}

.gallery-head h2{
  font-size:clamp(32px,3.4vw,46px);
  font-weight:500;
  margin-bottom:16px;
  line-height:1.1;
}

.gallery-head h2 em{
  font-style:italic;
  color:var(--amber-soft)
}

.gallery-head p{
  color:var(--olive);
  font-size:16.5px;
  line-height:1.65
}

.carousel-wrap{
  position:relative
}

.carousel-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:0 max(40px, calc((100vw - 1240px)/2)) 40px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}

.carousel-track::-webkit-scrollbar{
  display:none
}

.gal-card{
  flex:0 0 320px;
  scroll-snap-align:start;
  position:relative;
  aspect-ratio:3/4;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 22px 50px -16px rgba(80,86,61,.35);
  isolation:isolate;
  cursor:pointer;
  transition:transform .35s cubic-bezier(.2,1,.3,1), box-shadow .35s ease;
}

.gal-card:hover{
  transform:translateY(-6px);
  box-shadow:0 30px 60px -16px rgba(80,86,61,.42);
}

.gal-card.featured{
  flex:0 0 380px
}

/* themed gradient placeholders. Swap each rule's background for a real photo. */

.gal-card.lapland-aurora{
  background:
      radial-gradient(900px 600px at 50% 18%, rgba(180,220,255,.28), transparent 55%),
      radial-gradient(700px 500px at 30% 80%, rgba(120,170,180,.35), transparent 60%),
      linear-gradient(170deg,#0c1c28 0%, #163545 45%, #2a4d5c 100%);
}

.gal-card.lapland-husky{
  background:
      radial-gradient(800px 600px at 70% 30%, rgba(255,255,255,.18), transparent 55%),
      linear-gradient(165deg,#26384a 0%, #3c5468 50%, #1a2530 100%);
}

.gal-card.madagascar-lemurs{
  background:
      radial-gradient(800px 600px at 20% 70%, rgba(248,170,41,.22), transparent 60%),
      linear-gradient(160deg,#3a5538 0%, #5a7042 45%, #2a3a24 100%);
}

.gal-card.madagascar-baobabs{
  background:
      radial-gradient(800px 600px at 65% 35%, rgba(248,170,41,.4), transparent 55%),
      linear-gradient(160deg,#7a5530 0%, #a47540 50%, #4a3520 100%);
}

.gal-card.borneo-river{
  background:
      radial-gradient(900px 600px at 30% 60%, rgba(120,160,90,.3), transparent 60%),
      linear-gradient(170deg,#1f3320 0%, #2c4a2c 50%, #14241a 100%);
}

.gal-card.borneo-longhouse{
  background:
      radial-gradient(700px 500px at 50% 30%, rgba(248,170,41,.18), transparent 65%),
      linear-gradient(160deg,#3a2e1c 0%, #5a4628 50%, #221a10 100%);
}

/* dark bottom-gradient for text legibility */

.gal-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,
      transparent 0%, transparent 38%,
      rgba(0,0,0,.32) 60%,
      rgba(0,0,0,.78) 100%);
}

/* subtle film grain */

.gal-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.22;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/></svg>");
}

.gal-card-body{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:24px 24px 24px;
  color:var(--cream);
  z-index:2;
}

.gal-card-title{
  font-family:'Playfair Display',serif;
  font-size:22px;
  font-weight:500;
  line-height:1.18;
  margin-bottom:10px;
  color:var(--cream);
}

.gal-card-desc{
  font-size:13.5px;
  line-height:1.55;
  color:rgba(250,246,238,.85);
  font-weight:300;
}

/* featured cards carry a real review overlay at the top */

.gal-card.featured .quote-overlay{
  position:absolute;
  top:20px;
  left:20px;
  right:20px;
  z-index:2;
  background:rgba(12,20,22,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:14px 18px;
  border-radius:6px;
  color:var(--cream);
  font-size:13px;
  line-height:1.55;
  font-style:italic;
  border:1px solid rgba(248,170,41,.18);
}

.gal-card.featured .quote-attr{
  display:block;
  margin-top:8px;
  font-style:normal;
  font-size:10.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--amber-soft);
  font-weight:500;
}

.carousel-nav{
  display:flex;
  justify-content:center;
  gap:14px;
  margin-top:8px;
}

.nav-btn{
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--olive-deep);
  font-size:18px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .25s ease;
  font-family:inherit;
}

.nav-btn:hover{
  background:var(--amber);
  color:var(--olive-deeper);
  border-color:transparent;
  transform:translateY(-2px);
}

.nav-btn:disabled{
  opacity:.3;
  cursor:default;
  transform:none
}

@media (max-width:760px){
  .dest-gallery{
    padding:70px 0
  }

  .gal-card{
    flex:0 0 78vw;
    max-width:300px
  }

  .gal-card.featured{
    flex:0 0 78vw;
    max-width:300px
  }

  .carousel-track{
    padding:0 24px 36px
  }

  .gal-card.featured .quote-overlay{
    font-size:12px;
    padding:12px 14px
  }

  .gal-card-title{
    font-size:20px
  }
}

.hero {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}

.hero-bg {
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)),
    url('./images/1.jpg') center/cover no-repeat;
  z-index: -1;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.z-\[2\] {
  z-index: 2;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.block {
  display: block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.hidden {
  display: none;
}

.max-w-wrap {
  max-width: 1240px;
}

.flex-shrink {
  flex-shrink: 1;
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.resize {
  resize: both;
}

.overflow-x-hidden {
  overflow-x: hidden;
}

.bg-paper {
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 247 / var(--tw-bg-opacity, 1));
}

.px-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}

.font-body {
  font-family: Poppins, sans-serif;
}

.font-light {
  font-weight: 300;
}

.leading-\[1\.7\] {
  line-height: 1.7;
}

.text-olive-deep {
  --tw-text-opacity: 1;
  color: rgb(58 63 44 / var(--tw-text-opacity, 1));
}

.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

/* hoisted keyframes */

@keyframes meta-pulse{
  0%{
    box-shadow:0 0 0 0 rgba(248,170,41,.7), 0 0 10px rgba(248,170,41,.55)
  }

  70%{
    box-shadow:0 0 0 9px rgba(248,170,41,0), 0 0 10px rgba(248,170,41,.55)
  }

  100%{
    box-shadow:0 0 0 0 rgba(248,170,41,0), 0 0 10px rgba(248,170,41,.55)
  }
}

@keyframes scaleModal{
  from{
    opacity:0;
    transform:translateY(24px) scale(.96)
  }

  to{
    opacity:1;
    transform:translateY(0) scale(1)
  }
}

@keyframes fadeOverlay{
  from{
    opacity:0
  }

  to{
    opacity:1
  }
}

@keyframes tickPop{
  from{
    transform:scale(0)
  }

  to{
    transform:scale(1)
  }
}

@media (max-width: 980px) {
  .max-\[980px\]\:px-\[22px\] {
    padding-left: 22px;
    padding-right: 22px;
  }
}

/* ============================================================
   v16 patch: carousel sizing + mobile readability
   ============================================================ */

/* desktop cards keep their rendered 420px width via flex-basis,
   not min-width, so mobile can shrink them */
.gal-card{flex:0 0 420px}
.gal-card.featured{flex:0 0 420px}

@media (max-width:760px){

  /* carousel cards fit the viewport with a peek of the next card */
  .gal-card,
  .gal-card.featured{
    flex:0 0 82vw;
    max-width:330px;
    height:460px;
  }
  .carousel-track{
    padding:0 22px 36px;
    scroll-padding-left:22px;
  }

  /* hero: stronger bottom-weighted scrim so copy reads over the photo */
  .hero::before{
    background:
      linear-gradient(180deg, rgba(12,20,22,.55) 0%, rgba(12,20,22,.3) 26%, rgba(12,20,22,.56) 56%, rgba(12,20,22,.85) 100%),
      radial-gradient(ellipse at center, rgba(0,0,0,.28) 0%, rgba(0,0,0,.52) 100%);
  }
  .hero h1{text-shadow:0 2px 26px rgba(0,0,0,.5)}
  .hero .sub{text-shadow:0 1px 16px rgba(0,0,0,.55)}
  .hero .eyebrow{
    color:var(--amber-soft);
    font-weight:500;
    text-shadow:0 1px 3px rgba(0,0,0,.85), 0 2px 14px rgba(0,0,0,.6);
  }

  /* announcement bar: one compact row instead of a stacked block */
  .promo-bar{
    flex-direction:row;
    gap:12px;
    padding:11px 16px;
    justify-content:center;
    align-items:center;
  }
  .promo-bar strong{
    font-size:10px;
    letter-spacing:.1em;
  }
  .promo-lead{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    min-width:0;
    flex-shrink:1;
  }
  .promo-bar .promo-cta{
    flex-shrink:0;
    font-size:11px;
    letter-spacing:.1em;
  }
}
