/*
Theme Name: Nomad Spirit
Theme URI: https://www.nomadspirit.ae
Description: Child theme of Twenty Twenty-Five for Nomad Spirit Tourism L.L.C. — a UAE-licensed DMC and incoming tour operator in Dubai. Colour, type and spacing are controlled from theme.json; layout components are Gutenberg-native blocks styled by the classes below.
Author: Nomad Spirit Tourism
Version: 1.0.0
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.4
Template: twentytwentyfive
Text Domain: nomad-spirit
Tags: travel, tourism, business, block-theme, full-site-editing
*/

/* =========================================================
   Token aliases — every value resolves back to theme.json,
   so editing the palette in the Site Editor updates the
   whole component layer below.
   ========================================================= */
:root{
  --ns-lime:        var(--wp--preset--color--accent-1);
  --ns-lime-strong: var(--wp--preset--color--accent-2);
  --ns-lime-soft:   var(--wp--preset--color--accent-3);
  --ns-sand:        var(--wp--preset--color--accent-4);
  --ns-mint:        var(--wp--preset--color--accent-5);
  --ns-sky:         var(--wp--preset--color--accent-6);
  --ns-blush:       var(--wp--preset--color--blush);
  --ns-cream:       var(--wp--preset--color--base);
  --ns-ink:         var(--wp--preset--color--contrast);
  --ns-ink-soft:    var(--wp--preset--color--ink-soft);
  --ns-muted:       var(--wp--preset--color--muted);
  --ns-white:       var(--wp--preset--color--white);

  --ns-line:   rgba(21,24,15,.13);
  --ns-line-2: rgba(21,24,15,.07);

  --ns-r:    22px;
  --ns-r-sm: 14px;
  --ns-r-lg: 32px;
  --ns-pill: 999px;

  --ns-display: var(--wp--preset--font-family--display);
  --ns-body:    var(--wp--preset--font-family--body);

  --ns-shadow:    0 2px 4px rgba(21,24,15,.04), 0 12px 32px rgba(21,24,15,.06);
  --ns-shadow-lg: 0 4px 8px rgba(21,24,15,.05), 0 24px 60px rgba(21,24,15,.10);
}

body{ -webkit-font-smoothing:antialiased; overflow-x:hidden; }
:focus-visible{ outline:3px solid var(--ns-lime-strong); outline-offset:3px; border-radius:4px; }
h1,h2,h3{ text-wrap:balance; }

/* =========================================================
   Type helpers (applied as block "Additional CSS class")
   ========================================================= */
.ns-eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--ns-body);
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:.5em 1.05em; border:1px solid var(--ns-line); border-radius:var(--ns-pill);
  background:var(--ns-white); color:var(--ns-ink-soft);
  width:fit-content; line-height:1.4;
}
.ns-eyebrow::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--ns-lime-strong); flex:none; }
.ns-on-dark .ns-eyebrow,
.ns-hero-video .ns-eyebrow,
.ns-page-hero--img .ns-eyebrow{
  background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3); color:#fff;
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}

/* marker highlight — wrap a word in the editor with this class */
.ns-mark{ background:var(--ns-lime); padding:.02em .22em; border-radius:6px; color:var(--ns-ink);
  -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.ns-mark-soft{ background:var(--ns-lime-soft); padding:.02em .22em; border-radius:6px; color:var(--ns-ink);
  -webkit-box-decoration-break:clone; box-decoration-break:clone; }

.ns-lede{ font-size:var(--wp--preset--font-size--large); line-height:1.6; color:var(--ns-ink-soft); max-width:62ch; }
.ns-muted{ color:var(--ns-muted); }

/* =========================================================
   Header
   ========================================================= */
.wp-site-blocks > header.wp-block-template-part{
  position:sticky; top:0; z-index:100;
  background:rgba(250,248,243,.88);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--ns-line-2);
}
.admin-bar .wp-site-blocks > header.wp-block-template-part{ top:32px; }
@media (max-width:782px){ .admin-bar .wp-site-blocks > header.wp-block-template-part{ top:46px; } }

