/* =====================================================================
   FareFinding Ltd — public website stylesheet (2026-10-17 redesign)
   Loaded by app/Views/layouts/public.php only (after style.css).
   Every rule is scoped to body.site so the admin CRM is never affected.
   Light, editorial look: warm paper background, white cards, deep navy
   text and buttons, the logo's gold used sparingly. The header and footer
   use the logo's own background colour (#020915) so the logo sits cleanly.
   ===================================================================== */

/* ---------- Self-hosted fonts (SIL OFL, see /assets/fonts) ---------- */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/plus-jakarta-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/plus-jakarta-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/inter-latin-600-normal.woff2) format("woff2")}

/* ---------- Design tokens ---------- */
.site{
  --ff-max:1180px;
  --ff-gutter:max(20px,calc((100% - var(--ff-max))/2));
  --ff-page:#f6f4ef;          /* warm paper */
  --ff-page-2:#efece4;        /* alternate band */
  --ff-surface:#ffffff;
  --ff-ink:#0f1f33;           /* headings */
  --ff-text:#2c3746;          /* body */
  --ff-muted:#5e6978;
  --ff-line:#e3ded2;
  --ff-line-2:#cfc8b8;
  --ff-navy:#13294b;          /* primary actions */
  --ff-navy-2:#0c1d37;
  --ff-header:#020915;        /* the logo's background */
  --ff-gold:#c99a2e;          /* logo gold — decoration and the header button */
  --ff-gold-ink:#8a6414;      /* gold that passes contrast on light backgrounds */
  --ff-sky:#e8eef6;
  --ff-green:#1f8a4c;
  --ff-whatsapp:#25d366;
  --ff-danger:#b42318;
  --ff-radius:12px;
  --ff-radius-sm:8px;
  --ff-shadow:0 1px 2px rgba(15,31,51,.06),0 8px 24px rgba(15,31,51,.06);
  --ff-head:"Plus Jakarta Sans","Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  --ff-body:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  /* The NexOps consultation form reads this when embedded with data-theme="match-site". */
  --nexops-accent:#13294b;
}

/* ---------- Base ---------- */
body.site{margin:0;background:var(--ff-page);color:var(--ff-text);font-family:var(--ff-body);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.site main{display:block;min-height:50vh}
/* style.css (shared with the admin) gives details/tables a dark-theme look; reset them here. */
.site details{margin:0;padding:0;border:0;border-radius:0;background:none}

.site h1,.site h2,.site h3,.site h4{font-family:var(--ff-head);color:var(--ff-ink);letter-spacing:-.015em;font-weight:700;margin:0}
.site h1{font-size:clamp(2.1rem,3.6vw,3.1rem);line-height:1.1}
.site h2{font-size:clamp(1.55rem,2.4vw,2.05rem);line-height:1.2}
.site h3{font-size:1.12rem;line-height:1.35;font-weight:600}
.site p{margin:0}
.site a{color:inherit;text-decoration:none}
.site img{max-width:100%;display:block}
.site :focus-visible{outline:2px solid var(--ff-navy);outline-offset:3px;border-radius:4px}
.site .eyebrow{display:block;margin:0 0 8px;color:var(--ff-gold-ink);font:600 .86rem/1.3 var(--ff-body);text-transform:none;letter-spacing:0}
.site .skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;border-radius:8px;background:#fff;color:var(--ff-ink);font-weight:600}
.site .skip-link:focus{top:12px}
.site .visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.site .text-link{color:var(--ff-navy);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ff-line-2)}
.site .text-link:hover{text-decoration-color:currentColor}
.site .text-button{border:0;background:none;padding:0;color:var(--ff-navy);font:600 .9rem var(--ff-body);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ff-line-2)}
.site .text-button:hover{text-decoration-color:currentColor}

