/* ============================================================
   39 TRAVEL DESIGN — Main Stylesheet v4.0
   Child of Hello Elementor
   Palette: Gold #B58857 · Ivory #F5F1EC · Sand #DCCFC0 · Charcoal #2C2C2C · Taupe #8B8179
   Fonts:   Playfair Display · Montserrat · Great Vibes
   ============================================================ */

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --color-gold:    #B58857;
  --color-gold-dk: #9e6f3f;
  --color-ivory:   #F5F1EC;
  --color-sand:    #DCCFC0;
  --color-charcoal:#2C2C2C;
  --color-taupe:   #8B8179;
  --font-heading:  "Playfair Display", Georgia, serif;
  --font-body:     "Montserrat", sans-serif;
  --font-script:   "Great Vibes", cursive;
  --max-w:         1180px;
  --section-py:    110px;
}

/* ── Reset & base ────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html  { scroll-behavior: smooth; }
img   { max-width: 100%; height: auto; display: block; }
a     { text-decoration: none; color: inherit; }
ul    { list-style: none; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }

html, body {
  width: 100%;
  overflow-x: hidden;
  background: var(--color-ivory);
}

body {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
  color: var(--color-charcoal);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--color-charcoal);
}

/* ── Elementor layout resets ─────────────────────────────────── */
body.elementor-page .site-main,
body.elementor-page .page-content,
body.elementor-page .entry-content,
.elementor,
.elementor-section,
.elementor-container,
.elementor-widget-wrap {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.elementor-section.elementor-section-stretched {
  width: 100vw !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
}

body.home .entry-header,
body.home .entry-footer,
body.home .post-navigation,
body.home .site-header,
body.home .site-footer { display: none !important; }
body.home article.page,
body.home .entry-content,
body.home .site-main { padding: 0 !important; margin: 0 !important; }

.elementor-section { margin-bottom: 0 !important; }
.elementor-widget  { margin-bottom: 0 !important; }

/* ── Shared layout helpers ───────────────────────────────────── */
.td-wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 2rem;
}

/* ── Typography: global headings + eyebrow ───────────────────── */
.elementor-heading-title {
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.12;
}

.td-eyebrow,
.td-hero-eyebrow,
.td-eyebrow .elementor-heading-title,
.td-hero-eyebrow .elementor-heading-title {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-gold) !important;
  margin-bottom: 1.2rem;
  line-height: 1.4;
}

.td-section-title .elementor-heading-title,
.td-section-title {
  font-family: var(--font-heading) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.6rem) !important;
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin-bottom: 1.2rem;
}

.td-section-title em,
.td-section-title .elementor-heading-title em { color: var(--color-gold); font-style: italic; }

.td-section-sub .elementor-widget-container p,
.td-section-sub p {
  font-size: 0.92rem;
  font-weight: 300;
  line-height: 1.85;
  color: var(--color-taupe);
  text-align: center;
  margin: 0;
}

.td-section-sub-light .elementor-widget-container p {
  font-size: 0.92rem;
  font-weight: 300;
  line-height: 1.85;
  color: var(--color-sand);
  text-align: center;
  margin: 0;
}

/* ── Buttons ─────────────────────────────────────────────────── */
.td-btn-gold,
.td-btn-gold .elementor-button {
  display: inline-block;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  background: var(--color-gold) !important;
  color: var(--color-ivory) !important;
  padding: 15px 34px !important;
  border: 1px solid var(--color-gold) !important;
  border-radius: 0 !important;
  transition: background .25s, border-color .25s !important;
  cursor: pointer;
}
.td-btn-gold:hover,
.td-btn-gold .elementor-button:hover {
  background: var(--color-gold-dk) !important;
  border-color: var(--color-gold-dk) !important;
  color: var(--color-ivory) !important;
}

.td-btn-ghost,
.td-btn-ghost .elementor-button {
  display: inline-block;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  background: transparent !important;
  color: var(--color-ivory) !important;
  padding: 15px 34px !important;
  border: 1px solid rgba(245,241,236,.65) !important;
  border-radius: 0 !important;
  transition: background .25s, border-color .25s !important;
}
.td-btn-ghost:hover,
.td-btn-ghost .elementor-button:hover {
  background: rgba(245,241,236,.12) !important;
  border-color: var(--color-ivory) !important;
}

.td-btn-outline-dark,
.td-btn-outline-dark .elementor-button,
.td-btn-outline-ghost .elementor-button {
  display: inline-block;
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  background: transparent !important;
  color: var(--color-gold) !important;
  padding: 13px 28px !important;
  border: 1px solid var(--color-gold) !important;
  border-radius: 0 !important;
  transition: all .25s !important;
}
.td-btn-outline-dark:hover,
.td-btn-outline-ghost .elementor-button:hover {
  background: var(--color-gold) !important;
  color: var(--color-ivory) !important;
}

.td-link-gold {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-gold);
  transition: opacity .2s;
}
.td-link-gold:hover { opacity: .65; color: var(--color-gold); }

/* ============================================================
   NAV
   ============================================================ */
.td-nav-section .elementor-widget-wrap { padding: 0 !important; }

.td-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  padding: 1.3rem 0;
  background: rgba(245,241,236,.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(181,136,87,.16);
  transition: padding .3s;
}
.td-nav.scrolled { padding: 0.85rem 0; }

.td-nav-inner {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.td-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
}
.td-logo img {
  height: 44px;
  width: auto;
  display: block;
}

.td-nav-links {
  display: flex;
  gap: 2rem;
  margin: 0 auto;
}
.td-nav-links li a {
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-charcoal);
  transition: color .2s;
}
.td-nav-links li a:hover { color: var(--color-gold); }

.td-nav-enquire {
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-gold);
  border: 1px solid var(--color-gold);
  padding: 0.55rem 1.5rem;
  white-space: nowrap;
  transition: all .25s;
}
.td-nav-enquire:hover { background: var(--color-gold); color: var(--color-ivory); }

.td-nav-toggle {
  display: none;
  background: none;
  border: none;
  color: var(--color-gold);
  padding: 0.3rem 0.65rem;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}

/* ============================================================
   HERO
   ============================================================ */
.td-hero-section {
  min-height: 92vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}

/* CSS gradient overlay (in addition to Elementor's bg overlay) */
.td-hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(44,44,44,.70) 0%, rgba(44,44,44,.30) 52%, rgba(44,44,44,.08) 100%),
    linear-gradient(to top, rgba(44,44,44,.30) 0%, transparent 50%);
  z-index: 0;
  pointer-events: none;
}

.td-hero-section > .elementor-container,
.td-hero-section > .e-con-inner {
  position: relative;
  z-index: 1;
  padding-top: 6rem;
}

.td-hero-eyebrow .elementor-heading-title {
  font-family: var(--font-body) !important;
  font-size: 11px !important;
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--color-gold) !important;
}

.td-hero-title .elementor-heading-title {
  font-family: var(--font-heading) !important;
  font-size: clamp(3.2rem, 7.5vw, 6.5rem) !important;
  font-weight: 600;
  line-height: 0.94;
  letter-spacing: -0.02em;
  color: #fff !important;
  max-width: 760px;
}
.td-hero-title .elementor-heading-title em { color: var(--color-sand); font-style: italic; }