.ns-header{ min-height:78px; }
.ns-header .wp-block-site-logo img{ height:40px; width:auto; }
.ns-brand-sub{
  font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ns-muted); margin:0; line-height:1.05;
}
.ns-header .wp-block-navigation{ font-family:var(--ns-body); }
.ns-header .wp-block-navigation .wp-block-navigation-item__content{
  padding:.55em .95em; border-radius:var(--ns-pill);
  font-size:.94rem; font-weight:500; color:var(--ns-ink-soft);
  transition:background .16s ease, color .16s ease;
}
.ns-header .wp-block-navigation .wp-block-navigation-item__content:hover{
  background:var(--ns-white); color:var(--ns-ink); text-decoration:none;
}
.ns-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content{
  background:var(--ns-lime-soft); color:var(--ns-ink);
}
.ns-header .wp-block-navigation__submenu-container{
  border:1px solid var(--ns-line); border-radius:var(--ns-r-sm);
  padding:.5rem; box-shadow:var(--ns-shadow-lg); background:var(--ns-white);
}
.ns-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content{ border-radius:10px; }

/* Contact button in the nav */
.ns-nav-cta .wp-block-button__link{ padding:.62em 1.3em; font-size:.94rem; }

/* =========================================================
   Sections
   ========================================================= */
.ns-section{ padding-block:clamp(64px, 9vw, 128px); }
.ns-section--sm{ padding-block:clamp(40px, 5.6vw, 80px); }
.ns-section-head{ max-width:74ch; margin-bottom:clamp(2.4rem, 4vw, 4rem); }

/* =========================================================
   Hero — Cover block + Vimeo iframe layer
   The Cover's own image is the poster and stays editable.
   ========================================================= */
