/* ==========================================================================
   goFLY — global stylesheet                      v1 · 18 October 2026
   --------------------------------------------------------------------------
   Lifted verbatim out of 36 inline [style] blocks in functions.php, in the
   exact order WordPress printed them (wp_head by priority, then wp_footer).
   Nothing was reordered, merged, minified or rewritten — byte-for-byte the
   same rules, so the cascade resolves exactly as before.
   13 blocks that build their CSS from PHP, or belong to a shortcode that
   guards its own output, stay inline in functions.php (36.9 KB).
   ========================================================================== */

/* ---------- 01. gofly-table-scroll  [wp_head pri 10] ---------- */
/* Tables running off the right edge on mobile.

	   Rendered every category: airline, guides, packages and pages all sit inside
	   the viewport. Every visa page tested did not — six out of six, and there are
	   92 of them. The cause is plain: a table is as wide as its columns need, and
	   nothing was holding it. 1,743 tables across 268 files have no scroll
	   container around them; most happen to fit, and the wide ones simply walk off
	   the screen, where a reader cannot reach them at all.

	   The .table-wrapper fix does not help here — these tables were never wrapped
	   in one. Editing 268 files to add a div is the wrong instrument. Give every
	   table a scroll container at runtime instead, and skip the ones that already
	   have one. */
	.gofly-table-scroll{
		display:block; width:100%; max-width:100%;
		overflow-x:auto; -webkit-overflow-scrolling:touch;
		margin:18px 0}
	.gofly-table-scroll > table{ min-width:min(480px, 100%); margin:0 }
	.gofly-table-scroll::-webkit-scrollbar{ height:6px }
	.gofly-table-scroll::-webkit-scrollbar-thumb{ background:#10b981; border-radius:3px }
	.gofly-table-scroll::-webkit-scrollbar-track{ background:#f1f5f9; border-radius:3px }

/* ---------- 02. gofly-grid-blowout-fix  [wp_head pri 10] ---------- */
/* Package pages: seven elements hanging off the right edge on mobile.

	   Found on every package page rendered — and there are 133 of them, 118 with
	   this grid. The container is a two-column grid written inline:

	       <div style="display:grid;grid-template-columns:1fr 1fr;gap:16px">

	   In a 320px column with a 16px gap, each 1fr should come out at 152px.
	   Measured, they came out at 173.25px — and 173.25 x 2 + 16 = 362.5, which is
	   wider than the 320px box holding them. The columns are wider than their own
	   container, so the right-hand one walks off the screen.

	   This is the classic grid blowout. A grid item's min-width defaults to `auto`,
	   not zero — so if anything inside is wider than its share (a price, a long
	   word, a nowrap span), the column stops respecting 1fr and grows to fit it.
	   1fr is a maximum here, never a minimum.

	   Two things fix it, and both are wanted:
	     - min-width:0 lets a grid item shrink below its content and wrap instead.
	     - below 640px a two-column grid was never the right call anyway. One column. */
	@media (max-width:640px){
		html body .gofly-section [style*="display:grid"],
		html body .entry-content [style*="display:grid"],
		html body .gofly-section [style*="display: grid"],
		html body .entry-content [style*="display: grid"]{
			grid-template-columns:1fr !important}

		html body .gofly-section [style*="display:grid"] > *,
		html body .entry-content [style*="display:grid"] > *,
		html body .gofly-section [style*="display: grid"] > *,
		html body .entry-content [style*="display: grid"] > *{
			min-width:0 !important;
			max-width:100% !important}
	}

	/* Desktop keeps its columns, but a grid item must still be allowed to shrink —
	   otherwise the same blowout happens at any width where the content is tight. */
	html body .gofly-section [style*="display:grid"] > *,
	html body .entry-content [style*="display:grid"] > *,
	html body .gofly-section [style*="display: grid"] > *,
	html body .entry-content [style*="display: grid"] > *{
		min-width:0}
	html body .gofly-section .gf-addon-card,
	html body .gofly-section .gf-addon-card *{
		overflow-wrap:anywhere}

/* ---------- 03. gofly-mobile-polish  [wp_head pri 10] ---------- */
/* Mobile, the two things left after the break-out was undone.

	   1. Tap targets. The destination chips render 37px tall. A finger needs 44 —
	      that is not a style preference, it is the size of the contact patch, and
	      under it people miss and re-tap. Only the vertical padding changes; the
	      chips keep their shape.

	   2. Text under 12px. An 11px button sub-label and a 10.5px card heading. On a
	      390px screen held at arm's length that is a squint, and it is the smallest
	      type on the page — which is a strange place to put the words that tell you
	      what a button does. */
	@media (max-width:640px){
		html body .gf-founder-destinations a,
		html body .gf-founder-destinations span[style],
		html body .gf-founder-destinations .gfd-grid > a,
		html body .gf-founder-destinations .gfd-grid > span{
			min-height:44px !important;
			display:inline-flex !important;
			align-items:center !important;
			justify-content:center !important;
			padding-top:11px !important;
			padding-bottom:11px !important;
			box-sizing:border-box !important}

		html body .gfa-strip-contact .gfa-btn em,
		html body .gfa-strip-contact .gfa-btn-t em,
		html body .gfa-btn-t em{ font-size:12px !important }

		html body .gofly-section .agency-card h4,
		html body .agency-card h4,
		html body .agency-card.featured h4{
			font-size:12.5px !important;
			letter-spacing:.05em !important}
	}

/* ---------- 04. gofly-fullbleed-fix  [wp_head pri 10] ---------- */
/* Sections sliding off the side of the screen on mobile.

	   Two elements are built with the full-bleed break-out trick — the one that
	   lets a block escape its container and run edge to edge:

	       .gofly-section .table-wrapper,
	       .gofly-section .gofly-mini-cta{
	         position:relative;
	         left:50%; right:50%;
	         margin-left:-50vw; margin-right:-50vw;
	         width:100vw; max-width:100vw;
	       }

	   It only works as a matched pair: left:50% pushes the block out to the middle
	   of the viewport, and margin-left:-50vw drags it back to the left edge. Take
	   away one half and the block simply sits 50% too far across.

	   Which is exactly what happened. Somewhere along the way this was added:

	       [class*="table-wrapper"]{ margin-left:0 !important; max-width:100% !important; }

	   That killed the pull-back and left the push in place. Measured on mobile:
	   every other block starts at left:29px; the table wrapper starts at 195px —
	   half the 390px viewport — and runs to 527px, off the right-hand edge. The
	   page does not scroll sideways, so the content is simply cut off.

	   Half a fix is worse than none. Undo the whole trick: these blocks belong
	   inside the container like everything else, and the table scrolls within its
	   own wrapper, which is what the overflow was always for. */
	html body .gofly-section .table-wrapper,
	html body .gofly-section .gofly-mini-cta,
	html body [class*="table-wrapper"],
	html body [class*="gf-table-wrap"]{
		position:relative !important;
		left:auto !important;
		right:auto !important;
		width:100% !important;
		max-width:100% !important;
		margin-left:0 !important;
		margin-right:0 !important;
		overflow-x:auto !important;
		-webkit-overflow-scrolling:touch !important}

	/* the table itself keeps a usable minimum and scrolls inside the wrapper */
	html body .gofly-section .table-wrapper > table,
	html body [class*="table-wrapper"] > table{
		min-width:480px}

/* ---------- 05. gofly-boxed-card  [wp_head pri 10] ---------- */
/* .gofly-boxed was never a box.

	   The wrapper is there on every rendered page, and the name says what it was
	   meant to be. But computed, it is:

	       background: transparent   border: none   border-radius: 0
	       box-shadow: none          padding: 0

	   — a bare div. Meanwhile <body> carries #f8fafc, a pale grey, which only makes
	   sense if something white was supposed to sit on top of it. Someone set the
	   stage and never built the card, so the content lies flat on the page and the
	   grey never shows.

	   Give it the card. White, wide, lifted just enough to read as a surface rather
	   than a shadowbox. Corners squared off on phones, where a rounded card with
	   side margins would only cost width. */
	@media (min-width:1100px){
		html body:has(.top-bar) .gofly-boxed{
			background:#ffffff !important;
			border:1px solid #e8eceb !important;
			border-radius:18px !important;
			box-shadow:0 1px 2px rgba(15,23,42,.04), 0 8px 28px -18px rgba(15,23,42,.14) !important;
			padding:34px 38px !important;
			margin:0 0 40px !important;
			overflow:hidden}

		/* the section inside is now the card's interior, so it stops painting its own */
		html body:has(.top-bar) .gofly-boxed > .gofly-section{
			background:transparent !important;
			padding-left:0 !important; padding-right:0 !important}
	}

	/* on phones the card would just eat width — keep it flat, keep the white */
	@media (max-width:1099px){
		html body:has(.top-bar) .gofly-boxed{
			background:#ffffff !important;
			border:0 !important; border-radius:0 !important;
			box-shadow:none !important; padding:0 !important}
	}

/* ---------- 06. gofly-page-width  [wp_head pri 10] ---------- */
/* Page width — a decision, so the reasoning stays with it.

	   The parent theme caps every container at 1290px (style.css line 1007). On a
	   1920 monitor that is 67% of the screen: the article sits in a strip with the
	   footer running wider beneath it, and the comparison tables are cramped.

	   Two things I tried and threw away, because measuring them showed they were
	   worse than what they replaced:

	     Capping body text at 78 characters while the cards spread to 1440. Sounded
	     right — long lines are genuinely hard to read. But these fragments carry
	     their own widths, so the prose became a 564px ribbon stranded inside a
	     1242px column, and the breadcrumb stopped lining up. It read as a bug.

	     Applying the new width at every screen size. Desktop improved; phones and
	     tablets got worse — 390px went from 341px of content to 314px, 768px from
	     750px to 680px. The gutter that is right on a monitor is wrong on a phone.
	     Below 1100px the theme was already correct and did not need my help.

	   So: 1440px, desktop only. Breadcrumb, content and footer all move together so
	   nothing falls out of alignment. Small screens are left exactly as they were.

	   1224, and the number is not arbitrary.

	   First pass was 1440, chosen while the content still sat flat on the page —
	   nothing framed it, so wide just read as wide. Once .gofly-boxed became a real
	   card, 1440 was too much: 38px of card padding each side put the text out at
	   1346px, and a box that wide stops reading as a card.

	   Then 1280, which looked right until the H1 and the Quick Answer block sat
	   visibly inset from everything below them. The cause: the fragments carry inline
	   caps of their own — .gf-geo-wrap and the H1 are hardcoded to max-width:1100px,
	   and 142 files across the site do the same thing, 216 caps between 1000px and
	   1199px. They were authored for a narrower column. At a 1184px content width
	   they all pull in and the page steps in and out down its own left edge.

	   Ripping 216 inline caps out of 142 files would fix the symptom and risk a lot
	   of layouts I cannot see. The cheaper, truer fix is to make the column the width
	   those files were drawn for:

	       measured: at a 1196px container the column lands on exactly 1100px

	   Nothing in the HTML changes, the fragments get the measure they were built at,
	   and every block lines up on one edge. */
	@media (min-width:1100px){
		html body:has(.top-bar) #content > .container,
		html body:has(.top-bar) .top-bar > .container,
		html body .site-footer .container,
		html body .footer-box .container{
			max-width:1196px !important;
			width:100% !important;
			margin-left:auto !important;
			margin-right:auto !important;
			padding-left:24px !important;
			padding-right:24px !important;
			box-sizing:border-box !important}

		html body:has(.top-bar) #content .gofly-boxed,
		html body:has(.top-bar) #content .gofly-section,
		html body:has(.top-bar) #content .gofly-content{
			max-width:100% !important; width:100% !important;
			margin-left:0 !important; margin-right:0 !important}
	}

/* ---------- 07. gofly-single-width  [wp_head pri 10] ---------- */
/* Posts render narrower than pages, and nobody meant them to.

	   best-travel-agency-near-me is a POST, not a page — the admin bar says Edit
	   Post, the body carries .single .single-post. That matters, because the child
	   theme has 617 rules scoped to .single-post, and among them are these caps:

	       .container                        margin: 0 115px  ->  1170px at L=135
	       article                           max-width: 1140px
	       .text-holder / .entry-content     max-width: 1180px + padding

	   Measured at 1440px, the same fragment rendered both ways:

	       as a page   content column 1260px at L=90    flush with the footer
	       as a POST   content column 1028px at L=206   232px narrower, 116px in

	   So the article sits in a narrow strip while the footer beneath it runs the
	   full width. On the live page that is exactly what you see, and it is why the
	   page reads as "narrow" even though the page-type version measures fine.

	   Every fragment on this site supplies its own container, its own max-width and
	   its own padding. It does not need the theme's article shell to cap it again —
	   and it certainly should not be capped differently depending on whether the
	   slug happens to be a post or a page. Same column, either way. */
	/* .container is deliberately NOT in this list — its width belongs to
	   gofly-page-width. It was here, set to 100%, and because this block prints
	   later it beat the 1440 cap and the container grew unbounded: 2472px wide on
	   a 2560px screen. Same mistake as the 1290 above. One owner per property. */
	/* .row is left alone too: the theme gives it margin:0 -15px and compensates with
	   15px of padding on .content-area. Zeroing one without the other cost 30px —
	   tablet went from 750px of content to 720px. Leave the pair intact. */
	html body:has(.top-bar) #content #primary,
	html body:has(.top-bar) #content .content-area,
	html body:has(.top-bar) #content .site-main,
	html body:has(.top-bar) #content .site-main > article,
	html body:has(.top-bar) #content .text-holder,
	html body:has(.top-bar) #content .entry-content{
		max-width:100% !important;
		width:auto !important;
		margin-left:auto !important;
		margin-right:auto !important;
		float:none !important}

	/* NOTE: the container's width is set once, in gofly-page-width. It used to be
	   set here too, at 1290px — and since this block prints after that one, at equal
	   specificity and both !important, this one quietly won. Two of my own rules
	   were fighting, and the wider one lost. One owner per property. */

	/* same correction as the top-gap rule above: `article` bare matched every card
	   the fragments build, not just the theme's one content wrapper. */
	html body:has(.top-bar) #content .site-main > article,
	html body:has(.top-bar) #content .text-holder,
	html body:has(.top-bar) #content .entry-content{
		padding-left:0 !important;
		padding-right:0 !important}