.td-hero-desc,
.td-hero-desc .elementor-widget-container p {
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.8;
  color: rgba(245,241,236,.82) !important;
  max-width: 520px;
  margin: 0;
}

/* Hero buttons side by side */
.td-hero-btn { display: inline-block; }
.td-hero-btn + .td-hero-btn { margin-left: 1rem; }

/* ============================================================
   ICON STRIP
   ============================================================ */
.td-strip-section { background: var(--color-charcoal); }

/* Force icon box to be horizontal (icon left, text right) */
.td-strip-item .elementor-icon-box-wrapper {
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.7rem;
  text-align: left;
}
.td-strip-item .elementor-icon-box-icon {
  margin: 0 !important;
  flex-shrink: 0;
}
.td-strip-item .elementor-icon-box-icon .elementor-icon {
  color: var(--color-gold) !important;
  font-size: 1rem !important;
}
.td-strip-item .elementor-icon-box-content { text-align: left; }
.td-strip-item .elementor-icon-box-title {
  font-family: var(--font-body) !important;
  font-size: 0.65rem !important;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-sand) !important;
  margin: 0 !important;
  line-height: 1.3;
}
.td-strip-item .elementor-icon-box-description { display: none; }

/* ============================================================
   ABOUT — heading
   ============================================================ */
.td-about-head,
.td-about-head.elementor-section {
  background: var(--color-ivory);
}

/* ============================================================
   ABOUT — body (text + image)
   ============================================================ */
.td-about-body-row { background: var(--color-ivory); }

.td-about-text .elementor-widget-container p {
  font-size: 0.95rem;
  font-weight: 300;
  line-height: 1.9;
  color: var(--color-charcoal);
  margin-bottom: 1.4rem;
}
.td-about-text .elementor-widget-container p:last-child { margin-bottom: 0; }

.td-about-img .elementor-widget-container img,
.td-about-img img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block;
}

/* ============================================================
   ABOUT — pillars (5 icon boxes, ivory bg)
   Pillars use CSS counter for roman numerals instead of FA icons
   ============================================================ */
.td-pillars-row { background: var(--color-ivory); }

/* Counter reset on the section's container */
.td-pillars-row > .elementor-container { counter-reset: pillar-n; }
.td-pillars-row .elementor-column      { counter-increment: pillar-n; }

/* Hide Font Awesome icon, show roman numeral via pseudo */
.td-pillar .elementor-icon-box-icon { display: none !important; }

.td-pillar .elementor-icon-box-wrapper {
  flex-direction: column !important;
  align-items: flex-start;
  gap: 0;
  padding: 2rem 1.5rem;
  background: var(--color-ivory);
  border: 1px solid var(--color-sand);
  height: 100%;
}

.td-pillar .elementor-icon-box-content { width: 100%; }

.td-pillar .elementor-icon-box-content::before {
  content: counter(pillar-n, upper-roman);
  display: block;
  font-family: var(--font-heading);
  font-size: 1.8rem;
  font-weight: 400;
  color: var(--color-gold);
  font-style: italic;
  line-height: 1;
  margin-bottom: 0.8rem;
}

.td-pillar .elementor-icon-box-title {
  font-family: var(--font-heading) !important;
  font-size: 0.95rem !important;
  font-weight: 600;
  color: var(--color-charcoal) !important;
  margin-bottom: 0.5rem !important;
  letter-spacing: 0.02em;
}

.td-pillar .elementor-icon-box-description {
  font-size: 0.78rem !important;
  font-weight: 300;
  line-height: 1.65;
  color: var(--color-taupe) !important;
}

/* ============================================================
   EXPERIENCE — heading
   ============================================================ */
.td-exp-head { background: var(--color-charcoal); }
.td-exp-head .td-section-title .elementor-heading-title { color: var(--color-ivory) !important; }

/* ============================================================
   EXPERIENCE — 4 image cards
   ============================================================ */
.td-exp-cards-row { background: var(--color-charcoal); }

.elementor-widget-image-box.td-card {
  background: var(--color-ivory);
  overflow: hidden;
  transition: transform .35s cubic-bezier(.2,.8,.3,1), box-shadow .35s;
}
.elementor-widget-image-box.td-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 48px rgba(0,0,0,.22);
}
.td-card .elementor-image-box-wrapper { flex-direction: column; }
.td-card .elementor-image-box-img {
  margin: 0;
  width: 100%;
  overflow: hidden;
}
.td-card .elementor-image-box-img img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}
.elementor-widget-image-box.td-card:hover .elementor-image-box-img img {
  transform: scale(1.04);
}
.td-card .elementor-image-box-content {
  padding: 1.5rem 1.4rem 1.8rem;
  background: var(--color-ivory);
}
.td-card .elementor-image-box-title {
  font-family: var(--font-heading) !important;
  font-size: 1.05rem !important;
  font-weight: 600;
  color: var(--color-charcoal) !important;
  margin-bottom: 0.55rem !important;
  line-height: 1.3;
}
.td-card .elementor-image-box-description {
  font-size: 0.8rem !important;
  font-weight: 300;
  line-height: 1.65;
  color: var(--color-taupe) !important;
}

/* "Discover more" link below each card */
.td-link-gold,
.td-link-gold a { color: var(--color-gold); }

/* ============================================================
   DESTINATIONS — heading + intro
   ============================================================ */
.td-dest-head { background: var(--color-ivory); }
.td-dest-intro { background: var(--color-ivory); }
.td-dest-text .elementor-widget-container p {
  font-size: 0.92rem;
  font-weight: 300;
  line-height: 1.9;
  color: var(--color-taupe);
  margin-bottom: 1.2rem;
}

/* ============================================================
   DESTINATIONS — 3 image cards (full-height overlay)
   CSS transforms Elementor Image Box into overlay card
   ============================================================ */
.td-dest-images { background: var(--color-ivory); }

.elementor-widget-image-box.td-dest-card {
  overflow: hidden;
  position: relative;
}
.td-dest-card .elementor-image-box-wrapper {
  position: relative;
  flex-direction: column;
  overflow: hidden;
}
.td-dest-card .elementor-image-box-img {
  margin: 0;
  width: 100%;
  display: block;
}
.td-dest-card .elementor-image-box-img img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
}
.elementor-widget-image-box.td-dest-card:hover .elementor-image-box-img img {
  transform: scale(1.04);
}
/* Gradient overlay */
.td-dest-card .elementor-image-box-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(44,44,44,.9) 0%, rgba(44,44,44,.35) 45%, transparent 75%);
  pointer-events: none;
}
.td-dest-card .elementor-image-box-img { position: relative; }

.td-dest-card .elementor-image-box-content {
  padding: 1.5rem;
  background: var(--color-ivory);
}
.td-dest-card .elementor-image-box-title {
  font-family: var(--font-heading) !important;
  font-size: 1.25rem !important;
  font-weight: 600;
  color: var(--color-charcoal) !important;
  margin-bottom: 0.35rem !important;
}
.td-dest-card .elementor-image-box-description {
  font-size: 0.82rem !important;
  font-weight: 400;
  line-height: 1.65;
  color: var(--color-taupe) !important;
}

/* ============================================================
   CONCIERGE — heading
   ============================================================ */