/* ---------- Buttons ---------- */
.site .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border:1px solid var(--ff-navy);border-radius:var(--ff-radius-sm);background:var(--ff-navy);color:#fff;font:600 .95rem/1 var(--ff-body);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.site .btn:hover{background:var(--ff-navy-2);border-color:var(--ff-navy-2)}
.site .btn.ghost{background:transparent;color:var(--ff-navy);border-color:var(--ff-line-2)}
.site .btn.ghost:hover{border-color:var(--ff-navy);background:#fff}
.site .btn.btn--sm{min-height:38px;padding:0 14px;font-size:.88rem}
.site .btn.btn--block{width:100%}
.site .btn.btn--gold{background:var(--ff-gold);border-color:var(--ff-gold);color:var(--ff-header)}
.site .btn.btn--gold:hover{background:#d8ab43;border-color:#d8ab43}
.site .btn.btn--whatsapp{background:#fff;color:#0b5132;border-color:#a7dcbc}
.site .btn.btn--whatsapp:hover{border-color:var(--ff-green)}
.site .btn svg{width:18px;height:18px}
.site .btn[disabled]{opacity:.6;cursor:not-allowed}

/* ---------- Header ---------- */
.site .site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:24px;padding:8px var(--ff-gutter);min-height:72px;background:var(--ff-header);border-bottom:1px solid rgba(255,255,255,.06)}
.site .brand{display:flex;align-items:center;flex:0 0 auto}
.site .brand img{width:auto;height:50px}
.site .nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.site .nav a{padding:8px 12px;border-radius:6px;color:#c9d2de;font-size:.93rem;font-weight:500;transition:color .15s}
.site .nav a:hover{color:#fff}
.site .nav a[aria-current="page"]{color:#fff;box-shadow:inset 0 -2px 0 var(--ff-gold);border-radius:0}
.site .top-actions{display:flex;align-items:center;gap:14px}
.site .header-phone{display:flex;flex-direction:column;line-height:1.15;color:#fff;font-weight:600;font-size:.95rem}
.site .header-phone small{color:#93a1b4;font-size:.72rem;font-weight:500}
.site .menu-toggle{display:none;margin-left:auto;width:44px;height:44px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:transparent;color:#fff;font-size:1.2rem;cursor:pointer}

/* ---------- Footer ---------- */
.site .site-footer{margin-top:0;padding:52px var(--ff-gutter) 26px;background:var(--ff-header);color:#b9c3d0}
.site .site-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:36px}
.site .site-footer__brand img{height:52px;width:auto;margin-bottom:14px}
.site .site-footer p{color:#9aa6b6;font-size:.9rem}
.site .site-footer h2{margin-bottom:12px;color:#fff;font:600 .9rem var(--ff-body);letter-spacing:0}
.site .site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site .site-footer li,.site .site-footer li a{color:#b9c3d0;font-size:.92rem}
.site .site-footer li a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.site .site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08);color:#8592a3;font-size:.82rem}
.site .whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:40;display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:999px;background:var(--ff-whatsapp);color:#063a1d;font-weight:600;font-size:.9rem;box-shadow:0 8px 22px rgba(15,31,51,.22)}
.site .whatsapp-float svg{width:20px;height:20px}

/* ---------- Sections ---------- */
.site .public-section{padding:64px var(--ff-gutter)}
.site .public-section--tint{background:var(--ff-page-2)}
.site .public-section--tight{padding-top:24px}
.site .public-section__head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:28px}
.site .public-section__head>div{max-width:700px}
.site .public-section__head>p{max-width:440px;color:var(--ff-muted)}
.site .public-section__head--center{flex-direction:column;align-items:center;text-align:center}
.site .public-section__head--center>p{max-width:620px}

/* ---------- Page hero (inner pages) ---------- */
.site .public-hero{padding:56px var(--ff-gutter) 8px}
.site .public-hero__copy h1{max-width:800px;margin-bottom:14px}
.site .public-hero__copy>p{max-width:660px;color:var(--ff-muted);font-size:1.08rem}
.site .public-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

/* ---------- Photo cards: destinations, cities, airlines ---------- */
.site .destination-grid-pro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.site .destination-grid-pro.is-collapsed>*:nth-child(n+7){display:none}
.site .destination-card-pro{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface);box-shadow:var(--ff-shadow);transition:box-shadow .2s,transform .2s}
.site a.destination-card-pro:hover,.site .destination-card-pro:hover{box-shadow:0 2px 4px rgba(15,31,51,.06),0 14px 34px rgba(15,31,51,.11);transform:translateY(-2px)}
.site .destination-card-pro__media{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--ff-sky)}
.site .destination-card-pro__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.site .destination-card-pro:hover .destination-card-pro__media img{transform:scale(1.03)}
.site .destination-card-pro__media>span:not(.photo-fallback){position:absolute;left:12px;top:12px;padding:4px 9px;border-radius:6px;background:rgba(255,255,255,.92);color:var(--ff-ink);font-size:.74rem;font-weight:700;letter-spacing:.04em}
.site .destination-card-pro__media--logo{background:#fff;border-bottom:1px solid var(--ff-line)}
.site .destination-card-pro__media--logo img{position:absolute;inset:22px 36px;width:calc(100% - 72px);height:calc(100% - 44px);object-fit:contain}
.site .destination-card-pro:hover .destination-card-pro__media--logo img{transform:none}
.site .destination-card-pro__media--logo>span{position:absolute;inset:0;display:grid;place-items:center;background:none;font-size:1rem}
.site .destination-card-pro__body{display:flex;flex:1;flex-direction:column;gap:6px;padding:18px 20px 20px}
.site .destination-card-pro__body h3 a::after{content:"";position:absolute;inset:0}
.site .destination-card-pro__body h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.site .destination-card-pro__body>p{color:var(--ff-muted);font-size:.94rem}
.site .destination-card-pro__body small{color:var(--ff-muted);font-size:.85rem}
.site .destination-card-pro__body>strong{margin-top:auto;padding-top:8px;color:var(--ff-navy);font-size:.92rem;font-weight:600}
.site .destination-meta{color:var(--ff-text)!important;font-size:.88rem!important}
.site .destination-card-pro__actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:12px}
/* No photo yet: a calm block with the place name, never a decorative illustration. */
.site .photo-fallback{display:grid;place-items:end start;width:100%;height:100%;padding:16px 18px;background:linear-gradient(160deg,#dfe7f1,#c9d6e6);color:#3b4d66;font:700 1.35rem var(--ff-head)}
.site .photo-credit{position:absolute;right:8px;bottom:8px;max-width:calc(100% - 16px);padding:2px 7px;border-radius:4px;background:rgba(2,9,21,.55);color:#e8edf3;font-size:.68rem;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.site .photo-credit a{color:inherit;text-decoration:underline}
.site .grid-more{display:flex;justify-content:center;margin-top:26px}

/* ---------- Closing call to action ---------- */
.site .public-cta-panel{display:flex;justify-content:space-between;align-items:center;gap:28px;margin:0 var(--ff-gutter) 64px;padding:32px 36px;border-radius:var(--ff-radius);background:var(--ff-navy);color:#d5deea}
.site .public-cta-panel h2{margin-bottom:6px;color:#fff;font-size:1.5rem}
.site .public-cta-panel p{max-width:640px;color:#c3cedc}
.site .public-cta-panel .eyebrow{color:#e3c26f}
.site .public-cta-panel__actions{display:flex;flex-wrap:wrap;gap:12px;flex:0 0 auto}
.site .public-cta-panel .btn{background:#fff;border-color:#fff;color:var(--ff-navy)}
.site .public-cta-panel .btn.ghost{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}

/* ---------- Empty state / rich text ---------- */
.site .public-empty-state{padding:40px;border:1px dashed var(--ff-line-2);border-radius:var(--ff-radius);background:var(--ff-surface);text-align:center}
.site .public-empty-state h3{margin-bottom:6px}
.site .public-empty-state p{color:var(--ff-muted);margin-bottom:16px}
.site .prose{max-width:72ch;color:var(--ff-text);font-size:1.03rem;line-height:1.8}
.site .prose p+p{margin-top:1em}
.site .read-more{margin-top:1em}
.site .read-more>summary{display:inline-block;cursor:pointer;list-style:none;color:var(--ff-navy);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ff-line-2)}
.site .read-more>summary::-webkit-details-marker{display:none}
.site .read-more[open]>summary{display:none}
.site .read-more>p{margin-top:1em}
.site .public-rich-panel{padding:28px 30px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface);color:var(--ff-text);font-size:1.02rem;line-height:1.8}
.site .public-rich-panel h3{margin-bottom:10px}

/* ---------- Detail pages (destination / airline / city) ---------- */
.site .public-detail-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:44px;align-items:center;padding:44px var(--ff-gutter) 24px}
.site .public-detail-hero__media{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:var(--ff-radius);background:var(--ff-sky);box-shadow:var(--ff-shadow)}
.site .public-detail-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.site .public-detail-hero__media--logo{background:#fff;border:1px solid var(--ff-line);box-shadow:none}
.site .public-detail-hero__media--logo img{inset:16%;width:68%;height:68%;object-fit:contain}
.site .public-detail-hero__crumb{margin-bottom:10px;color:var(--ff-muted);font-size:.88rem}
.site .public-detail-hero__crumb a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ff-line-2)}
.site .public-detail-hero__copy h1{margin-bottom:12px}
.site .public-detail-hero__lead{color:var(--ff-muted);font-size:1.08rem}
.site .public-detail-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.site .public-detail-note{margin-top:18px;color:var(--ff-muted);font-size:.86rem}
.site .city-facts-pro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:20px;overflow:hidden;border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);background:var(--ff-line)}
.site .city-facts-pro>div{padding:12px 14px;background:var(--ff-surface)}
.site .city-facts-pro small{display:block;color:var(--ff-muted);font-size:.78rem}
.site .city-facts-pro strong{display:block;margin-top:2px;color:var(--ff-ink);font-weight:600;font-size:.94rem}
.site .city-guide-layout-pro{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:28px;align-items:start}
.site .info-list{display:grid;gap:10px}
.site .info-list details{border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);background:var(--ff-surface)}
.site .info-list summary{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;list-style:none;color:var(--ff-ink);font-weight:600}
.site .info-list summary::-webkit-details-marker{display:none}
.site .info-list summary::after{content:"+";color:var(--ff-muted);font-weight:400;font-size:1.2rem;line-height:1}
.site .info-list details[open] summary::after{content:"–"}
.site .info-list details>div{padding:0 16px 16px;color:var(--ff-text);font-size:.95rem}
.site .airport-grid-pro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.site .airport-grid-pro article{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface)}
.site .airport-grid-pro article>span{align-self:flex-start;padding:3px 8px;border-radius:6px;background:var(--ff-sky);color:var(--ff-navy);font-weight:700;letter-spacing:.06em;font-size:.82rem}
.site .airport-grid-pro p{color:var(--ff-muted);font-size:.93rem}
.site .airport-grid-pro .btn{margin-top:auto;align-self:flex-start}

/* ---------- Features & steps ---------- */
.site .feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.site .feature-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.site .feature-grid--spaced{margin-top:36px}
.site .feature-grid article h3{margin-bottom:6px}
.site .feature-grid article p{color:var(--ff-muted);font-size:.95rem}
.site .feature-icon{width:40px;height:40px;display:grid;place-items:center;margin-bottom:14px;border-radius:10px;background:var(--ff-sky);color:var(--ff-navy)}
.site .feature-icon svg{width:21px;height:21px}
.site .process-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;counter-reset:step;border-top:1px solid var(--ff-line)}
.site .process-steps--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.site .process-steps>div{padding:20px 24px 4px 0}
.site .process-steps b{display:block;margin-bottom:8px;color:var(--ff-gold-ink);font:700 .9rem var(--ff-head)}
.site .process-steps strong{display:block;margin-bottom:4px;color:var(--ff-ink);font-family:var(--ff-head);font-size:1.05rem;font-weight:600}
.site .process-steps span{color:var(--ff-muted);font-size:.94rem}

/* ---------- Route cards (popular flights) ---------- */
.site .route-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.site .route-grid.is-collapsed>.route-card:nth-child(n+9){display:none}
.site .route-card{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface)}
.site .route-card__airline{display:flex;align-items:center;gap:10px;min-height:36px;color:var(--ff-muted);font-size:.86rem}
.site .route-card__logo{position:relative;flex:0 0 auto;width:60px;height:34px}
.site .route-card__logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.site .route-card__initials{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--ff-sky);color:var(--ff-navy);font-weight:700;font-size:.78rem}
.site .route-card__path{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}
.site .route-card__path strong{color:var(--ff-ink);font-family:var(--ff-head);font-size:1rem;font-weight:600;line-height:1.25}
.site .route-card__path strong:last-child{text-align:right}
.site .route-card__path i{color:var(--ff-gold);font-style:normal}
.site .route-card__meta{color:var(--ff-muted);font-size:.83rem}
.site .route-card__price{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--ff-line)}
.site .route-card__price span{color:var(--ff-muted);font-size:.8rem}
.site .route-card__price strong{color:var(--ff-ink);font-family:var(--ff-head);font-size:1.35rem;font-weight:700}
.site .route-card .btn{width:100%}
.site .route-more{display:flex;justify-content:center;margin-top:24px}
.site .route-note{margin-top:16px;color:var(--ff-muted);font-size:.84rem;text-align:center}

/* ---------- Testimonials ---------- */
.site .testimonial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.site .testimonial-card{display:flex;flex-direction:column;gap:14px;padding:24px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface)}
.site .testimonial-card .stars{color:var(--ff-gold);letter-spacing:1px;font-size:.95rem}
.site .testimonial-card blockquote{margin:0;color:var(--ff-text);font-size:1rem;line-height:1.7}
.site .testimonial-person{display:flex;align-items:center;gap:12px;margin-top:auto}
.site .testimonial-person img,.site .testimonial-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}
.site .testimonial-avatar{display:grid;place-items:center;background:var(--ff-sky);color:var(--ff-navy);font-weight:700}
.site .testimonial-person strong{display:block;color:var(--ff-ink);font-weight:600}
.site .testimonial-person small{display:block;color:var(--ff-muted);font-size:.82rem}
.site .testimonial-route{align-self:flex-start;color:var(--ff-muted);font-size:.82rem}

/* ---------- Airline logo strip (home) ---------- */
.site .logo-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.site .logo-strip a{position:relative;display:grid;place-items:center;height:84px;padding:14px 18px;border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);background:#fff;transition:border-color .15s}
.site .logo-strip a:hover{border-color:var(--ff-line-2)}
.site .logo-strip img{position:absolute;inset:14px 18px;width:calc(100% - 36px);height:calc(100% - 28px);object-fit:contain}
.site .logo-strip span{color:var(--ff-ink);font-weight:600;text-align:center;font-size:.9rem}

/* ---------- Important information (disclaimer) ---------- */
.site .disclaimer-band{margin:0 var(--ff-gutter) 56px;border:1px solid var(--ff-line);border-left:3px solid var(--ff-gold);border-radius:var(--ff-radius-sm);background:var(--ff-surface)}
.site .disclaimer-band summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;list-style:none;color:var(--ff-ink);font-weight:600}
.site .disclaimer-band summary::-webkit-details-marker{display:none}
.site .disclaimer-band summary svg{width:20px;height:20px;color:var(--ff-gold-ink)}
.site .disclaimer-band summary::after{content:"Show";margin-left:auto;color:var(--ff-navy);font-size:.86rem;text-decoration:underline;text-underline-offset:3px}
.site .disclaimer-band[open] summary::after{content:"Hide"}
.site .disclaimer-band p{padding:0 20px 18px 52px;color:var(--ff-muted);font-size:.93rem}