/* ---------- 08. gofly-content-width  [wp_head pri 10] ---------- */
/* The content column pulling away from the page it sits on.

	   .gofly-content is capped at max-width:1120px with margin:0 50px. The section
	   and the footer around it are not capped — they grow with the container. So:

	       1280px screen   content 1100   section 1140   inset  20px  — looks fine
	       1440px screen   content 1120   section 1260   inset  70px
	       1920px screen   content 1120   section 1260   inset  70px
	       2560px screen   content 1120   section 1260   inset  70px

	   Past 1440 the content stops growing and the frame around it keeps going, so
	   the article sits in a narrow strip while the footer below it runs 140px wider.
	   On a large monitor that reads as a mistake, and it is one.

	   And it is not the same everywhere. Measured across page types at 1440px:

	       guides      text column 1040–1064   (these carry .gofly-content)
	       pages       text column 1218–1260
	       visa        text column 1252–1258
	       packages    text column 1252–1260
	       airline     text column 1236

	   Guides are ~200px narrower than the rest of the site for no reason other than
	   this wrapper. Let it fill the section, like every other page type does, and
	   the whole site lines up on one column. */
	html body .gofly-content{
		max-width:none !important;
		width:auto !important;
		margin-left:0 !important;
		margin-right:0 !important;
		padding-left:0 !important;
		padding-right:0 !important}

	/* One column, one left edge, on every page type.

	   Measured at 1440px, content column against the footer it sits above:

	       visa / package / airline / about-us   1260px at L=90   flush with footer
	       guides / pages (.gofly-content)       1220px at L=110  20px inside it

	   The 20px was .gofly-section's own horizontal padding. Nothing inside needs it
	   — every card and box in there already carries its own — so on desktop it just
	   pulls three page types out of line with the other four. Drop it there, keep it
	   on phones where the text really would touch the glass without it. */
	html body .gofly-section{
		padding-left:0 !important;
		padding-right:0 !important}

	@media (max-width:640px){
		html body .gofly-section{ padding-left:14px !important; padding-right:14px !important }
	}

	/* Featured images: the site's hero is 1200x630. Reserve the box before the file
	   arrives, or the page jumps as it loads. Two heroes were missing width/height
	   entirely; they now carry it. This backs that up for any that slip through. */
	/* 14 Oct 2026 — spacers, not cards.
	   Measured on all 372 fragments at 390px: these wrappers carry horizontal padding but have
	   no background and no border on ANY page, so the inset buys nothing - it just pushes the
	   text in while the paragraph above it stays at 14px, and the left edge of the page steps
	   in and out as you scroll. Cards keep their inset; these give it back. Phones only. */
	@media (max-width:600px){
		html body .gofly-boxed caption.sr-only,
		html body .entry-content caption.sr-only,
		html body .gofly-boxed div.a,
		html body .entry-content div.a,
		html body .gofly-boxed div.bv-faq-body,
		html body .entry-content div.bv-faq-body,
		html body .gofly-boxed div.card-body,
		html body .entry-content div.card-body,
		html body .gofly-boxed div.elementskit-faq-body,
		html body .entry-content div.elementskit-faq-body,
		html body .gofly-boxed div.em-faq-body,
		html body .entry-content div.em-faq-body,
		html body .gofly-boxed div.feature-item,
		html body .entry-content div.feature-item,
		html body .gofly-boxed div.gf-arc-airlines,
		html body .entry-content div.gf-arc-airlines,
		html body .gofly-boxed div.gf-body,
		html body .entry-content div.gf-body,
		html body .gofly-boxed div.gf-container,
		html body .entry-content div.gf-container,
		html body .gofly-boxed div.gf-dept-container,
		html body .entry-content div.gf-dept-container,
		html body .gofly-boxed div.gf-diff-content,
		html body .entry-content div.gf-diff-content,
		html body .gofly-boxed div.gf-disc-container,
		html body .entry-content div.gf-disc-container,
		html body .gofly-boxed div.gf-dm-container,
		html body .entry-content div.gf-dm-container,
		html body .gofly-boxed div.gf-dm-template-body,
		html body .entry-content div.gf-dm-template-body,
		html body .gofly-boxed div.gf-faq-body,
		html body .entry-content div.gf-faq-body,
		html body .gofly-boxed div.gf-form-container,
		html body .entry-content div.gf-form-container,
		html body .gofly-boxed div.gf-geo-wrap,
		html body .entry-content div.gf-geo-wrap,
		html body .gofly-boxed div.gf-image-placeholder,
		html body .entry-content div.gf-image-placeholder,
		html body .gofly-boxed div.gf-ins-faq-a,
		html body .entry-content div.gf-ins-faq-a,
		html body .gofly-boxed div.gf-insider-grid-v10,
		html body .entry-content div.gf-insider-grid-v10,
		html body .gofly-boxed div.gf-know-body,
		html body .entry-content div.gf-know-body,
		html body .gofly-boxed div.gf-leader-info,
		html body .entry-content div.gf-leader-info,
		html body .gofly-boxed div.gf-policy-container,
		html body .entry-content div.gf-policy-container,
		html body .gofly-boxed div.gf-problem-content,
		html body .entry-content div.gf-problem-content,
		html body .gofly-boxed div.gf-proof-item,
		html body .entry-content div.gf-proof-item,
		html body .gofly-boxed div.gf-rp-container,
		html body .entry-content div.gf-rp-container,
		html body .gofly-boxed div.gf-services-container,
		html body .entry-content div.gf-services-container,
		html body .gofly-boxed div.gf-solution-content,
		html body .entry-content div.gf-solution-content,
		html body .gofly-boxed div.gf-tc-container,
		html body .entry-content div.gf-tc-container,
		html body .gofly-boxed div.gf-touch-container,
		html body .entry-content div.gf-touch-container,
		html body .gofly-boxed div.gf-visa-cards-row,
		html body .entry-content div.gf-visa-cards-row,
		html body .gofly-boxed div.gf-visit-container,
		html body .entry-content div.gf-visit-container,
		html body .gofly-boxed div.gf-wrap,
		html body .entry-content div.gf-wrap,
		html body .gofly-boxed div.gfa-fold-body,
		html body .entry-content div.gfa-fold-body,
		html body .gofly-boxed div.gfb-faq-a,
		html body .entry-content div.gfb-faq-a,
		html body .gofly-boxed div.gfbn,
		html body .entry-content div.gfbn,
		html body .gofly-boxed div.gflypage,
		html body .entry-content div.gflypage,
		html body .gofly-boxed div.gft,
		html body .entry-content div.gft,
		html body .gofly-boxed div.gft-hs,
		html body .entry-content div.gft-hs,
		html body .gofly-boxed div.gfwhy-grid,
		html body .entry-content div.gfwhy-grid,
		html body .gofly-boxed div.gfwhy-shead,
		html body .entry-content div.gfwhy-shead,
		html body .gofly-boxed div.gfx2-body,
		html body .entry-content div.gfx2-body,
		html body .gofly-boxed div.gfx2-wrap,
		html body .entry-content div.gfx2-wrap,
		html body .gofly-boxed div.gofly-airlines-archive,
		html body .entry-content div.gofly-airlines-archive,
		html body .gofly-boxed div.gofly-bn-switch,
		html body .entry-content div.gofly-bn-switch,
		html body .gofly-boxed div.gofly-faq__answer,
		html body .entry-content div.gofly-faq__answer,
		html body .gofly-boxed div.gofly-thv,
		html body .entry-content div.gofly-thv,
		html body .gofly-boxed div.gofly-trust-bar,
		html body .entry-content div.gofly-trust-bar,
		html body .gofly-boxed div.gofly-wc26,
		html body .entry-content div.gofly-wc26,
		html body .gofly-boxed div.ig-faq-body,
		html body .entry-content div.ig-faq-body,
		html body .gofly-boxed div.item,
		html body .entry-content div.item,
		html body .gofly-boxed div.no-results,
		html body .entry-content div.no-results,
		html body .gofly-boxed div.oa-faq-body,
		html body .entry-content div.oa-faq-body,
		html body .gofly-boxed div.stat-item,
		html body .entry-content div.stat-item,
		html body .gofly-boxed div.tk-faq-body,
		html body .entry-content div.tk-faq-body,
		html body .gofly-boxed div.ub-faq-body,
		html body .entry-content div.ub-faq-body,
		html body .gofly-boxed div.wrap,
		html body .entry-content div.wrap,
		html body .gofly-boxed h1.gf-hero-title,
		html body .entry-content h1.gf-hero-title,
		html body .gofly-boxed header.gf-founder-section-header,
		html body .entry-content header.gf-founder-section-header,
		html body .gofly-boxed nav.visa-section,
		html body .entry-content nav.visa-section,
		html body .gofly-boxed section.airlines-section,
		html body .entry-content section.airlines-section,
		html body .gofly-boxed section.aps-crosslink,
		html body .entry-content section.aps-crosslink,
		html body .gofly-boxed section.contact-bar,
		html body .entry-content section.contact-bar,
		html body .gofly-boxed section.filter-wrapper,
		html body .entry-content section.filter-wrapper,
		html body .gofly-boxed section.gf-author-v10,
		html body .entry-content section.gf-author-v10,
		html body .gofly-boxed section.gf-compare-v10,
		html body .entry-content section.gf-compare-v10,
		html body .gofly-boxed section.gf-keyfacts-v10,
		html body .entry-content section.gf-keyfacts-v10,
		html body .gofly-boxed section.gf-quick-answer-v10,
		html body .entry-content section.gf-quick-answer-v10,
		html body .gofly-boxed section.gofly-auto-grid-wrapper,
		html body .entry-content section.gofly-auto-grid-wrapper,
		html body .gofly-boxed section.gofly-cta,
		html body .entry-content section.gofly-cta,
		html body .gofly-boxed section.gofly-faq-section,
		html body .entry-content section.gofly-faq-section,
		html body .gofly-boxed section.gofly-prices,
		html body .entry-content section.gofly-prices,
		html body .gofly-boxed section.gofly-related-categories,
		html body .entry-content section.gofly-related-categories,
		html body .gofly-boxed section.gofly-topics,
		html body .entry-content section.gofly-topics,
		html body .gofly-boxed section.gofly-why-related,
		html body .entry-content section.gofly-why-related,
		html body .gofly-boxed section.resource-hero,
		html body .entry-content section.resource-hero,
		html body .gofly-boxed section.trust-badges,
		html body .entry-content section.trust-badges{
			padding-left:0 !important;
			padding-right:0 !important}
	}

	/* 14 Oct 2026 — blocks that cap themselves narrower than the column they sit in.
	   Counted across the site: 330 inline max-width caps in 242 files. The ones between
	   1000px and 1200px were authored when the content column was 1100px wide; the column is
	   wider than that now, so each of these centres itself and sits ~25px inside the heading
	   and the paragraphs above it. On a page you see the text run the full width and then the
	   card under it step inward, which reads as a fault.
	   They fill the column instead, and the page keeps one left edge all the way down.
	   The 900px caps (.gf-container and friends, 150 of them) are a deliberate reading measure
	   and are left exactly as they are. Phones are unaffected - nothing is 1100px wide there. */
	@media (min-width:1100px){
	html body .gofly-boxed .gofly-funnel,
	html body .entry-content .gofly-funnel,
	html body .gofly-boxed .gf-founder-destination,
	html body .entry-content .gf-founder-destination,
	html body .gofly-boxed .gf-founder-destinations,
	html body .entry-content .gf-founder-destinations,
	html body .gofly-boxed .gf-founder-note,
	html body .entry-content .gf-founder-note,
	html body .gofly-boxed .gf-geo-wrap,
	html body .entry-content .gf-geo-wrap,
	html body .gofly-boxed .gofly-bn-switch,
	html body .entry-content .gofly-bn-switch,
	html body .gofly-boxed .gofly-en-switch,
	html body .entry-content .gofly-en-switch,
	html body .gofly-boxed .gofly-route-nav,
	html body .entry-content .gofly-route-nav,
	html body .gofly-boxed .gofly-exp,
	html body .entry-content .gofly-exp,
	html body .gofly-boxed .gf-quick-answer-v10,
	html body .entry-content .gf-quick-answer-v10,
	html body .gofly-boxed .gofly-why-related,
	html body .entry-content .gofly-why-related{
		max-width:100% !important;
		margin-left:0 !important;
		margin-right:0 !important}
	}

	html body .gofly-section figure > img[src]:not([width]){
		aspect-ratio:1200/630; width:100%; height:auto; display:block; object-fit:cover}

/* ---------- 09. gofly-contact-item  [wp_head pri 10] ---------- */
/* The contact rows spilling off the right edge — and it is the breadcrumb bug again.

	   The child theme sizes the little contact icon like this:

	       .single-post .entry-content .contact-icon,
	       .single-post .content-area   .contact-icon { width:48px; height:48px; flex-shrink:0 }

	   Scoped to .single-post. The pages this renders on are .page. So the width
	   never lands, and the icon — a div holding one emoji — has no width at all.
	   Inside a nowrap flex row it grows to the full 292px, and the text beside it
	   is pushed to left:351px on a 390px screen, past its own parent's right edge.

	   This is the second time today the same mistake has cost hours: a rule aimed
	   at a body class the page does not carry. 617 rules in the child theme are
	   scoped to .single-post. If these pages are WordPress posts, those rules land
	   and nothing is wrong. If they are pages, none of them do. Worth checking —
	   see the note in the handover.

	   Written to be correct either way: it restates the icon's size without naming
	   a body class, so it is a no-op where the theme's rule already applies. */
	html body .contact-icon{
		width:48px !important; height:48px !important;
		min-width:48px !important; max-width:48px !important;
		flex:0 0 48px !important;
		display:flex !important; align-items:center; justify-content:center;
		border-radius:12px; overflow:hidden}
	html body .contact-item{ display:flex !important; flex-wrap:wrap !important; gap:10px }
	html body .contact-item-content,
	html body .contact-info{ min-width:0 !important; flex:1 1 0 !important; overflow-wrap:anywhere }

	/* the same trap, generally: a flex child will not shrink below its content
	   unless told to. Nothing inside our sections may push past the viewport. */
	html body .gofly-section [style*="display:flex"] > *,
	html body .gofly-content [style*="display:flex"] > *{ min-width:0 }
	@media (max-width:640px){
		html body .contact-icon{ width:30px !important; height:30px !important;
			min-width:30px !important; max-width:30px !important; flex:0 0 30px !important }
	}

/* ---------- 10. gofly-grid-mobile  [wp_head pri 10] ---------- */
/* Package add-on cards running off the right edge on phones.

	   The add-on rows are inline-styled two-column grids:

	       <div style="display:grid;grid-template-columns:1fr 1fr;gap:16px">

	   Two problems, and they compound.

	   First, there is no mobile fallback: two columns on a 320px container is two
	   columns on a 320px container, phone or not.

	   Second, 1fr is shorthand for minmax(auto, 1fr), and that auto minimum means
	   a column will refuse to shrink below its content's intrinsic width. The
	   add-on cards hold a price and a Book Now button, so the columns push out to
	   179px + 213px + 16px gap = 408px inside a 320px box. Measured: the card sits
	   at left 230px and runs to 444px on a 390px screen. The Book Now button — the
	   one thing on a package page that has to be reachable — ends up off-screen.

	   Fix both: let the columns shrink (minmax(0,1fr)), and collapse to one column
	   on phones. Applies to the 149 pages carrying this inline grid.

	   The repeat(auto-fit, minmax(...)) grids elsewhere are fine — auto-fit already
	   collapses on its own. They are left alone. */

	/* A grid or flex child may never be wider than the space it is given.

	   By default a grid column is minmax(auto, 1fr), and that auto floor is the
	   child's min-content width — so a child simply refuses to shrink, and the
	   column grows to fit it, straight off the screen.

	   This bit me with my own fix: the table-wrapper rule gives tables
	   min-width:480px so they scroll inside their wrapper. On the visa page that
	   wrapper sits inside a grid cell — so the 480px became the column's minimum,
	   and a 320px box tried to hold a 480px column. Content that is meant to scroll
	   inside its own wrapper must not be allowed to push the wrapper wider.

	   min-width:0 on every grid and flex child, not just the inline-styled ones. */
	html body [style*="display:grid"] > *,
	html body [style*="display: grid"] > *,
	html body .gofly-section [class*="grid"] > *,
	html body .gofly-content [class*="grid"] > *,
	html body .visa-text-image > *,
	html body .entry-content [style*="display:flex"] > *{ min-width:0 !important }

	/* and the scrollable table keeps its minimum WITHOUT exporting it upward */
	html body .table-wrapper,
	html body [class*="table-wrap"]{ min-width:0 !important; max-width:100% !important }

	@media (max-width:640px){
		html body [style*="grid-template-columns:1fr 1fr"],
		html body [style*="grid-template-columns: 1fr 1fr"],
		html body [style*="grid-template-columns:1fr 1fr 1fr"],
		html body [style*="grid-template-columns:repeat(2,1fr)"],
		html body [style*="grid-template-columns:repeat(3,1fr)"]{
			grid-template-columns:1fr !important }

		html body .gf-addon-card,
		html body [style*="display:grid"] > *{
			max-width:100% !important; overflow-wrap:anywhere }
	}