.td-conc-head { background: var(--color-charcoal); }
.td-conc-head .td-section-title .elementor-heading-title { color: var(--color-ivory) !important; }

/* ============================================================
   CONCIERGE — text + services list
   ============================================================ */
.td-conc-top { background: var(--color-charcoal); }

.td-conc-text .elementor-widget-container p {
  font-size: 0.92rem;
  line-height: 1.9;
  color: rgba(245,241,236,.75);
  margin-bottom: 1.4rem;
  font-weight: 300;
}

/* Services: icon list → grid of 2 cols matching original */
.td-services-list .elementor-icon-list-items {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.td-services-list .elementor-icon-list-item {
  padding: 1.1rem 1.4rem;
  align-items: center;
  gap: 0.8rem;
}
.td-services-list .elementor-icon-list-icon { color: var(--color-gold); }
.td-services-list .elementor-icon-list-icon i { font-size: 0.35rem !important; }
.td-services-list .elementor-icon-list-text {
  font-size: 0.8rem !important;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: var(--color-sand) !important;
}

/* ============================================================
   CONCIERGE — sub title + accordion
   ============================================================ */
.td-conc-sub { background: var(--color-charcoal); }

.td-conc-sub-title .elementor-heading-title {
  font-family: var(--font-heading) !important;
  font-size: 1.35rem !important;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.td-conc-sub-text .elementor-widget-container p {
  font-size: 0.9rem;
  line-height: 1.9;
  color: rgba(245,241,236,.7);
  font-weight: 300;
}

.td-conc-acc { background: var(--color-charcoal); }

/* Accordion: Elementor native, dark style */
.td-accordion .elementor-accordion { border-top: none !important; }
.td-accordion .elementor-accordion-item { border-top: none !important; border-bottom: none !important; }

.td-accordion .elementor-tab-title {
  font-family: var(--font-body) !important;
  font-size: 0.85rem !important;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-ivory) !important;
  padding: 1.4rem 0 !important;
  border: none !important;
  background: transparent !important;
}
.td-accordion .elementor-tab-title:hover,
.td-accordion .elementor-tab-title.elementor-active {
  color: var(--color-gold) !important;
  background: transparent !important;
}
.td-accordion .elementor-accordion-icon { color: var(--color-gold) !important; }

.td-accordion .elementor-tab-content {
  color: rgba(245,241,236,.7) !important;
  font-size: 0.82rem;
  font-weight: 300;
  line-height: 1.75;
  padding: 0.5rem 0 1.5rem !important;
  border: none !important;
  background: transparent !important;
}
.td-accordion .elementor-tab-content ul {
  list-style: disc;
  padding-left: 1.2rem;
}
.td-accordion .elementor-tab-content li { margin-bottom: 0.3rem; }
.td-accordion .elementor-tab-content img {
  display: block;
  width: 100% !important;
  max-width: 470px!important;
  height: auto !important;
  margin-bottom: 1.5rem;
  border-radius: 30px;
}

/* ============================================================
   DARK EDITORIAL
   ============================================================ */
.td-dark-editorial {
  min-height: 520px;
  display: flex;
  align-items: center;
  position: relative;
}

.td-dark-editorial > .elementor-container,
.td-dark-editorial > .e-con-inner {
  position: relative;
  z-index: 1;
}

.td-dark-title .elementor-heading-title {
  font-family: var(--font-heading) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.8rem) !important;
  font-weight: 600;
  line-height: 1.1;
  color: var(--color-ivory) !important;
}

.td-dark-text .elementor-widget-container p {
  font-size: 0.92rem;
  line-height: 1.85;
  color: rgba(245,241,236,.75);
  font-weight: 300;
}

/* ============================================================
   KIND WORDS
   ============================================================ */
.td-kw-head { background: var(--color-sand); }
.td-kw-cards { background: var(--color-sand); }

/* Review cards (HTML widgets with td-review class) */
.td-review {
  background: var(--color-ivory);
  padding: 2.2rem 2rem;
  border: 1px solid rgba(181,136,87,.2);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  height: 100%;
}
.td-review-stars  { color: var(--color-gold); font-size: 0.9rem; letter-spacing: 0.1em; }
.td-review-rating { font-size: 0.65rem; font-weight: 600; letter-spacing: 0.1em; color: var(--color-gold); margin-left: 0.4rem; }

.td-review-text {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--color-charcoal);
  flex: 1;
}

.td-review-quote-mark {
  font-size: 3rem;
  line-height: 1;
  color: var(--color-gold);
  opacity: .35;
  font-family: var(--font-heading);
  position: absolute;
  top: 1.2rem;
  right: 1.5rem;
}

.td-review-author {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(181,136,87,.2);
  margin-top: auto;
}
.td-review-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 0.85rem;
  color: var(--color-ivory);
  flex-shrink: 0;
}
.td-review-name  { font-size: 0.8rem; font-weight: 500; color: var(--color-charcoal); letter-spacing: 0.06em; }
.td-review-label { font-size: 0.65rem; color: var(--color-taupe); letter-spacing: 0.08em; }

/* ============================================================
   CONTACT
   ============================================================ */
.td-contact-head { background: var(--color-ivory); }
.td-contact-body { background: var(--color-ivory); }

.td-contact-desc .elementor-widget-container p {
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.85;
  color: var(--color-taupe);
  margin-bottom: 1rem;
}

.td-contact-details {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.td-contact-details a {
  font-size: 0.82rem;
  color: var(--color-charcoal);
  font-weight: 400;
  transition: color .2s;
}
.td-contact-details a:hover { color: var(--color-gold); }
.td-contact-details span  { font-size: 0.82rem; color: var(--color-taupe); }

/* ── Contact Form 7 ─────────────────────────────────────────── */
.wpcf7 { width: 100%; }

/* Labels: small uppercase, spaced, taupe */
.wpcf7 label {
  display: block;
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-taupe);
  margin-bottom: 0.5rem;
}

/* Fields: bottom-line only, transparent — editorial luxury feel */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  padding: 10px 0;
  border: none;
  border-bottom: 1px solid var(--color-sand);
  background: transparent;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 300;
  color: var(--color-charcoal);
  outline: none;
  border-radius: 0;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color .3s;
  display: block;
  margin-bottom: 2rem;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
  color: var(--color-sand);
  font-style: italic;
  font-size: 0.82rem;
}

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

/* Select: gold chevron */
.wpcf7 select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23B58857'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 2px center;
  background-size: 9px;
  padding-right: 22px;
  cursor: pointer;
}

.wpcf7 textarea {
  height: 90px;
  resize: none;
}

/* Acceptance / privacy row */
.wpcf7-acceptance { margin-bottom: 0; }

.wpcf7-acceptance .wpcf7-list-item { margin: 0; }

.wpcf7-acceptance .wpcf7-list-item-label {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  font-size: 0.75rem;
  font-weight: 300;
  color: var(--color-taupe);
  letter-spacing: 0.03em;
  line-height: 1.55;
  cursor: pointer;
}

/* Custom checkbox */
.wpcf7-acceptance input[type="checkbox"] {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px;
  flex-shrink: 0;
  border: 1px solid var(--color-sand) !important;
  border-radius: 0 !important;
  background: transparent !important;
  appearance: none;
  -webkit-appearance: none;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  cursor: pointer;
  position: relative;
  transition: border-color .2s, background .2s;
}