.ns-hero-video.wp-block-cover{ min-height:min(92vh, 860px); align-items:flex-end; padding:0; }
.ns-hero-video .wp-block-cover__inner-container{ width:100%; }
.ns-hero-media{ position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.ns-hero-media iframe{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:100vw; height:56.25vw; min-height:100%; min-width:177.77vh;
  border:0; opacity:0; transition:opacity .8s ease;
}
.ns-hero-media iframe.is-ready{ opacity:1; }
.ns-hero-inner{
  position:relative; z-index:2;
  padding-block:clamp(3rem, 7vw, 5.5rem);
  max-width:var(--wp--style--global--content-size);
  margin-inline:auto;
  padding-inline:clamp(20px, 5vw, 64px);
}
.ns-hero-video h1{ color:#fff; max-width:16ch; }
.ns-hero-video p{ color:rgba(255,255,255,.88); }

/* Inner page hero */
.ns-page-hero{ padding-block:clamp(3.5rem,7vw,6rem) clamp(2.5rem,5vw,4rem); }
.ns-page-hero h1{ max-width:18ch; }
.ns-page-hero--img.wp-block-cover{ min-height:min(64vh,600px); align-items:flex-end; }
.ns-page-hero--img h1{ color:#fff; }
.ns-page-hero--img p{ color:rgba(255,255,255,.86); }
.ns-crumbs{ font-size:.85rem; color:var(--ns-muted); margin-bottom:1.2rem; }
.ns-page-hero--img .ns-crumbs{ color:rgba(255,255,255,.7); }

/* =========================================================
   Cards — core/group with class "ns-card"
   ========================================================= */
.ns-card{
  background:var(--ns-white); border:1px solid var(--ns-line); border-radius:var(--ns-r);
  padding:clamp(1.5rem, 2.3vw, 2.1rem);
  transition:transform .22s ease, box-shadow .22s ease;
  height:100%;
}
.ns-card:hover{ transform:translateY(-4px); box-shadow:var(--ns-shadow); }
.ns-card p{ color:var(--ns-ink-soft); font-size:.97rem; }
.ns-card h3{ margin-bottom:.55rem; }

/* numbered chip — add class ns-card-idx to a paragraph */
.ns-card-idx{
  font-family:var(--ns-display); font-size:.78rem; font-weight:600; letter-spacing:.1em;
  color:var(--ns-ink); background:var(--ns-lime);
  display:inline-block; padding:.3em .7em; border-radius:var(--ns-pill);
  margin:0 0 1.1rem;
}

/* Icons are applied by class so the markup stays pure blocks.
   Swap the icon in the editor by changing the ns-ico-* class. */
.ns-card[class*="ns-ico-"]::before{
  content:""; display:block; width:52px; height:52px; border-radius:16px;
  background-color:var(--ns-lime-soft); margin-bottom:1.2rem;
  background-repeat:no-repeat; background-position:center; background-size:26px 26px;
}
.ns-ico-bed::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='9' width='20' height='9' rx='2'/%3E%3Cpath d='M2 13h20M6 9V6a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v3'/%3E%3C/svg%3E")}
.ns-ico-car::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13l2-5a2 2 0 0 1 2-1.3h10A2 2 0 0 1 19 8l2 5v5h-3v-2H6v2H3z'/%3E%3Ccircle cx='7.5' cy='15.5' r='1.1'/%3E%3Ccircle cx='16.5' cy='15.5' r='1.1'/%3E%3C/svg%3E")}
.ns-ico-compass::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M15.5 8.5l-2.2 5.3-5.3 2.2 2.2-5.3z'/%3E%3C/svg%3E")}
.ns-ico-cal::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}
.ns-ico-star::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.9 6.3.7-4.7 4.3 1.3 6.2L12 17l-5.6 3.1 1.3-6.2L3 9.6l6.3-.7z'/%3E%3C/svg%3E")}
.ns-ico-support::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='3.4'/%3E%3Cpath d='M5.6 5.6l3.9 3.9M14.5 14.5l3.9 3.9M18.4 5.6l-3.9 3.9M9.5 14.5l-3.9 3.9'/%3E%3C/svg%3E")}
.ns-ico-users::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M2.5 19a6.5 6.5 0 0 1 13 0'/%3E%3Ccircle cx='17.5' cy='9' r='2.5'/%3E%3Cpath d='M16 13.4a5.6 5.6 0 0 1 5.5 5.6'/%3E%3C/svg%3E")}
.ns-ico-fork::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3v8a2 2 0 0 0 4 0V3M8 11v10M16.5 3c-1.6 1-2.5 2.6-2.5 4.6s.9 3.4 2.5 4V21'/%3E%3C/svg%3E")}
.ns-ico-doc::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E")}
.ns-ico-mail::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E")}
.ns-ico-phone::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 3h3l1.5 4-2 1.5a12 12 0 0 0 5.5 5.5L16 12l4 1.5v3a2 2 0 0 1-2.2 2A16.5 16.5 0 0 1 4.5 5.2 2 2 0 0 1 6.5 3z'/%3E%3C/svg%3E")}
.ns-ico-pin::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6 7-11a7 7 0 1 0-14 0c0 5 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E")}
.ns-ico-globe::before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315180F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3a15 15 0 0 1 0 18 15 15 0 0 1 0-18z'/%3E%3C/svg%3E")}

/* bullet lists inside cards — core/list with class ns-ticks */
.ns-ticks{ list-style:none; padding:0; margin:.9rem 0 0; }
.ns-ticks li{ position:relative; padding-left:1.4em; margin-bottom:.45em; font-size:.95rem; color:var(--ns-ink-soft); }
.ns-ticks li::before{ content:""; position:absolute; left:0; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--ns-lime-strong); }

/* =========================================================
   Destination cards — core/cover with class ns-dest-card
   ========================================================= */
.ns-dest-card.wp-block-cover{
  min-height:clamp(320px, 38vw, 460px);
  border-radius:var(--ns-r); overflow:hidden;
  align-items:flex-end; justify-content:flex-start;
  transition:transform .3s cubic-bezier(.2,.7,.3,1);
  padding:clamp(1.3rem, 2.2vw, 1.9rem);
}
.ns-dest-card.wp-block-cover:hover{ transform:translateY(-6px); }
.ns-dest-card .wp-block-cover__image-background{ transition:transform .6s cubic-bezier(.2,.7,.3,1); }
.ns-dest-card.wp-block-cover:hover .wp-block-cover__image-background{ transform:scale(1.06); }
.ns-dest-card .wp-block-cover__inner-container{ width:100%; }
.ns-dest-card h3{ color:#fff; margin-bottom:.3rem; }
.ns-dest-card p{ font-size:.92rem; color:rgba(255,255,255,.78); margin:0; }
.ns-dest-card--tall.wp-block-cover{ min-height:clamp(380px, 46vw, 560px); }

/* =========================================================
   Stats band
   ========================================================= */
.ns-stats{
  border:1px solid var(--ns-line); border-radius:var(--ns-r);
  overflow:hidden; background:var(--ns-white);
  display:grid; grid-template-columns:repeat(5,1fr); gap:0 !important;
}
.ns-stat{ padding:clamp(1.5rem,2.6vw,2.4rem); border-right:1px solid var(--ns-line); }
.ns-stat:last-child{ border-right:0; }
.ns-stat-n{
  font-family:var(--ns-display); font-size:clamp(2.1rem,3.6vw,3rem); font-weight:600;
  line-height:1; letter-spacing:-.03em; margin:0 0 .35rem;
}
.ns-stat-l{ font-size:.82rem; font-weight:600; letter-spacing:.04em; margin:0 0 .4rem; }
.ns-stat-d{ font-size:.85rem; color:var(--ns-muted); line-height:1.5; margin:0; }
@media (max-width:1040px){
  .ns-stats{ grid-template-columns:repeat(2,1fr); }
  .ns-stat{ border-bottom:1px solid var(--ns-line); }
  .ns-stat:nth-child(2n){ border-right:0; }
}
@media (max-width:560px){ .ns-stats{ grid-template-columns:1fr; } .ns-stat{ border-right:0; } }

/* =========================================================
   Reach rows — core/list styled as pills
   ========================================================= */
.ns-reach-row{ border-top:1px solid var(--ns-line); padding-block:1.6rem; }
.ns-reach-row:last-child{ border-bottom:1px solid var(--ns-line); }
.ns-tags{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.ns-tags li{
  padding:.45em 1em; border:1px solid var(--ns-line); border-radius:var(--ns-pill);
  font-size:.9rem; background:var(--ns-white); margin:0;
}
.ns-tags--on li{ background:var(--ns-lime); border-color:var(--ns-lime); font-weight:500; }

/* =========================================================
   Process steps / experience rows — CSS counters
   ========================================================= */
.ns-steps{ counter-reset:nsstep; }
.ns-step{ position:relative; padding-top:2.6rem; border-top:2px solid var(--ns-ink); }
.ns-step::before{
  counter-increment:nsstep; content:"0" counter(nsstep);
  position:absolute; top:-1px; left:0; transform:translateY(-50%);
  background:var(--ns-lime); color:var(--ns-ink);
  font-family:var(--ns-display); font-weight:600; font-size:.8rem;
  padding:.35em .75em; border-radius:var(--ns-pill);
}
.ns-step h4,.ns-step h3{ margin-bottom:.4rem; }
.ns-step p{ font-size:.94rem; color:var(--ns-ink-soft); }

.ns-xp-list{ counter-reset:nsxp; }
.ns-xp{
  display:grid; grid-template-columns:auto 1fr; gap:1.4rem;
  padding-block:2rem; border-top:1px solid var(--ns-line);
}
.ns-xp:last-child{ border-bottom:1px solid var(--ns-line); }
.ns-xp::before{
  counter-increment:nsxp; content:"0" counter(nsxp);
  font-family:var(--ns-display); font-weight:600; font-size:.85rem;
  color:var(--ns-muted); padding-top:.35rem; min-width:2.5rem;
}
.ns-xp > *{ grid-column:2; }
.ns-xp h3{ margin-bottom:.5rem; }
.ns-xp p{ color:var(--ns-ink-soft); max-width:64ch; margin:0; }
@media (max-width:640px){
  .ns-xp{ grid-template-columns:1fr; gap:.6rem; }
  .ns-xp::before{ grid-column:1; }
  .ns-xp > *{ grid-column:1; }
}

/* =========================================================
   CTA band
   ========================================================= */
.ns-cta-band{
  position:relative; overflow:hidden;
  background:var(--ns-ink); color:var(--ns-cream);
  border-radius:var(--ns-r-lg);
  padding:clamp(2.5rem, 6vw, 5rem) !important;
  text-align:center;
}
.ns-cta-band::after{
  content:""; position:absolute; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(169,228,52,.24), transparent 68%);
  top:-180px; right:-120px; z-index:0; pointer-events:none;
}
.ns-cta-band > *{ position:relative; z-index:1; }
.ns-cta-band h2{ color:#fff; max-width:20ch; margin-inline:auto; }
.ns-cta-band p{ color:rgba(250,248,243,.74); max-width:60ch; margin-inline:auto; }
.ns-cta-band .wp-block-buttons{ justify-content:center; }
.ns-cta-band .is-style-outline .wp-block-button__link{ color:#fff; border-color:rgba(255,255,255,.4); }
.ns-cta-band .is-style-outline .wp-block-button__link:hover{ background:rgba(255,255,255,.1); border-color:#fff; }

/* =========================================================
   Footer
   ========================================================= */
.wp-site-blocks > footer.wp-block-template-part{ background:var(--ns-ink); color:rgba(250,248,243,.72); }
.ns-footer h2,.ns-footer h3,.ns-footer h4{
  color:#fff; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  margin-bottom:1.1rem; font-weight:600; font-family:var(--ns-body);
}
.ns-footer p,.ns-footer li{ color:rgba(250,248,243,.72); font-size:.95rem; }
.ns-footer a{ color:rgba(250,248,243,.72); text-decoration:none; }
.ns-footer a:hover{ color:var(--ns-lime); }
.ns-footer .wp-block-list{ list-style:none; padding:0; margin:0; display:grid; gap:.6rem; }
.ns-footer .wp-block-site-logo img{ height:52px; width:auto; }
.ns-footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:1.6rem; margin-top:clamp(2.5rem,5vw,4rem); font-size:.86rem;
}
.ns-footer-tag{ font-family:var(--ns-display); color:var(--ns-lime); font-size:.95rem; }

/* =========================================================
   WhatsApp float
   ========================================================= */
.ns-wa{
  position:fixed; right:20px; bottom:20px; z-index:90;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; display:grid; place-items:center;
  box-shadow:0 8px 26px rgba(37,211,102,.4);
  transition:transform .2s ease;
}
.ns-wa:hover{ transform:scale(1.08); }
.ns-wa svg{ width:30px; height:30px; fill:#fff; }

/* =========================================================
   Contact Form 7
   ========================================================= */
.ns-form-panel{
  background:var(--ns-white); border:1px solid var(--ns-line);
  border-radius:var(--ns-r-lg); padding:clamp(1.6rem, 3.4vw, 3rem);
}
.wpcf7-form p{ margin:0 0 1.1rem; }
.ns-field{ display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.1rem; }
.ns-field > label{ font-size:.86rem; font-weight:600; color:var(--ns-ink-soft); }
.ns-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
@media (max-width:640px){ .ns-form-row{ grid-template-columns:1fr; } }

.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form input[type=tel],
.wpcf7-form input[type=url],
.wpcf7-form select,
.wpcf7-form textarea{
  font:inherit; font-size:.97rem; width:100%;
  padding:.85em 1.1em; border:1px solid var(--ns-line); border-radius:var(--ns-r-sm);
  background:var(--ns-white); color:var(--ns-ink);
  transition:border-color .16s ease, box-shadow .16s ease;
}
.wpcf7-form textarea{ min-height:150px; resize:vertical; }
.wpcf7-form input:focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus{
  outline:none; border-color:var(--ns-lime-strong); box-shadow:0 0 0 4px #F4FCE4;
}
.wpcf7-form select{
  appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236E7566' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1.1em center; background-size:12px;
  padding-right:2.6em;
}
.wpcf7-form input[type=submit],
.wpcf7-form .wpcf7-submit{
  font-family:var(--ns-display); font-weight:500; font-size:.98rem;
  background:var(--ns-lime); color:var(--ns-ink);
  border:1.5px solid var(--ns-lime); border-radius:var(--ns-pill);
  padding:.92em 1.7em; cursor:pointer;
  transition:transform .18s ease, background .18s ease;
}
.wpcf7-form input[type=submit]:hover{ background:var(--ns-lime-strong); border-color:var(--ns-lime-strong); transform:translateY(-2px); }
.wpcf7-spinner{ margin:0 0 0 .6rem; }
.wpcf7-not-valid-tip{ font-size:.82rem; color:#C0392B; }
.wpcf7 form .wpcf7-response-output{
  margin:1.2rem 0 0; padding:.9em 1.1em; border-radius:var(--ns-r-sm);
  border-width:1px; font-size:.92rem;
}
.wpcf7 form.sent .wpcf7-response-output{ border-color:var(--ns-lime-strong); background:#F4FCE4; color:var(--ns-ink); }
.ns-form-note{ font-size:.82rem; color:var(--ns-muted); }

/* =========================================================
   Contact details list
   ========================================================= */
.ns-contact-item{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start; }
.ns-contact-item[class*="ns-ico-"]::before{
  content:""; width:44px; height:44px; border-radius:13px;
  background-color:var(--ns-lime-soft); background-repeat:no-repeat;
  background-position:center; background-size:21px 21px;
}
.ns-contact-item > *{ grid-column:2; }
.ns-contact-item h3,.ns-contact-item h4{ margin-bottom:.2rem; font-size:.96rem; }
.ns-contact-item p{ font-size:.97rem; color:var(--ns-ink-soft); margin:0; }

/* =========================================================
   Gallery strip
   ========================================================= */
.ns-strip img{ border-radius:var(--ns-r-sm); aspect-ratio:4/3; object-fit:cover; width:100%; }

/* =========================================================
   Reveal on scroll
   ========================================================= */
.ns-reveal{ opacity:0; transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1); }
.ns-reveal.is-in{ opacity:1; transform:none; }
.wp-admin .ns-reveal,
.block-editor-block-list__layout .ns-reveal{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .ns-reveal{ opacity:1; transform:none; }
}

/* =========================================================
   Block-layout reconciliation
   WordPress emits its own layout classes and flow margins on
   every group; these keep the components above intact once
   that markup is applied.
   ========================================================= */

/* Cards: kill the flow margin on the first/last child so padding reads evenly. */
.ns-card > *:first-child{ margin-block-start:0; }
.ns-card > *:last-child{ margin-block-end:0; }
.ns-card.is-layout-flow > * + *{ margin-block-start:.9rem; }
.ns-card h3{ margin-block-start:0; }

/* Stats band is a CSS grid, so flow margins between cells must go. */
.ns-stats > *{ margin-block:0 !important; }
.ns-stat > *:first-child{ margin-block-start:0; }
.ns-stat > *:last-child{ margin-block-end:0; }

/* Reach rows: label beside the pill list. */
.ns-reach-row{ display:grid; grid-template-columns:200px 1fr; gap:clamp(1rem,3vw,3rem); align-items:start; }
.ns-reach-row > *{ margin-block:0 !important; }
.ns-reach-row h4{ margin:0; font-size:1.05rem; letter-spacing:-.01em; text-transform:none; }
@media (max-width:700px){ .ns-reach-row{ grid-template-columns:1fr; gap:.9rem; } }

/* Destination cards: the heading carries the link. */
.ns-dest-card h3 a{ color:#fff; text-decoration:none; }
.ns-dest-card h3 a:hover{ color:var(--wp--preset--color--accent-1); }
.ns-dest-card .wp-block-cover__inner-container > *{ margin-block:0; }
.ns-dest-card .wp-block-cover__inner-container > * + *{ margin-block-start:.3rem; }

/* Hero: the Cover's inner container must not clip the video layer. */
.ns-hero-video .wp-block-cover__inner-container{ position:static; }
.ns-hero-inner > * + *{ margin-block-start:1.1rem; }

/* Section heads and steps. */
.ns-section-head > * + *{ margin-block-start:1.1rem; }
.ns-steps > *{ margin-block:0 !important; }
.ns-xp-list > *{ margin-block:0 !important; }

/* Contact rows. */
.ns-contact-item > *{ margin-block:0 !important; }
.ns-contact-item > * + *{ margin-block-start:.2rem; }

/* Navigation overlay (mobile). */
.ns-header .wp-block-navigation__responsive-container.is-menu-open{
	background:var(--ns-cream); padding-top:clamp(3rem,8vw,5rem);
}
.ns-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
	font-family:var(--ns-display); font-size:1.15rem; color:var(--ns-ink);
}
.ns-header .wp-block-navigation__responsive-container-open,
.ns-header .wp-block-navigation__responsive-container-close{ color:var(--ns-ink); }

/* Gallery strip corners. */
.ns-strip .wp-block-image img,
.ns-strip figure img{ border-radius:var(--ns-r-sm); }