/* ---------- 11. gofly-boxed  [wp_head pri 97] ---------- */
/* Align the page with its own breadcrumb.

	   The theme already has a container:

	       .container { max-width: 1140px; padding: 0 24px; }

	   and the breadcrumb sits in one. But each fragment then centres itself
	   inside that — .gofly-content at 880px, .gfbn at 860px, and so on across 42
	   different wrapper classes — so the article started roughly 100px to the
	   right of the breadcrumb above it. Nothing lined up with anything.

	   Two fixes, and only two rules:

	     1. .gofly-boxed claims no width of its own. It fills the theme's
	        container exactly, rather than adding a second one inside the first.
	     2. Whatever the fragment's outermost wrapper is called, it stops
	        centring itself. It fills the container too.

	   Now the breadcrumb, the featured image, the heading and the text all begin
	   on the same line, and the measure is set in one place — .container — for
	   the whole site. */
	.gofly-boxed{
		box-sizing:border-box;
		width:100%;
		max-width:100%;
		margin:0;
		padding:0}

	/* The fragment's page wrapper is not always a direct child — on the travel
	   guides the markup is

	       .gofly-boxed > section.gofly-section > div.gofly-content

	   and .gofly-content is the one centring itself at 880px. A child combinator
	   never reached it, which is why the page still sat 100px inboard of its own
	   breadcrumb after I "fixed" it.

	   The wrappers are un-centred in the fragments themselves now (46 of them).
	   This is the backstop, and it names them rather than matching every div at
	   any depth — a blanket rule would also flatten the cards, panels and callouts
	   that are centred on purpose. */
	.gofly-boxed > div,
	.gofly-boxed > section,
	.gofly-boxed > article,
	.gofly-boxed > main,
	.gofly-boxed .gofly-content,
	.gofly-boxed .gofly-tour-package,
	.gofly-boxed .gofly-visa-wrapper,
	.gofly-boxed .gofly-page-v10,
	.gofly-boxed .gofly-thv,
	.gofly-boxed .gofly-airlines-archive,
	.gofly-boxed .gf-wrap,
	.gofly-boxed .gfbn,
	.gofly-boxed .gf-container{
		box-sizing:border-box;
		width:100%;
		max-width:100% !important;
		margin-left:0 !important;
		margin-right:0 !important}

	/* Dead space under the breadcrumb.

	   Every fragment opens with a section that pads itself off the top of the
	   page — .gofly-section alone is 55px — and the theme's content wrapper adds
	   its own on top. On a page that already has a breadcrumb doing the job of
	   separating the header from the article, that stacks up to roughly 140px of
	   nothing between the breadcrumb and the H1. It reads as a rendering fault,
	   not as breathing room, and it costs the first screen on mobile.

	   The breadcrumb is the separator. The first block inside .gofly-boxed only
	   needs a hairline of space after it, so we zero the top padding on whichever
	   wrapper happens to come first and give it a small, deliberate one instead.
	   Only the FIRST block — everything below keeps its normal section rhythm. */
	.gofly-boxed{padding-top:0 !important;margin-top:0 !important}
	.gofly-boxed > *:first-child{margin-top:0 !important}
	.gofly-boxed > section:first-child,
	.gofly-boxed > div:first-child,
	.gofly-boxed > article:first-child,
	.gofly-boxed > main:first-child,
	.gofly-boxed > section.gofly-section:first-child,
	.gofly-boxed > .gofly-section:first-child{
		padding-top:14px !important}

	/* The rest of the gap is not ours. It sits on whatever the theme wraps the
	   fragment in, one or two levels above .gofly-boxed, and that wrapper has a
	   different class on almost every template. Rather than guess at names and
	   !important half the theme, :has() lets us name it by what it CONTAINS:
	   the only element on the page holding .gofly-boxed is the one we want.
	   Nothing else on the site matches, so this cannot leak. */
	:is(main,article,section,div):has(> .gofly-boxed),
	:is(main,article,section,div):has(> :is(main,article,section,div) > .gofly-boxed){
		padding-top:0 !important;
		margin-top:0 !important}

	/* Long prose still needs a readable line. Boxes, tables and cards use the
	   full width — they earn it — but a paragraph running the whole 1090px is
	   about 150 characters, roughly twice what the eye tracks comfortably. Cap
	   the running text, and only the running text. */
	.gofly-boxed > div > p,
	.gofly-boxed > div > div > p,
	.gofly-boxed > div > ul,
	.gofly-boxed > div > ol{
		max-width:78ch}

	/* The homepage is not inside .container — it is a full-bleed template — so it
	   supplies the same measure itself: section backgrounds run edge to edge, the
	   words inside them do not. */
	:root{--gf-container:1140px;--gf-gutter:24px}

	.gofly-front-page{width:100%;max-width:none;padding:0}
	.gofly-front-page .gsb-in,
	.gofly-front-page .gpd-in,
	.gofly-front-page .gab-in,
	.gofly-front-page .gwd-in,
	.gofly-front-page .grv-in,
	.gofly-front-page .gfq-in,
	.gofly-front-page .gct-in,
	.gofly-front-page .gai-in,
	.gofly-front-page .ggd-in,
	.gofly-front-page .gst-in,
	.gofly-front-page .gsol-in,
	.gofly-front-page .gfs-in{
		box-sizing:border-box;
		width:100%;
		max-width:var(--gf-container) !important;
		margin-inline:auto;
		padding-inline:var(--gf-gutter)}

	@media (max-width:600px){
		:root{--gf-gutter:16px}
		.gofly-boxed > div > p,
		.gofly-boxed > div > div > p,
		.gofly-boxed > div > ul,
		.gofly-boxed > div > ol{max-width:none}
	}


	/* goFLY — airline guide pages (the 11 .gf-wrap pages). Added 2026-10-08, rev 2.
	   Container width left exactly as it was — the theme's 1140px. The blank right
	   side came from the 78ch cap on prose while boxes ran full width; the prose now
	   fills the column too, so both end in the same place.
	   li::before is deliberately NOT used: the theme paints a 10px dot and a 28px
	   numbered circle there and the fragment hides them on purpose. Markers come
	   from list-style and ::marker instead. */
	
	/* the 78ch cap is what left ~490px empty beside every paragraph */
	html body.single-post:has(.gf-wrap) .gofly-boxed > div > p,
	html body.single-post:has(.gf-wrap) .gofly-boxed > div > div > p,
	html body.single-post:has(.gf-wrap) .gofly-boxed > div > ul,
	html body.single-post:has(.gf-wrap) .gofly-boxed > div > ol{
	  max-width:none !important}
	
	/* 15px/1.8 is airy over 4,000 words; 16px/1.65 is denser and easier to track */
	html body .entry-content .gf-wrap{
	  font-size:16px !important;
	  line-height:1.65 !important}
	
	/* lists: markers, indent and gaps were all reset with nothing put back */
	html body .entry-content .gf-wrap ul{
	  list-style:disc outside !important;
	  padding-left:24px !important;
	  margin:0 0 18px !important}
	html body .entry-content .gf-wrap ol{
	  list-style:decimal outside !important;
	  padding-left:28px !important;
	  margin:0 0 18px !important}
	/* the fragment sets list-style:none on the LI itself, which beats anything the
	   UL passes down — so the marker has to be named on the li too */
	html body .entry-content .gf-wrap ul > li{list-style:disc outside !important}
	html body .entry-content .gf-wrap ol > li{list-style:decimal outside !important}
	html body .entry-content .gf-wrap li{
	  padding-left:0 !important;
	  margin:0 0 8px !important;
	  line-height:1.6 !important}
	html body .entry-content .gf-wrap li::marker{color:#047857;font-weight:600}
	html body .entry-content .gf-wrap li > ul,
	html body .entry-content .gf-wrap li > ol{margin:8px 0 0 !important}
	
	/* a two-line pill should read as one object */
	html body .entry-content .gf-wrap .gf-tagline{line-height:1.45 !important}
	
	@media (max-width:600px){
	  html body .entry-content .gf-wrap{font-size:15.5px !important}
	  html body .entry-content .gf-wrap ul{padding-left:20px !important}
	  html body .entry-content .gf-wrap ol{padding-left:24px !important}
	}

	/* rev 3 — 8 Oct 2026.
	   (a) lists that bring their own markers keep them: rev 2's blanket
	       list-style:disc was overriding the Key Facts ticks, the gf-ul
	       mint dots and the gf-ol orange numbers.
	   (b) the CTA contact block gets one left edge instead of 9 centred rows. */
	html body .entry-content .gf-wrap .gf-air-keyfacts-inner ul,
	html body .entry-content .gf-wrap .gf-geo-kf-inner ul,
	html body .entry-content .gf-wrap ul.gf-ul,
	html body .entry-content .gf-wrap ol.gf-ol,
	html body .entry-content .gf-wrap .gf-toc-grid{
	  list-style:none !important;
	  padding-left:0 !important;
	  margin:0 !important}
	html body .entry-content .gf-wrap .gf-air-keyfacts-inner ul > li,
	html body .entry-content .gf-wrap .gf-geo-kf-inner ul > li{
	  list-style:none !important;
	  padding-left:26px !important;
	  margin:0 !important}
	html body .entry-content .gf-wrap ul.gf-ul > li,
	html body .entry-content .gf-wrap ol.gf-ol > li,
	html body .entry-content .gf-wrap .gf-toc-grid > li{
	  list-style:none !important;
	  padding-left:0 !important}
	html body .entry-content .gf-wrap .gf-air-keyfacts-inner li::before,
	html body .entry-content .gf-wrap .gf-geo-kf-inner li::before{
	  display:block !important;
	  content:"\2713" !important}
	html body .entry-content .gf-wrap .gf-air-keyfacts-inner li::marker,
	html body .entry-content .gf-wrap .gf-geo-kf-inner li::marker,
	html body .entry-content .gf-wrap ul.gf-ul li::marker,
	html body .entry-content .gf-wrap ol.gf-ol li::marker,
	html body .entry-content .gf-wrap .gf-toc-grid li::marker{content:"" !important}

	html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child){
	  text-align:left !important;
	  max-width:620px !important;
	  margin:0 auto 7px !important;
	  line-height:1.55 !important}
	html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child) > strong{
	  display:inline-block;
	  min-width:9.4em;
	  white-space:nowrap}
	@media (max-width:600px){
	  html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child) > strong{
	    display:block;
	    min-width:0}
	  html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child){
	    margin-bottom:11px !important}
	}
	
	/* rev 5 — 8 Oct 2026. Two things the live page showed that the harness could not.
	   (a) The theme paints a background on <strong> inside entry-content. rev 3 made the CTA
	       labels inline-block with min-width:9.4em to line the values up, which stretched that
	       background from hugging the word into a 9.4em grey band. Clear it inside the CTA only.
	   (b) The theme gives h3 a left bar and a tinted strip. Centred heading text inside a
	       left-barred strip reads as a mistake, so the CTA heading drops both. */
	html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child) > strong{
	  background:none !important;
	  background-color:transparent !important;
	  background-image:none !important;
	  box-shadow:none !important;
	  border:0 !important;
	  border-radius:0 !important;
	  padding:0 !important;
	  margin:0 !important}
	html body .entry-content .gf-wrap .gf-cta > h3{
	  background:none !important;
	  background-color:transparent !important;
	  background-image:none !important;
	  border:0 !important;
	  border-left:0 !important;
	  box-shadow:none !important;
	  padding-left:0 !important;
	  padding-right:0 !important}

	/* rev 6 — 8 Oct 2026. The foot of the CTA box.
	   (a) A long value (Hours) wrapped back to the label column, so the second line looked
	       like a new row. Hanging indent puts it under the value instead. text-indent is
	       inherited by inline children, so it is zeroed on them or the phone pills lose
	       their first characters.
	   (b) The trust line ran the full width of the box while every row above it sat in a
	       620px column, and it had no separation from them. It now shares the column and
	       sits behind a hairline rule, as a footer strip. */
	html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child){
	  padding-left:9.75em;
	  text-indent:-9.75em}
	html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child) > *{
	  text-indent:0}
	html body .entry-content .gf-wrap .gf-cta > p:last-child{
	  max-width:880px !important;
	  margin:16px auto 0 !important;
	  padding-top:13px;
	  border-top:1px solid rgba(4,120,87,.22);
	  line-height:1.95 !important}
	@media (max-width:600px){
	  html body .entry-content .gf-wrap .gf-cta > p:has(> strong:first-child){
	    padding-left:0;
	    text-indent:0}
	}