.wpcf7-acceptance input[type="checkbox"]:checked {
  background: var(--color-gold) !important;
  border-color: var(--color-gold) !important;
}

.wpcf7-acceptance input[type="checkbox"]:checked::after {
  content: '';
  display: block;
  position: absolute;
  top: 1px;
  left: 4px;
  width: 4px;
  height: 7px;
  border: 1.5px solid #fff;
  border-top: none;
  border-left: none;
  transform: rotate(45deg);
}

/* Privacy link inside acceptance label */
.wpcf7-acceptance a,
.cf7-privacy-row a {
  color: var(--color-gold) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(181,136,87,.45);
  transition: opacity .2s;
}
.wpcf7-acceptance a:hover,
.cf7-privacy-row a:hover { opacity: 0.7; }

/* Submit button: ghost → filled on hover */
.wpcf7-submit,
.wpcf7 input[type="submit"] {
  background: transparent !important;
  color: var(--color-charcoal) !important;
  border: 1px solid var(--color-gold) !important;
  padding: 15px 40px !important;
  font-family: var(--font-body) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  cursor: pointer;
  transition: background .25s, color .25s, border-color .25s !important;
  border-radius: 0 !important;
  display: inline-block;
  margin-top: 2rem;
}
.wpcf7-submit:hover,
.wpcf7 input[type="submit"]:hover {
  background: var(--color-gold) !important;
  color: var(--color-ivory) !important;
  border-color: var(--color-gold) !important;
}

/* Validation & response */
.wpcf7-not-valid-tip {
  font-size: 0.7rem;
  color: #a0522d;
  margin-top: -1.6rem;
  margin-bottom: 1.2rem;
  display: block;
  letter-spacing: 0.04em;
}
.wpcf7-response-output {
  font-size: 0.78rem;
  padding: 0.8rem 1.2rem;
  margin: 1rem 0 0;
  border-radius: 0;
  border: 1px solid var(--color-sand) !important;
  letter-spacing: 0.04em;
}

/* ============================================================
   FOOTER
   ============================================================ */
.td-footer-el    { background: var(--color-charcoal); }
.td-footer-bottom-el { background: #1a1a1a; }

.td-footer-logo-img .elementor-widget-container img { height: 40px; width: auto; display: block; }

.td-footer-brand .elementor-widget-container p {
  font-size: 0.82rem;
  font-weight: 300;
  line-height: 1.7;
  color: var(--color-taupe);
  margin-bottom: 0.6rem;
}

.td-footer-tag {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-taupe);
  margin-bottom: 1.5rem;
}

.td-footer-col-title .elementor-heading-title {
  font-family: var(--font-body) !important;
  font-size: 0.62rem !important;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-ivory) !important;
  margin-bottom: 1.2rem;
}

.td-footer-links-col { display: flex; flex-direction: column; gap: 0.65rem; }
.td-footer-links-col li { font-size: 0.78rem; font-weight: 300; color: var(--color-taupe); }
.td-footer-links-col a { font-size: 0.78rem; font-weight: 300; color: var(--color-taupe); transition: color .2s; }
.td-footer-links-col a:hover { color: var(--color-gold); }

.td-footer-copy-row .elementor-widget-container p { font-size: 0.68rem; color: var(--color-taupe); letter-spacing: 0.06em; text-align: center; }

/* ============================================================
   WHATSAPP FLOATING BUTTON
   ============================================================ */
.td-wa-btn {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: #25D366;
  color: #fff;
  padding: 0.75rem 1.2rem;
  border-radius: 50px;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  transition: transform .2s, box-shadow .2s;
}
.td-wa-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 28px rgba(37,211,102,.5); color: #fff; }
.td-wa-btn svg   { width: 20px; height: 20px; fill: currentColor; flex-shrink: 0; }

/* ============================================================
   DIVIDER
   ============================================================ */
.elementor-widget-divider .elementor-divider__line { border-color: rgba(181,136,87,.25); }

/* ============================================================
   RESPONSIVE — Tablet (≤1024px)
   ============================================================ */
@media (max-width: 1024px) {
  :root { --section-py: 80px; }

  /* Pillars: 3 per row */
  .td-pillars-row > .elementor-container { flex-wrap: wrap; }
  .td-pillars-row .elementor-column { width: 33.33% !important; }
  .td-pillar .elementor-icon-box-wrapper { padding: 1.5rem 1.2rem; }
}

/* ============================================================
   RESPONSIVE — Mobile (≤768px)
   ============================================================ */
@media (max-width: 768px) {
  :root { --section-py: 72px; }

  /* Nav mobile */
  .td-nav-links      { display: none; }
  .td-nav-enquire    { display: none; }
  .td-nav-toggle     { display: block; }
  .td-nav.is-open .td-nav-links {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--color-ivory);
    padding: 1.5rem 2rem;
    border-top: 1px solid var(--color-sand);
    gap: 1.2rem;
    z-index: 999;
  }
  .td-nav.is-open .td-nav-enquire {
    display: block;
    margin-top: 0.5rem;
    text-align: center;
  }

  /* Hero */
  .td-hero-section { min-height: 720px; text-align: center; }
  .td-hero-section > .elementor-container { padding-top: 5rem; }
  .td-hero-title .elementor-heading-title { font-size: clamp(2.6rem, 13vw, 4rem) !important; }
  .td-hero-desc .elementor-widget-container p { font-size: 0.9rem; }

  /* Strip: wrap */
  .td-strip-section .elementor-column { width: 50% !important; }

  /* Pillars: 2 per row */
  .td-pillars-row .elementor-column { width: 50% !important; }

  /* Experience cards: 2 per row */
  .td-exp-cards-row .elementor-column { width: 50% !important; }

  /* Dest cards: 1 per row */
  .td-dest-images .elementor-column { width: 100% !important; }
  .td-dest-card .elementor-image-box-img img { height: 300px; }

  /* Services list: 1 col */
  .td-services-list .elementor-icon-list-items { grid-template-columns: 1fr; }

  /* Contact: stack */
  .td-contact-body .elementor-column { width: 100% !important; }

  /* Footer: 2-col then stack */
  .td-footer-el .elementor-column { width: 50% !important; }
}

/* ============================================================
   RESPONSIVE — Small Mobile (≤560px)
   ============================================================ */
@media (max-width: 560px) {
  /* Experience cards: 1 per row */
  .td-exp-cards-row .elementor-column { width: 100% !important; }
  .td-strip-section .elementor-column { width: 50% !important; }
  .td-pillars-row .elementor-column   { width: 50% !important; }

  /* Footer: stack */
  .td-footer-el .elementor-column        { width: 100% !important; }
  .td-footer-bottom-el .elementor-column { width: 100% !important; }

  .td-section-title .elementor-heading-title { font-size: 2rem !important; }
}

/* ============================================================
   ORIGINAL HTML VISUAL PARITY LAYER
   Keeps Elementor native widgets while matching the previous
   hand-coded landing page mood and spacing.
   ============================================================ */

:root {
  --gold: var(--color-gold);
  --gold-dk: var(--color-gold-dk);
  --ivory: var(--color-ivory);
  --beige: var(--color-sand);
  --charcoal: var(--color-charcoal);
  --taupe: var(--color-taupe);
  --gap: 2rem;
}