/* ---------- Home hero ---------- */
.site .home-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:48px;align-items:center;padding:64px var(--ff-gutter) 56px}
.site .home-hero h1{margin-bottom:16px;font-size:clamp(2.3rem,4.4vw,3.5rem);max-width:15ch}
.site .home-hero__intro{max-width:580px;color:var(--ff-muted);font-size:1.12rem}
.site .home-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.site .home-hero__facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:22px 0 0;padding:0;list-style:none;color:var(--ff-muted);font-size:.88rem}
.site .home-hero__facts li{display:flex;align-items:center;gap:7px}
.site .home-hero__facts svg{width:16px;height:16px;color:var(--ff-green)}
.site .home-hero__panel{padding:24px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface);box-shadow:var(--ff-shadow)}
.site .home-hero__panel h2{margin-bottom:4px;font-size:1.15rem}
.site .home-hero__panel>p{color:var(--ff-muted);font-size:.92rem}
.site .home-hero__hours{margin-top:14px;color:var(--ff-muted);font-size:.84rem}
.site .contact-lines{display:grid;gap:8px;margin:16px 0 0;padding:0;list-style:none}
.site .contact-lines a,.site .contact-lines li>div{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);background:var(--ff-surface);transition:border-color .15s}
.site .contact-lines a:hover{border-color:var(--ff-navy)}
.site .contact-lines li>div{align-items:flex-start}
.site .contact-lines svg{flex:0 0 20px;width:20px;height:20px;color:var(--ff-navy)}
.site .contact-lines small{display:block;color:var(--ff-muted);font-size:.78rem}
.site .contact-lines strong{display:block;color:var(--ff-ink);font-weight:600}
.site .contact-lines address{font-style:normal;color:var(--ff-text);font-size:.92rem}
.site .contact-lines .contact-lines__note{margin-top:4px;font-size:.78rem}