/* ---------- 12. gofly-page-title  [wp_head pri 98] ---------- */
/* The page title on a category or a fragment-rendered post.

	   It was a bare line of text floating in white space — correct, but it did
	   not look like it belonged to the page. This gives it the same treatment
	   the rest of the site uses: the short orange rule that marks a section, the
	   Cantora One heading face, and mint. Nothing decorative for its own sake —
	   the rule is the site's existing motif, and it tells the eye where the page
	   actually begins. */
	/* no width of its own — it sits inside the fragment's wrapper and takes
	   whatever width that wrapper has, so it always lines up with the text */
	.gofly-page-head{
		box-sizing:border-box;
		width:100%;
		margin:0 0 26px;
		padding:0}
	.gofly-page-head::before{
		content:"";
		display:block;
		width:52px;height:4px;
		margin:0 0 16px;
		border-radius:2px;
		background:#c2410c}
	.gofly-page-title{
		box-sizing:border-box;
		max-width:none;
		margin:0;
		padding:0;
		font-family:'Cantora One',sans-serif;font-weight:400;
		font-size:clamp(28px,4.6vw,42px);
		line-height:1.18;
		letter-spacing:-0.01em;
		color:#065f46;
		text-align:left;
		overflow-wrap:break-word;word-wrap:break-word}

	@media (max-width:600px){
		.gofly-page-head{margin-bottom:20px}
		.gofly-page-head::before{width:44px;height:3px;margin-bottom:12px}
		.gofly-page-title{font-size:clamp(25px,6.6vw,32px);max-width:none}
	}

/* ---------- 13. gofly-header-css  [wp_head pri 99] ---------- */
.gfhdr,.gfhdr-panel,.gfhdr-overlay{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec}
.gfhdr *{box-sizing:border-box}
.gfhdr-top{background:var(--ink)}
.gfhdr-top-in{max-width:1140px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 24px}
.gfhdr-top a,.gfhdr-top .gfhdr-mail{color:#dfe9e5;text-decoration:none;display:inline-flex;align-items:center;gap:7px;font-family:'Hind Siliguri',sans-serif;font-size:13.5px;letter-spacing:.01em;transition:color .25s}
.gfhdr-top a:hover{color:#fff}
.gfhdr-top svg{width:14px;height:14px;fill:currentColor;opacity:.85;flex:0 0 auto}
.gfhdr-trust,.gfhdr-contact{display:flex;align-items:center;gap:16px}
.gfhdr-tr{color:#cfe0da;display:inline-flex;align-items:center;gap:6px;font-family:'Hind Siliguri',sans-serif;font-size:13px;letter-spacing:.02em;white-space:nowrap}
.gfhdr-tr svg{width:14px;height:14px;fill:#34d399;opacity:1}
.gfhdr-star{color:#fbbf24;font-style:normal;margin:0 1px}
.gfhdr-sep{width:1px;height:13px;background:rgba(255,255,255,.16);flex:0 0 auto}
.gfhdr-mwa{display:none;width:44px;height:44px;border-radius:12px;background:var(--mint);color:#fff;align-items:center;justify-content:center;text-decoration:none;margin-right:8px;flex:0 0 auto}
.gfhdr-mwa svg{width:22px;height:22px;fill:#fff}
.gfhdr-main{position:sticky;top:0;z-index:9999;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}
.gfhdr-main-in{max-width:1140px;margin:0 auto;display:flex;align-items:center;gap:28px;padding:13px 24px}
.gfhdr-col-logo{flex:1 1 0;display:flex;align-items:center;min-width:0}
.gfhdr-col-nav{flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-width:0}
.gfhdr-col-cta{flex:1 1 0;display:flex;align-items:center;justify-content:flex-end;min-width:0}
.gfhdr-logo{flex:0 0 auto}
.gfhdr-logo img{height:46px;width:auto;display:block}
.gfhdr-nav{display:flex;justify-content:center;width:100%}
.gfhdr-menu{list-style:none;display:flex;align-items:center;gap:2px;margin:0;padding:0}
.gfhdr-menu>li{position:relative}
.gfhdr-menu a{display:flex;align-items:center;gap:5px;font-family:'Hind Siliguri',sans-serif;font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:9px 13px;border-radius:9px;transition:color .2s,background .2s}
.gfhdr-menu a:hover{color:var(--mint);background:rgba(4,120,87,.06)}
.gfhdr-menu .current-menu-item>a,.gfhdr-menu .current-menu-ancestor>a{color:var(--mint)}
.gfhdr-menu>li.current-menu-item::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;background:var(--org);border-radius:2px}
.gfhdr-menu .menu-item-has-children>a::after{content:"\25BE";font-size:.62em;opacity:.55;margin-left:1px;transition:transform .25s}
.gfhdr-menu .menu-item-has-children:hover>a::after{transform:rotate(180deg)}
.gfhdr-menu .sub-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:250px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(18,51,43,.12);padding:8px;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .22s,transform .22s,visibility .22s;z-index:60}
.gfhdr-menu li:hover>.sub-menu,.gfhdr-menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.gfhdr-menu .sub-menu a{display:block;padding:11px 14px;border-radius:9px;font-size:12.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.gfhdr-menu .sub-menu a::after{content:none}
.gfhdr-menu .sub-menu a:hover{background:rgba(4,120,87,.07);color:var(--mint);padding-left:20px}
.gfhdr-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;font-family:'Hind Siliguri',sans-serif;font-weight:600;font-size:15px;background:var(--mint);color:#fff;text-decoration:none;padding:11px 22px;border-radius:100px;box-shadow:0 6px 18px rgba(4,120,87,.22);white-space:nowrap;transition:transform .25s,background .25s,box-shadow .25s}
.gfhdr-cta:hover{background:var(--mint-d);transform:translateY(-2px);box-shadow:0 12px 26px rgba(4,120,87,.3)}
.gfhdr-cta svg{width:17px;height:17px;fill:currentColor}
/* defensive: parent theme colours header anchors with its orange accent — force brand-correct white on the pill + WA icon */
html body .gfhdr-cta,html body .gfhdr-cta:link,html body .gfhdr-cta:visited,html body .gfhdr-cta:hover,html body .gfhdr-cta:focus{color:#fff!important}
html body .gfhdr-cta svg,html body .gfhdr-mwa svg{fill:#fff!important}
.gfhdr-burger{display:none;width:44px;height:44px;border:none;border-radius:12px;background:var(--ink);color:#fff;cursor:pointer;align-items:center;justify-content:center}
.gfhdr-burger svg{width:24px;height:24px;fill:#fff}
/* defensive (ID-strength): parent theme paints header anchors orange + blanks the burger icon. ID selectors beat any theme class/element rule. */
#gfhdrTopD a,#gfhdrTopD .gfhdr-mail,#gfhdrTopM a{color:#dfe9e5!important}
#gfhdrTopD a:hover,#gfhdrTopD a:focus,#gfhdrTopM a:hover,#gfhdrTopM a:focus{color:#fff!important}
#gfhdrTopD a svg,#gfhdrTopD .gfhdr-mail svg,#gfhdrTopM a svg{fill:currentColor!important}
#gfhdrBurger{background:var(--ink)!important;border:none!important;color:#fff!important}
#gfhdrBurger svg,#gfhdrBurger svg path{fill:#fff!important}
html body .gfhdr-cta svg,html body .gfhdr-mwa svg{fill:#fff!important}
.gfhdr-menu a:focus-visible,.gfhdr-cta:focus-visible,.gfhdr-burger:focus-visible{outline:2px solid var(--org);outline-offset:2px}
.gfhdr-top--m{display:none}
.gfhdr-panel{position:fixed;top:0;left:0;height:100%;width:86%;max-width:320px;background:#fff;box-shadow:20px 0 60px rgba(18,51,43,.18);transform:translateX(-105%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:100001;overflow-y:auto}
.gfhdr-panel.open{transform:translateX(0)}
.gfhdr-panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}
.gfhdr-panel-head img{height:38px;width:auto}
.gfhdr-close{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:20px;line-height:1;cursor:pointer;transition:.25s}
.gfhdr-close:hover{background:var(--ink);color:#fff}
.gfhdr-mmenu{list-style:none;margin:0;padding:14px}
.gfhdr-mmenu li{margin-bottom:2px;position:relative}
.gfhdr-mmenu a{display:flex;align-items:center;justify-content:space-between;font-family:'Hind Siliguri',sans-serif;font-weight:600;font-size:14px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:13px 14px;border-radius:10px;transition:.2s}
.gfhdr-mmenu a:hover,.gfhdr-mmenu .current-menu-item>a{background:rgba(4,120,87,.07);color:var(--mint)}
.gfhdr-mmenu .sub-menu{display:none;list-style:none;padding:2px 0 6px 12px;margin:2px 0;border-left:2px solid var(--line)}
.gfhdr-mmenu .menu-item-has-children.open>.sub-menu{display:block}
.gfhdr-mmenu .sub-menu a{font-size:12.5px;color:var(--muted)}
.gfhdr-sub-toggle{flex:0 0 auto;width:28px;height:28px;margin-left:auto;background:rgba(4,120,87,.08);border:1px solid var(--line);border-radius:8px;color:var(--mint);font-size:11px;line-height:1;cursor:pointer;transition:.25s}
.gfhdr-mmenu .menu-item-has-children.open>a .gfhdr-sub-toggle{transform:rotate(180deg);background:var(--mint);border-color:var(--mint);color:#fff}
.gfhdr-overlay{position:fixed;inset:0;background:rgba(18,51,43,.5);opacity:0;visibility:hidden;transition:.3s;z-index:100000}
.gfhdr-overlay.open{opacity:1;visibility:visible}
@media(max-width:1200px){.gfhdr-trust .gfhdr-tr:last-child,.gfhdr-trust .gfhdr-sep:last-of-type{display:none}}
@media(max-width:1024px){
  .gfhdr-top--d{display:none}.gfhdr-top--m{display:block}
  .gfhdr-top-in{padding:7px 18px}
  .gfhdr-main-in{padding:11px 18px;gap:12px}
  .gfhdr-col-nav{display:none}
  .gfhdr-col-logo{flex:0 0 auto}
  .gfhdr-col-cta{flex:1 1 auto}
  .gfhdr-cta{display:none}
  .gfhdr-mwa{display:inline-flex}
  .gfhdr-burger{display:inline-flex}
  .gfhdr-logo img{height:40px}
}

/* ---------- 14. gofly-innerpage-css  [wp_head pri 99] ---------- */
/* redundant bare theme archive title ("Category: X") — Elementor content already has its own title */
html body .page-header{ display:none !important; }
/* single-post / tour / widget pages: the goFLY widget provides its own title, so the theme's empty .entry-header
   shows as a bare grey band. Hide it ONLY on pages that contain a goFLY widget (blog-post titles stay intact). */
html body:has(.gofly-tour-package) .entry-header,
html body:has(.gofly-page-bg) .entry-header,
html body:has(.gofly-route) .entry-header,
html body:has(.gofly-tour-package) .page-header{ display:none !important; }
/* Elementor single posts (tour/route/package): no theme title element exists, but the parent-theme body/wrapper
   near-white (#f9fafc) background shows as an empty band above the content. Force body + wrappers white and
   collapse every top gap (padding AND margin) so content starts flush under the header. */
html body.single.elementor-page{ background:#ffffff !important; }
html body.single.elementor-page #acc-content{ background:#ffffff !important; padding-top:0 !important; margin-top:0 !important; }
html body.single.elementor-page #content.site-content{ background:#ffffff !important; padding-top:0 !important; margin-top:0 !important; }
html body.single.elementor-page #content.site-content > .container{ padding-top:0 !important; margin-top:0 !important; }
html body.single.elementor-page #content.site-content .elementor{ margin-top:0 !important; padding-top:0 !important; }
/* tour pages: the outer Elementor container carries a full-page mint gradient (#B2F3DF→#fff). Replace it with
   clean white so only the inner cards/sections keep their own colours. Targets the top container structurally
   (each tour page has a different container id), scoped to single Elementor posts. */
html body.single.elementor-page #content.site-content .elementor > .e-con.e-parent{ background-image:none !important; background-color:#ffffff !important; }
html body.single.elementor-page #content.site-content .elementor > .e-con.e-parent > .elementor-background-overlay,
html body.single.elementor-page #content.site-content .elementor > .e-con.e-parent > .elementor-motion-effects-container > .elementor-motion-effects-layer{ background-image:none !important; background:transparent !important; }
/* breadcrumb bar (.top-bar) — world-class: clean contained row, home icon, chevron separators, clear current state */
html body .top-bar{ background:transparent !important; border:none !important; box-shadow:none !important; padding:16px 0 10px !important; }
html body .top-bar .container{ max-width:1140px !important; margin:0 auto !important; padding-left:24px !important; padding-right:24px !important; }
html body #crumbs{ display:flex !important; align-items:center !important; flex-wrap:wrap !important; gap:1px !important; font-family:'Hind Siliguri',sans-serif !important; font-size:13.5px !important; font-weight:500 !important; letter-spacing:.005em !important; line-height:1.2 !important; color:#5f6f6a !important; }
html body #crumbs a{ display:inline-flex !important; align-items:center !important; gap:5px !important; color:#047857 !important; text-decoration:none !important; padding:2px 3px !important; border-radius:6px !important; transition:color .2s ease, background .2s ease !important; }
html body #crumbs a:hover{ color:#065f46 !important; background:rgba(4,120,87,.07) !important; }
html body #crumbs > a:first-child::before,
html body #crumbs > span:first-child a::before{ content:"" !important; width:14px !important; height:14px !important; flex:0 0 auto !important; background-color:currentColor !important; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E") center/contain no-repeat !important; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z'/%3E%3C/svg%3E") center/contain no-repeat !important; }
html body #crumbs .separator{ color:#c3d0cb !important; margin:0 5px !important; font-size:0 !important; display:inline-flex !important; align-items:center !important; }
html body #crumbs .separator::after{ content:"" !important; width:15px !important; height:15px !important; background-color:currentColor !important; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 6 15 12 9 18'/%3E%3C/svg%3E") center/contain no-repeat !important; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 6 15 12 9 18'/%3E%3C/svg%3E") center/contain no-repeat !important; }
/* current (last) breadcrumb item: ink + bold + not a link — no home icon, no hover */
html body #crumbs .current,
html body #crumbs .current a,
html body #crumbs > span:last-child:not(.separator),
html body #crumbs > span:last-child:not(.separator) a{ color:#12332b !important; font-weight:600 !important; text-decoration:none !important; background:none !important; cursor:default !important; pointer-events:none !important; }
html body #crumbs > span:last-child a::before,
html body #crumbs .current a::before{ display:none !important; content:none !important; }
/* Article/blog single posts: the breadcrumb's last item is the full SEO page title
   (long, ends with "| goFLY") and just duplicates the H1 below — drop it and its
   preceding separator so the trail ends cleanly at the parent category. Service PAGES
   (body.page, e.g. "Visa Services") keep their short current label. */
html body.single #crumbs .current,
html body.single #crumbs > span:last-child:not(.separator){ display:none !important; }
html body.single #crumbs .separator:has(+ .current),
html body.single #crumbs .separator:has(+ span:last-child:not(.separator)){ display:none !important; }
/* Mobile: maximise content width on ALL pages by removing the wasted outer Elementor/theme
   container side-gap, THEN give prose pages a comfortable 14px inset so text isn't glued to the
   screen edge. Tour widgets stay fully edge-to-edge (card layout). */
@media(max-width:782px){
  html body #content.site-content > .container,
  html body .site-content .container,
  html body .elementor .e-con.e-parent,
  html body .elementor .e-con,
  html body .elementor .e-con > .e-con-inner{ padding-left:0 !important; padding-right:0 !important; }
  html body .elementor .e-con{ --padding-inline-start:0 !important; --padding-inline-end:0 !important; }
  html body .elementor .e-con > .e-con-inner{ max-width:100% !important; }
  /* TOUR widgets = full-width cards (edge-to-edge 0) */
  html body .gofly-tour-package,
  html body .gofly-route{ padding-left:0 !important; padding-right:0 !important; }
  /* PROSE / content pages (visa, airline, core, guides) = comfortable 14px so text isn't
     glued to the screen edge. Wasted outer gap already removed above; this is just readable inset. */
  html body .gofly-visa-wrapper,
  html body .gofly-page,
  html body .gofly-page-bg,
  html body .gofly-auto-grid-wrapper{ padding-left:14px !important; padding-right:14px !important; }
  html body .entry-content > :is(p,ul,ol,h1,h2,h3,h4,blockquote,figure,table),
  html body .content-area > .entry-content > :is(p,ul,ol,h1,h2,h3,h4){ padding-left:14px !important; padding-right:14px !important; }
  /* 14 Oct 2026 — the fragments whose own page wrapper has no inset of its own.
     Measured across all 372 fragments: 88 pages open with a wrapper that is neither in the
     list above nor padded by its own stylesheet, so with .container zeroed on phones their
     text sat flat against the glass (the IndiGo page is the one that showed it). Same 14px
     as the prose wrappers above, scoped to the fragment so a class like .two or .note cannot
     catch anything else on the page. */
  html body .entry-content > .quick-contact,
  html body .gofly-boxed > .quick-contact,
  html body .entry-content > .gofly-page-v10,
  html body .gofly-boxed > .gofly-page-v10,
  html body .entry-content > .two,
  html body .gofly-boxed > .two,
  html body .entry-content > .tk-v1,
  html body .gofly-boxed > .tk-v1,
  html body .entry-content > .biman-v4,
  html body .gofly-boxed > .biman-v4,
  html body .entry-content > .oa-v1,
  html body .gofly-boxed > .oa-v1,
  html body .entry-content > .gf-v1,
  html body .gofly-boxed > .gf-v1,
  html body .entry-content > .usb-v1,
  html body .gofly-boxed > .usb-v1,
  html body .entry-content > .emr-v1,
  html body .gofly-boxed > .emr-v1,
  html body .entry-content > .gf-b2b-page,
  html body .gofly-boxed > .gf-b2b-page,
  html body .entry-content > .visa-hero-content,
  html body .gofly-boxed > .visa-hero-content,
  html body .entry-content > .gf-dmca-page,
  html body .gofly-boxed > .gf-dmca-page,
  html body .entry-content > .airlines-archive,
  html body .gofly-boxed > .airlines-archive,
  html body .entry-content > .gf-disc-page,
  html body .gofly-boxed > .gf-disc-page,
  html body .entry-content > .gf-faq-page,
  html body .gofly-boxed > .gf-faq-page,
  html body .entry-content > .gf-emi-page,
  html body .gofly-boxed > .gf-emi-page,
  html body .entry-content > .gf-page,
  html body .gofly-boxed > .gf-page,
  html body .entry-content > .gf-terms-page,
  html body .gofly-boxed > .gf-terms-page,
  html body .entry-content > .gf-refund-page,
  html body .gofly-boxed > .gf-refund-page,
  html body .entry-content > .gf-insurance-page,
  html body .gofly-boxed > .gf-insurance-page,
  html body .entry-content > .gf-hero-head,
  html body .gofly-boxed > .gf-hero-head,
  html body .entry-content > .gf-policy-page,
  html body .gofly-boxed > .gf-policy-page{ padding-left:14px !important; padding-right:14px !important; }
}
/* Double sticky footer fix: tour widgets ship their own dark mobile CTA (.gf-sticky-mobile-cta,
   forced visible via inline !important) which stacks on top of the global .gofly-footer-bar.
   Keep the consistent global bar; hide the tour's duplicate (also removes an off-brand dark bar).
   The existing body padding-bottom stays and now serves the single remaining (global) bar. */
html body .gf-sticky-mobile-cta,
html body .gofly-tour-package .gf-sticky-mobile-cta{ display:none !important; }
/* Double sticky (airline/visa/aeo): these pages ship their own per-page footer bar
   (gp-/gf-/xx-v1-/xx-v4-footer-bar) which stacks on the global .gofly-footer-bar.
   Keep the consistent global bar; hide the per-page duplicates. (~100 pages, one rule.) */
html body .gp-footer-bar,
html body .gf-footer-bar,
html body [class*="-v1-footer-bar"],
html body [class*="-v4-footer-bar"]{ display:none !important; }
/* India-reopen UPDATE box contrast: the green box sets color:#fff on the container, but the
   theme's p{color} rule overrides child paragraphs (dark text on green = unreadable). Force
   white on the box's text children; leave the accent link (a) its orange colour. (~6 pages.) */
html body div[style*="linear-gradient(135deg,#047857,#065f46)"] p,
html body div[style*="linear-gradient(135deg,#047857,#065f46)"] strong,
html body div[style*="linear-gradient(135deg,#047857,#065f46)"] li{ color:#fff !important; }
/* breadcrumb inner pages (homepage has no .top-bar, so it's unaffected): collapse the theme/Elementor
   content-wrapper top gap so content sits neatly under the breadcrumb instead of a big empty band */
html body:has(.top-bar) #content.site-content{ padding-top:0 !important; }
html body:has(.top-bar) #content.site-content > .container{ padding-top:0 !important; }
html body:has(.top-bar) #content.site-content .elementor > .e-con.e-parent{ padding-top:0 !important; margin-top:0 !important; }
/* listing hero (.gf-intro) carried a large top padding that showed as an empty gap under the breadcrumb — tighten it */
html body .gf-intro{ padding-top:22px !important; }

/* The breadcrumb gap, CSS half. The chain above .gofly-section is
   .site-main > article > .text-holder > .entry-content, and none of those were
   ever zeroed — the old rules stopped at .container. Scoped to :has(.top-bar) so
   the homepage, which has no breadcrumb, is untouched. */
/* THE breadcrumb gap. Measured, not guessed.

   The parent theme (Rara "Travel Agency", line 1689) says:

       #content { margin: 60px 0 80px; }

   That 60px is the band. It has always been the band. And there IS already a
   rule here meant to kill it —

       html body.single.elementor-page #content.site-content{ margin-top:0 !important; }

   — but read the selector. It needs .single AND .elementor-page on <body>.
   This page carries neither. Its body classes are:

       wp-singular  page-template  page-template-elementor_header_footer
       page  page-id-14361  ...

   .page, not .single. No .elementor-page at all. So the rule has never once
   matched on a page like this, and the 60px was never touched. Every fix that
   followed then aimed at padding — .site-content, .container, .e-con — and the
   gap is not padding. It is margin, on an ID, in the parent theme.

   Three contributors, measured on the live DOM with the real stylesheets:
       #content       margin-top 60px   (parent theme)
       .entry-content margin-top 26px   (collapsed from its first child)
       .gofly-section padding-top 12px  (ours, and correct)

   Zero the first two. Scope to :has(.top-bar): every inner page has the
   breadcrumb, the homepage does not, so the homepage is untouched. Do not
   name a body class — that is the mistake this is replacing. */
html body:has(.top-bar) #content,
html body:has(.top-bar) #content.site-content{
	margin-top:0 !important; padding-top:0 !important; }

/* `article` here means the theme's ONE content wrapper — <article class="page ...">,
   a direct child of .site-main. Written bare it matched every <article> on the page,
   and the fragments use <article> for their own cards. It was zeroing the top padding
   of every component card on the site (the department cards on /contact-us were the
   ones that showed it). #content article is (1,1,3): an ID, so a card's own rule —
   however many classes it stacks — could never win it back. Scoped to the wrapper. */
html body:has(.top-bar) #content .entry-content,
html body:has(.top-bar) #content .text-holder,
html body:has(.top-bar) #content .site-main,
html body:has(.top-bar) #content .site-main > article,
html body:has(.top-bar) #content .row,
html body:has(.top-bar) #content #primary{
	margin-top:0 !important; padding-top:0 !important; }

/* and nothing inside may push it back down */
html body:has(.top-bar) #content .entry-content > *:first-child{
	margin-top:0 !important; }

/* wpautop wraps every bare <style>/<script> we paste into the page body in its
   own <p>. The tag inside is display:none, so the paragraph renders as nothing —
   but it still takes its bottom margin, once per block, stacked. Remove them. */
html body .entry-content > p:empty,
html body .entry-content > p:has(> style:only-child),
html body .entry-content > p:has(> script:only-child),
html body .entry-content > p:has(> link:only-child){
	display:none !important; margin:0 !important; padding:0 !important; }

/* QUICK ANSWER: the badge and the question were pushed apart by the theme's
   generic h2 rule (margin:1.3em 0 .5em, padding-bottom:14px, plus its underline
   bar). .gf-geo-q sets no margin of its own, so the theme won. */
/* The gap between the QUICK ANSWER badge and the question it answers.

   The theme says, with !important:
       html body .single-post .entry-content h2{ margin:3.4rem !important }
   3.4rem is 54.4px, plus 14px of padding-bottom, and that is the 64px.

   The rule that was here already had !important — but its specificity came out
   at exactly (0,2,3), the same as the theme's, and on a tie the later rule wins.
   The theme's loads after. So it won, every time, on every page carrying a Quick
   Answer. Naming the section as well takes this to (0,3,3) and settles it. */
html body .gf-geo-qa .gf-geo-qa-inner h2.gf-geo-q,
html body section.gf-geo-qa .gf-geo-qa-inner h2.gf-geo-q,
html body .entry-content .gf-geo-qa-inner h2.gf-geo-q{
	margin:8px 0 10px !important; padding-bottom:0 !important; border:0 !important; }
html body .gf-geo-qa .gf-geo-qa-inner h2.gf-geo-q::after,
html body .gf-geo-qa .gf-geo-qa-inner h2.gf-geo-q::before,
html body .entry-content .gf-geo-qa-inner h2.gf-geo-q::after,
html body .entry-content .gf-geo-qa-inner h2.gf-geo-q::before{
	display:none !important; content:none !important; }
html body .gf-geo-qa .gf-geo-qa-inner .gf-geo-eyebrow{ margin-bottom:0 !important; }

/* Final CTA, primary button: .gofly-section a:hover repaints every link orange,
   and the button's background is already orange — so on hover the label vanished
   into it. State the colour on the hover itself so nothing can take it. */
html body .gofly-section .cta-btn:not(.secondary),
html body .gofly-section .cta-btn:not(.secondary):hover,
html body .gofly-section .cta-btn:not(.secondary):focus,
html body .gofly-section .cta-btn:not(.secondary):active{
	color:#ffffff !important; border-bottom-color:transparent !important; }
html body .gofly-section .cta-btn.secondary,
html body .gofly-section .cta-btn.secondary:hover,
	/* .gofly-section .cta-btn.secondary { color:#0f172a } — REMOVED 14 Jul.
	   Right for exactly one page (transparent face, 17.9:1) and wrong for the other
	   twenty-two (mint #047857 face, 3.3:1 — this WAS the "Call First" bug).
	   One selector cannot serve two opposite faces. Every page already declares the
	   correct background AND colour together; no global rule is needed at all. */
@media(max-width:768px){ html body .gf-intro{ padding-top:14px !important; } }

/* ---------- 15. gofly-a11y  [wp_head pri 99] ---------- */
.skip-link,
a.skip-link.screen-reader-text{
  position:absolute !important;width:1px !important;height:1px !important;
  margin:-1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;
  clip:rect(0 0 0 0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;
}
.skip-link:focus,
.skip-link:focus-visible{
  position:fixed !important;left:8px !important;top:8px !important;
  width:auto !important;height:auto !important;margin:0 !important;padding:10px 18px !important;
  overflow:visible !important;clip:auto !important;clip-path:none !important;white-space:normal !important;
  z-index:100001 !important;background:#fff !important;color:#064e3b !important;
  font-weight:700 !important;outline:3px solid #c2410c !important;border-radius:8px !important;
}

/* ---------- 16. gofly-layout-fixes  [wp_head pri 100] ---------- */
.gf-includes-section .gf-include-list li,
.gf-include-list li{ display:block !important; position:relative; padding-inline-start:32px; }
.gf-include-list li .gf-check-icon,
.gf-include-list li .gf-cross-icon{ position:absolute; inset-inline-start:0; inset-block-start:13px; margin:0 !important; }
.gf-include-list li:hover{ padding-inline-start:38px; }
/* FAQ: align the question cards to the LEFT, in line with the section heading */
.gf-faq-list{ margin-inline:0 !important; max-width:none !important; }
/* Ideal-For tags: fix invisible-on-hover text + neat responsive grid (4-5 columns) */
.gf-perfect-tags{ display:grid !important; grid-template-columns:repeat(5, minmax(0,1fr)); gap:8px; }
@media (max-width:900px){ .gf-perfect-tags{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:560px){ .gf-perfect-tags{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
.gf-perfect-tags .gf-tag{ display:flex; align-items:center; justify-content:center; text-align:center; }
.gf-tag:hover, .gf-tag:hover *{ background:var(--mint-dark) !important; border-color:var(--mint-dark) !important; color:#fff !important; }

/* ---------- 17. gofly-btn-contrast  [wp_head pri 100] ---------- */
/* ============================================================
   A) SOLID buttons (colored / brand / dark background) => WHITE
   ============================================================ */
html body a.elementor-button:not(.is-style-outline):not([class*="outline"]),
html body a.elementor-button:not(.is-style-outline):not([class*="outline"]) .elementor-button-text,
html body a.elementor-button:not(.is-style-outline):not([class*="outline"]) i,
html body a.elementor-button:not(.is-style-outline):not([class*="outline"]) svg,
html body .elementor-button.elementor-button:not([class*="outline"]) .elementor-button-text,
html body .elementskit-btn:not([class*="outline"]),
html body .elementskit-btn:not([class*="outline"]) *,
html body .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
html body .wp-block-button:not(.is-style-outline) > .wp-block-button__link *,
html body .gofly-card__link,
html body .gofly-card__link *,
html body .social-btn,
html body .social-btn svg,
html body .social-row a.social-btn,
html body .social-row a.social-btn svg{
  color:#fff !important;
  fill:#fff !important;
}

/* ============================================================
   B) OUTLINE / GHOST / LIGHT buttons => DARK brand text
   (so text stays visible on light / transparent backgrounds)
   ============================================================ */
html body a.elementor-button.is-style-outline,
html body a.elementor-button[class*="outline"],
html body a.elementor-button.is-style-outline .elementor-button-text,
html body a.elementor-button[class*="outline"] .elementor-button-text,
html body a.elementor-button.is-style-outline i,
html body a.elementor-button.is-style-outline svg,
html body .wp-block-button.is-style-outline > .wp-block-button__link,
html body .elementskit-btn[class*="outline"],
html body .elementskit-btn[class*="outline"] *{
  color:#065f46 !important;   /* brand dark mint — visible on light bg */
  fill:#065f46 !important;
}

/* ============================================================
   D) goFLY CUSTOM CTA buttons (.gfcta-btn)
      solid variants (-org / -grn / any non-outline) => WHITE
      outline variant (-out) => DARK navy (stays visible on white)
   ============================================================ */
html body .gfcta-btn:not(.gfcta-btn-out),
html body .gfcta-btn:not(.gfcta-btn-out) span,
html body .gfcta-btn:not(.gfcta-btn-out) strong{color:#fff !important;fill:#fff !important}
html body .gfcta-btn.gfcta-btn-out,
html body .gfcta-btn.gfcta-btn-out span{color:#065f46 !important}

/* ============================================================
   C) HERO slider buttons — never touched by A/B (own classes),
      but locked here too for total safety.
   ============================================================ */
html body .gfhero a.gfhero-btn,
html body .gfhero a.gfhero-btn *{color:#fff !important;fill:#fff !important}

/* ---------- 18. gofly-tel-button-bg  [wp_head pri 100] ---------- */
/* Every call button on the site, and why they were all quietly broken.

	   The child theme carries this:

	       .content-area a[href^="tel:"]      { background: linear-gradient(#dcfce7,#f0fdf4) }
	       .content-area a[href^="tel:"]:hover{ background: linear-gradient(#bbf7d0,#dcfce7) }

	   Specificity (0,2,1). A button's own rule — .gf-cta-btn { background:… } — is
	   (0,1,0). The theme wins. So EVERY tel: link on this site was being repainted
	   pale mint, and the white label on it disappeared. Not on hover. Always. The
	   only buttons that survived were the ones with an inline style or !important.

	   That rule was written for the small contact chips. It ended up covering the
	   Book Now button on 128 package pages and the floating Call button on 46 more.

	   Chasing it class by class does not end — there are 26 different button classes
	   on tel: links. So instead: the theme rule was deleted at runtime, every button
	   was re-rendered, and its OWN intended background and label colour were read
	   straight off the computed style. Those measured values are what is restored
	   below, at a specificity the theme cannot beat.

	   Reading them turned up seven more faults that had nothing to do with the theme:

	       .btn / .btn-lg / .btn-primary   mint background, GREEN label   1.5:1
	       .sticky-call                    blue background (off-brand)    1.2:1
	       .gf-oc-btn / .gf-cbar-item      white background, #059669      3.8:1

	   Those are corrected here too. The bright orange #c2410c only reaches 3.6:1
	   against white, so buttons move to #c2410c — same brand family, 5.2:1. Mint
	   #047857 gives 5.5:1. Nothing here is a new colour; it is the brand palette,
	   used at the value that can actually be read.

	   The theme's mint wash is left exactly where it was meant to be: the small
	   contact chips, which carry no class and are not touched by any rule below. */

	html body a[href^="tel:"].btn{ background:linear-gradient(135deg,#047857 0%,#047857 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn:hover,
	html body a[href^="tel:"].btn:focus{ background:linear-gradient(135deg,#065f46 0%,#065f46 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-bablu{ background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-bablu:hover,
	html body a[href^="tel:"].btn-bablu:focus{ background:linear-gradient(135deg,#9a3412 0%,#9a3412 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-call{ background:linear-gradient(135deg,#047857 0%,#047857 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-call:hover,
	html body a[href^="tel:"].btn-call:focus{ background:linear-gradient(135deg,#065f46 0%,#065f46 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-lg{ background:linear-gradient(135deg,#047857 0%,#047857 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-lg:hover,
	html body a[href^="tel:"].btn-lg:focus{ background:linear-gradient(135deg,#065f46 0%,#065f46 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-primary{ background:linear-gradient(135deg,#047857 0%,#047857 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].btn-primary:hover,
	html body a[href^="tel:"].btn-primary:focus{ background:linear-gradient(135deg,#065f46 0%,#065f46 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].busy-trigger{ background:#fff9c4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].busy-trigger:hover,
	html body a[href^="tel:"].busy-trigger:focus{ background:#f0fdf4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].cta-btn{ background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].cta-btn:hover,
	html body a[href^="tel:"].cta-btn:focus{ background:linear-gradient(135deg,#9a3412 0%,#9a3412 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gcall{ background:#047857 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gcall:hover,
	html body a[href^="tel:"].gcall:focus{ background:#065f46 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-btn-call{ background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-btn-call:hover,
	html body a[href^="tel:"].gf-btn-call:focus{ background:linear-gradient(135deg,#9a3412 0%,#9a3412 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-btn-large{ background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-btn-large:hover,
	html body a[href^="tel:"].gf-btn-large:focus{ background:linear-gradient(135deg,#9a3412 0%,#9a3412 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-cbar-item{ background:#ffffff !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gf-cbar-item:hover,
	html body a[href^="tel:"].gf-cbar-item:focus{ background:#f0fdf4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gf-cta-btn{ background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-cta-btn:hover,
	html body a[href^="tel:"].gf-cta-btn:focus{ background:linear-gradient(135deg,#9a3412 0%,#9a3412 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-oc-btn{ background:#ffffff !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gf-oc-btn:hover,
	html body a[href^="tel:"].gf-oc-btn:focus{ background:#f0fdf4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gf-oc-btn--outline{ background:#ffffff !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gf-oc-btn--outline:hover,
	html body a[href^="tel:"].gf-oc-btn--outline:focus{ background:#f0fdf4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gf-sticky-call{ background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gf-sticky-call:hover,
	html body a[href^="tel:"].gf-sticky-call:focus{ background:linear-gradient(135deg,#9a3412 0%,#9a3412 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gfa-btn{ background:#ffffff !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gfa-btn:hover,
	html body a[href^="tel:"].gfa-btn:focus{ background:#f0fdf4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gfa-btn-primary{ background:#ffffff !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gfa-btn-primary:hover,
	html body a[href^="tel:"].gfa-btn-primary:focus{ background:#f0fdf4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gfbn-btn{ background:#c2410c !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gfbn-btn:hover,
	html body a[href^="tel:"].gfbn-btn:focus{ background:#9a3412 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gfwhy-btn{ background:#c2410c !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gfwhy-btn:hover,
	html body a[href^="tel:"].gfwhy-btn:focus{ background:#9a3412 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gfwhy-btn-call{ background:#c2410c !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gfwhy-btn-call:hover,
	html body a[href^="tel:"].gfwhy-btn-call:focus{ background:#9a3412 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gp-call{ background:linear-gradient(135deg,#047857 0%,#047857 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gp-call:hover,
	html body a[href^="tel:"].gp-call:focus{ background:linear-gradient(135deg,#065f46 0%,#065f46 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].gp-fb-call{ background:#ffffff !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].gp-fb-call:hover,
	html body a[href^="tel:"].gp-fb-call:focus{ background:#f0fdf4 !important; color:#12332b !important; -webkit-text-fill-color:#12332b !important }
	html body a[href^="tel:"].secondary{ background:#047857 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].secondary:hover,
	html body a[href^="tel:"].secondary:focus{ background:#065f46 !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].sticky-call{ background:linear-gradient(135deg,#047857 0%,#047857 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].sticky-call:hover,
	html body a[href^="tel:"].sticky-call:focus{ background:linear-gradient(135deg,#065f46 0%,#065f46 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].sticky-cta-phone{ background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }
	html body a[href^="tel:"].sticky-cta-phone:hover,
	html body a[href^="tel:"].sticky-cta-phone:focus{ background:linear-gradient(135deg,#9a3412 0%,#9a3412 100%) !important; color:#ffffff !important; -webkit-text-fill-color:#ffffff !important }

	/* ── Bare in-copy phone number chip (no class). Loads after every external
	   stylesheet (visa-universal, listing, packages), so this is the final word
	   on how a plain tel: number looks. Clean flat chip: hairline mint border,
	   no double underline, no icon overflow, wraps safely in narrow table cells. */
	html body .content-area a[href^="tel:"]:not([class]),
	html body .entry-content a[href^="tel:"]:not([class]),
	html body [class*="elementor-element"] a[href^="tel:"]:not([class]),
	html body .single-post .entry-content a[href^="tel:"]:not([class]){
		display:inline-flex !important;
		align-items:center !important;
		gap:5px !important;
		color:#065f46 !important;
		-webkit-text-fill-color:#065f46 !important;
		font-weight:600 !important;
		background:#f0fdf4 !important;
		background-image:none !important;
		padding:4px 11px !important;
		padding-left:11px !important;
		border:1px solid #bbf7d0 !important;
		border-radius:8px !important;
		box-shadow:none !important;
		text-decoration:none !important;
		white-space:nowrap !important;
		max-width:100% !important;
		margin:2px 6px 2px 0 !important;
		transform:none !important;
	}
	html body .content-area a[href^="tel:"]:not([class])::before,
	html body .entry-content a[href^="tel:"]:not([class])::before,
	html body [class*="elementor-element"] a[href^="tel:"]:not([class])::before,
	html body .content-area a[href^="tel:"]:not([class])::after,
	html body .entry-content a[href^="tel:"]:not([class])::after{
		content:"\260E" !important;   /* ☎ phone glyph — no bg-image, no overflow */
		display:inline !important;
		position:static !important;
		width:auto !important; height:auto !important;
		background:none !important; background-image:none !important;
		font-size:12px !important; line-height:1 !important;
		color:#16a34a !important; -webkit-text-fill-color:#16a34a !important;
		margin:0 !important; transform:none !important;
	}
	html body .content-area a[href^="tel:"]:not([class])::after,
	html body .entry-content a[href^="tel:"]:not([class])::after{ content:none !important; }
	html body .content-area a[href^="tel:"]:not([class]):hover,
	html body .entry-content a[href^="tel:"]:not([class]):hover{
		background:#dcfce7 !important; border-color:#4ade80 !important; transform:none !important;
	}

	/* ── Bare in-copy WhatsApp link chip (no class). Same shape as the phone chip,
	   WhatsApp-green tint, so tel: and wa.me links read as one consistent family. */
	html body .content-area a[href^="https://wa.me/"]:not([class]),
	html body .entry-content a[href^="https://wa.me/"]:not([class]),
	html body [class*="elementor-element"] a[href^="https://wa.me/"]:not([class]){
		display:inline-flex !important; align-items:center !important; gap:5px !important;
		color:#14532d !important; -webkit-text-fill-color:#14532d !important;
		font-weight:600 !important; background:#f0fdf4 !important; background-image:none !important;
		padding:4px 11px !important; border:1px solid #86efac !important; border-radius:8px !important;
		box-shadow:none !important; text-decoration:none !important; white-space:nowrap !important;
		max-width:100% !important; margin:2px 6px 2px 0 !important; transform:none !important;
	}
	html body .content-area a[href^="https://wa.me/"]:not([class])::before,
	html body .entry-content a[href^="https://wa.me/"]:not([class])::before,
	html body [class*="elementor-element"] a[href^="https://wa.me/"]:not([class])::before{
		content:"\1F4AC" !important;  /* 💬 */
		display:inline !important; position:static !important; width:auto !important; height:auto !important;
		background:none !important; background-image:none !important;
		font-size:12px !important; line-height:1 !important; margin:0 !important; transform:none !important;
	}
	html body .content-area a[href^="https://wa.me/"]:not([class])::after,
	html body .entry-content a[href^="https://wa.me/"]:not([class])::after{ content:none !important; }
	html body .content-area a[href^="https://wa.me/"]:not([class]):hover,
	html body .entry-content a[href^="https://wa.me/"]:not([class]):hover{
		background:#dcfce7 !important; border-color:#22c55e !important; transform:none !important;
	}

/* ---------- 19. gofly-button-labels  [wp_head pri 100] ---------- */
/* The CTA label that disappeared on hover.

	   It was never the text. The text stays white the whole time. It is the
	   BACKGROUND that changes, and the culprit is in the child theme:

	       .content-area a[href^="tel:"]:hover{
	         background: linear-gradient(135deg, var(--success-200), var(--success-100));
	       }

	   That was written for the little contact-icon chips. But it matches ANY
	   tel: link inside .content-area — and "Call 09639-203090" is a tel: link.
	   So on hover the orange button is repainted pale mint (#bbf7d0 → #dcfce7),
	   the white label lands on near-white, and it vanishes. Confirmed by reading
	   the button's own pixels: at rest the background is rgb(234,88,12); on hover
	   it is rgb(255,255,255)-ish, with the text at rgb(209,248,217).

	   Three previous attempts went after the text colour, -webkit-text-fill-color
	   and the theme's link-hover rule. All three were treating the wrong element.

	   Hold the background, and every state of it. */

	/* the solid brand button: orange, and it stays orange */
	html body .gofly-section a.cta-btn:not(.secondary),
	html body .gofly-section a.cta-btn:not(.secondary):link,
	html body .gofly-section a.cta-btn:not(.secondary):visited,
	html body .gofly-section a.cta-btn:not(.secondary):hover,
	html body .gofly-section a.cta-btn:not(.secondary):focus,
	html body .gofly-section a.cta-btn:not(.secondary):active{
		background:linear-gradient(135deg,#c2410c 0%,#c2410c 100%) !important;
		color:#ffffff !important;
		-webkit-text-fill-color:#ffffff !important;
		border-bottom-color:transparent !important}
	html body .gofly-section a.cta-btn:not(.secondary):hover{
		background:linear-gradient(135deg,#c2410c 0%,#9a3412 100%) !important}

	/* Button labels, corrected against the background each button actually has.

	   Two mistakes are baked into this block's history and both are worth keeping:

	   1. This rule once read "the outline button sits on white and keeps its dark
	      label" and painted .cta-btn.secondary near-black. I had inferred that from
	      the class name. The name lies — the page's own CSS gives it
	      background:#047857, and measured across the site it is solid mint on all 18
	      of them, never an outline. So "Call First" was black on dark green, 1.9:1,
	      and -webkit-text-fill-color beats color, so the white the page asked for
	      never had a chance. Read the background, never the class name.

	   2. Every selector here was scoped to .gofly-section — and half this site does
	      not use .gofly-section. The package pages put their content straight in
	      .entry-content. So these rules silently did nothing on exactly the pages
	      with the "Book Now" buttons. Scope removed.

	   The rest, each measured on the rendered page:

	     .gf-cta-btn         white on #10b981    2.5:1   (15 of them; 17 more are
	                                                      orange #c2410c and fine)
	     .gf-tab-btn.active  white on #10b981    2.5:1
	     .gofly-prices__tab  white on #2bc798    2.2:1   — #2bc798 is not a goFLY colour
	     .bangla-link        #e67a00 on #fff7ed  2.8:1   — nor is #e67a00
	     .gf-sticky-wa       grey on #25D366     2.9:1
	     .gf-cbar-item       #25D366 text on white 2:1

	   #10b981 is the brand's LIGHT mint: a good accent, a poor button face — white on
	   it never clears 3:1. The same family at #047857 gives 5.5:1. No new colours
	   here, just the palette used at values that can be read.

	   WhatsApp green #25D366 with a WHITE label is left alone: that is WhatsApp's own
	   brand pairing, not a goFLY choice. Grey on it is nobody's brand. */
	/* .cta-btn.secondary — REMOVED, 14 Jul.
	   I twice tried to fix this class globally and both times broke it, because it
	   is used two ways and no single colour is right for both:
	       22 pages: background #047857, label #ffffff        -> 5.5:1, correct
	        1 page : background transparent, label #0f172a    -> 17.9:1, correct
	   Every page already declared the right pair. The rules here were never needed.
	   Worse, -webkit-text-fill-color is a different property from color, so the
	   page's own `color:#0f172a !important` won on specificity while my fill-colour
	   painted the label white anyway. Specificity lost, the pixel won. Never set a
	   text colour on a shared class without pinning its background in the same rule
	   — and prefer not setting it at all when the page already has it right. */

	/* .gf-cta-btn is orange #c2410c on 17 buttons and light-mint #10b981 on 15.
	   Only the mint ones fail (2.5:1). Rather than repaint every gf-cta-btn — which
	   would flatten the orange ones the design wants — target the mint face itself:
	   any gf-cta-btn whose background resolves to #10b981 moves to #047857.
	   :has() cannot test a colour, so this pins by the class combinations that carry
	   it, measured on the rendered pages. */
	html body a.gf-cta-btn:not([class*="orange"]):not([class*="primary"]){
		background:#047857 !important;
		color:#ffffff !important;
		-webkit-text-fill-color:#ffffff !important}
	html body a.gf-cta-btn:hover{
		background:#065f46 !important;
		color:#ffffff !important;
		-webkit-text-fill-color:#ffffff !important}

	html body .gf-tab-btn.active,
	html body .gofly-prices__tab--active{
		background:#047857 !important;
		color:#ffffff !important;
		-webkit-text-fill-color:#ffffff !important}

	html body .quick-nav-link.bangla-link{
		color:#c2410c !important;
		-webkit-text-fill-color:#c2410c !important}

	/* WhatsApp buttons — REMOVED, 14 Jul. Same mistake as .cta-btn.secondary.
	       .gf-sticky-wa   40 pages have a PALE face, rgba(37,211,102,.10) over white,
	                       with the page's own label #128C7E. Forcing white gave 1.1:1.
	                        6 pages have a solid #047857 face and already say #fff.
	       .cta-btn-whatsapp / .gfbn-btn.wa  are #25D366 and ALREADY declare white.
	                       These rules changed nothing and risked everything.
	   The pale label is genuinely below AA at 3.8:1, so it is fixed at source in the
	   40 fragments (#128C7E -> #075E54, WhatsApp's own dark teal, 7.1:1) rather than
	   overridden from here. */

	html body .gf-cbar-item{
		color:#047857 !important;
		-webkit-text-fill-color:#047857 !important}

	/* Same rule was about to eat the article's own contact buttons, which are
	   tel: links too. Pin their background as well. */
	html body .gfa-strip-contact a.gfa-btn,
	html body .gfa-strip-contact a.gfa-btn:hover,
	html body .gfa-strip-contact a.gfa-btn:focus,
	html body .gfa-strip-contact a.gfa-btn:active{
		background:#ffffff !important;
		color:#12332b !important;
		-webkit-text-fill-color:#12332b !important}
	html body .gfa-strip-contact a.gfa-btn .gfa-btn-t em{ -webkit-text-fill-color:#5f6f6a !important }
	html body .gfa-strip-contact a.gfa-btn .gfa-btn-t b{  -webkit-text-fill-color:#12332b !important }

/* ---------- 20. gofly-featured-uncropped  [wp_head pri 101] ---------- */
/* Best-practice hero: full-width, whole image shown (no crop — preserves baked-in
	   logo/booking text), rounded corners, clean spacing. Full width kills the float/pillar-box. */
	.single-post .post-thumbnail img,
	.single-post img.full-post-image,
	figure.gofly-featured img{
		width:100% !important;
		height:auto !important;
		max-width:100% !important;
		max-height:none !important;
		min-height:0 !important;
		aspect-ratio:auto !important;
		object-fit:contain !important;
		object-position:center !important;
		border-radius:14px !important;
		display:block !important;
		clip-path:none !important}
	.single-post .post-thumbnail,
	figure.gofly-featured{
		width:100% !important;
		aspect-ratio:auto !important;
		height:auto !important;
		max-height:none !important;
		margin:0 auto 22px !important;
		overflow:hidden !important;
		border-radius:14px !important;
		text-align:center !important}
	/* tighten title spacing under the hero for a clean rhythm */
	.single-post .entry-header,
	.single-post .entry-title{
		margin-top:6px !important;
		margin-bottom:14px !important;
		line-height:1.25 !important}

/* ---------- 21. gofly-front-measure  [wp_head pri 101] ---------- */
.gofly-front-page .gfsb,
	.gofly-front-page .gpd-in,
	.gofly-front-page .gab-wrap,
	.gofly-front-page .gfs-in,
	.gofly-front-page .gwd-in,
	.gofly-front-page .grv-in,
	.gofly-front-page .gfq,
	.gofly-front-page .gct-in,
	.gofly-front-page .ggd-in,
	.gofly-front-page .gst-row,
	.gofly-front-page .gai-in,
	.gofly-front-page .gsol-in{
		box-sizing:border-box;
		width:100%;
		max-width:1140px !important;
		margin-inline:auto !important;
		padding-inline:24px !important}

	/* the prose inside keeps a readable line */
	.gofly-front-page .gab-wrap p,
	.gofly-front-page .gfq .gfq-head p,
	.gofly-front-page .gsol-in > p{
		max-width:70ch;
		margin-inline:auto}

	@media (max-width:600px){
			.gofly-front-page .gfsb,
		.gofly-front-page .gpd-in,
		.gofly-front-page .gab-wrap,
		.gofly-front-page .gfs-in,
		.gofly-front-page .gwd-in,
		.gofly-front-page .grv-in,
		.gofly-front-page .gfq,
		.gofly-front-page .gct-in,
		.gofly-front-page .ggd-in,
		.gofly-front-page .gst-row,
		.gofly-front-page .gai-in,
		.gofly-front-page .gsol-in{padding-inline:16px !important}
		.gofly-front-page .gab-wrap p,
		.gofly-front-page .gfq .gfq-head p,
		.gofly-front-page .gsol-in > p{max-width:none}
	}

/* ---------- 22. gofly-sticky-cta-hide  [wp_head pri 9999] ---------- */
html body .sticky-cta-bar{display:none!important}

/* ---------- 23. gpd-css  [wp_footer pri 10] ---------- */
.gpd{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:56px 0;background:transparent}
    .gpd *{box-sizing:border-box}
    .gpd-in{max-width:1140px;margin:0 auto;padding:0 24px}
    .gpd-head{text-align:center;margin-bottom:34px}
    .gpd-eyebrow{display:inline-block;color:#c2410c;font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
    .gpd-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:#065f46;font-size:40px;line-height:1.1;margin:0}
    .gpd-carousel{position:relative;display:flex;align-items:center;gap:14px}
    .gpd-track{flex:1 1 auto;min-width:0;display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 16px;-ms-overflow-style:none;scrollbar-width:none}
    .gpd-track::-webkit-scrollbar{display:none}
    .gpd-card{flex:0 0 calc((100% - 44px)/3);scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 6px 20px rgba(18,51,43,.06);transition:transform .25s,box-shadow .25s}
    .gpd-card:hover{transform:translateY(-5px);box-shadow:0 14px 34px rgba(18,51,43,.13)}
    .gpd-imgwrap{display:block;aspect-ratio:1/1;overflow:hidden}
    .gpd-imgwrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
    .gpd-card:hover .gpd-imgwrap img{transform:scale(1.05)}
    .gpd-body{padding:18px 18px 20px;text-align:center}
    .gpd-name{font-family:'Hind Siliguri',sans-serif;font-weight:700;font-size:19px;color:var(--ink);margin:0 0 6px;display:flex;align-items:center;justify-content:center;gap:9px}
    .gpd-flag{width:24px;height:24px;border-radius:50%;object-fit:cover;flex:0 0 24px;box-shadow:0 1px 4px rgba(0,0,0,.22)}
    .gpd-price{color:var(--mint);font-weight:700;font-size:15px;margin-bottom:14px}
    .gpd-btn{display:block;background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff!important;text-decoration:none;font-weight:700;font-size:14.5px;letter-spacing:.02em;padding:16px 16px;border-radius:11px;box-shadow:0 4px 12px rgba(194,65,12,.28);transition:filter .2s,transform .2s}
    .gpd-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
    .gpd-nav{flex:0 0 48px;z-index:3;width:48px;height:48px;border-radius:50%;border:none;background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff;cursor:pointer;box-shadow:0 8px 22px rgba(194,65,12,.45);display:flex;align-items:center;justify-content:center;transition:transform .22s,box-shadow .22s,filter .22s}
    .gpd-nav{font-size:22px;font-weight:700;line-height:1;color:#fff!important}
    .gpd-nav>*{color:#fff!important}
    .gpd-nav:hover{filter:brightness(1.08);transform:scale(1.1);box-shadow:0 12px 28px rgba(194,65,12,.55)}
    .gpd-nav:active{transform:scale(.95)}
    .gpd-all{text-align:center;margin-top:26px}
    .gpd-all-btn{display:inline-block;background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff!important;text-decoration:none;font-weight:700;font-size:17px;padding:14px 30px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.3);transition:transform .2s,filter .2s}
    .gpd-all-btn:hover{transform:translateY(-2px);filter:brightness(1.05)}
    @media(max-width:900px){.gpd-card{flex:0 0 calc((100% - 22px)/2)}.gpd-title{font-size:32px}.gpd-nav{display:none}}
    @media(max-width:560px){.gpd{padding:40px 0}.gpd-card{flex:0 0 82%}.gpd-in{padding:0 16px}.gpd-title{font-size:26px}}

/* ---------- 24. grv-css  [wp_footer pri 10] ---------- */
.grv{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;--gold:#f59e0b;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:64px 0;background:transparent}
    .grv *{box-sizing:border-box}
    .grv-in{max-width:1140px;margin:0 auto;padding:0 24px}
    .grv-head{text-align:center;margin-bottom:40px}
    .grv-eyebrow{display:inline-block;color:#c2410c;font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
    .grv-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:#065f46;font-size:40px;line-height:1.12;margin:0}
    .grv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
    .grv-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 22px;box-shadow:0 10px 30px rgba(18,51,43,.07);display:flex;flex-direction:column;opacity:0;transform:translateY(26px);transition:opacity .55s ease,transform .55s ease,box-shadow .28s ease}
    .grv-card.grv-in-view{opacity:1;transform:translateY(0)}
    .grv-card:hover{box-shadow:0 20px 44px rgba(18,51,43,.14);transform:translateY(-6px)}
    .grv-stars{color:var(--gold);font-size:16px;letter-spacing:2px;margin-bottom:14px}
    .grv-quote{color:#334155;font-size:14.5px;line-height:1.7;margin:0 0 20px;flex:1}
    .grv-person{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px}
    .grv-av{flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#047857,#065f46);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;letter-spacing:.5px}
    .grv-meta{display:flex;flex-direction:column;line-height:1.3}
    .grv-name{font-weight:700;font-size:15px;color:var(--ink)}
    .grv-pos{font-size:13px;color:var(--muted)}
    .grv-verified{margin:34px auto 0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 26px;width:max-content;max-width:92%;text-align:center;box-shadow:0 8px 26px rgba(18,51,43,.08)}
    .grv-vstars{color:var(--gold);letter-spacing:3px;font-size:18px;margin-bottom:6px}
    .grv-vscore{display:flex;align-items:baseline;justify-content:center;gap:8px}
    .grv-vnum{font-family:'Cantora One',Georgia,serif;font-size:38px;line-height:1;color:var(--mint-d)}
    .grv-vout{font-size:14px;color:var(--muted)}
    .grv-vsub{margin-top:8px;font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
    .grv-goog{font-family:'Hind Siliguri',sans-serif;font-weight:700;letter-spacing:.02em}
    .grv-vdot{color:#cbd5cf}
    .grv-cta{text-align:center;margin-top:18px}
    .grv-btn{display:inline-block;background:linear-gradient(135deg,#c2410c,#9a3412);color:#fff!important;text-decoration:none;font-weight:700;font-size:16px;padding:15px 32px;border-radius:14px;box-shadow:0 8px 22px rgba(194,65,12,.28);transition:transform .2s,filter .2s}
    .grv-btn:hover{transform:translateY(-2px);filter:brightness(1.06)}
    @media(max-width:900px){.grv-grid{grid-template-columns:repeat(2,1fr)}.grv-title{font-size:32px}}
    @media(max-width:520px){.grv{padding:44px 0}.grv-in{padding:0 16px}.grv-grid{grid-template-columns:1fr}.grv-title{font-size:26px}.grv-btn{display:block}}

/* ---------- 25. ggdc-css  [wp_footer pri 10] ---------- */
.ggdc{--org:#c2410c;--ink:#12332b;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,sans-serif;padding:56px 0;background:transparent;text-align:left}
        .ggdc-in{max-width:1140px;margin:0 auto;padding:0 24px}
        .ggdc-head{text-align:center;margin-bottom:28px}
        .ggdc-eyebrow{display:inline-block;color:var(--org);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
        .ggdc-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:#065f46;font-size:36px;line-height:1.1;margin:0}
        .ggdc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
        .ggdc-list a{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 18px;text-decoration:none;box-shadow:0 6px 18px rgba(18,51,43,.05);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}
        .ggdc-list a:hover{box-shadow:0 12px 28px rgba(18,51,43,.11);transform:translateY(-2px);border-color:#a7f3d0}
        .ggdc-txt{flex:1 1 auto;display:block;min-width:0}
        .ggdc-cat{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--org);margin-bottom:3px}
        .ggdc-ttl{display:block;font-size:15.5px;font-weight:600;color:var(--ink);line-height:1.35}
        .ggdc-arw{flex:0 0 auto;color:#047857;font-size:18px;font-weight:700;transition:transform .2s ease}
        .ggdc-list a:hover .ggdc-arw{transform:translateX(3px)}
        @media(max-width:860px){.ggdc-list{grid-template-columns:1fr}.ggdc-title{font-size:29px}.ggdc{padding:44px 0}}

/* ---------- 26. ggd-css  [wp_footer pri 10] ---------- */
.ggd{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:64px 0;background:transparent;position:relative}
    .ggd *{box-sizing:border-box}
    .ggd-in{max-width:1140px;margin:0 auto;padding:0 24px}
    .ggd-head{text-align:center;margin-bottom:40px;position:relative}
    .ggd-eyebrow{display:inline-block;color:var(--org);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
    .ggd-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:var(--ink);font-size:40px;line-height:1.12;margin:0}
    .ggd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
    .ggd-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(18,51,43,.07);display:flex;flex-direction:column;opacity:0;transform:translateY(26px);transition:opacity .55s ease,transform .55s ease,box-shadow .28s ease}
    .ggd-card.ggd-in-view{opacity:1;transform:translateY(0)}
    .ggd-card:hover{transform:translateY(-8px);box-shadow:0 22px 48px rgba(18,51,43,.15)}
    .ggd-media{position:relative;display:block;overflow:hidden;background:#eef2f0}
    .ggd-media img{width:100%;height:auto;object-fit:contain;display:block;transition:transform .45s ease}
    .ggd-card:hover .ggd-media img{transform:scale(1.06)}
    .ggd-num{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px;box-shadow:0 4px 12px rgba(0,0,0,.2)}
    .ggd-cat{position:absolute;bottom:14px;right:14px;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 13px;border-radius:999px;box-shadow:0 3px 10px rgba(0,0,0,.15)}
    .ggd-card:nth-child(odd) .ggd-num{background:linear-gradient(135deg,#c2410c,#c2410c)}
    .ggd-card:nth-child(even) .ggd-num{background:linear-gradient(135deg,#10b981,#047857)}
    .ggd-card:nth-child(odd) .ggd-cat{background:#d1fae5;color:#065f46}
    .ggd-card:nth-child(even) .ggd-cat{background:#c2410c;color:#fff}
    .ggd-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
    .ggd-ctitle{font-family:'Cantora One',Georgia,serif;font-weight:400;font-size:19px;line-height:1.25;margin:0 0 10px}
    .ggd-ctitle a{color:var(--ink);text-decoration:none;transition:color .2s}
    .ggd-ctitle a:hover{color:var(--mint)}
    .ggd-excerpt{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 18px;flex:1}
    .ggd-btn{align-self:flex-start;display:inline-block;color:#fff!important;text-decoration:none;font-weight:700;font-size:13.5px;padding:15px 20px;border-radius:10px;transition:transform .2s,filter .2s}
    .ggd-btn:hover{transform:translateY(-2px);filter:brightness(1.06)}
    .ggd-card:nth-child(odd) .ggd-btn{background:linear-gradient(135deg,#c2410c,#c2410c);box-shadow:0 5px 14px rgba(194,65,12,.26)}
    .ggd-card:nth-child(even) .ggd-btn{background:var(--ink);box-shadow:0 5px 14px rgba(18,51,43,.24)}
    .ggd-cta{text-align:center;margin-top:38px}
    .ggd-more{display:inline-block;background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff!important;text-decoration:none;font-weight:700;font-size:16px;padding:14px 32px;border-radius:12px;box-shadow:0 6px 18px rgba(194,65,12,.26);transition:transform .2s,filter .2s}
    .ggd-more:hover{transform:translateY(-2px);filter:brightness(1.06)}
    @media(max-width:900px){.ggd-grid{grid-template-columns:repeat(2,1fr)}.ggd-title{font-size:32px}}
    @media(max-width:560px){.ggd{padding:44px 0}.ggd-in{padding:0 16px}.ggd-grid{grid-template-columns:1fr;max-width:400px;margin:0 auto}.ggd-title{font-size:26px}}

/* ---------- 27. gst-css  [wp_footer pri 10] ---------- */
.gst{--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:44px 0;background:transparent}
    .gst-row{max-width:1140px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
    .gst-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px 16px;box-shadow:0 8px 22px rgba(18,51,43,.06);opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease,box-shadow .25s ease}
    .gst-item.gst-in{opacity:1;transform:translateY(0)}
    .gst-item:hover{box-shadow:0 14px 32px rgba(18,51,43,.12);transform:translateY(-4px)}
    .gst-ico svg{width:20px;height:20px;stroke:#065f46;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
    .gst-ico{flex:0 0 42px;width:42px;height:42px;border-radius:11px;background:#ecfdf5;display:flex;align-items:center;justify-content:center;font-size:21px}
    .gst-txt{line-height:1.3;display:flex;flex-direction:column;gap:2px}
    .gst-num{font-family:'Cantora One','Hind Siliguri',sans-serif;font-weight:400;font-size:30px;color:var(--org);line-height:1.05}
    .gst-lbl{font-weight:600;font-size:13.5px;color:var(--ink)}
    @media(max-width:900px){.gst-row{grid-template-columns:repeat(3,1fr)}.gst-num{font-size:26px}}
    @media(max-width:560px){.gst{padding:32px 0}.gst-row{grid-template-columns:repeat(2,1fr);gap:10px}.gst-item{padding:18px 12px;gap:8px}.gst-ico{flex:0 0 38px;width:38px;height:38px;font-size:19px}.gst-num{font-size:23px}.gst-lbl{font-size:12.5px}.gst-item:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 5px)}}

/* ---------- 28. gai-css  [wp_footer pri 10] ---------- */
.gai{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:30px 0 56px;background:transparent}
    .gai *{box-sizing:border-box}
    .gai-in{max-width:1140px;margin:0 auto;padding:0 24px}
    .gai-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
    .gai-head-l{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
    .gai-pill{background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff;font-weight:700;font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;padding:7px 15px;border-radius:999px}
    .gai-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:var(--ink);font-size:28px;line-height:1.1;margin:0}
    .gai-note{color:var(--muted);font-size:14.5px;margin:0}
    .gai-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
    .gai-card{position:relative;display:flex;align-items:center;gap:15px;background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:22px 22px;text-decoration:none;box-shadow:0 8px 24px rgba(18,51,43,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;opacity:0;transform:translateY(20px)}
    .gai-card.gai-in{opacity:1;transform:translateY(0)}
    .gai-card:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(18,51,43,.13);border-color:#a7f3d0}
    .gai-card-pop{border-color:#f7b98a;background:linear-gradient(180deg,#fff,#fff8f3)}
    .gai-card-pop:hover{border-color:var(--org)}
    .gai-badge{position:absolute;top:-11px;right:16px;background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff;font-weight:700;font-size:11px;padding:4px 12px;border-radius:999px;box-shadow:0 4px 10px rgba(194,65,12,.3)}
    .gai-ico svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
    .gai-ico{flex:0 0 50px;width:50px;height:50px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:24px;background:#ecfdf5}
    .gai-card-pop .gai-ico{background:#fee7d6}
    .gai-txt{display:flex;flex-direction:column;gap:3px;flex:1}
    .gai-name{font-weight:700;font-size:16.5px;color:var(--ink)}
    .gai-desc{font-size:13.5px;color:var(--muted)}
    .gai-arrow{flex:0 0 auto;font-size:20px;font-weight:700;color:var(--mint);transition:transform .25s ease}
    .gai-card-pop .gai-arrow{color:var(--org)}
    .gai-card:hover .gai-arrow{transform:translateX(4px)}
    @media(max-width:860px){.gai-grid{grid-template-columns:1fr}.gai-head{flex-direction:column;align-items:flex-start}}

/* ---------- 29. gofly-about-mobile-fix  [wp_footer pri 20] ---------- */
.gf-problem-block,.gf-diff-block{display:flex !important;flex-wrap:wrap !important;gap:22px !important;align-items:stretch !important}
	.gf-diff-content,.gf-diff-image-side,.gf-problem-content,.gf-photo-side{flex:1 1 300px !important;min-width:0 !important;max-width:100% !important;box-sizing:border-box !important}
	.gf-image-placeholder,.gf-feature-img-wrap,.gf-feature-img,.gf-image-features,.gf-img-feature,.gf-quote-result{max-width:100% !important;box-sizing:border-box !important}
	.gf-feature-img-wrap{width:auto !important}
	.gf-feature-img{width:100% !important;height:auto !important;max-height:300px;display:block !important;margin:0 auto !important}
	.gf-quote-result-text{display:flex !important;flex-wrap:wrap !important;min-width:0 !important}
	.gf-quote-result-text > *{min-width:0 !important;overflow-wrap:anywhere !important}
	.gf-image-badge{max-width:75% !important;box-sizing:border-box !important}
	.gf-stats-grid,.gf-trust-indicators{grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important}
	.gf-leaders-grid{grid-template-columns:repeat(auto-fit,minmax(255px,1fr)) !important}
	.gf-creds-grid,.gf-iata-benefits,.gf-department-grid,.gf-office-images{grid-template-columns:repeat(auto-fit,minmax(200px,1fr)) !important}

/* ---------- 30. gofly-inline-grid-guard  [wp_footer pri 21] ---------- */
[style*="grid-template-columns:1fr 1fr"],
	[style*="grid-template-columns: 1fr 1fr"],
	[style*="grid-template-columns:1fr 1fr 1fr"],
	[style*="grid-template-columns: 1fr 1fr 1fr"]{
		grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
	}
	/* any table in the content column: scroll inside its own box rather than
	   dragging the page. Scoped to .gofly-boxed so theme/layout tables are safe. */
	html body .gofly-boxed table, html body .entry-content table,
	html body .gofly-boxed .visa-table, html body .entry-content .visa-table,
	.gofly-boxed table, .entry-content table, .visa-table, .thv-cmp{
		display:block !important; overflow-x:auto !important; max-width:100% !important;
		-webkit-overflow-scrolling:touch;
	}
	/* an unconstrained image is the other classic cause: one 800px figure was
	   dragging a 390px page 546px sideways */
	.gofly-boxed img, .entry-content img{ max-width:100% !important; height:auto !important; }
	.gofly-boxed figure, .entry-content figure{ max-width:100% !important; margin-left:0 !important; margin-right:0 !important; }
	.gf-addon-card{ max-width:100% !important; min-width:0 !important; box-sizing:border-box !important; }
	.gf-addon-card *{ min-width:0 !important; max-width:100% !important; overflow-wrap:anywhere; }

/* ---------- 31. gofly-no-sideways-scroll  [wp_footer pri 25] ---------- */
/* nothing may exceed the page width, ever */
	html,body{max-width:100%;overflow-x:hidden}

	/* the scroll container the script wraps each wide table in */
	.gofly-tablewrap{
		display:block;width:100%;max-width:100%;
		overflow-x:auto;-webkit-overflow-scrolling:touch;
		margin:0 0 20px;
		border-radius:10px;
		scrollbar-width:thin;scrollbar-color:#a7d8c4 transparent}
	.gofly-tablewrap::-webkit-scrollbar{height:6px}
	.gofly-tablewrap::-webkit-scrollbar-thumb{background:#a7d8c4;border-radius:3px}
	.gofly-tablewrap::-webkit-scrollbar-track{background:transparent}
	.gofly-tablewrap > table{margin-bottom:0 !important;width:100% !important;min-width:100%}

	/* Desktop full-width tables: the .table-wrapper full-bleed trick (left:50%/
	   margin-left:-50vw/width:100vw) was half-broken and left content tables
	   shifted/narrow on desktop. Reset the wrapper to a normal full-width block and
	   force the table to fill it. Scoped to >=641px so the mobile scroll/full-bleed
	   handling below is untouched. */
	@media (min-width:641px){
		html body .table-wrapper,
		html body .gofly-section .table-wrapper{
			position:static !important;left:auto !important;right:auto !important;
			margin-left:0 !important;margin-right:0 !important;
			width:auto !important;max-width:100% !important;transform:none !important;float:none !important}
		html body .table-wrapper > .gofly-tablewrap,
		html body .gofly-tablewrap,html body .gofly-table-scroll{width:100% !important;max-width:100% !important}
		html body .table-wrapper table,
		html body .gofly-tablewrap > table,
		html body .gofly-table-scroll > table{display:table !important;width:100% !important}
	}

	/* the fade tells you there is more table to the right */
	.gofly-tablewrap.is-scrollable{position:relative}
	.gofly-tablewrap.is-scrollable::after{
		content:"";position:absolute;top:0;right:0;bottom:0;width:28px;
		pointer-events:none;
		background:linear-gradient(to right,rgba(255,255,255,0),rgba(255,255,255,.92))}
	.gofly-tablewrap.is-end::after{opacity:0;transition:opacity .2s}

	@media (max-width:600px){
		/* a min-width set for a desktop layout must not apply on a phone */
		.gflypage [style*="min-width"],
		.entry-content [style*="min-width"]{min-width:0 !important}
		/* 100vw is wider than the viewport when a scrollbar exists */
		.gflypage [style*="100vw"],
		.entry-content [style*="100vw"]{width:100% !important;max-width:100% !important}
	}

/* ---------- 32. gofly-faq-accordion  [wp_footer pri 99] ---------- */
/* The page already styles these cards (its own Q / A letters, borders, colours)
	   and its selectors are more specific than a bare class. So this block does one
	   job only — collapse and expand — and touches nothing visual.

	   The padding has to be zeroed too: max-height:0 alone still leaves the
	   page's 18px top and 20px bottom padding showing, which is the sliver of
	   answer text that was leaking out of the closed cards. */
	.gflypage .elementskit-faq-body,
	.elementskit-faq-body{
		max-height:0 !important;
		padding-top:0 !important;
		padding-bottom:0 !important;
		overflow:hidden !important;
		opacity:0;
		transition:max-height .28s ease-out,padding .28s ease-out,opacity .2s ease-out}
	.gflypage .elementskit-single-faq.is-open .elementskit-faq-body,
	.elementskit-single-faq.is-open .elementskit-faq-body{
		max-height:1200px !important;
		padding-top:18px !important;
		padding-bottom:20px !important;
		opacity:1}

	/* the header is a control now, so it should look like one */
	.elementskit-faq-header{cursor:pointer;user-select:none}
	.elementskit-faq-header:focus-visible{outline:2px solid #047857;outline-offset:-2px}

	/* chevron on the right — the page draws no open/closed affordance of its own */
	.elementskit-faq-header::after{
		content:"";position:absolute;right:22px;top:50%;
		width:9px;height:9px;
		border-right:2px solid #047857;border-bottom:2px solid #047857;
		transform:translateY(-70%) rotate(45deg);
		transition:transform .22s ease-out}
	.elementskit-single-faq.is-open .elementskit-faq-header::after{
		transform:translateY(-30%) rotate(-135deg)}
	.elementskit-faq-header{padding-right:52px !important}

	@media (prefers-reduced-motion:reduce){
		.elementskit-faq-body,.elementskit-faq-header::after{transition:none}
	}

/* ---------- 33. gsol-css  [wp_footer pri 99] ---------- */
.gsol{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:60px 0;background:transparent;position:relative;overflow:hidden}
    .gsol *{box-sizing:border-box}
    .gsol-v4{position:absolute;top:24px;right:24px;width:280px;height:auto;opacity:.85;pointer-events:none;z-index:0}
    .gsol-in{position:relative;z-index:1;max-width:1140px;margin:0 auto;padding:0 24px}
    .gsol-head{text-align:left;margin-bottom:46px}
    .gsol-eyebrow{display:inline-block;color:var(--org);font-weight:800;font-size:15px;letter-spacing:.02em;margin-bottom:8px}
    .gsol-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:#065f46;font-size:33px;line-height:1.16;margin:0;text-transform:uppercase;letter-spacing:.01em;text-align:left;max-width:600px}
    .gsol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
    .gsol-card{position:relative;overflow:hidden;background:linear-gradient(180deg,#e6f7f0,#f4fbf8);border:1px solid #d6f0e6;border-radius:22px;padding:40px 30px 34px;text-align:center;box-shadow:0 10px 30px rgba(18,51,43,.06);transition:transform .28s ease,box-shadow .28s ease;opacity:0;transform:translateY(26px)}
    .gsol-card.gsol-in{opacity:1;transform:translateY(0)}
    .gsol-card:hover{transform:translateY(-8px);box-shadow:0 22px 48px rgba(18,51,43,.14)}
    .gsol-card::before{content:"";position:absolute;top:-46px;right:-46px;width:170px;height:170px;border-radius:50%;background:rgba(16,185,129,.18);z-index:0}
    .gsol-card:nth-child(2)::before{background:rgba(245,158,11,.22)}
    .gsol-ico{position:relative;z-index:1;width:96px;height:96px;margin:0 auto 22px;border-radius:50%;background:linear-gradient(135deg,#a7f3d0,#6ee7b7);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(4,120,87,.18);transition:transform .3s}
    .gsol-card:nth-child(2) .gsol-ico{background:linear-gradient(135deg,#c2410c,#c2410c);box-shadow:0 8px 20px rgba(194,65,12,.28)}
    .gsol-card:hover .gsol-ico{transform:scale(1.07)}
    .gsol-ico::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px dashed #c2410c;opacity:0;transition:opacity .3s}
    .gsol-card:hover .gsol-ico::after{opacity:1;animation:gsol-spin 9s linear infinite}
    @keyframes gsol-spin{to{transform:rotate(360deg)}}
    @media(prefers-reduced-motion:reduce){.gsol-card:hover .gsol-ico::after{animation:none}}
    .gsol-ico img{width:52px;height:auto;display:block}
    .gsol-name{position:relative;z-index:1;font-family:'Hind Siliguri',sans-serif;font-weight:700;font-size:20px;color:var(--ink);margin:0 0 14px;line-height:1.25}
    .gsol-desc{position:relative;z-index:1;color:var(--muted);font-size:14.5px;line-height:1.7;margin:0}
    @media(max-width:900px){.gsol-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}.gsol-title{font-size:31px}.gsol-v4{display:none}}
    @media(max-width:560px){.gsol{padding:44px 0}.gsol-in{padding:0 16px}.gsol-title{font-size:25px}}

/* ---------- 34. gfs-css  [wp_footer pri 2500] ---------- */
.gfs{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:64px 0;background:transparent}
    .gfs *{box-sizing:border-box}
    .gfs-in{max-width:1140px;margin:0 auto;padding:0 24px}
    .gfs-head{position:relative;text-align:left;margin-bottom:40px}
    .gfs-eyebrow{display:inline-block;color:var(--org);font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px}
    .gfs-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:#065f46;font-size:33px;line-height:1.16;margin:0;text-transform:uppercase;letter-spacing:.01em;text-align:left;max-width:560px}
    .gfs-vector{position:absolute;top:-46px;right:-10px;width:238px;height:auto;opacity:.8;pointer-events:none;z-index:0}
    .gfs-eyebrow,.gfs-title{position:relative;z-index:1}
    .gfs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:start}
    .gfs-card{background:#fff;border:2px solid var(--line);border-radius:20px;padding:34px 26px 30px;text-align:center;box-shadow:0 10px 30px rgba(18,51,43,.07);transition:opacity .6s ease,transform .55s ease,box-shadow .28s ease,border-color .28s ease;position:relative;overflow:visible;opacity:0;transform:translateY(28px)}
    .gfs-card.gfs-in-view{opacity:1;transform:translateY(0)}
    .gfs-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:20px 20px 0 0;background:linear-gradient(90deg,#c2410c,#c2410c);opacity:1}
    .gfs-card:hover{transform:translateY(-8px);box-shadow:0 22px 50px rgba(194,65,12,.22);border-color:#c2410c}
    .gfs-card-mid{margin-top:38px}
    .gfs-icon{position:relative;width:92px;height:92px;margin:0 auto 24px;border-radius:50%;background:linear-gradient(135deg,#ecfdf5,#d1fae5);display:flex;align-items:center;justify-content:center;transition:transform .3s}
    .gfs-icon::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px dashed #c2410c;opacity:0;transition:opacity .3s}
    .gfs-card:hover .gfs-icon{transform:scale(1.06)}
    .gfs-card:hover .gfs-icon::after{opacity:1;animation:gfs-spin 9s linear infinite}
    @keyframes gfs-spin{to{transform:rotate(360deg)}}
    @media(prefers-reduced-motion:reduce){.gfs-card:hover .gfs-icon::after{animation:none}}
    .gfs-icon img{width:56px;height:auto;display:block}
    .gfs-name{font-family:'Cantora One',Georgia,serif;font-weight:400;font-size:22px;color:var(--ink);margin:0 0 12px;letter-spacing:.01em}
    .gfs-desc{color:var(--muted);font-size:15px;line-height:1.7;margin:0 0 22px}
    .gfs-btn{display:inline-block;background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff!important;text-decoration:none;font-weight:700;font-size:15px;padding:12px 26px;border-radius:11px;box-shadow:0 6px 16px rgba(194,65,12,.26);transition:transform .2s,filter .2s}
    .gfs-btn:hover{transform:translateY(-2px);filter:brightness(1.06)}
    @media(max-width:900px){.gfs-grid{grid-template-columns:1fr;gap:22px;max-width:460px;margin:0 auto}.gfs-card-mid{margin-top:0}.gfs-vector{display:none}.gfs-title{font-size:31px}}
    @media(max-width:560px){.gfs{padding:44px 0}.gfs-in{padding:0 16px}.gfs-title{font-size:26px}}
    @media(prefers-reduced-motion:reduce){.gfs-card{opacity:1!important;transform:none!important}}

/* ---------- 35. gwd-css  [wp_footer pri 2500] ---------- */
.gwd{--mint:#047857;--mint-d:#065f46;--org:#c2410c;--ink:#12332b;--muted:#5f6f6a;--line:#e8efec;font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding:64px 0;background:transparent}
    .gwd *{box-sizing:border-box}
    .gwd-in{max-width:1140px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1.62fr 1fr;gap:46px;align-items:center}
    .gwd-eyebrow{display:inline-block;color:var(--org);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
    .gwd-title{font-family:'Cantora One',Georgia,serif;font-weight:400;color:#065f46;font-size:33px;line-height:1.16;margin:0 0 28px;text-transform:uppercase;letter-spacing:.01em}
    .gwd-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 24px}
    .gwd-feat{opacity:0;transform:translateY(24px);transition:opacity .55s ease,transform .55s ease}
    .gwd-feat.gwd-in-view{opacity:1;transform:translateY(0)}
    .gwd-feat-head{display:flex;align-items:flex-start;gap:8px;margin-bottom:9px}
    .gwd-ico svg{width:24px;height:24px;stroke:#065f46;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
    .gwd-ico{font-size:20px;line-height:1.3;flex:0 0 auto;transition:transform .25s ease}
    .gwd-feat:hover .gwd-ico{transform:scale(1.18)}
    .gwd-feat-title{font-family:'Hind Siliguri',sans-serif;font-weight:700;font-size:16.5px;color:var(--org);margin:0;line-height:1.3}
    .gwd-feat-desc{color:var(--muted);font-size:14.5px;line-height:1.62;margin:0}
    .gwd-btn{display:inline-block;margin-top:32px;background:linear-gradient(135deg,#c2410c,#c2410c);color:#fff!important;text-decoration:none;font-weight:700;font-size:16px;padding:14px 30px;border-radius:12px;box-shadow:0 6px 18px rgba(194,65,12,.26);transition:transform .2s,filter .2s}
    .gwd-btn:hover{transform:translateY(-2px);filter:brightness(1.06)}
    .gwd-media{display:flex;justify-content:center;animation:gwd-float 3.8s ease-in-out infinite;will-change:transform}
    @keyframes gwd-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
    .gwd-media img{width:100%;max-width:420px;height:auto;border-radius:22px;background:#fff;box-shadow:0 20px 50px rgba(18,51,43,.14);transition:transform .4s ease,box-shadow .4s ease}
    .gwd-media img:hover{transform:scale(1.05);box-shadow:0 28px 60px rgba(18,51,43,.2)}
    @media(prefers-reduced-motion:reduce){.gwd-media{animation:none}.gwd-media img{transition:none}}
    .gwd-ph{width:100%;max-width:420px;min-height:320px;border:2px dashed var(--line);border-radius:22px;background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:14px;padding:24px}
    @media(max-width:980px){.gwd-in{grid-template-columns:1fr;gap:34px}.gwd-media{order:-1;max-width:460px;margin:0 auto}.gwd-title{font-size:32px}}
    @media(max-width:680px){.gwd-feats{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:480px){.gwd{padding:44px 0}.gwd-in{padding:0 16px}.gwd-feats{grid-template-columns:1fr}.gwd-title{font-size:26px}.gwd-btn{display:block;text-align:center}}

/* ---------- 36. gffoot-css  [wp_footer pri 6000] ---------- */
/* ══════════════════════════════════════════════════════════════
   GOFLY FOOTER — FINAL MOBILE OPTIMIZED
   ══════════════════════════════════════════════════════════════ */

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

:root {
  --mint: #047857;
  --orange: #c2410c;
  --orange-dark: #E67A00;
  --green: #047857;
  --text-dark: #1a1a2e;
  --text-body: #4a4a5a;
  --text-muted: #717185;
  --border: rgba(0,0,0,.06);
  --shadow-orange: rgba(255,137,0,.12);
  --fs-xs: 10px;
  --fs-sm: 11px;
  --fs-base: 12.5px;
  --fs-md: 14px;
  --fs-lg: 15px;
  --lh: 1.55;
  --space: 20px;
  --radius: 10px;
  --tr: .2s ease;
}

.footer-box { 
  width: 100%; 
  overflow-x: hidden;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-font-smoothing: antialiased;
}

*:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* ══════════════════════════════════════════
   ✅ PARTNER BAR — Horizontal Scroll on Mobile
   ══════════════════════════════════════════ */
.partner-section { 
  padding: 16px var(--space) 0; 
}

.partner-bar {
  background: #fff;
  padding: 14px 16px;
  border-radius: var(--radius);
  box-shadow: 0 0 16px 4px var(--mint);
  overflow: hidden;
  position: relative;
}

/* Fade edges for scroll hint */
.partner-bar::before,
.partner-bar::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 20px;
  z-index: 2;
  pointer-events: none;
}

.partner-bar::before {
  left: 0;
  background: linear-gradient(90deg, #fff 30%, transparent);
}

.partner-bar::after {
  right: 0;
  background: linear-gradient(270deg, #fff 30%, transparent);
}

/* ✅ Horizontal scroll on mobile */
.partner-scroll {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 4px 0;
}

.partner-scroll::-webkit-scrollbar {
  display: none;
}

.partner-scroll img {
  max-height: 26px;
  width: auto;
  object-fit: contain;
  filter: grayscale(100%);
  opacity: .5;
  transition: all var(--tr);
  flex-shrink: 0;
}

.partner-scroll img:hover {
  filter: grayscale(0%);
  opacity: 1;
  transform: scale(1.05);
}

/* ══════════════════════════════════════════
   AI TOOLS BAR
   ══════════════════════════════════════════ */
.ai-bar {
  margin: 14px var(--space) 0;
  padding: 12px 14px;
  border-radius: var(--radius);
  border: 1px solid rgba(255,137,0,.08);
  background: linear-gradient(135deg, rgba(255,137,0,.02), rgba(178,243,223,.03));
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ai-label {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ai-badge {
  font: 600 var(--fs-xs)/1 'Inter', sans-serif;
  color: #fff;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark));
  padding: 5px 10px;
  border-radius: 12px;
  text-transform: uppercase;
  letter-spacing: .3px;
}

.ai-subtitle {
  font: 500 var(--fs-sm)/1.3 'Inter', sans-serif;
  color: var(--text-muted);
}

.ai-links {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ai-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  text-decoration: none;
  background: #fff;
  border: 1px solid rgba(255,137,0,.08);
  transition: all var(--tr);
  min-height: 44px;
}

.ai-link:hover {
  border-color: var(--orange);
  box-shadow: 0 3px 12px var(--shadow-orange);
  transform: translateY(-1px);
}

.ai-icon { 
  color: var(--orange); 
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,137,0,.06);
  border-radius: 6px;
  flex-shrink: 0;
}

.ai-icon svg { width: 14px; height: 14px; }

.ai-link span:last-child {
  font: 600 var(--fs-base)/1.2 'Inter', sans-serif;
  color: var(--text-dark);
  transition: color var(--tr);
}

.ai-link:hover span:last-child { color: var(--orange); }

/* ══════════════════════════════════════════
   MAIN FOOTER
   ══════════════════════════════════════════ */
.footer-main {
  padding: 28px var(--space) 20px;
}

.footer-grid {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.col-title {
  font: 600 var(--fs-md)/1.2 'Inter', sans-serif;
  color: var(--text-dark);
  margin-bottom: 6px;
}

.col-divider {
  width: 28px;
  height: 2px;
  background: linear-gradient(90deg, var(--orange), var(--mint));
  border-radius: 1px;
  margin-bottom: 12px;
}

/* ══════════════════════════════════════════
   BRAND COLUMN
   ══════════════════════════════════════════ */
.col-brand {
  text-align: center;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}

.brand-logo {
  display: inline-block;
  margin-bottom: 12px;
}

.brand-logo img {
  max-width: 110px;
  height: auto;
  transition: transform var(--tr);
}

.brand-logo:hover img { 
  transform: scale(1.02); 
}

.brand-about {
  font: 400 var(--fs-base)/var(--lh) 'Inter', sans-serif;
  color: var(--text-body);
  max-width: 280px;
  margin: 0 auto 14px;
}

.brand-about strong {
  font-weight: 600;
  color: var(--text-dark);
}

.cert-row {
  display: flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}

.cert-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font: 600 var(--fs-sm)/1 'Inter', sans-serif;
  color: var(--text-dark);
  padding: 7px 10px;
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(255,137,0,.04), rgba(178,243,223,.04));
  border: 1px solid rgba(255,137,0,.12);
  transition: all var(--tr);
}

.cert-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(255,137,0,.08);
}

.cert-badge::before {
  content: '✓';
  width: 14px;
  height: 14px;
  background: var(--orange);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  color: #fff;
  font-weight: 700;
}

/* ══════════════════════════════════════════
   ✅ NAV LINKS — 2 Columns on Mobile
   ══════════════════════════════════════════ */
.col-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 20px;
}

.nav-section .col-title {
  font-size: var(--fs-base);
}

.nav-list { list-style: none; }

.nav-list a {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 0;
  font: 500 var(--fs-sm)/1.3 'Inter', sans-serif;
  color: var(--text-dark);
  text-decoration: none;
  transition: all var(--tr);
  min-height: 32px;
}

.nav-list a:hover { 
  color: var(--green); 
  padding-left: 4px;
}

.nav-list .arrow {
  font-size: 6px;
  color: var(--text-muted);
  transition: all var(--tr);
  flex-shrink: 0;
}

.nav-list a:hover .arrow { 
  color: var(--orange);
  transform: translateX(2px); 
}

/* ══════════════════════════════════════════
   CONTACT COLUMN
   ══════════════════════════════════════════ */
.col-contact {
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

.office-hours {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: linear-gradient(135deg, rgba(3,189,126,.06), rgba(178,243,223,.08));
  border: 1px solid rgba(3,189,126,.12);
  border-radius: 8px;
  margin-bottom: 14px;
}

.hours-icon {
  width: 28px;
  height: 28px;
  background: var(--green);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 12px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(3,189,126,.2);
}

.hours-text {
  flex: 1;
}

.hours-text .open {
  font: 600 var(--fs-sm)/1.3 'Inter', sans-serif;
  color: var(--text-dark);
}

.hours-text .closed {
  font: 500 var(--fs-xs)/1.2 'Inter', sans-serif;
  color: var(--text-muted);
}

.hours-dot {
  width: 6px;
  height: 6px;
  background: var(--green);
  border-radius: 50%;
  animation: pulse 2s infinite;
  flex-shrink: 0;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .4; }
}

.contact-list { 
  list-style: none; 
  margin-bottom: 14px;
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}

.contact-item:last-child { border-bottom: none; }

.contact-icon {
  width: 30px;
  height: 30px;
  min-width: 30px;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark));
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px var(--shadow-orange);
  flex-shrink: 0;
  transition: transform var(--tr);
}
/* The child theme's style.css sets .contact-icon to 48px and loads after this
   file, so these dimensions are forced to win the cascade. */
html body .footer-box .contact-icon,
html body footer .contact-icon {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
}

.contact-item:hover .contact-icon {
  transform: scale(1.05) rotate(2deg);
}

.contact-icon svg { 
  width: 13px; 
  height: 13px; 
  fill: #fff; 
}
html body .footer-box .contact-icon svg,
html body footer .contact-icon svg {
  width: 13px !important;
  height: 13px !important;
}

.contact-info {
  padding-top: 6px;
  font: 400 var(--fs-base)/var(--lh) 'Inter', sans-serif;
  color: var(--text-body);
  word-break: break-word;
}

.contact-info a {
  color: inherit;
  text-decoration: none;
  transition: color var(--tr);
}

.contact-info a:hover { color: var(--orange); }

/* Social Icons */
.social-row {
  display: flex;
  gap: 6px;
  justify-content: center;
  flex-wrap: nowrap;
}

.social-btn {
  width: 34px;
  height: 34px;
  min-width: 34px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  transition: all .2s cubic-bezier(.34,1.56,.64,1);
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}

.social-btn svg { 
  width: 15px; 
  height: 15px; 
  fill: currentColor; 
}

.social-btn:hover { 
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
}

.s-fb { background: #1877F2; }
.s-tw { background: #1DA1F2; }
.s-yt { background: #FF0000; }
.s-li { background: #0A66C2; }
.s-wa { background: #25D366; }

/* ══════════════════════════════════════════
   NEWSLETTER
   ══════════════════════════════════════════ */
.newsletter {
  margin: 0 var(--space);
  padding: 20px 16px;
  border-radius: var(--radius);
  border: 1px solid rgba(255,137,0,.08);
  background: linear-gradient(135deg, rgba(255,137,0,.02), rgba(178,243,223,.03));
  text-align: center;
}

.newsletter h2 {
  font: 600 var(--fs-md)/1.3 'Inter', sans-serif;
  color: var(--text-dark);
  margin-bottom: 4px;
}

.newsletter p {
  font: 400 var(--fs-base)/var(--lh) 'Inter', sans-serif;
  color: var(--text-muted);
  margin-bottom: 14px;
  max-width: 280px;
  margin-left: auto;
  margin-right: auto;
}

.nl-form {
  display: flex;
  flex-direction: column;
  max-width: 300px;
  margin: 0 auto;
  position: relative;
}

.nl-form input[type="email"] {
  padding: 12px 14px;
  border: 1px solid rgba(255,137,0,.12);
  border-bottom: none;
  border-radius: var(--radius) var(--radius) 0 0;
  font: 400 var(--fs-base)/1.3 'Inter', sans-serif;
  color: var(--text-dark);
  outline: none;
  transition: border-color var(--tr);
  min-height: 44px;
}

.nl-form input:focus { border-color: var(--orange); }
.nl-form input::placeholder { color: #aaa; }

.nl-form button {
  padding: 12px 16px;
  background: linear-gradient(135deg, var(--orange), var(--orange-dark));
  color: #fff;
  border: none;
  border-radius: 0 0 var(--radius) var(--radius);
  font: 600 var(--fs-base)/1 'Inter', sans-serif;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all var(--tr);
  min-height: 44px;
}

.nl-form button:hover {
  box-shadow: 0 4px 14px var(--shadow-orange);
  background: linear-gradient(135deg, var(--orange-dark), #d06b00);
}

.nl-form button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.nl-msg {
  font: 500 var(--fs-sm)/1.3 'Inter', sans-serif;
  margin-top: 8px;
  min-height: 18px;
}

.nl-msg.success { color: var(--green); }
.nl-msg.error { color: #e53e3e; }

.nl-hp { 
  position: absolute; 
  left: -9999px; 
  width: 0;
  height: 0;
  opacity: 0;
}

/* ══════════════════════════════════════════
   BOTTOM BAR
   ══════════════════════════════════════════ */
.footer-bottom {
  margin: 20px var(--space) 0;
  padding: 16px 0 20px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}

.pay-label {
  font: 600 var(--fs-xs)/1 'Inter', sans-serif;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 8px;
}

.pay-icons {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  justify-content: center;
}

.pay-icon {
  height: 28px;
  padding: 5px 10px;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 5px;
  font: 700 var(--fs-xs)/1 'Inter', sans-serif;
  color: #333;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--tr);
}

.pay-icon:hover {
  border-color: var(--orange);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

.pay-icon i { font-size: 14px; }
.p-visa { color: #1A1F71; }
.p-mc { color: #EB001B; }
.p-amex { color: #006FCF; }

.sec-badges {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}

.sec-badge {
  display: flex;
  align-items: center;
  gap: 5px;
  font: 500 var(--fs-sm)/1.2 'Inter', sans-serif;
  color: var(--text-muted);
}

.sec-badge i { 
  color: var(--green); 
  font-size: 12px; 
}

/* ══════════════════════════════════════════════════════════════
   TABLET — 600px
   ══════════════════════════════════════════════════════════════ */
@media (min-width: 600px) {
  :root { --space: 28px; }
  
  /* Partner bar - Grid on tablet+ */
  .partner-bar { padding: 20px 28px; }
  .partner-bar::before,
  .partner-bar::after { display: none; }
  
  .partner-scroll {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 16px;
    overflow-x: visible;
    justify-items: center;
  }
  .partner-scroll img { max-height: 30px; }
  
  .ai-bar {
    flex-direction: row;
    align-items: center;
    padding: 14px 20px;
    gap: 16px;
  }
  .ai-links { 
    flex-direction: row; 
    flex: 1; 
    gap: 8px; 
  }
  .ai-link { flex: 1; }
  
  .footer-main { padding: 32px var(--space) 24px; }
  
  .col-brand {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    text-align: left;
  }
  .brand-logo { margin-bottom: 0; }
  .brand-about { 
    margin: 0; 
    flex: 1;
    max-width: none; 
  }
  .cert-row { 
    flex-direction: column; 
    gap: 5px;
    align-items: flex-start;
  }
  
  /* Nav links - larger gap on tablet */
  .col-nav { gap: 20px 32px; }
  .nav-section .col-title { font-size: var(--fs-md); }
  .nav-list a { 
    font-size: var(--fs-base);
    padding: 7px 0;
    min-height: 36px;
  }
  
  .social-row { 
    justify-content: flex-start; 
    gap: 8px; 
  }
  .social-btn { 
    width: 36px; 
    height: 36px; 
    min-width: 36px; 
  }
  
  .newsletter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    padding: 24px;
    gap: 20px;
  }
  .newsletter p { 
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    max-width: none;
  }
  .nl-form {
    flex-direction: row;
    max-width: 320px;
    margin: 0;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,.05);
  }
  .nl-form input[type="email"] {
    flex: 1;
    border-radius: var(--radius) 0 0 var(--radius);
    border-right: none;
    border-bottom: 1px solid rgba(255,137,0,.12);
  }
  .nl-form button {
    border-radius: 0 var(--radius) var(--radius) 0;
    white-space: nowrap;
  }
  
  .footer-bottom {
    flex-direction: row;
    justify-content: space-between;
  }
  .payment-section { text-align: left; }
  .pay-icons { justify-content: flex-start; }
}

/* ══════════════════════════════════════════════════════════════
   TABLET LANDSCAPE — 768px
   ══════════════════════════════════════════════════════════════ */
@media (min-width: 768px) {
  :root { --space: 36px; }
  
  .partner-bar { padding: 22px 32px; border-radius: 12px; }
  .partner-scroll img { max-height: 34px; }
  
  .footer-main { padding: 40px var(--space) 28px; }
  
  .col-brand { 
    gap: 28px;
    padding-bottom: 0;
    border-bottom: none;
  }
  .brand-logo img { max-width: 120px; }
  
  .col-contact { 
    padding-top: 0; 
    border-top: none; 
  }
  
  .social-btn { 
    width: 38px; 
    height: 38px; 
    min-width: 38px; 
  }
  .social-btn svg { width: 16px; height: 16px; }
}

/* ══════════════════════════════════════════════════════════════
   DESKTOP — 1024px
   ══════════════════════════════════════════════════════════════ */
@media (min-width: 1024px) {
  :root { --space: 48px; }
  
  .partner-bar { padding: 24px 40px; }
  .partner-scroll img { max-height: 38px; }
  
  .footer-main { padding: 44px var(--space) 32px; }
  
  .footer-grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr 1.25fr;
    gap: 36px;
    align-items: start;
  }
  
  .col-brand {
    flex-direction: column;
    gap: 0;
  }
  .brand-logo { margin-bottom: 10px; }
  .brand-logo img { max-width: 130px; }
  .brand-about { 
    max-width: 220px; 
    margin-bottom: 14px;
  }
  
  /* Nav columns separate on desktop */
  .col-nav { 
    display: contents;
  }
  
  .nav-section {
    display: flex;
    flex-direction: column;
  }
  
  .contact-item { padding: 8px 0; }
  .contact-icon { width: 30px; height: 30px; min-width: 30px; }
  .contact-icon svg { width: 12px; height: 12px; }
  .contact-info { padding-top: 5px; }
  
  .social-row { 
    margin-top: 4px;
    gap: 6px; 
  }
  .social-btn { 
    width: 36px; 
    height: 36px; 
    min-width: 36px; 
  }
}

/* ══════════════════════════════════════════════════════════════
   LARGE DESKTOP — 1280px
   ══════════════════════════════════════════════════════════════ */
@media (min-width: 1280px) {
  :root { 
    --space: 64px;
    --fs-base: 13px;
  }
  
  .footer-grid { gap: 44px; }
  .brand-logo img { max-width: 140px; }
  .brand-about { max-width: 240px; }
  
  .newsletter { padding: 28px 32px; }
  .nl-form { max-width: 360px; }
  
  .social-btn { 
    width: 38px; 
    height: 38px; 
    min-width: 38px; 
  }
  .social-btn svg { width: 16px; height: 16px; }
}

/* Print */
@media print {
  .partner-section, .ai-bar, .social-row, .newsletter { 
    display: none !important; 
  }
}
.gofly-footer {
    padding: 16px 24px;
    font-size: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    color: inherit;
    line-height: 1.6;
  }

  .gofly-footer a {
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
  }

  .gofly-footer a:hover {
    opacity: 0.75;
  }

  /* Tablet */
  @media (max-width: 768px) {
    .gofly-footer {
      flex-direction: column;
      text-align: center;
      justify-content: center;
      gap: 2px;
      padding: 10px 20px;
      font-size: 13px;
      line-height: 1.4;
    }
  }

  /* Mobile */
  @media (max-width: 480px) {
    .gofly-footer {
      padding: 6px 16px;
      font-size: 11px;
      gap: 0px;
      line-height: 1.3;
    }
  }
/* === goFLY footer width + bg fix ===
   Originally the Elementor footer SECTION supplied (a) the mint gradient background and
   (b) a 1140px boxed container. Now that the footer is self-hosted via wp_footer (outside
   Elementor) those are gone, so the content stretched full-width. Restore both here. */
.footer-box{background:linear-gradient(180deg,#B2F3DF 0%,#FFFFFF 90%)!important}
.footer-box>.partner-section,
.footer-box>.ai-bar,
.footer-box>.footer-main,
.footer-box>.newsletter,
.footer-box>.footer-bottom{max-width:1140px!important;margin-left:auto!important;margin-right:auto!important}
/* copyright bar (separate .gofly-footer element) was also full-width — align it to the 1140 column */
.gofly-footer{max-width:1140px!important;margin-left:auto!important;margin-right:auto!important}
@media(max-width:1188px){ .gofly-footer{padding-left:24px!important;padding-right:24px!important} }
/* hide the theme's default (Rara) colophon footer — the custom footer above replaces it */
#colophon.site-footer,footer#colophon,#colophon{display:none!important}
@media(max-width:1188px){
  .footer-box>.partner-section,
  .footer-box>.ai-bar,
  .footer-box>.footer-main,
  .footer-box>.newsletter,
  .footer-box>.footer-bottom{padding-left:24px!important;padding-right:24px!important}
}
@media(max-width:600px){
  .footer-box>.partner-section,
  .footer-box>.ai-bar,
  .footer-box>.footer-main,
  .footer-box>.newsletter,
  .footer-box>.footer-bottom{padding-left:16px!important;padding-right:16px!important}
}

/* === 10/10 polish: match site brand typography (footer shipped with 'Inter') === */
.footer-box,.footer-box p,.footer-box a,.footer-box span:not([class*="fa"]),.footer-box li,.footer-box ul,.footer-box div,.footer-box strong,.footer-box small,.footer-box input,.footer-box button,.footer-box label,.footer-box section{font-family:'Hind Siliguri',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important}
.footer-box .col-title,.footer-box h1,.footer-box h2,.footer-box h3,.footer-box h4{font-family:'Cantora One',Georgia,serif!important;font-weight:400!important}
.gofly-footer,.gofly-footer div,.gofly-footer a,.gofly-footer strong{font-family:'Hind Siliguri',sans-serif!important}
/* keep Font Awesome icons intact */
.footer-box i,.footer-box [class^="fa-"],.footer-box [class*=" fa-"]{font-family:"Font Awesome 6 Free","Font Awesome 6 Brands","Font Awesome 5 Free",FontAwesome!important}