body.home {
  background: var(--ivory);
  color: var(--charcoal);
  font-family: var(--font-body);
  font-weight: 300;
}

.td-wrap,
.td-hero-section > .elementor-container,
.td-strip-section > .elementor-container,
.td-about-section > .elementor-container,
.td-about-body-row > .elementor-container,
.td-pillars-row > .elementor-container,
.td-experience-section > .elementor-container,
.td-exp-cards-row > .elementor-container,
.td-destinations-section > .elementor-container,
.td-dest-images > .elementor-container,
.td-concierge-section > .elementor-container,
.td-dark-editorial > .elementor-container,
.td-kind-words-section > .elementor-container,
.td-kw-cards > .elementor-container,
.td-contact-section > .elementor-container,
.td-contact-body > .elementor-container,
.td-footer-el > .elementor-container,
.td-footer-bottom-el > .elementor-container {
  max-width: var(--max-w) !important;
  margin: 0 auto !important;
  padding-left: var(--gap) !important;
  padding-right: var(--gap) !important;
}

/* Nav: match previous fixed ivory glass header. */
.td-nav {
  position: fixed;
  inset-block-start: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  padding: 1.4rem 0;
  background: rgba(245, 241, 236, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(181, 136, 87, 0.18);
}

.td-logo img {
  height: 44px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}

.td-nav-links a {
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.12em;
}

.td-nav-enquire {
  font-size: 0.65rem;
  letter-spacing: 0.16em;
  padding: 0.55rem 1.5rem;
}

/* Hero: old full-screen editorial image treatment. */
.td-hero-section,
.td-hero {
  position: relative;
  min-height: 100vh !important;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-size: cover !important;
  background-position: center 60% !important;
}

.td-hero-section::before {
  background: linear-gradient(105deg, rgba(44,44,44,.68) 0%, rgba(44,44,44,.32) 55%, rgba(44,44,44,.08) 100%) !important;
}

.td-hero-section > .elementor-container {
  position: relative;
  z-index: 1;
  padding-top: 6rem !important;
}

.td-hero-section .elementor-column:first-child,
.td-hero-section .elementor-column:last-child {
  display: none;
}

.td-hero-section .elementor-column:nth-child(2) {
  width: 660px !important;
  max-width: 660px;
}

.td-hero-title .elementor-heading-title {
  font-size: clamp(3rem, 7.5vw, 5.8rem) !important;
  line-height: 1.04 !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 1.3rem;
  max-width: 660px;
}

.td-hero-title .elementor-heading-title em {
  color: var(--beige) !important;
  font-style: italic;
}

.td-hero-desc,
.td-hero-desc .elementor-widget-container p {
  max-width: 400px;
  margin-bottom: 2.2rem;
  color: rgba(245,241,236,.82) !important;
}

.td-hero-btn {
  display: inline-block;
  margin-right: 1rem;
}

/* Strip: previous compact charcoal band. */
.td-strip-section,
.td-strip {
  background: var(--charcoal) !important;
  padding: 1.6rem 0 !important;
}

.td-strip-section > .elementor-container {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.td-strip-section .elementor-column:first-child,
.td-strip-section .elementor-column:last-child {
  display: none;
}

.td-strip-section .elementor-column {
  width: auto !important;
  flex: 0 1 auto;
}

/* Sections and headings. */
.td-about-section,
.td-about-body-row,
.td-pillars-row,
.td-experience-section,
.td-exp-cards-row,
.td-destinations-section,
.td-dest-images,
.td-contact-section,
.td-contact-body {
  background: var(--ivory) !important;
}

.td-about-section,
.td-experience-section,
.td-destinations-section,
.td-contact-section {
  padding: 7rem 0 3rem !important;
}

.td-section-title .elementor-heading-title,
.td-section-title {
  font-size: clamp(2rem, 3.5vw, 3rem) !important;
  line-height: 1.12 !important;
  letter-spacing: 0.02em !important;
}

.td-section-sub p,
.td-section-sub-light p,
.td-section-sub-light .elementor-widget-container p {
  color: var(--taupe) !important;
  max-width: 520px;
  margin: 0 auto;
}

/* About: old two-column editorial feel. */
.td-about-body-row > .elementor-container {
  align-items: center;
}

.td-about-body-row .elementor-column:first-child,
.td-about-body-row .elementor-column:last-child {
  display: none;
}

.td-about-body-row .elementor-column:nth-child(2) {
  width: 55% !important;
}

.td-about-body-row .elementor-column:nth-child(3) {
  width: 45% !important;
}

.td-about-img img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.td-pillars-row {
  padding: 3rem 0 7rem !important;
}

.td-pillars-row > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  counter-reset: pillar-n;
}

.td-pillars-row .elementor-column {
  width: auto !important;
  counter-increment: pillar-n;
}

.td-pillar .elementor-icon-box-wrapper {
  padding: 2rem 1.4rem;
  background: transparent;
  border: 1px solid var(--beige);
}

/* Experience: old ivory section with four clean cards. */
.td-exp-head .td-section-title .elementor-heading-title,
.td-experience-section .td-section-title .elementor-heading-title {
  color: var(--charcoal) !important;
}

.td-exp-cards-row {
  padding: 0 0 7rem !important;
}

.td-exp-cards-row > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.4rem;
}

.td-exp-cards-row .elementor-column {
  width: auto !important;
  padding: 0 !important;
}

.td-exp-cards-row .elementor-column:first-child,
.td-exp-cards-row .elementor-column:last-child {
  display: none;
}

.elementor-widget-image-box.td-card {
  background: #fff;
  border: 0;
  border-radius: 3px;
  box-shadow: none;
}

.td-card .elementor-image-box-img img {
  height: 230px !important;
}

.td-card .elementor-image-box-content {
  padding: 1.5rem 1.4rem;
  background: #fff;
}

.td-card .elementor-image-box-title {
  font-size: 1.05rem !important;
}

.td-card .elementor-image-box-description {
  font-size: 0.78rem !important;
}

/* Destinations: image overlay cards like old HTML. */
.td-dest-images {
  padding: 1rem 0 7rem !important;
}

.td-dest-images > .elementor-container {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}

.td-dest-images .elementor-column {
  width: auto !important;
  padding: 0 !important;
}

.td-dest-images .elementor-column:first-child,
.td-dest-images .elementor-column:last-child {
  display: none;
}

.elementor-widget-image-box.td-dest-card {
  height: 430px;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.td-dest-card .elementor-image-box-wrapper,
.td-dest-card .elementor-image-box-img,
.td-dest-card .elementor-image-box-img a {
  height: 100%;
}

.td-dest-card .elementor-image-box-img img {
  height: 430px !important;
}

.td-dest-card .elementor-image-box-content {
  position: absolute;
  bottom: 1.4rem;
  z-index: 2;
  padding: 0;
  background: transparent;
}

.td-dest-card .elementor-image-box-title {
  color: var(--ivory) !important;
  font-size: 1.35rem !important;
}

.td-dest-card .elementor-image-box-description {
  color: rgba(245,241,236,.92) !important;
  font-weight: 400 !important;
}

/* Concierge and dark editorial. */
.td-concierge-section,
.td-conc-head,
.td-conc-top,
.td-conc-sub,
.td-conc-acc {
  background: var(--charcoal) !important;
}

.td-concierge-section .td-section-title .elementor-heading-title,
.td-conc-head .td-section-title .elementor-heading-title {
  color: var(--ivory) !important;
}

.td-dark-editorial,
.td-dark {
  min-height: 540px !important;
}

.td-dark-editorial::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(44,44,44,.8);
  z-index: 0;
  pointer-events: none;
}

