/**
 * Site-wide type and component polish.
 *
 * This is deliberately loaded after the catalogue and reference styles so
 * Elementor, Gutenberg and PHP-rendered templates share the same readable
 * Lora/Manrope system without changing markup or business behaviour.
 */

/* Catalogue surfaces follow the About editorial type contract, including
   templates whose body does not carry the reference-page class. */
.swt-offers__grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.swt-offer-card {display:flex;flex-direction:column;min-width:0;border:1px solid #e5e5e5;border-radius:16px;overflow:hidden;background:#fff}
.swt-offer-card__image {display:block;position:relative;aspect-ratio:3/2;background:#f5f1ec;overflow:hidden}
.swt-offer-card__image img {width:100%;height:100%;object-fit:cover}
.swt-offer-card__image>span {position:absolute;top:1rem;left:1rem;background:#fff;color:#bb3d0b;padding:.4rem .8rem;border-radius:20px;font:700 .8rem var(--font-ui)}
.swt-offer-card__body {display:flex;flex-direction:column;align-items:flex-start;flex:1;padding:1.4rem}
body .swt-offer-card h3 {font:700 1.5rem/1.2 var(--font-display);margin:0 0 .8rem}
body .swt-offer-card h3 a {color:var(--sunward-primary,#e85a1f)}
body .swt-offer-card h3 a:hover,
body .swt-offer-card h3 a:focus-visible {color:var(--sunward-primary-dark,#c84512)}
.swt-offer-card__body p {font:500 1rem/1.7 var(--font-body);color:#3d3d3d;margin:0 0 1.25rem}
.swt-offer-card__body .btn {margin-top:auto}
body .swt-memberships {background:#fff;border-top:1px solid #eee;padding-block:3rem}
body .swt-memberships h2 {font:700 clamp(1.25rem,2vw,1.6rem)/1.3 var(--font-body);color:var(--clay,#ef571b);margin:0 0 2rem}
.swt-memberships__logos {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;gap:1.5rem;list-style:none;padding:0;margin:0}
.swt-memberships__logos li {display:flex;align-items:center;justify-content:center;min-width:0;height:110px}
.swt-memberships__logos img {display:block;max-width:100%;max-height:110px;width:auto;height:auto;object-fit:contain}
@media(max-width:1024px){.swt-offers__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.swt-memberships__logos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.swt-offers__grid{grid-template-columns:1fr}.swt-memberships__logos{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.swt-memberships__logos li{height:90px}.swt-memberships__logos img{max-height:90px}}

body :is(.swt-vehicle-catalogue,.swt-v2-vehicle,.swt-visa-vehicles,.swt-v2-directory,.swt-v2-car-hire) :is(h1,h2,h3) {
  font-family:var(--font-display,"Lora",serif);font-weight:700;letter-spacing:-.018em;line-height:1.08;
}
body :is(.swt-directory-head,.swt-section-heading) h2 {
  font-family:var(--font-display,"Lora",serif);font-size:clamp(1.85rem,3.4vw,3.4rem);font-weight:700;color:#171717;
}
body .swt-vehicle-card .swt-vehicle-card__body h2,
body .swt-vehicle-card .swt-vehicle-card__body h2 a {font-family:var(--font-display,"Lora",serif);font-size:clamp(1.35rem,2vw,1.65rem);font-weight:700;color:#1c1c1c;line-height:1.2}
body :is(.swt-directory-head,.swt-section-heading,.swt-service-proof,.swt-vehicle-card__body) p {font-family:var(--font-body,"Manrope",sans-serif);font-weight:500;color:#3d3d3d;line-height:1.7;font-size:1rem}
body .swt-vehicle-card :is(.swt-vehicle-features,.swt-vehicle-services) {font-family:var(--font-ui,"Manrope",sans-serif);font-weight:600;color:#555;font-size:.875rem;line-height:1.6}
body .swt-vehicle-card .btn {font-family:var(--font-ui,"Manrope",sans-serif);font-weight:700}
body .swt-vehicle-card__media {aspect-ratio:3/2;background:#f5f5f5}
body .swt-vehicle-card__media img {width:100%;height:100%;object-fit:contain;object-position:center}
body .swt-v2-vehicle .swt-product-hero__media img {object-fit:contain;background:#f5f5f5}
body .swt-vehicle-image-credit,body .swt-vehicle-card__body .swt-vehicle-image-credit {font:500 .72rem/1.5 var(--font-body,"Manrope",sans-serif);color:#555;margin:0 0 1rem}
body .swt-vehicle-image-credit a {color:inherit;text-decoration:underline}
body .swt-vehicle-card__body .swt-vehicle-image-credit {order:10;margin:1rem 0 0;padding-top:.75rem;border-top:1px solid #e5e5e5}
body .swt-vehicle-catalogue .swt-section-heading>p {color:#3d3d3d;font-weight:500;font-size:1.0625rem}
body .swt-vehicle-catalogue .swt-section-heading h2 {font-size:clamp(1.85rem,3.4vw,3.4rem);line-height:1.04;letter-spacing:-.025em}
body .swt-vehicle-card .swt-vehicle-features li {font-size:.875rem;font-weight:600;color:#555}
body .swt-section-heading--light :is(h2,p) {color:#fff}

/* Mobile homepage: size the slide stack from its copy, not a desktop-height
   canvas. All slides share one grid cell so rotation never shifts the page. */
@media (max-width:767px) {
  body.reference-home .ref-hero.hero {
    height:auto;min-height:0;max-height:none;margin-top:0;margin-bottom:0;
  }
  body.reference-home .ref-hero.hero .hero-slides {
    display:grid;position:relative;inset:auto;min-width:0;
  }
  body.reference-home .ref-hero.hero .hero-slide {
    grid-area:1 / 1;position:relative;inset:auto;min-width:0;min-height:0;
  }
  body.reference-home .ref-hero.hero .ref-hero__content-wrap {
    align-items:center;box-sizing:border-box;height:auto;min-height:0;
    width:100%;max-width:100%;padding:2.5rem 1.25rem 4rem;
  }
  body.reference-home .ref-hero.hero .ref-hero__content {
    flex:1 1 0;min-width:0;width:100%;max-width:100%;margin-inline:0;
  }
  body.reference-home .ref-hero.hero .ref-hero__content :is(h1,h2) {
    font-size:clamp(2rem,8.5vw,2.75rem);line-height:1.1;
    overflow-wrap:anywhere;margin-block:.75rem 1rem;
  }
  body.reference-home .ref-hero.hero .ref-hero__content .lede {
    font-size:1rem;line-height:1.6;margin-top:0;
  }
  body.reference-home .ref-hero.hero .ref-hero__actions {gap:.625rem;margin-top:1.25rem}
  body.reference-home .ref-hero.hero .ref-hero__actions .btn {
    min-width:0;max-width:100%;white-space:normal;padding-inline:1rem;
  }
  body.reference-home .elementor .elementor-element .ref-journey-finder {margin-top:0;padding-block:1rem 0 !important}
  body.reference-home .ref-journey-finder .journey-finder-section {margin:0;padding-block:0}
}

/* The editorial contract used by the About pages, extended to every
   WordPress-rendered content surface. */
body,
body .site-main,
body .wp-site-blocks,
body .wp-block-post-content,
body .entry-content,
body .swt-pack-content,
body .article-single,
body .guide-single,
body .tour-single {
  color: var(--sunward-body, #3d3d3d);
  font-family: var(--font-body, "Manrope", sans-serif);
  font-weight: 500;
}

/* All public reference/template headings use the two supplied Lora weights.
   This also corrects legacy 500 declarations on archive, visa, vehicle and
   destination-guide headings without touching body copy or navigation. */
body.swt-reference-ui :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-display, "Lora", serif);
  font-weight: 700;
}

/* Several older template rules are intentionally very specific (and a few
   use 500 for Lora). Keep the menu's functional headings alone, while
   normalising the public reference, catalogue and content-pack headings. */
body.swt-reference-ui [class*="swt-"] :is(h1, h2, h3, h4, h5, h6),
body.swt-reference-ui [class*="ref-"] :is(h1, h2, h3, h4, h5, h6),
body.swt-reference-ui .page-hero :is(h1, h2, h3, h4, h5, h6),
body.swt-reference-ui .tour-single :is(h1, h2, h3, h4, h5, h6),
body.swt-reference-ui .guide-single :is(h1, h2, h3, h4, h5, h6),
body.swt-reference-ui .article-single :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--font-display, "Lora", serif);
  font-weight: 700 !important;
}

body :where(.entry-content, .wp-block-post-content, .swt-pack-content, .article-single__body, .guide-single__body, .tour-single__body) :where(h1, h2, h3, h4, h5, h6) {
  color: var(--sunward-heading, #171717);
  font-family: var(--font-display, "Lora", serif);
  font-weight: 700;
  letter-spacing: -.018em;
  line-height: 1.08;
  text-wrap: balance;
}

body :where(.entry-content, .wp-block-post-content, .swt-pack-content, .article-single__body, .guide-single__body, .tour-single__body) :where(p, li, dd, dt, table, figcaption, cite) {
  color: var(--sunward-body, #3d3d3d);
  font-family: var(--font-body, "Manrope", sans-serif);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.72;
}

body :where(.entry-content, .wp-block-post-content, .swt-pack-content) :where(h1) {
  font-size: clamp(2.5rem, 6vw, 5.5rem);
}

body :where(.entry-content, .wp-block-post-content, .swt-pack-content) :where(h2) {
  font-size: clamp(2rem, 4vw, 3.75rem);
}

body :where(.entry-content, .wp-block-post-content, .swt-pack-content) :where(h3) {
  font-size: clamp(1.45rem, 2.5vw, 2.1rem);
}

body :where(.entry-content, .wp-block-post-content, .swt-pack-content) :where(h4, h5, h6) {
  font-size: clamp(1.15rem, 1.8vw, 1.45rem);
}

/* Elementor widgets use native controls and remain fully editable. */
body.swt-elementor-ui :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content, .elementor-widget-post-content) :where(p, li, td, th, figcaption) {
  color: var(--sunward-body, #3d3d3d);
  font-family: var(--font-body, "Manrope", sans-serif);
  font-weight: 500;
  line-height: 1.7;
}

body.swt-elementor-ui :where(.elementor-widget-heading, .elementor-widget-theme-post-title) :where(h1, h2, h3, h4, h5, h6) {
  color: var(--sunward-heading, #171717);
  font-family: var(--font-display, "Lora", serif);
  font-weight: 700;
  letter-spacing: -.018em;
  line-height: 1.08;
  text-wrap: balance;
}

body.swt-elementor-ui :where(.elementor-button, .elementor-cta__button, .elementor-widget-button a) {
  font-family: var(--font-body, "Manrope", sans-serif);
  font-weight: 800;
  letter-spacing: .015em;
}

/* Homepage sections use the same display scale as the About page. The
   catalogue card labels stay Manrope, while editorial headings use Lora 700. */
body.reference-home :is(.ref-section-header, .ref-destination-hub__copy, .ref-global__intro, .ref-partner__grid, .ref-confidence__grid, .ref-final-cta__content) h2 {
  color: var(--sunward-heading, #171717);
  font-family: var(--font-display, "Lora", serif);
  font-size: clamp(2.1rem, 3.8vw, 3.65rem);
  font-weight: 700 !important;
  letter-spacing: -.02em;
  line-height: 1.04;
}

body.reference-home :is(.ref-section-header__intro, .ref-destination-hub__copy > p:not(.eyebrow), .ref-global__intro > p:not(.eyebrow), .ref-partner__grid > div > p, .ref-confidence__intro, .ref-final-cta__content > p) {
  font-family: var(--font-body, "Manrope", sans-serif);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.7;
}

body.reference-home :is(.ref-safari-grid, .ref-holiday-grid, .ref-destination-hub__cards, .ref-global__offices, .ref-mice__grid, .ref-confidence__cards, .ref-trust__grid, .ref-testimonials__grid, .ref-articles__grid) :is(h2, h3, h4, .holiday-card__destination, .ref-destination-card__name, .ref-global-card__city) {
  font-family: var(--font-display, "Lora", serif);
  font-weight: 700 !important;
  letter-spacing: -.012em;
  line-height: 1.12;
}

/* Some homepage cards intentionally use paragraphs instead of headings so
   their Elementor controls remain simple. Give those title-like labels the
   same editorial treatment as the semantic headings above. */
body.reference-home .ref-confidence-card__label,
body.reference-home .ref-trust-card h3,
body.reference-home .ref-quick-card__label {
  color: var(--sunward-card-heading, #1c1c1c);
  font-family: var(--font-display, "Lora", serif) !important;
  font-size: clamp(1.12rem, 1.35vw, 1.34rem);
  font-weight: 700 !important;
  letter-spacing: -.012em;
  line-height: 1.16;
}

body.reference-home .ref-confidence-card__body,
body.reference-home .ref-trust-card p,
body.reference-home .ref-quick-card__blurb {
  color: var(--sunward-body, #3d3d3d);
  font-family: var(--font-body, "Manrope", sans-serif) !important;
  font-size: .9375rem;
  font-weight: 500 !important;
  line-height: 1.62;
}

body.reference-home .ref-mice-card__overlay p,
body.reference-home .ref-destination-card__name,
body.reference-home .ref-global-card__city {
  font-family: var(--font-display, "Lora", serif) !important;
  font-weight: 700 !important;
  letter-spacing: -.012em;
  line-height: 1.12;
}

body.reference-home .ref-mice-card__overlay p,
body.reference-home .ref-destination-card__name,
body.reference-home .ref-global-card__city {
  color: var(--ivory, #fff) !important;
}

/* Featured holidays expose the same editable layout choice as safaris. The
   carousel remains touch-friendly without changing the card markup or data;
   Grid stays the stable default for existing Elementor documents. */
body.reference-home .ref-featured-holidays--carousel .ref-holiday-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: 1.25rem;
  overflow-x: auto;
  padding-bottom: .5rem;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}

body.reference-home .ref-featured-holidays--carousel .ref-holiday-grid > .holiday-card {
  flex: 0 0 min(82vw, 22rem);
  scroll-snap-align: start;
}

@media (min-width: 48rem) {
  body.reference-home .ref-featured-holidays--carousel .ref-holiday-grid > .holiday-card {
    flex-basis: calc((100% - 2.5rem) / 3);
  }
}

/* Image-led destination hub: attraction photography replaces the Visa flag
   treatment and the cards use a calmer editorial masonry rhythm. */
body.reference-home .ref-destination-hub--image-led {
  overflow: hidden;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-hub__copy {
  max-width: 34rem;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-hub__cards {
  gap: 1rem;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-card {
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 1.15rem;
  box-shadow: 0 1.25rem 2.75rem rgba(61, 27, 12, .2);
  min-height: 12rem;
  transition: transform .3s ease, box-shadow .3s ease;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-card:hover,
body.reference-home .ref-destination-hub--image-led .ref-destination-card:focus-visible {
  box-shadow: 0 1.5rem 3.25rem rgba(61, 27, 12, .28);
  transform: translateY(-4px);
}

body.reference-home .ref-destination-hub--image-led .ref-destination-card__overlay {
  background: linear-gradient(180deg, rgba(23, 17, 13, .02) 28%, rgba(23, 17, 13, .86) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.15rem;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-card__name {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
}

@media (min-width: 64rem) {
  body.reference-home .ref-destination-hub--image-led .ref-destination-hub__grid {
    align-items: stretch;
    gap: clamp(3.5rem, 6vw, 6rem);
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  }

  body.reference-home .ref-destination-hub--image-led .ref-destination-hub__copy {
    align-self: center;
  }

  body.reference-home .ref-destination-hub--image-led .ref-destination-hub__cards {
    grid-auto-rows: minmax(10rem, 1fr);
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.reference-home .ref-destination-hub--image-led .ref-destination-card:first-child {
    grid-row: span 2;
    min-height: 21rem;
  }

body.reference-home .ref-destination-hub--image-led .ref-destination-card:nth-child(4) {
    grid-column: span 2;
  }
}

/* Destination hub layout controls: grid is the calm, balanced default while
   the optional carousel keeps cards touch-friendly on smaller screens. */
body.reference-home .ref-destination-hub--image-led {
  background: #fff;
  color: var(--sunward-body, #3d3d3d);
}

body.reference-home .ref-destination-hub--image-led .ref-destination-hub__grid {
  display: block;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-hub__copy {
  margin-bottom: 2rem;
  max-width: 42rem;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-hub__features {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 38rem;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-hub__actions {
  align-items: center;
  gap: .75rem;
  margin-top: 1.5rem;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-hub__cards {
  grid-template-columns: 1fr;
}

body.reference-home .ref-destination-hub--image-led .ref-destination-card {
  aspect-ratio: 3 / 2;
  border: 1px solid rgba(23, 23, 23, .1);
  box-shadow: 0 .75rem 2rem rgba(23, 23, 23, .08);
}

@media (min-width: 48rem) {
  body.reference-home .ref-destination-hub--image-led .ref-destination-hub__cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.reference-home .ref-destination-hub--image-led .ref-destination-hub__features {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

body.reference-home .ref-destination-hub--grid .ref-destination-hub__cards {
  align-items: stretch;
  grid-auto-rows: auto;
  grid-template-columns: 1fr;
}

body.reference-home .ref-destination-hub--grid .ref-destination-card,
body.reference-home .ref-destination-hub--grid .ref-destination-card:first-child,
body.reference-home .ref-destination-hub--grid .ref-destination-card:nth-child(4) {
  grid-column: auto;
  grid-row: auto;
  min-height: 0;
}

body.reference-home .ref-destination-hub--grid .ref-destination-card {
  aspect-ratio: 3 / 2;
}

@media (min-width: 48rem) {
  body.reference-home .ref-destination-hub--grid .ref-destination-hub__cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

body.reference-home .ref-destination-hub--carousel .ref-destination-hub__cards {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: .6rem;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}

body.reference-home .ref-destination-hub--carousel .ref-destination-card {
  flex: 0 0 min(78vw, 20rem);
  aspect-ratio: 4 / 3;
  scroll-snap-align: start;
}

@media (min-width: 64rem) {
  body.reference-home .ref-destination-hub--carousel .ref-destination-card {
    flex-basis: calc((100% - 2rem) / 3);
  }
}

/* Safari/tour cards use class-only title elements rather than headings. These
   explicit selectors are required to beat the legacy card rule that assigned
   Manrope or Lora 500 at higher specificity. */
body.swt-reference-ui .tour-card .tour-card__title,
body.swt-reference-ui .safari-card .safari-card__title,
body.reference-home .ref-safari-grid .tour-card__title,
body.reference-home .ref-safari-grid .safari-card__title {
  color: var(--sunward-card-heading, #1c1c1c);
  font-family: var(--font-display, "Lora", serif) !important;
  font-size: clamp(1.18rem, 1.8vw, 1.42rem);
  font-weight: 700 !important;
  letter-spacing: -.012em;
  line-height: 1.12;
}

body.swt-reference-ui .tour-card :is(.tour-card__type, .tour-card__code, .tour-card__duration),
body.swt-reference-ui .safari-card :is(.safari-card__style, .safari-card__code),
body.swt-reference-ui .tour-card .tour-card__footer a,
body.swt-reference-ui .safari-card .safari-card__footer a {
  font-family: var(--font-body, "Manrope", sans-serif) !important;
  font-weight: 800 !important;
}

body.swt-reference-ui .tour-card .tour-card__excerpt,
body.swt-reference-ui .safari-card .safari-card__excerpt,
body.reference-home .ref-section-header__intro {
  color: var(--sunward-body, #3d3d3d);
  font-family: var(--font-body, "Manrope", sans-serif) !important;
  font-size: 1rem;
  font-weight: 500 !important;
  line-height: 1.68;
}

body.swt-reference-ui .tour-card--overlay .tour-card__title,
body.swt-reference-ui .tour-card--overlay .tour-card__title a,
body.swt-reference-ui .tour-card--overlay .tour-card__excerpt,
body.swt-reference-ui .tour-card--overlay .tour-card__body > p {
  color: #fff;
}

body.reference-home :is(.ref-safari-grid, .ref-holiday-grid, .ref-destination-hub__cards, .ref-global__offices, .ref-mice__grid, .ref-confidence__cards, .ref-trust__grid, .ref-testimonials__grid, .ref-articles__grid) :is(p, li, .tour-card__excerpt, .holiday-card__type, .ref-global-card__role, .ref-global-card__detail) {
  font-family: var(--font-body, "Manrope", sans-serif);
  font-weight: 500;
  line-height: 1.62;
}

/* Theme-orange is a first-class Elementor tone, not a one-off override. */
body.reference-home .tone-orange {
  background: var(--sunward-primary, #e85a1f) !important;
  color: #fff;
  position: relative;
}

body.reference-home .tone-orange :is(h2, h3, h4),
body.reference-home .tone-orange .ref-global__intro > p:not(.eyebrow),
body.reference-home .tone-orange .ref-destination-hub__copy > p:not(.eyebrow),
body.reference-home .tone-orange .ref-destination-hub__features li {
  color: #fff;
}

body.reference-home .tone-orange .ref-global__intro h2,
body.reference-home .tone-orange .ref-destination-hub__copy h2 {
  color: #fff;
}

body.reference-home .tone-orange .ref-global__intro .eyebrow,
body.reference-home .tone-orange .ref-destination-hub__copy .eyebrow,
body.reference-home .tone-orange .ref-destination-card__region,
body.reference-home .tone-orange .ref-global-card__region {
  color: var(--sunward-gold, #f4b83c);
}

body.reference-home .tone-orange .ref-destination-hub__feature-icon {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

body.reference-home .tone-orange .ref-global__stats {
  border-top-color: rgba(255, 255, 255, .26);
}

body :where(.eyebrow, .section-eyebrow, .swt-label, .swt-landing-eyebrow, .tour-single__eyebrow, .guide-single__eyebrow) {
  font-family: var(--font-body, "Manrope", sans-serif);
  font-weight: 800;
  letter-spacing: .16em;
}

/* Give theme/editor content a calm, premium reading rhythm. */
body.swt-reference-ui .swt-pack-content {
  max-width: 66rem;
  padding-block: clamp(3.25rem, 6vw, 5.5rem);
}

body.swt-reference-ui .swt-pack-section {
  background: linear-gradient(145deg, #fff 0%, color-mix(in srgb, var(--ivory, #fff) 92%, var(--sand, #e8e4de)) 100%);
  border: 1px solid color-mix(in srgb, var(--sand, #e8e4de) 86%, transparent);
  border-radius: 1.25rem;
  box-shadow: 0 18px 45px -32px rgba(44, 36, 27, .34);
  margin-block: 1.5rem;
  padding: clamp(1.5rem, 3.5vw, 3rem);
}

body.swt-reference-ui .swt-pack-section:first-child { margin-top: 0; }
body.swt-reference-ui .swt-pack-section:last-child { margin-bottom: 0; }

body.swt-reference-ui .swt-pack-subsection {
  border-color: color-mix(in srgb, var(--sand, #e8e4de) 90%, transparent);
  border-radius: 1rem;
  box-shadow: 0 12px 28px -24px rgba(44, 36, 27, .5);
}

/* Gutenberg blocks and classic-editor content get the same treatment. */
body :where(.entry-content, .wp-block-post-content) .wp-block-quote,
body :where(.entry-content, .wp-block-post-content) blockquote {
  background: color-mix(in srgb, var(--ivory, #fff) 92%, var(--sand, #e8e4de));
  border-inline-start: 3px solid var(--clay, #8a3a1c);
  border-radius: 0 .9rem .9rem 0;
  color: var(--sunward-secondary, #555);
  margin-block: 2rem;
  padding: 1.25rem 1.5rem;
}

body :where(.entry-content, .wp-block-post-content) .wp-block-table,
body :where(.entry-content, .wp-block-post-content) table {
  border: 1px solid var(--sand, #e8e4de);
  border-collapse: separate;
  border-radius: .9rem;
  border-spacing: 0;
  overflow: hidden;
  width: 100%;
}

body :where(.entry-content, .wp-block-post-content) :where(th, td) {
  border-color: var(--sand, #e8e4de);
  padding: .8rem 1rem;
  text-align: start;
}

body :where(.entry-content, .wp-block-post-content) th {
  background: color-mix(in srgb, var(--ivory, #fff) 88%, var(--sand, #e8e4de));
  color: var(--sunward-heading, #171717);
  font-weight: 800;
}

body :where(.entry-content, .wp-block-post-content) .wp-block-image img,
body :where(.entry-content, .wp-block-post-content) figure img {
  border-radius: 1rem;
  box-shadow: 0 18px 38px -26px rgba(44, 36, 27, .42);
}

/* Catalogue and archive cards: consistent hierarchy, without changing grids. */
body.swt-reference-ui :where(.service-card, .article-card, .swt-content-card, .tour-card, .holiday-card, .guide-card, .swt-country-card, .swt-vehicle-card, .swt-guidance-card, .swt-spec-card, .swt-official-card, .swt-v2-detail-block) {
  border-radius: 1rem;
  box-shadow: 0 16px 38px -28px rgba(44, 36, 27, .42);
  transition: border-color var(--transition, 220ms ease), box-shadow var(--transition, 220ms ease), transform var(--transition, 220ms ease);
}

body.swt-reference-ui :where(a.service-card, a.article-card, a.tour-card, a.holiday-card, a.guide-card, a.swt-country-card, a.swt-vehicle-card):hover,
body.swt-reference-ui :where(a.service-card, a.article-card, a.tour-card, a.holiday-card, a.guide-card, a.swt-country-card, a.swt-vehicle-card):focus-visible {
  box-shadow: 0 22px 44px -27px rgba(44, 36, 27, .48);
  transform: translateY(-3px);
}

body.swt-reference-ui :where(.service-card, .article-card, .swt-content-card, .tour-card, .holiday-card, .guide-card, .swt-country-card, .swt-vehicle-card, .swt-guidance-card, .swt-spec-card, .swt-official-card, .swt-v2-detail-block) :where(h2, h3, h4, .swt-vehicle-card__title, .swt-country-card__name) {
  color: var(--sunward-card-heading, #1c1c1c);
  font-family: var(--font-display, "Lora", serif);
  font-weight: 700;
  line-height: 1.12;
  text-wrap: balance;
}

body.swt-reference-ui :where(.service-card, .article-card, .swt-content-card, .tour-card, .holiday-card, .guide-card, .swt-country-card, .swt-vehicle-card, .swt-guidance-card, .swt-spec-card, .swt-official-card, .swt-v2-detail-block) :where(p, li, dd, .swt-vehicle-card__excerpt) {
  color: var(--sunward-body, #3d3d3d);
  font-family: var(--font-body, "Manrope", sans-serif);
  font-weight: 500;
  line-height: 1.65;
}

/* Forms are compact and legible on both editor and PHP-rendered pages. */
body :where(.service-form-card, .swt-visa-layout, .swt-vehicle-enquiry, .swt-enquiry-form, .conversion-form, .elementor-form) :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--sand, #e8e4de) 92%, var(--sunward-secondary, #555));
  border-radius: .7rem;
  color: var(--sunward-body, #3d3d3d);
  font-family: var(--font-body, "Manrope", sans-serif);
  font-size: .94rem;
  font-weight: 500;
  line-height: 1.45;
  min-height: 3rem;
  padding: .72rem .85rem;
}

body :where(.service-form-card, .swt-visa-layout, .swt-vehicle-enquiry, .swt-enquiry-form, .conversion-form, .elementor-form) :where(input, select, textarea):focus {
  border-color: var(--clay, #8a3a1c);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--clay, #8a3a1c) 16%, transparent);
  outline: none;
}

body :where(.service-form-card, .swt-visa-layout, .swt-vehicle-enquiry, .swt-enquiry-form, .conversion-form, .elementor-form) :where(button, input[type="submit"], .btn) {
  font-family: var(--font-body, "Manrope", sans-serif);
  font-weight: 800;
}

@media (max-width: 760px) {
  body :where(.entry-content, .wp-block-post-content, .swt-pack-content) :where(h1) { font-size: clamp(2.35rem, 12vw, 4rem); }
  body :where(.entry-content, .wp-block-post-content, .swt-pack-content) :where(h2) { font-size: clamp(1.85rem, 9vw, 3rem); }
  body.swt-reference-ui .swt-pack-section { border-radius: 1rem; padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  body.swt-reference-ui :where(.service-card, .article-card, .swt-content-card, .tour-card, .holiday-card, .guide-card, .swt-country-card, .swt-vehicle-card, .swt-guidance-card, .swt-spec-card, .swt-official-card, .swt-v2-detail-block) { transition: none; }
}
