/* ===== GL Flight Search ===== */
.glfs-wrap{
	--glfs-bar-bg:#1b2a3a;
	--glfs-bar-bg-soft:rgba(255,255,255,.08);
	--glfs-accent:#f0a818;
	--glfs-text:#fff;
	--glfs-radius:12px;
	--glfs-card-radius:16px;
	font-family:inherit;
	max-width:1100px;
	margin:0 auto;
}

/* ---- Search bar ---- */
.glfs-searchbar{
	background:rgba(8,16,28,.85);
	backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
	border:1px solid rgba(255,255,255,.08);
	border-radius:14px;
	padding:18px 20px 20px;
	color:#fff;
	box-shadow:0 8px 32px rgba(0,0,0,.3);
}
.glfs-tabs{display:flex;gap:8px;margin-bottom:16px}
.glfs-tab{
	display:inline-flex;align-items:center;gap:6px;
	background:transparent;color:#fff;
	border:1px solid rgba(255,255,255,.25);border-radius:999px;
	padding:7px 16px;font-size:13px;cursor:pointer;
	transition:all .15s ease;
}
.glfs-tab:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.45)}
.glfs-tab.is-active{background:#fff;color:#1b2a3a;font-weight:600;border-color:#fff}

.glfs-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.glfs-field{display:flex;flex-direction:column;gap:6px;flex:1 1 140px;min-width:120px}
.glfs-field>span,.glfs-field-label{
	display:inline-flex;align-items:center;gap:5px;
	font-size:12px;color:rgba(255,255,255,.75);font-weight:500;
}
.glfs-field select,
.glfs-field input[type="date"],
.glfs-field input[type="text"],
.glfs-field input[type="number"]{
	background:rgba(255,255,255,.07);
	border:1px solid rgba(255,255,255,.14);
	color:#fff;border-radius:8px;padding:9px 12px;font-size:14px;
	transition:border-color .15s;
}
.glfs-field select:focus,
.glfs-field input:focus{border-color:rgba(255,255,255,.4);outline:none}
.glfs-field select option{color:#1b2a3a}
.glfs-pax-inputs{display:flex;gap:6px}
.glfs-pax-inputs input{
	width:0;flex:1 1 0;min-width:0;
	text-align:center;
}
.glfs-pax-inputs input::placeholder{font-size:12px;color:rgba(255,255,255,.45)}
.glfs-search-btn{
	display:inline-flex;align-items:center;gap:8px;
	background:#f0a818;color:#1b2a3a;border:0;
	border-radius:8px;padding:10px 20px;font-weight:700;font-size:14px;
	cursor:pointer;flex:0 0 auto;white-space:nowrap;
	transition:filter .15s;
}
.glfs-search-btn:hover{filter:brightness(1.08)}

/* ---- Cards grid ---- */
.glfs-grid{
	display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:26px;
}
.glfs-card{
	position:relative;display:block;height:240px;border-radius:var(--glfs-card-radius);
	overflow:hidden;background-size:cover;background-position:center;
	text-decoration:none;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.16);
	transition:transform .2s ease, box-shadow .2s ease;
}
.glfs-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.24)}
.glfs-card-overlay{
	position:absolute;inset:0;
	background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.72) 100%);
}
.glfs-card-body{position:absolute;left:20px;right:20px;bottom:18px}
.glfs-card-city{margin:0 0 4px;font-size:26px;font-weight:700;line-height:1.1;color:#fff}
.glfs-card-dates{margin:0 0 10px;font-size:13px;opacity:.85}
.glfs-card-price{margin:0;display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.glfs-card-price span{font-size:13px;opacity:.85}
.glfs-card-price strong{font-size:18px;font-weight:700}

.glfs-empty{margin-top:24px;color:#666;font-size:15px}

/* ---- Detail view ---- */
.glfs-detail{padding:28px 0}
.glfs-detail-head{margin-bottom:18px}
.glfs-detail-title{margin:0 0 4px;font-size:24px;font-weight:700}
.glfs-detail-route{margin:0;color:#5a6b7b;font-size:15px}

.glfs-cabin-toggle{display:inline-flex;gap:6px;background:#eef1f5;border-radius:999px;padding:4px;margin:14px 0}
.glfs-cabin-btn{border:0;background:transparent;border-radius:999px;padding:8px 18px;font-size:14px;cursor:pointer;color:#42536a}
.glfs-cabin-btn.is-active{background:#1b2a3a;color:#fff;font-weight:600}

.glfs-price-display{display:flex;align-items:baseline;gap:8px;margin-bottom:18px}
.glfs-price-cabin{color:#5a6b7b;font-size:14px}
.glfs-price-amount{font-size:22px;font-weight:700;color:#1b2a3a}

.glfs-legs{border:1px solid #e6eaef;border-radius:14px;overflow:hidden}
.glfs-leg{display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;padding:22px 24px;gap:16px}
.glfs-leg-sep{background:#f5f7fa;padding:8px 24px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#5a6b7b;border-top:1px solid #e6eaef;border-bottom:1px solid #e6eaef}
.glfs-leg-end .glfs-time{font-size:26px;font-weight:700;color:#1b2a3a;line-height:1}
.glfs-leg-end .glfs-airport{font-size:14px;color:#42536a;margin-top:4px}
.glfs-leg-end .glfs-day{font-size:12px;color:#8a97a6;margin-top:2px}
.glfs-right{text-align:right}
.glfs-leg-mid{text-align:center;color:#5a6b7b}
.glfs-leg-mid .glfs-dur{font-size:13px}
.glfs-leg-mid .glfs-line{height:2px;background:linear-gradient(90deg,#cdd6e0,#9aa8b8,#cdd6e0);margin:8px 0;position:relative}
.glfs-leg-mid .glfs-line:after{content:"\2708";position:absolute;right:-2px;top:-9px;color:#9aa8b8;font-size:14px}
.glfs-leg-mid .glfs-stops{font-size:12px;color:#2e9b5b;font-weight:600}
.glfs-leg-mid .glfs-fno{font-size:12px;color:#8a97a6;margin-top:2px}

.glfs-detail-body{margin-top:22px;color:#42536a;line-height:1.6}

/* ---- Multi-city form ---- */
.glfs-mc-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.glfs-mc-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.glfs-mc-leg-num{
	display:flex;align-items:center;justify-content:center;
	width:26px;height:26px;flex-shrink:0;
	background:rgba(255,255,255,.18);color:#fff;
	border-radius:50%;font-size:12px;font-weight:700;
	align-self:flex-end;margin-bottom:10px;
}
.glfs-mc-remove{
	background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
	color:#fff;border-radius:6px;width:36px;height:36px;flex-shrink:0;
	cursor:pointer;display:flex;align-items:center;justify-content:center;
	align-self:flex-end;margin-bottom:2px;transition:background .15s;
}
.glfs-mc-remove:hover{background:rgba(210,50,50,.55)}
.glfs-mc-add-btn{
	display:inline-flex;align-items:center;gap:7px;
	background:transparent;border:1px dashed rgba(255,255,255,.4);
	color:#fff;border-radius:8px;padding:9px 18px;font-size:13px;
	cursor:pointer;margin-bottom:14px;transition:background .15s;
}
.glfs-mc-add-btn:hover{background:rgba(255,255,255,.1)}
.glfs-fields-bottom{margin-top:2px}

/* ---- Responsive ---- */
@media (max-width:820px){
	.glfs-grid{grid-template-columns:1fr}
	.glfs-fields{flex-direction:column;align-items:stretch}
	.glfs-field{flex:1 1 auto}
	.glfs-search-btn{width:100%}
	.glfs-leg{grid-template-columns:1fr;text-align:center;gap:10px}
	.glfs-right{text-align:center}
	.glfs-mc-remove{align-self:auto}
}

/* ===== Search summary bar ===== */
.glfs-search-summary{
	background:#1b2a3a;border-radius:12px;
	padding:20px 26px;margin-top:22px;
}
.glfs-ss-inner{display:flex;align-items:center;gap:20px}
.glfs-search-again{
	display:inline-flex;align-items:center;gap:7px;flex-shrink:0;
	background:transparent;border:1px solid rgba(255,255,255,.3);
	color:#fff;border-radius:999px;padding:8px 16px;
	font-size:13px;font-weight:500;text-decoration:none;cursor:pointer;
	white-space:nowrap;transition:background .15s;font-family:inherit;
}
.glfs-search-again:hover{background:rgba(255,255,255,.1);color:#fff}
.glfs-sa-chevron{transition:transform .3s ease;flex-shrink:0}
.glfs-search-again[aria-expanded="true"] .glfs-sa-chevron{transform:rotate(180deg)}

/* Collapsible search form */
.glfs-search-collapse{
	overflow:hidden;
	max-height:0;
	transition:max-height .4s ease, opacity .3s ease;
	opacity:0;
}
.glfs-search-collapse.is-open{
	max-height:900px;
	opacity:1;
}
.glfs-ss-content{flex:1;min-width:0}
.glfs-ss-route{
	color:#fff;font-size:21px;font-weight:700;
	margin:0 0 5px;line-height:1.25;
}
.glfs-ss-meta{
	color:rgba(255,255,255,.65);font-size:14px;margin:0;
}

/* ===== Search results list ===== */

.glfs-rl-header{
	display:flex;align-items:center;justify-content:space-between;
	margin:28px 0 18px;flex-wrap:wrap;gap:12px;
}
.glfs-rl-count{font-size:16px;color:#42536a;margin:0}
.glfs-rl-count strong{color:#1b2a3a}
.glfs-rl-sort{display:flex;align-items:center;gap:8px;font-size:14px;color:#42536a}
.glfs-rl-sort select{
	border:1px solid #d0d9e5;border-radius:6px;
	padding:7px 12px;font-size:14px;color:#1b2a3a;
	background:#fff;cursor:pointer;
}

/* Result card */
.glfs-rl-card{
	display:grid;grid-template-columns:1fr 220px;
	background:#fff;border:1px solid #e8eaee;border-radius:14px;
	overflow:hidden;box-shadow:0 2px 14px rgba(0,0,0,.07);
}
.glfs-rl-item{margin-bottom:14px}

.glfs-rl-info{padding:22px 26px}
.glfs-rl-airline-row{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.glfs-rl-logo{
	width:42px;height:42px;flex-shrink:0;
	background:#1b2a3a;border-radius:50%;
	display:flex;align-items:center;justify-content:center;
}
.glfs-rl-airline-name{font-size:15px;font-weight:700;color:#1b2a3a;line-height:1.2}
.glfs-rl-flight-tag{font-size:13px;color:#8a97a6;margin-top:3px}

.glfs-rl-route{
	display:grid;grid-template-columns:auto 1fr auto;
	align-items:center;gap:16px;
}
.glfs-rl-endpoint{}
.glfs-rl-ep-right{text-align:right}
.glfs-rl-ep-label{
	font-size:11px;font-weight:600;text-transform:uppercase;
	letter-spacing:.06em;color:#8a97a6;margin-bottom:5px;
}
.glfs-rl-ep-time{font-size:30px;font-weight:700;color:#1b2a3a;line-height:1}
.glfs-rl-ep-code{font-size:14px;color:#1b2a3a;margin-top:5px;font-weight:600}

.glfs-rl-mid{text-align:center}
.glfs-rl-dur{font-size:13px;color:#5a6b7b;margin-bottom:8px}
.glfs-rl-line{margin:0 auto 8px}
.glfs-rl-stops{
	font-size:12px;font-weight:700;text-transform:uppercase;
	color:#c8860a;letter-spacing:.04em;
}
.glfs-rl-stops.has-stop{color:#e07b20}

/* Price column */
.glfs-rl-price{
	border-left:1px solid #e8eaee;
	display:flex;flex-direction:column;align-items:center;
	justify-content:center;text-align:center;
	padding:24px 20px;gap:4px;
}
.glfs-rl-badge{
	font-size:11px;font-weight:700;text-transform:uppercase;
	letter-spacing:.07em;color:#8a97a6;margin-bottom:6px;
}
.glfs-rl-amount{
	font-size:26px;font-weight:700;color:#c8860a;line-height:1.15;
}
.glfs-rl-class{font-size:13px;color:#5a6b7b;margin-top:2px;margin-bottom:14px}
.glfs-rl-enquiry{
	display:block;width:100%;box-sizing:border-box;
	background:#1b2a3a;color:#fff;text-align:center;
	border:none;border-radius:8px;padding:13px 16px;font-size:14px;font-weight:600;
	cursor:pointer;transition:background .15s;font-family:inherit;
}
.glfs-rl-enquiry:hover{background:#263d54;color:#fff}
.glfs-rl-seats-left{
	display:flex;align-items:center;justify-content:center;
	gap:5px;margin-top:10px;
	font-size:11px;font-weight:700;text-transform:uppercase;
	letter-spacing:.04em;color:#c8860a;
}

/* Show more */
.glfs-show-more-wrap{display:block;text-align:center;margin:24px 0 44px}
.glfs-show-more-btn{
	display:inline-flex;flex-direction:column;align-items:center;gap:10px;
	background:none;border:none;cursor:pointer;padding:8px 24px;
	transition:opacity .15s;
}
.glfs-show-more-btn:hover{opacity:.75}
.glfs-sm-text{
	font-size:15px;font-weight:600;color:#1b2a3a;
}
.glfs-sm-circle{
	display:flex;align-items:center;justify-content:center;
	width:36px;height:36px;border-radius:50%;
	border:1.5px solid #b0bac6;color:#42536a;
	transition:border-color .15s,color .15s;
}
.glfs-show-more-btn:hover .glfs-sm-circle{
	border-color:#1b2a3a;color:#1b2a3a;
}

/* Archive search band (replaces hero when form is embedded) */
.glfs-archive-search-band{
	background:#0f1d2b;
	padding:28px 0 22px;
}
.glfs-archive-band-heading{margin-bottom:18px}
.glfs-archive-hero-title{color:#fff;font-size:28px;font-weight:700;margin:0 0 6px}
.glfs-archive-hero-sub{color:rgba(255,255,255,.7);font-size:15px;margin:0}
.glfs-archive-results{padding:0 0 48px}

/* Tighten the form's top wrap when inside the search band */
.glfs-archive-search-band .glfs-wrap{margin-top:0}

/* Responsive */
@media(max-width:820px){
	.glfs-ss-inner{flex-direction:column;align-items:flex-start;gap:12px}
	.glfs-rl-card{grid-template-columns:1fr}
	.glfs-rl-price{border-left:none;border-top:1px solid #e8eaee;padding-top:20px}
	.glfs-rl-ep-right{text-align:left}
	.glfs-rl-route{grid-template-columns:auto 1fr auto}
}

/* ===== Enquiry Modal ===== */
.glfs-modal-overlay{
	position:fixed;inset:0;
	background:rgba(0,0,0,.55);
	display:flex;align-items:center;justify-content:center;
	z-index:99999;padding:16px;
	opacity:0;pointer-events:none;
	transition:opacity .2s ease;
}
.glfs-modal-overlay.is-open{opacity:1;pointer-events:auto}
.glfs-modal{
	background:#fff;border-radius:16px;
	width:100%;max-width:580px;max-height:90vh;overflow-y:auto;
	box-shadow:0 24px 64px rgba(0,0,0,.28);
	transform:translateY(18px);transition:transform .25s ease;
}
.glfs-modal-overlay.is-open .glfs-modal{transform:translateY(0)}

.glfs-modal-header{
	display:flex;align-items:center;justify-content:space-between;
	padding:20px 24px 16px;border-bottom:1px solid #e8eaee;
	position:sticky;top:0;background:#fff;z-index:1;
}
.glfs-modal-title{font-size:19px;font-weight:700;color:#1b2a3a;margin:0}
.glfs-modal-close{
	background:none;border:none;cursor:pointer;color:#5a6b7b;
	padding:4px;display:flex;align-items:center;justify-content:center;
	border-radius:6px;transition:background .15s,color .15s;flex-shrink:0;
}
.glfs-modal-close:hover{background:#f0f4f8;color:#1b2a3a}
.glfs-modal-body{padding:22px 24px 26px}

/* CF7 layout helpers inside modal */
.glfs-cf7-field{margin-bottom:16px}
.glfs-cf7-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.glfs-cf7-col{min-width:0}
.glfs-cf7-field>label,.glfs-cf7-col>label{
	display:block;font-size:13px;font-weight:600;color:#1b2a3a;margin-bottom:6px;
}

/* All CF7 inputs / textarea / select inside modal */
.glfs-modal-body .wpcf7-form-control:not([type=submit]){
	width:100%;box-sizing:border-box;
	border:1px solid #d0d9e5;border-radius:8px;
	padding:10px 14px;font-size:14px;color:#1b2a3a;
	background:#fff;outline:none;font-family:inherit;
	transition:border-color .15s;
}
.glfs-modal-body .wpcf7-form-control:focus{border-color:#1b2a3a}
.glfs-modal-body textarea.wpcf7-form-control{height:110px;resize:vertical}
.glfs-modal-body .wpcf7-form-control[type=number]{-moz-appearance:textfield}

/* CF7 submit button */
.glfs-modal-body .wpcf7-submit{
	display:block;width:100%;box-sizing:border-box;
	background:#1b2a3a;color:#fff;border:none;border-radius:8px;
	padding:14px;font-size:15px;font-weight:600;cursor:pointer;
	transition:background .15s;font-family:inherit;margin-top:4px;
}
.glfs-modal-body .wpcf7-submit:hover{background:#263d54}

/* CF7 validation & response */
.glfs-modal-body .wpcf7-not-valid-tip{font-size:12px;color:#c0392b;margin-top:4px;display:block}
.glfs-modal-body .wpcf7-response-output{
	margin:14px 0 0!important;padding:10px 14px!important;
	border-radius:8px!important;font-size:13px!important;border:1px solid #d0d9e5!important;
}
.glfs-modal-body .wpcf7-mail-sent-ok{border-color:#2e9b5b!important;background:#f0faf4!important;color:#1a6b3c!important}
.glfs-modal-body .wpcf7-mail-sent-ng,.glfs-modal-body .wpcf7-spam-blocked{border-color:#c0392b!important;background:#fdf3f2!important;color:#922b21!important}

@media(max-width:560px){
	.glfs-cf7-row{grid-template-columns:1fr}
	.glfs-modal-body{padding:18px 18px 22px}
}

/* ===== Detail / Single flight page ===== */

/* Hero header */
.glfs-detail-hero{
	background:#1b2a3a;
	padding:32px 0 36px;
}
.glfs-detail-hero-inner{
	max-width:1100px;
	margin:0 auto;
	padding:0 24px;
}
.glfs-back-btn{
	display:inline-flex;align-items:center;gap:6px;
	color:#fff;border:1px solid rgba(255,255,255,.35);
	border-radius:999px;padding:8px 18px;font-size:14px;
	text-decoration:none;margin-bottom:22px;
	transition:background .15s;
}
.glfs-back-btn:hover{background:rgba(255,255,255,.1);color:#fff}
.glfs-detail-hero-title{
	color:#fff;font-size:28px;font-weight:700;margin:0 0 8px;line-height:1.2;
}
.glfs-detail-hero-meta{
	color:rgba(255,255,255,.72);font-size:15px;margin:0;
}

/* Results section */
.glfs-results{padding:30px 0 48px}
.glfs-results-bar{
	display:flex;align-items:center;justify-content:space-between;
	margin-bottom:20px;
}
.glfs-results-count{font-size:16px;color:#42536a;margin:0}
.glfs-results-count strong{color:#1b2a3a}

.glfs-results-sep{
	display:flex;align-items:center;gap:14px;
	margin:22px 0;color:#5a6b7b;
	font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
}
.glfs-results-sep::before,.glfs-results-sep::after{
	content:'';flex:1;height:1px;background:#e6eaef;
}

/* Flight result card */
.glfs-result-card{
	display:grid;
	grid-template-columns:220px 1fr 210px;
	background:#fff;
	border:1px solid #e6eaef;
	border-radius:14px;
	overflow:hidden;
	margin-bottom:16px;
	box-shadow:0 2px 14px rgba(0,0,0,.06);
}

/* Airline column */
.glfs-rc-airline{
	display:flex;align-items:center;gap:14px;
	padding:28px 22px;
	border-right:1px solid #e6eaef;
}
.glfs-rc-logo{
	width:48px;height:48px;flex-shrink:0;
	background:#f0f4f8;border-radius:50%;
	display:flex;align-items:center;justify-content:center;
	color:#5a6b7b;
}
.glfs-rc-logo svg{width:22px;height:22px}
.glfs-rc-airline-name{font-size:15px;font-weight:700;color:#1b2a3a;margin-bottom:4px}
.glfs-rc-flight-info{font-size:13px;color:#8a97a6}

/* Route column */
.glfs-rc-route{
	display:flex;align-items:center;gap:12px;
	padding:28px 24px;
}
.glfs-rc-point{flex:0 0 auto}
.glfs-rc-right{text-align:right}
.glfs-rc-mid{flex:1;text-align:center}
.glfs-rc-label{
	font-size:11px;font-weight:600;text-transform:uppercase;
	letter-spacing:.06em;color:#8a97a6;margin-bottom:4px;
}
.glfs-rc-time{font-size:30px;font-weight:700;color:#1b2a3a;line-height:1}
.glfs-rc-code{font-size:14px;color:#42536a;margin-top:5px;font-weight:500}
.glfs-rc-dur{font-size:13px;color:#5a6b7b;margin-bottom:8px}
.glfs-rc-line{margin:0 auto 8px;max-width:200px}
.glfs-rc-line svg{width:100%;height:14px;display:block}
.glfs-rc-stops{font-size:12px;font-weight:700;color:#8a97a6;text-transform:uppercase}
.glfs-rc-stops.is-nonstop{color:#2e9b5b}

/* Price column */
.glfs-rc-price{
	display:flex;flex-direction:column;align-items:center;
	justify-content:center;text-align:center;
	padding:24px 20px;gap:5px;
	border-left:1px solid #e6eaef;
}
.glfs-rc-badge{
	font-size:11px;font-weight:700;text-transform:uppercase;
	letter-spacing:.07em;color:#8a97a6;
}
.glfs-rc-amount{
	font-size:22px;font-weight:700;
	color:#c8860a;line-height:1.15;margin-top:2px;
}
.glfs-rc-class{font-size:13px;color:#5a6b7b}
.glfs-rc-enquiry{
	display:block;width:100%;
	background:#1b2a3a;color:#fff;
	text-align:center;border-radius:8px;
	padding:12px 16px;font-size:14px;font-weight:600;
	text-decoration:none;margin-top:12px;
	transition:background .15s;
}
.glfs-rc-enquiry:hover{background:#263d54;color:#fff}

/* Responsive */
@media(max-width:820px){
	.glfs-result-card{grid-template-columns:1fr}
	.glfs-rc-airline{border-right:none;border-bottom:1px solid #e6eaef}
	.glfs-rc-route{border-bottom:1px solid #e6eaef}
	.glfs-rc-price{border-left:none;padding-top:20px}
	.glfs-rc-right{text-align:left}
	.glfs-detail-hero-title{font-size:20px}
}