.td-dark-editorial > .elementor-container {
  position: relative;
  z-index: 1;
}

.td-dark-title .elementor-heading-title {
  font-size: clamp(2rem, 4vw, 3.2rem) !important;
  line-height: 1.15 !important;
}

/* Kind words and footer. */
.td-kind-words-section,
.td-kw-cards {
  background: var(--beige) !important;
}

.td-review {
  border-radius: 0;
  box-shadow: none;
}

.td-footer-custom,
.td-footer-el {
  background: var(--charcoal) !important;
  padding: 4.5rem 0 2.5rem !important;
}

.td-footer-logo-img img {
  height: 36px !important;
  width: auto;
}

.td-footer-bottom-el {
  background: var(--charcoal) !important;
}

@media (max-width: 960px) {
  .td-exp-cards-row > .elementor-container,
  .td-dest-images > .elementor-container {
    grid-template-columns: repeat(2, 1fr);
  }

  .td-pillars-row > .elementor-container {
    grid-template-columns: repeat(3, 1fr);
  }

  .td-nav-links {
    display: none;
  }

  .td-nav-toggle {
    display: block;
  }
}

@media (max-width: 768px) {
  :root { --gap: 1.25rem; }

  .td-hero-section {
    min-height: 720px !important;
    text-align: center;
  }

  .td-hero-section .elementor-column:nth-child(2),
  .td-about-body-row .elementor-column:nth-child(2),
  .td-about-body-row .elementor-column:nth-child(3) {
    width: 100% !important;
    max-width: none;
  }

  .td-hero-desc,
  .td-hero-desc .elementor-widget-container p {
    margin-left: auto;
    margin-right: auto;
  }

  .td-pillars-row > .elementor-container {
    grid-template-columns: repeat(2, 1fr);
  }

  .td-exp-cards-row > .elementor-container,
  .td-dest-images > .elementor-container {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 580px) {
  .td-hero-title .elementor-heading-title {
    font-size: 2.8rem !important;
  }

  .td-pillars-row > .elementor-container {
    grid-template-columns: 1fr;
  }

  .td-strip-section > .elementor-container {
    justify-content: center;
    gap: 1.2rem 2rem;
  }
}

/* ============================================================
   ELEMENTOR DEFAULT OVERRIDES
   Hard reset the native widgets that were inheriting Elementor
   blue/icon defaults instead of the previous HTML design.
   ============================================================ */

body.home .elementor a,
body.home .elementor a:hover {
  color: inherit;
}

body.home .elementor-heading-title,
body.home .elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
}

body.home .td-eyebrow,
body.home .td-eyebrow .elementor-heading-title,
body.home .td-hero-eyebrow,
body.home .td-hero-eyebrow .elementor-heading-title {
  font-family: var(--font-body) !important;
  font-size: 0.6rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
}

body.home .td-section-title .elementor-heading-title {
  font-family: var(--font-heading) !important;
  font-size: clamp(2rem, 3.5vw, 3rem) !important;
  font-weight: 600 !important;
  line-height: 1.12 !important;
  letter-spacing: 0.02em !important;
  color: var(--charcoal) !important;
}

body.home .td-section-title .elementor-heading-title em {
  color: var(--gold) !important;
  font-style: italic !important;
}

body.home .td-about-section {
  padding-top: 6.5rem !important;
  padding-bottom: 2.5rem !important;
}

body.home .td-about-section .elementor-widget-wrap {
  justify-content: center;
}