/* ---------- Consultation section (home) ---------- */
.site .ff-consult{display:grid;grid-template-columns:minmax(240px,.55fr) minmax(0,1.45fr);gap:40px;align-items:start;padding:64px var(--ff-gutter);background:var(--ff-page-2);scroll-margin-top:80px}
.site .ff-consult__intro{position:sticky;top:100px}
.site .ff-consult__intro h2{margin-bottom:12px}
.site .ff-consult__intro>p{color:var(--ff-muted)}
.site .ff-consult__assure{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}
.site .ff-consult__assure li{display:flex;gap:10px;align-items:flex-start;color:var(--ff-text);font-size:.94rem}
.site .ff-consult__assure svg{flex:0 0 18px;width:18px;height:18px;margin-top:3px;color:var(--ff-green)}
/* NexOps basecrm consultation form embed: the form takes this page's font and colours
   (data-theme="match-site"), so the wrapper stays plain and transparent. */
.site .ff-embed{min-width:0;scroll-margin-top:90px}
.site .ff-embed iframe{display:block;width:100%!important;border:0!important;background:transparent}
.site .ff-embed [data-nexops-form-state="loading"]>*:not(iframe),.site .ff-embed__loading{margin:0;padding:40px 20px;border:1px dashed var(--ff-line-2)!important;border-radius:var(--ff-radius)!important;background:var(--ff-surface)!important;color:var(--ff-muted)!important;text-align:center}
.site .ff-embed__loading a{color:var(--ff-navy);text-decoration:underline}