body.home .td-about-section .td-section-title .elementor-heading-title {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

body.home .td-about-text,
body.home .td-about-text .elementor-widget-container,
body.home .td-about-text .elementor-widget-container p {
  font-family: var(--font-body) !important;
  font-size: 0.86rem !important;
  font-weight: 300 !important;
  line-height: 1.85 !important;
  color: var(--charcoal) !important;
}

body.home .td-about-visual,
body.home .td-about-img {
  position: relative;
}

body.home .td-about-img img {
  width: 100% !important;
  height: auto !important;
  min-height: 420px;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center !important;
}

body.home .td-about-img::after {
  content: "Discreet.\A Considered.\A Deeply personal.";
  white-space: pre-line;
  position: absolute;
  right: -1.2rem;
  bottom: 1.5rem;
  z-index: 2;
  max-width: 190px;
  padding: 1.25rem 1.4rem;
  background: rgba(245,241,236,.94);
  border: 1px solid rgba(181,136,87,.24);
  color: var(--charcoal);
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-style: italic;
  line-height: 1.15;
  box-shadow: 0 18px 42px rgba(44,44,44,.12);
}

body.home .td-pillars-row {
  padding-top: 2.5rem !important;
}

body.home .td-pillars-row .elementor-widget-icon-box {
  height: 100%;
}

body.home .td-pillars-row .elementor-icon-box-wrapper {
  height: 100%;
  text-align: left !important;
  align-items: flex-start !important;
  background: transparent !important;
  border: 1px solid var(--beige) !important;
  padding: 2rem 1.5rem !important;
}

body.home .td-pillars-row .elementor-icon-box-icon {
  display: none !important;
}

body.home .td-pillars-row .elementor-icon-box-content::before {
  content: counter(pillar-n, upper-roman);
  display: block;
  font-family: var(--font-heading);
  font-size: 1.8rem;
  font-weight: 400;
  font-style: italic;
  line-height: 1;
  color: var(--gold);
  margin-bottom: 0.85rem;
}

body.home .td-pillars-row .elementor-icon-box-title,
body.home .td-pillars-row .elementor-icon-box-title span {
  font-family: var(--font-heading) !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: var(--charcoal) !important;
  margin-bottom: 0.55rem !important;
}

body.home .td-pillars-row .elementor-icon-box-description {
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 300 !important;
  line-height: 1.65 !important;
  color: var(--taupe) !important;
}

body.home .td-strip-section .elementor-icon-box-icon .elementor-icon,
body.home .td-strip-section .elementor-icon-box-icon svg {
  color: var(--gold) !important;
  fill: var(--gold) !important;
}

body.home .td-strip-section .elementor-icon-box-title,
body.home .td-strip-section .elementor-icon-box-title span {
  color: var(--beige) !important;
}

/* ============================================================
   CONTAINER-BASED ELEMENTOR FIXES
   Current homepage uses Elementor containers (.e-con), not only
   legacy sections/columns. These rules are intentionally last.
   ============================================================ */

body.home .e-con.td-hero-section,
body.home .e-con.td-hero {
  min-height: 100vh !important;
  background-size: cover !important;
  background-position: center center !important;
  position: relative;
  overflow: hidden;
}

body.home .e-con.td-hero-section::before,
body.home .e-con.td-hero::before,
body.home .e-con.td-dark-editorial::before,
body.home .e-con.td-dark::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

body.home .e-con.td-hero-section::before,
body.home .e-con.td-hero::before {
  background: linear-gradient(105deg, rgba(44,44,44,.68) 0%, rgba(44,44,44,.32) 55%, rgba(44,44,44,.08) 100%);
}

body.home .e-con.td-dark-editorial::before,
body.home .e-con.td-dark::before {
  background: rgba(44,44,44,.8);
}

body.home .e-con.td-hero-section > .e-con-inner,
body.home .e-con.td-hero > .e-con-inner,
body.home .e-con.td-dark-editorial > .e-con-inner,
body.home .e-con.td-dark > .e-con-inner {
  position: relative;
  z-index: 1;
}

body.home .td-logo img,
body.home .td-footer-logo-img img {
  object-fit: contain !important;
}

body.home .td-logo img {
  height: 44px !important;
  width: auto !important;
  max-width: 170px !important;
}

body.home .td-footer-logo-img img {
  height: 42px !important;
  width: auto !important;
  max-width: 180px !important;
}

body.home .e-con.td-concierge,
body.home .e-con.td-concierge-section,
body.home .e-con.td-conc-head,
body.home .e-con.td-dark,
body.home .e-con.td-dark-section,
body.home .e-con.td-dark-editorial,
body.home .e-con.td-footer-el,
body.home .e-con.td-footer-custom,
body.home .e-con.td-footer-section {
  background-color: var(--charcoal) !important;
  color: var(--ivory) !important;
}

body.home .e-con.td-concierge .elementor-heading-title,
body.home .e-con.td-concierge-section .elementor-heading-title,
body.home .e-con.td-conc-head .elementor-heading-title,
body.home .e-con.td-dark .elementor-heading-title,
body.home .e-con.td-dark-section .elementor-heading-title,
body.home .e-con.td-dark-editorial .elementor-heading-title,
body.home .e-con.td-footer-el .elementor-heading-title,
body.home .e-con.td-footer-custom .elementor-heading-title,
body.home .e-con.td-footer-section .elementor-heading-title,
body.home .td-concierge .elementor-heading-title,
body.home .td-concierge-section .elementor-heading-title,
body.home .td-dark .elementor-heading-title,
body.home .td-dark-section .elementor-heading-title,
body.home .td-dark-editorial .elementor-heading-title,
body.home .td-footer-el .elementor-heading-title,
body.home .td-footer-custom .elementor-heading-title {
  color: var(--ivory) !important;
}

body.home .e-con.td-concierge .td-eyebrow .elementor-heading-title,
body.home .e-con.td-concierge-section .td-eyebrow .elementor-heading-title,
body.home .e-con.td-dark .td-eyebrow .elementor-heading-title,
body.home .e-con.td-dark-section .td-eyebrow .elementor-heading-title,
body.home .e-con.td-dark-editorial .td-eyebrow .elementor-heading-title,
body.home .td-concierge .td-eyebrow .elementor-heading-title,
body.home .td-concierge-section .td-eyebrow .elementor-heading-title,
body.home .td-dark .td-eyebrow .elementor-heading-title,
body.home .td-dark-section .td-eyebrow .elementor-heading-title,
body.home .td-dark-editorial .td-eyebrow .elementor-heading-title {
  color: var(--gold) !important;
}

body.home .e-con.td-concierge .elementor-widget-text-editor,
body.home .e-con.td-concierge-section .elementor-widget-text-editor,
body.home .e-con.td-dark .elementor-widget-text-editor,
body.home .e-con.td-dark-section .elementor-widget-text-editor,
body.home .e-con.td-dark-editorial .elementor-widget-text-editor,
body.home .td-conc-text,
body.home .td-conc-sub-text,
body.home .td-dark-text {
  color: rgba(245,241,236,.76) !important;
}

body.home .e-con.td-concierge .elementor-widget-text-editor p,
body.home .e-con.td-concierge-section .elementor-widget-text-editor p,
body.home .e-con.td-dark .elementor-widget-text-editor p,
body.home .e-con.td-dark-section .elementor-widget-text-editor p,
body.home .e-con.td-dark-editorial .elementor-widget-text-editor p,
body.home .td-conc-text p,
body.home .td-conc-sub-text p,
body.home .td-dark-text p {
  color: rgba(245,241,236,.76) !important;
}

body.home .td-services-list .elementor-icon-list-icon,
body.home .td-services-list .elementor-icon-list-icon i,
body.home .td-services-list .elementor-icon-list-icon svg,
body.home .e-con.td-concierge .elementor-icon-list-icon,
body.home .e-con.td-concierge .elementor-icon-list-icon i,
body.home .e-con.td-concierge .elementor-icon-list-icon svg,
body.home .e-con.td-concierge-section .elementor-icon-list-icon,
body.home .e-con.td-concierge-section .elementor-icon-list-icon i,
body.home .e-con.td-concierge-section .elementor-icon-list-icon svg {
  color: var(--gold) !important;
  fill: var(--gold) !important;
}

body.home .td-services-list .elementor-icon-list-text,
body.home .e-con.td-concierge .elementor-icon-list-text,
body.home .e-con.td-concierge-section .elementor-icon-list-text {
  color: var(--beige) !important;
}

body.home .td-accordion .elementor-accordion-icon,
body.home .td-accordion .elementor-accordion-icon i,
body.home .td-accordion .elementor-accordion-icon svg {
  color: var(--gold) !important;
  fill: var(--gold) !important;
}

body.home .td-accordion .elementor-tab-title,
body.home .td-accordion .elementor-tab-title a {
  color: var(--ivory) !important;
}

body.home .td-accordion .elementor-tab-title.elementor-active,
body.home .td-accordion .elementor-tab-title:hover {
  color: var(--gold) !important;
}

/* ============================================================
   NAV — mobile header fix
   Real edge padding on both sides; explicit flex order so the
   layout is logo (left) … enquire, toggle (right) — enquire
   always immediately to the left of the hamburger — regardless
   of source order in the markup.
   ============================================================ */
@media (max-width: 768px) {
  .td-nav-inner {
    gap: 0.6rem;
  }
  .td-logo {
    order: 0;
    padding-left: 15px;
  }
  .td-nav-enquire {
    display: inline-block;
    order: 1;
    margin-left: auto;
    font-size: 0.56rem;
    padding: 0.5rem 0.85rem;
  }
  .td-nav-toggle {
    order: 2;
    margin-right: 15px;
  }
}

/* ============================================================
   TERRITORY — flanking images (Verona / Lake Garda / Valpolicella)
   Match both images to the same height as a tall crop instead of
   their natural (mismatched) aspect ratios.
   ============================================================ */
.elementor-element-ce98123 img,
.elementor-element-f2ed855 img {
  width: 100%;
  height: 560px;
  object-fit: cover;
  display: block;
}

/* ============================================================
   FOOTER — slightly heavier paragraph weight (titles untouched)
   ============================================================ */
.td-footer-brand .elementor-widget-container p,
.td-footer-links-col li,
.td-footer-links-col a,
.td-footer-copy-row .elementor-widget-container p {
  font-weight: 400;
}

/* ============================================================
   ABOUT — intro block, placed right after the hero/strip
   ============================================================ */
.td-about-simple {
  background: var(--color-ivory);
  padding: 5.5rem 0;
}
.td-about-simple .td-wrap {
  max-width: 720px !important;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.td-about-simple p {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.9;
  color: var(--color-charcoal);
  margin-bottom: 1.3rem;
}
.td-about-simple p:last-child { margin-bottom: 0; }
.td-about-simple .td-eyebrow,
.td-about-simple .td-eyebrow .elementor-heading-title {
  text-align: center;
}
@media (max-width: 1024px) {
  .td-about-simple {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}
@media (max-width: 768px) {
  .td-about-simple { padding-top: 3.5rem; padding-bottom: 3.5rem; }
}

/* ============================================================
   PRIVATE & CORPORATE — center the "Private" and "Corporate"
   heading + text columns from tablet down.
   ============================================================ */
@media (max-width: 1024px) {
  .elementor-element-aa0a4c1e,
  .elementor-element-04f88989 {
    align-items: center !important;
    text-align: center !important;
  }
  .elementor-element-aa0a4c1e .elementor-heading-title,
  .elementor-element-04f88989 .elementor-heading-title,
  .elementor-element-aa0a4c1e .elementor-widget-text-editor,
  .elementor-element-04f88989 .elementor-widget-text-editor {
    text-align: center !important;
  }
}

/* ============================================================
   TABLET + MOBILE — paired-image sections (Signature Experiences,
   Territory, Concierge/Our Services) stack image-text-image with
   zero gap once Elementor switches to a column layout (which
   happens anywhere at/under the tablet breakpoint, 1024px, not
   just under the 768px mobile breakpoint); add breathing room,
   and give paired images a consistent height.
   ============================================================ */
@media (max-width: 1024px) {
  .elementor-element-03926be,
  .elementor-element-bb4f2a1,
  .elementor-element-97d9940,
  .elementor-element-18e7af4 {
    gap: 2rem !important;
  }
  .elementor-element-3fa1352 img,
  .elementor-element-2bc8f24 img,
  .elementor-element-ce98123 img,
  .elementor-element-f2ed855 img,
  .elementor-element-304d3e7 img,
  img[data-interaction-id="fab2573"] {
    height: 320px !important;
    width: 100% !important;
    object-fit: cover !important;
  }
}

/* ============================================================
   39 TRAVEL DESIGN — ritocchi home
   Qui sta solo ciò che Elementor non sa esprimere dal pannello.
   Colori, sfondi, spaziature e slideshow restano nei widget,
   così il cliente può modificarli senza toccare il codice.
   ============================================================ */


/* ── Hero pulita ────────────────────────────────────────────
   Non contiene più testo: al posto del velo piatto una
   sfumatura verticale, appena marcata in alto per il menu e
   in basso per staccare dalla banda nera che segue.
   L'opacità dell'overlay è impostata nel widget.            */
body.home .e-con.td-hero-section::before,
body.home .e-con.td-hero::before {
  background: linear-gradient(
    180deg,
    rgba(44, 44, 44, .14) 0%,
    rgba(44, 44, 44, .06) 30%,
    rgba(44, 44, 44, .06) 62%,
    rgba(44, 44, 44, .34) 100%
  );
}


/* ── Private & Corporate ────────────────────────────────────
   I due paragrafi usavano .td-about-text, che il tema forza a
   charcoal con !important: su fondo nero sparivano. Ora hanno
   una classe propria, con la sola tipografia — il colore resta
   nel widget, modificabile dal pannello.                    */
body.home .td-privcorp-text .elementor-widget-container p {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.85;
  margin-bottom: 1.2rem;
}

body.home .td-privcorp-text .elementor-widget-container p:last-child {
  margin-bottom: 0;
}

/* Il corsivo "Experiences That Elevate Your Brand" è dentro
   l'editor e non ha un controllo dedicato. */
body.home .td-privcorp em {
  color: var(--color-sand);
  font-style: italic;
}

#private,
#corporate {
  scroll-margin-top: 6rem;
}


/* ── About ──────────────────────────────────────────────────
   Montserrat è caricato nei pesi 300-600. Senza il 700 il
   browser sintetizzerebbe il grassetto: si usa il 600 reale. */
body.home .td-about-simple p strong {
  font-weight: 600;
}

body.home .td-about-simple p em {
  font-style: italic;
}


/* ── Services ───────────────────────────────────────────────
   Sezione interamente Elementor. Qui solo il ritmo verticale
   dell'elenco puntato e l'ancoraggio sotto il menu fisso.   */
body.home .td-svc-row {
  scroll-margin-top: 6rem;
}

body.home .td-svc-list .elementor-icon-list-icon {
  opacity: .85;
}


/* ── Nav trasparente in cima ────────────────────────────────
   In home la barra galleggia sulla hero: nessun fondo pieno,
   solo una sfumatura discendente che tiene leggibili logo e
   voci. Oltre i 60px torna avorio opaca. La classe .scrolled
   la applica 39-travel.js. Solo su .home: altrove la nav sta
   su fondo chiaro.                                          */
body.home .td-nav {
  transition: background-color .4s ease, backdrop-filter .4s ease,
              padding .4s ease, box-shadow .4s ease;
}

body.home .td-nav:not(.scrolled):not(.is-open) {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  border-bottom-color: transparent !important;
}

/* La sfumatura scende oltre il bordo della barra, così non si
   vede dove finisce. z-index negativo: dietro alle voci ma
   davanti allo sfondo (trasparente) della nav. */
body.home .td-nav::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 190px;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  transition: opacity .4s ease;
  background: linear-gradient(
    180deg,
    rgba(44, 44, 44, .46) 0%,
    rgba(44, 44, 44, .26) 42%,
    rgba(44, 44, 44, .08) 76%,
    rgba(44, 44, 44, 0) 100%
  );
}

body.home .td-nav:not(.scrolled):not(.is-open)::before {
  opacity: 1;
}

/* Il logo ha "travel design" in nero: sopra la foto va invertito. */
body.home .td-nav .td-logo img {
  transition: filter .4s ease;
}

body.home .td-nav:not(.scrolled):not(.is-open) .td-logo img {
  filter: brightness(0) invert(1) drop-shadow(0 2px 10px rgba(0, 0, 0, .35));
}

body.home .td-nav:not(.scrolled):not(.is-open) .td-nav-links li a {
  color: var(--color-ivory);
  text-shadow: 0 1px 12px rgba(44, 44, 44, .5);
}

body.home .td-nav:not(.scrolled):not(.is-open) .td-nav-links li a:hover {
  color: var(--color-gold);
}

body.home .td-nav:not(.scrolled):not(.is-open) .td-nav-toggle {
  color: var(--color-ivory);
  text-shadow: 0 1px 12px rgba(44, 44, 44, .5);
}

body.home .td-nav:not(.scrolled):not(.is-open) .td-nav-enquire {
  color: var(--color-ivory);
  border-color: rgba(245, 241, 236, .7);
}

body.home .td-nav:not(.scrolled):not(.is-open) .td-nav-enquire:hover {
  background: var(--color-ivory);
  border-color: var(--color-ivory);
  color: var(--color-charcoal);
}

/* Menu mobile aperto: fondo pieno anche se non si è scrollato. */
body.home .td-nav.is-open {
  background: rgba(245, 241, 236, .98);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