/* ---------- Generic public forms (contact, blogger) ---------- */
.site .public-form-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);gap:28px;align-items:start}
.site .public-form-layout--reverse{grid-template-columns:minmax(280px,.8fr) minmax(0,1.45fr)}
.site .public-form-card{display:grid;gap:16px;padding:28px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface);box-shadow:var(--ff-shadow)}
.site .public-form-card--flat{padding:0;border:0;background:none;box-shadow:none}
.site .public-form-card h2{font-size:1.4rem}
.site .public-form-card>p,.site .public-form-card__head p{margin-top:4px;color:var(--ff-muted)}
.site .public-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.site .public-form-card label{display:flex;flex-direction:column;gap:6px}
.site .public-form-card label>span{color:var(--ff-ink);font-size:.88rem;font-weight:600}
.site .public-form-card input,.site .public-form-card select,.site .public-form-card textarea{width:100%;min-height:46px;padding:11px 13px;border:1px solid var(--ff-line-2);border-radius:var(--ff-radius-sm);background:#fff;color:var(--ff-ink);font:400 .97rem/1.4 var(--ff-body);transition:border-color .15s,box-shadow .15s}
.site .public-form-card textarea{min-height:120px;resize:vertical}
.site .public-form-card input::placeholder,.site .public-form-card textarea::placeholder{color:#8a93a0}
.site .public-form-card input:focus,.site .public-form-card select:focus,.site .public-form-card textarea:focus{outline:none;border-color:var(--ff-navy);box-shadow:0 0 0 3px rgba(19,41,75,.12)}
.site .public-form-card .public-check{flex-direction:row;align-items:flex-start;gap:10px;color:var(--ff-text);font-size:.9rem}
.site .public-form-card .public-check input{flex:0 0 18px;width:18px;height:18px;min-height:0;margin-top:3px;accent-color:var(--ff-navy)}
.site .public-form-card .public-check span{font-weight:400;color:var(--ff-text)}
.site .public-form-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}
.site .public-form-foot p{max-width:440px;color:var(--ff-muted);font-size:.84rem}
.site .public-side-stack{display:grid;gap:14px}
.site .public-side-stack .contact-lines{margin:0}
.site .public-side-card{padding:20px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface)}
.site .public-side-card h3{margin-bottom:4px;font-size:1.02rem}
.site .public-side-card p{color:var(--ff-muted);font-size:.92rem}
.site .public-side-card>.btn{margin-top:12px}
.site .public-side-card>a:not(.btn){display:inline-block;margin-top:10px;color:var(--ff-navy);font-weight:600}
.site .public-process-card{padding:24px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface);position:sticky;top:96px}
.site .public-process-card h3{margin:0 0 12px}
.site .public-process-list{display:grid}
.site .public-process-list>div{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--ff-line)}
.site .public-process-list>div:last-child{border-bottom:0}
.site .public-process-list b{flex:0 0 30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--ff-sky);color:var(--ff-navy);font-size:.8rem;font-weight:700}
.site .public-process-list strong{display:block;color:var(--ff-ink);font-weight:600}
.site .public-process-list small{display:block;color:var(--ff-muted);font-size:.86rem}
.site .public-auth-card{max-width:820px;margin:0 auto;padding:32px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface)}
.site .public-auth-card>h2{margin-bottom:8px}
.site .public-auth-card>p{color:var(--ff-muted)}
.site .public-auth-card>.alert{margin-top:16px}
.site .public-auth-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.site .success,.site .alert{padding:13px 15px;border-radius:var(--ff-radius-sm);font-size:.93rem}
.site .success{border:1px solid #a9dcbc;background:#eef9f2;color:#145c33}
.site .alert{border:1px solid #f1b8b2;background:#fdf1f0;color:#8f1c13}

/* ---------- FAQ ---------- */
.site .faq-list-pro{display:grid;gap:10px;max-width:860px;margin:0 auto}
.site .faq-list-pro details{margin:0;padding:0;border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);background:var(--ff-surface)}
.site .faq-list-pro summary{display:grid;grid-template-columns:1fr 24px;align-items:center;gap:14px;padding:16px 20px;list-style:none;cursor:pointer}
.site .faq-list-pro summary::-webkit-details-marker{display:none}
.site .faq-list-pro summary span{display:none}
.site .faq-list-pro summary strong{color:var(--ff-ink);font-weight:600}
.site .faq-list-pro summary i{color:var(--ff-muted);font-style:normal;font-size:1.3rem;transition:transform .2s;text-align:center}
.site .faq-list-pro details[open] summary i{transform:rotate(45deg)}
.site .faq-list-pro details>div{padding:0 20px 18px;color:var(--ff-text)}

/* ---------- Blog ---------- */
.site .blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.site .blog-grid--featured{grid-template-columns:repeat(2,minmax(0,1fr))}
.site .blog-chip{display:inline-flex;align-self:flex-start;color:var(--ff-gold-ink);font-size:.8rem;font-weight:600}
.site .blog-meta{color:var(--ff-muted);font-size:.84rem}
.site .article-hero{max-width:820px;margin:0 auto;padding:52px 20px 24px}
.site .article-hero .blog-chip{margin-bottom:10px}
.site .article-hero h1{margin-bottom:12px;font-size:clamp(1.9rem,3.6vw,2.8rem)}
.site .article-hero>p{color:var(--ff-muted);font-size:1.1rem}
.site .article-hero .blog-meta{margin-top:12px}
.site .back-link{display:inline-block;margin:0 0 16px;color:var(--ff-navy);font-size:.9rem;font-weight:500}
.site .article-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:start;padding:12px var(--ff-gutter) 56px}
.site .article-body{min-width:0}
.site .article-body>img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:26px;border-radius:var(--ff-radius)}
.site .article-content{color:var(--ff-text);font-size:1.06rem;line-height:1.85}
.site .article-note{margin-top:28px;padding:16px 18px;border-left:3px solid var(--ff-gold);background:var(--ff-surface);color:var(--ff-muted);font-size:.9rem}
.site .article-side{position:sticky;top:96px;display:grid;gap:14px}

/* ---------- Legal pages ---------- */
.site .legal{padding:0 var(--ff-gutter) 64px}
.site .legal-head{max-width:820px;padding:48px 0 28px}
.site .legal-head__crumb{margin-bottom:10px;color:var(--ff-muted);font-size:.88rem}
.site .legal-head__crumb a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ff-line-2)}
.site .legal-head h1{margin-bottom:10px}
.site .legal-head__summary{max-width:68ch;color:var(--ff-muted);font-size:1.06rem}
.site .legal-head__meta{margin-top:14px;color:var(--ff-muted);font-size:.88rem}
.site .legal-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:48px;align-items:start;padding-top:28px;border-top:1px solid var(--ff-line)}
.site .legal-aside{position:sticky;top:96px;display:grid;gap:26px;max-height:calc(100vh - 120px);overflow:auto;padding-right:6px}
.site .legal-aside h2{margin-bottom:8px;font:600 .82rem var(--ff-body);color:var(--ff-muted);letter-spacing:.02em}
.site .legal-contents ol,.site .legal-related ul{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.site .legal-contents a{display:flex;gap:10px;padding:6px 10px;border-left:2px solid transparent;color:var(--ff-text);font-size:.9rem;line-height:1.4}
.site .legal-contents a span{flex:0 0 1.6em;color:var(--ff-muted);font-variant-numeric:tabular-nums}
.site .legal-contents a:hover{color:var(--ff-ink);background:var(--ff-surface)}
.site .legal-contents a.is-active{border-left-color:var(--ff-navy);color:var(--ff-ink);font-weight:600;background:var(--ff-surface)}
.site .legal-related a{display:block;padding:5px 10px;color:var(--ff-navy);font-size:.9rem;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--ff-line-2)}
.site .legal-body{min-width:0;max-width:780px}
.site .legal-tools{display:flex;flex-wrap:wrap;gap:18px;justify-content:flex-end;margin-bottom:12px}
.site .legal-chapter{border-bottom:1px solid var(--ff-line);scroll-margin-top:96px}
.site .legal-chapter:first-of-type{border-top:1px solid var(--ff-line)}
.site .legal-chapter>summary{display:flex;align-items:baseline;gap:14px;padding:18px 36px 18px 0;cursor:pointer;list-style:none;position:relative}
.site .legal-chapter>summary::-webkit-details-marker{display:none}
.site .legal-chapter>summary::after{content:"+";position:absolute;right:4px;top:16px;color:var(--ff-muted);font-size:1.35rem;line-height:1}
.site .legal-chapter[open]>summary::after{content:"–"}
.site .legal-chapter>summary h2{font-size:1.2rem;line-height:1.35}
.site .legal-chapter>summary:hover h2{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--ff-line-2)}
.site .legal-chapter__num{flex:0 0 1.8em;color:var(--ff-gold-ink);font:700 1rem var(--ff-head);font-variant-numeric:tabular-nums}
.site .legal-chapter__body{padding:0 0 24px calc(1.8em + 14px);color:var(--ff-text);font-size:1rem;line-height:1.75}
.site .legal-chapter__body>*+*{margin-top:.85em}
.site .legal-chapter__body h3{margin-top:1.4em;font-size:1.02rem;color:var(--ff-ink);scroll-margin-top:96px}
.site .legal-chapter__body ul,.site .legal-chapter__body ol{padding-left:1.3em}
.site .legal-chapter__body li+li{margin-top:.35em}
.site .legal-chapter__body ul li::marker{color:var(--ff-gold)}
.site .legal-chapter__body a{color:var(--ff-navy);text-decoration:underline;text-underline-offset:2px}
.site .legal-note{padding:12px 14px;border-left:3px solid var(--ff-gold);background:var(--ff-surface)}
.site .legal-table{overflow-x:auto;border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm)}
.site .legal-table table{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff}
.site .legal-table th,.site .legal-table td{padding:10px 12px;border-bottom:1px solid var(--ff-line);text-align:left;vertical-align:top}
.site .legal-table th{background:var(--ff-page);color:var(--ff-ink);font-weight:600}
.site .legal-table tr:last-child td{border-bottom:0}
.site .legal-help{margin-top:28px;padding:18px 20px;border-radius:var(--ff-radius-sm);background:var(--ff-surface);border:1px solid var(--ff-line);color:var(--ff-text);font-size:.94rem}
.site .legal-help a{color:var(--ff-navy);text-decoration:underline;text-underline-offset:2px}
.site .legal-empty{padding:24px 0;color:var(--ff-muted)}

/* ---------- 404 ---------- */
.site .not-found{max-width:720px;padding:80px var(--ff-gutter) 72px}
.site .not-found p{margin-top:12px;color:var(--ff-muted);font-size:1.06rem}
.site .not-found ul{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0;padding:0;list-style:none}

/* ---------- Customer receipt / invoice portal ---------- */
.site .public-doc-wrap{padding:44px var(--ff-gutter) 64px}
.site .public-doc-card{max-width:900px;margin:0 auto;padding:32px;border:1px solid var(--ff-line);border-radius:var(--ff-radius);background:var(--ff-surface);box-shadow:var(--ff-shadow)}
.site .public-doc-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--ff-line)}
.site .public-doc-head h1{font-size:clamp(1.6rem,3vw,2.2rem)}
.site .public-doc-head p{margin-top:6px;color:var(--ff-muted)}
.site .public-doc-amount{text-align:right}
.site .public-doc-amount span{display:block;color:var(--ff-muted);font-size:.82rem}
.site .public-doc-amount strong{display:block;color:var(--ff-ink);font-family:var(--ff-head);font-size:2rem}
.site .public-doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.site .public-doc-grid>div{padding:12px 14px;border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);background:var(--ff-page)}
.site .public-doc-grid span{display:block;color:var(--ff-muted);font-size:.8rem}
.site .public-doc-grid strong{display:block;margin-top:2px;color:var(--ff-ink);font-weight:600;word-break:break-word}
.site .public-doc-actions{display:flex;flex-wrap:wrap;gap:12px}
.site .public-doc-foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--ff-line);color:var(--ff-muted);font-size:.84rem}
.site .public-doc-empty{margin-top:20px}
.site .public-doc-table{margin-top:12px;width:100%;border-collapse:collapse;font-size:.93rem}
.site .public-doc-table th{padding:10px 12px;border-bottom:1px solid var(--ff-line-2);color:var(--ff-muted);font-weight:600;text-align:left}
.site .public-doc-table td{padding:12px;border-bottom:1px solid var(--ff-line);color:var(--ff-text)}
.site .public-doc-table td strong{color:var(--ff-ink)}
.site .status-pill{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--ff-page-2);color:var(--ff-ink);font-size:.78rem;font-weight:600}
.site .status-pill--paid{background:#e6f5ec;color:#145c33}
.site .status-pill--unpaid,.site .status-pill--overdue{background:#fdecea;color:#8f1c13}
.site .status-pill--partially_paid,.site .status-pill--partial,.site .status-pill--part_paid{background:#fbf2dc;color:var(--ff-gold-ink)}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .site .nav a{padding:8px 9px;font-size:.9rem}
  .site .header-phone{display:none}
  .site .route-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .site .logo-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1000px){
  .site .menu-toggle{display:grid;place-items:center}
  .site .nav{display:none;position:absolute;left:16px;right:16px;top:calc(100% + 6px);flex-direction:column;align-items:stretch;gap:2px;margin:0;padding:8px;border-radius:10px;background:var(--ff-header);box-shadow:0 14px 34px rgba(0,0,0,.35)}
  .site .nav.open{display:flex}
  .site .nav a{padding:12px 14px;font-size:1rem}
  .site .nav a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--ff-gold)}
  .site .top-actions .btn{display:none}
  .site .home-hero,.site .public-detail-hero,.site .ff-consult,.site .city-guide-layout-pro,.site .public-form-layout,.site .public-form-layout--reverse,.site .article-layout,.site .legal-layout{grid-template-columns:1fr}
  .site .ff-consult__intro,.site .public-process-card,.site .article-side,.site .legal-aside{position:static;max-height:none}
  .site .legal-contents{display:none}
  .site .destination-grid-pro,.site .blog-grid,.site .testimonial-grid,.site .airport-grid-pro,.site .feature-grid,.site .feature-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site .process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site .route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site .site-footer__grid{grid-template-columns:1fr 1fr}
  .site .public-cta-panel{flex-direction:column;align-items:flex-start}
  .site .public-section__head{flex-direction:column;align-items:flex-start;gap:10px}
  .site .public-section__head--center{align-items:center}
  .site .legal-aside{order:2}
}
@media (max-width:680px){
  body.site{font-size:16px}
  .site .site-header{min-height:62px;gap:12px}
  .site .brand img{height:40px}
  .site .home-hero{padding-top:40px;padding-bottom:40px}
  .site .public-hero{padding-top:36px}
  .site .public-section,.site .ff-consult{padding-top:44px;padding-bottom:44px}
  .site .destination-grid-pro,.site .blog-grid,.site .blog-grid--featured,.site .testimonial-grid,.site .airport-grid-pro,.site .feature-grid,.site .feature-grid--4,.site .process-steps,.site .process-steps--3,.site .route-grid,.site .city-facts-pro,.site .public-doc-grid{grid-template-columns:1fr}
  .site .destination-grid-pro.is-collapsed>*:nth-child(n+5){display:none}
  .site .logo-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site .route-grid.is-collapsed>.route-card:nth-child(n+5){display:none}
  .site .public-form-grid{grid-template-columns:1fr}
  .site .public-cta-panel{margin-bottom:48px;padding:26px 22px}
  .site .public-cta-panel__actions,.site .public-cta-panel__actions .btn,.site .public-hero__actions .btn,.site .home-hero__actions .btn{width:100%}
  .site .site-footer__grid{grid-template-columns:1fr}
  .site .legal-chapter__body{padding-left:0}
  .site .disclaimer-band p{padding-left:20px}
  .site .public-doc-card{padding:22px}
  .site .public-doc-head{flex-direction:column}
  .site .public-doc-amount{text-align:left}
  .site .public-doc-table thead{display:none}
  .site .public-doc-table tr{display:grid;padding:10px 0;border-bottom:1px solid var(--ff-line)}
  .site .public-doc-table td{padding:4px 0;border:0}
  .site .whatsapp-float span{display:none}
  .site .whatsapp-float{padding:13px}
}
@media (prefers-reduced-motion:reduce){.site *{transition:none!important;scroll-behavior:auto!important}}
@media print{
  .site .site-header,.site .site-footer,.site .whatsapp-float,.site .legal-aside,.site .legal-tools,.site .legal-help{display:none!important}
  body.site{background:#fff;color:#111;font-size:11pt}
  .site .legal-layout{display:block;border:0}
  .site .legal-chapter>summary::after{display:none}
  .site .legal-chapter__body{padding-left:0}
}
/* Customer documents keep their own paper styling (style.css); only the primary button follows the site palette. */
.site .customer-document-portal .customer-document-actions .btn:not(.ghost){color:#fff}
