/* ===== Abbasi Travels - Shared Stylesheet ===== */
:root{
  --primary:#0B3D63;        /* navy - headings, header, footer */
  --primary-dark:#072A45;   /* deep navy - footer bg, dark bands */
  --primary-light:#2E86C1;  /* light blue - CTAs, accents, links */
  --primary-pale:#EAF3FA;   /* pale blue tint for subtle fills */
  --text:#1E2733;           /* body copy */
  --muted:#5B6B78;          /* secondary text */
  --background:#FFFFFF;
  --surface:#F5F7FA;        /* light grey section separation */
  --border:rgba(11,61,99,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--background); color:var(--text); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Playfair Display',serif; margin:0; font-weight:600; color:var(--primary);}
a{color:inherit;}
img{max-width:100%; display:block;}
.mono{font-family:'Space Mono',monospace;}

.texture{position:fixed; inset:0; pointer-events:none; z-index:0; opacity:0.5;
  background-image: radial-gradient(rgba(11,61,99,0.04) 1px, transparent 1px);
  background-size:3px 3px;}

.arch-row{display:flex; justify-content:center; gap:6px; opacity:0.5; margin:0 0 18px;}
.arch-row span{width:10px; height:16px; border-top-left-radius:10px; border-top-right-radius:10px; border:1.5px solid var(--primary-light); border-bottom:none;}

/* ===== Utility bar ===== */
.utility-bar{background:var(--primary-dark); color:rgba(255,255,255,0.85); font-size:0.78rem; position:relative; z-index:60;}
.utility-inner{max-width:1320px; margin:0 auto; padding:8px 6vw; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;}
.utility-left{display:flex; gap:20px; align-items:center; flex-wrap:wrap;}
.utility-left a{text-decoration:none; color:inherit; display:inline-flex; align-items:center; gap:6px;}
.utility-left a:hover{color:#fff;}
.utility-right{display:flex; align-items:center; gap:16px;}
.lang-select{background:transparent; border:1px solid rgba(255,255,255,0.3); color:rgba(255,255,255,0.9); font-size:0.76rem; padding:5px 10px; border-radius:3px; font-family:'Inter',sans-serif;}
.lang-select option{color:#1E2733;}
.util-social{display:flex; gap:10px;}
.util-social a{color:rgba(255,255,255,0.8); display:flex;}
.util-social a:hover{color:#fff;}
@media(max-width:760px){ .utility-left{display:none;} }

/* ===== Nav ===== */
nav{position:sticky; top:0; z-index:59; display:flex; align-items:center; justify-content:space-between; padding:12px 6vw; background:rgba(255,255,255,0.97); backdrop-filter:blur(8px); border-bottom:1px solid var(--border);}
.brand{font-family:'Playfair Display',serif; font-weight:700; font-size:1.25rem; display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--primary);}
.brand .mark{width:42px; height:42px; border-radius:50%; object-fit:cover; flex-shrink:0;}
.brand span{color:var(--primary-light);}
nav .links{display:flex; gap:22px; font-size:0.86rem; font-weight:500;}
nav .links > a, nav .links > .nav-drop > a{text-decoration:none; opacity:0.78; transition:opacity .2s; color:var(--text); display:inline-flex; align-items:center; gap:4px;}
nav .links > a:hover, nav .links > a.active, nav .links > .nav-drop:hover > a{opacity:1; color:var(--primary-light);}
.nav-drop{position:relative;}
.nav-drop .caret{font-size:0.6rem; opacity:0.6;}
.nav-drop .dropdown{position:absolute; top:100%; left:0; margin-top:14px; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:0 20px 40px -20px rgba(11,61,99,0.35); min-width:210px; padding:8px; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .16s ease, transform .16s ease, visibility .16s;}
.nav-drop:hover .dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.nav-drop .dropdown a{display:block; padding:10px 12px; border-radius:5px; font-size:0.85rem; color:var(--text); text-decoration:none; opacity:1;}
.nav-drop .dropdown a:hover{background:var(--primary-pale); color:var(--primary-light);}
.nav-cta{background:var(--primary-light); color:#fff; padding:10px 18px; border-radius:4px; font-size:0.8rem; font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:8px; transition:background .18s ease;}
.nav-cta:hover{background:var(--primary);}
.nav-right{display:flex; align-items:center; gap:18px;}
.hamburger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.hamburger span{width:24px; height:2px; background:var(--primary);}
@media(max-width:960px){
  nav .links{display:none;}
  .hamburger{display:flex;}
}
.mobile-menu{display:none; flex-direction:column; background:#fff; border-bottom:1px solid var(--border); padding:10px 6vw 20px; position:sticky; top:65px; z-index:58; max-height:80vh; overflow-y:auto;}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:12px 0; text-decoration:none; color:var(--text); border-bottom:1px solid var(--border); font-weight:500;}
.mobile-menu a.sub{padding-left:16px; font-weight:400; font-size:0.92rem; color:var(--muted); border-bottom:none;}
.mobile-menu .group-label{padding:12px 0 2px; font-family:'Space Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--primary-light); border-bottom:1px solid var(--border);}
.mobile-menu a:last-child{border-bottom:none;}

/* ===== Buttons ===== */
.btn-primary{background:var(--primary-light); color:#fff; text-decoration:none; padding:15px 26px; font-weight:600; font-size:0.9rem; border-radius:4px; display:inline-flex; align-items:center; gap:10px; transition:transform .18s ease, background .18s ease; border:none; cursor:pointer;}
.btn-primary:hover{background:var(--primary); transform:translateY(-1px);}
.btn-gold{background:var(--primary); color:#fff; text-decoration:none; padding:15px 24px; font-weight:700; font-size:0.9rem; border-radius:4px; display:inline-flex; align-items:center; gap:8px;}
.btn-gold:hover{background:var(--primary-dark);}
.btn-ghost{border:1.5px solid var(--primary-light); text-decoration:none; padding:14px 24px; font-weight:600; font-size:0.9rem; border-radius:4px; color:var(--primary-light); display:inline-flex; align-items:center; gap:8px; background:transparent; cursor:pointer; transition:background .18s ease, color .18s ease;}
.btn-ghost:hover{background:var(--primary-light); color:#fff;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}

/* ===== Page hero (non-home pages) ===== */
.page-hero{position:relative; z-index:1; background:var(--primary-dark); padding:64px 6vw 56px; text-align:center;}
.page-hero .eyebrow{justify-content:center; color:#9FD0F0;}
.page-hero h1{color:#fff; font-size:clamp(2rem,4vw,3rem); max-width:24ch; margin:0 auto;}
.page-hero p{color:rgba(255,255,255,0.78); max-width:60ch; margin:18px auto 0; line-height:1.6;}
.breadcrumb{font-family:'Space Mono',monospace; font-size:0.72rem; color:rgba(255,255,255,0.5); margin-top:20px;}
.breadcrumb a{color:rgba(255,255,255,0.7); text-decoration:none;}
.breadcrumb a:hover{color:#fff;}

/* ===== Sections ===== */
section{position:relative; z-index:1; max-width:1320px; margin:0 auto; padding:9vh 6vw;}
.section-head{max-width:660px; margin:0 auto 52px; text-align:center;}
.section-head.left{text-align:left; margin:0 0 48px;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:'Space Mono',monospace; font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--primary-light); margin-bottom:20px;}

.section-head h2{font-size:clamp(1.9rem,3vw,2.5rem); letter-spacing:-0.01em; color:var(--primary);}
.section-head p{margin-top:14px; font-size:1.02rem; line-height:1.6; color:var(--muted);}

/* ===== Service / content cards ===== */
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:900px){.services-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.services-grid{grid-template-columns:1fr;}}
.scard{background:#fff; border:1px solid var(--border); border-radius:8px; padding:30px 26px; display:flex; flex-direction:column; gap:14px; transition:transform .2s ease, box-shadow .2s ease;}
.scard:hover{transform:translateY(-4px); box-shadow:0 20px 40px -24px rgba(11,61,99,0.28);}
.scard .icon{width:46px; height:46px; border-radius:8px; background:var(--primary); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.3rem;}
.scard h3{font-size:1.12rem; color:var(--primary);}
.scard p{font-size:0.92rem; line-height:1.55; color:var(--muted); margin:0;}
.scard .learn{font-size:0.8rem; font-weight:700; color:var(--primary-light); text-decoration:none; margin-top:auto;}

/* ===== Hajj/dark band ===== */
.hajj-band{background:var(--primary); border-radius:10px; padding:64px 6vw; color:#fff; position:relative; overflow:hidden;}
.hajj-band::before{content:""; position:absolute; top:-60px; right:-60px; width:260px; height:260px; border:1px solid rgba(255,255,255,0.18); border-radius:50%;}
.hajj-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; position:relative;}
@media(max-width:860px){.hajj-grid{grid-template-columns:1fr;}}
.hajj-band .eyebrow{color:#9FD0F0;}
.hajj-band h2, .hajj-band h3{color:#fff;}
.hajj-band p{color:rgba(255,255,255,0.82); line-height:1.7;}
.hajj-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px;}
.hajj-list li{display:flex; gap:12px; font-size:0.95rem; color:rgba(255,255,255,0.92);}
.hajj-list li::before{content:"✓"; color:#9FD0F0; font-weight:700; flex-shrink:0;}
.hajj-panel{background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.22); border-radius:8px; padding:30px;}
.hajj-panel .row{display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.14); font-size:0.92rem;}
.hajj-panel .row:last-child{border-bottom:none;}
.hajj-panel .row .k{opacity:0.75;}
.hajj-panel .row .v{font-family:'Space Mono',monospace; color:#9FD0F0;}

/* ===== Package cards ===== */
.pkg-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media(max-width:900px){.pkg-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.pkg-grid{grid-template-columns:1fr;}}
.pkg-card{background:#fff; border:1px solid var(--border); border-radius:8px; overflow:hidden; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease;}
.pkg-card:hover{transform:translateY(-4px); box-shadow:0 24px 44px -26px rgba(11,61,99,0.3);}
.pkg-img{height:150px; background:linear-gradient(135deg, var(--primary), var(--primary-light)); display:flex; align-items:center; justify-content:center; font-size:2.4rem;}
.pkg-body{padding:22px 22px 26px; display:flex; flex-direction:column; gap:10px; flex:1;}
.pkg-body h3{font-size:1.08rem; color:var(--primary);}
.pkg-body .meta{font-family:'Space Mono',monospace; font-size:0.72rem; color:var(--primary-light); text-transform:uppercase; letter-spacing:0.04em;}
.pkg-body p{font-size:0.9rem; color:var(--muted); line-height:1.55; margin:0;}
.pkg-body .pkg-cta{margin-top:auto; font-size:0.82rem; font-weight:700; color:var(--primary-light); text-decoration:none;}

/* ===== Steps ===== */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; counter-reset:step;}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.steps{grid-template-columns:1fr;}}
.step{position:relative; padding-top:44px;}
.step::before{counter-increment:step; content:counter(step,decimal-leading-zero); font-family:'Space Mono',monospace; font-size:0.85rem; color:var(--primary-light); position:absolute; top:0; left:0;}
.step h3{font-size:1.02rem; margin-bottom:8px; color:var(--primary);}
.step p{font-size:0.88rem; line-height:1.5; color:var(--muted); margin:0;}

/* ===== Why choose ===== */
.why-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
@media(max-width:800px){.why-grid{grid-template-columns:1fr;}}
.why-item{display:flex; gap:16px; padding:24px 0; border-bottom:1px solid var(--border);}
.why-item .num{font-family:'Playfair Display',serif; font-size:1.4rem; color:var(--primary-light); flex-shrink:0;}
.why-item h3{font-size:1.02rem; margin-bottom:6px; color:var(--primary);}
.why-item p{font-size:0.9rem; line-height:1.55; color:var(--muted); margin:0;}

/* ===== Stats ===== */
.stats-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:36px 6vw;}
@media(max-width:700px){.stats-strip{grid-template-columns:1fr 1fr;}}
.stat-item{text-align:center;}
.stat-item .num{font-family:'Playfair Display',serif; font-size:2rem; color:var(--primary);}
.stat-item .label{font-family:'Space Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--primary-light); margin-top:6px;}

/* ===== Destinations ===== */
.region-block{margin-bottom:46px;}
.region-block h3{font-size:1.05rem; color:var(--primary); margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:10px;}
.dest-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
@media(max-width:900px){.dest-grid{grid-template-columns:repeat(2,1fr);}}
.dest-card{background:#fff; border:1px solid var(--border); border-radius:8px; overflow:hidden; text-decoration:none; color:var(--text); display:block; transition:transform .2s ease, box-shadow .2s ease;}
.dest-card:hover{transform:translateY(-4px); box-shadow:0 20px 40px -24px rgba(11,61,99,0.3);}
.dest-img{height:110px; background:linear-gradient(135deg, var(--primary), var(--primary-light)); display:flex; align-items:center; justify-content:center; font-size:2rem;}
.dest-body{padding:16px 16px 20px;}
.dest-body h3{font-size:0.98rem; color:var(--primary); margin-bottom:4px;}
.dest-body p{font-size:0.8rem; color:var(--primary-light); margin:0 0 10px; font-weight:600;}
.dest-body .dest-cta{font-size:0.76rem; font-weight:700; color:var(--primary);}

/* ===== Fees table ===== */
.fees-table-wrap{overflow-x:auto; border:1px solid var(--border); border-radius:8px; background:#fff;}
.fees-table{width:100%; border-collapse:collapse; min-width:760px;}
.fees-table thead th{text-align:left; padding:16px 20px; background:var(--primary-dark); color:#fff; font-family:'Space Mono',monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:400;}
.fees-table tbody td{padding:18px 20px; border-bottom:1px solid var(--border); font-size:0.92rem; color:var(--text);}
.fees-table tbody tr:last-child td{border-bottom:none;}
.fees-table tbody tr:hover{background:var(--surface);}
.fees-table td:first-child{font-weight:600; color:var(--primary);}
.fees-table td.fee-official{font-family:'Space Mono',monospace; color:var(--muted);}
.fees-table td.fee-service{font-family:'Space Mono',monospace; color:var(--primary-light); font-weight:700;}
.fees-table td.fee-total{font-family:'Space Mono',monospace; color:var(--primary); font-weight:700;}
.fees-note{font-size:0.82rem; line-height:1.6; color:var(--muted); margin-top:18px; max-width:820px;}

/* ===== Trades / recruitment ===== */
.trades-wrap{margin-bottom:60px;}
.trades-title{font-size:1.2rem; color:var(--primary); margin-bottom:22px;}
.trades-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media(max-width:900px){.trades-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.trades-grid{grid-template-columns:1fr;}}
.trade-cat{background:#fff; border:1px solid var(--border); border-radius:8px; padding:22px 24px;}
.trade-cat h4{color:var(--primary-light); margin-bottom:12px; font-family:'Space Mono',monospace; text-transform:uppercase; letter-spacing:0.04em; font-size:0.78rem;}
.trade-cat ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px;}
.trade-cat li{font-size:0.88rem; color:var(--text); padding-left:14px; position:relative;}
.trade-cat li::before{content:"✓"; position:absolute; left:0; color:var(--primary-light);}

/* ===== Recruitment country cards ===== */
.country-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:900px){.country-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.country-grid{grid-template-columns:1fr;}}
.country-card{background:#fff; border:1px solid var(--border); border-radius:8px; padding:26px; display:flex; flex-direction:column; gap:12px; transition:transform .2s ease, box-shadow .2s ease;}
.country-card:hover{transform:translateY(-4px); box-shadow:0 24px 44px -26px rgba(11,61,99,0.3);}
.country-card h3{font-size:1.05rem; color:var(--primary); display:flex; align-items:center; gap:10px;}
.country-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; flex:1;}
.country-card li{font-size:0.86rem; color:var(--muted); padding-left:14px; position:relative;}
.country-card li::before{content:"✓"; position:absolute; left:0; color:var(--primary-light);}
.country-card .cc-cta{margin-top:8px; font-size:0.8rem; font-weight:700; color:var(--primary-light); text-decoration:none;}

/* ===== Pathway cards (employer / candidate) ===== */
.path-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media(max-width:800px){.path-grid{grid-template-columns:1fr;}}
.path-card{border-radius:10px; padding:36px; display:flex; flex-direction:column; gap:16px; transition:transform .2s ease, box-shadow .2s ease;}
.path-card:hover{transform:translateY(-4px); box-shadow:0 24px 44px -26px rgba(11,61,99,0.3);}
.path-card.employer{background:var(--primary); color:#fff;}
.path-card.candidate{background:var(--surface); border:1px solid var(--border); color:var(--text);}
.path-card.employer h3, .path-card.employer p{color:#fff;}
.path-card.candidate h3{color:var(--primary);}
.path-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.path-card.employer ul li{color:rgba(255,255,255,0.9);}
.path-card.candidate ul li{color:var(--muted);}
.path-card li{font-size:0.92rem; display:flex; gap:10px;}
.path-card li::before{content:"✓"; font-weight:700; flex-shrink:0; color:var(--primary-light);}
.path-card.employer li::before{color:#9FD0F0;}

/* ===== Forms ===== */
.form-wrap{background:#fff; border:1px solid var(--border); border-radius:10px; padding:36px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:18px;}
@media(max-width:640px){.form-row{grid-template-columns:1fr;}}
.form-group{display:flex; flex-direction:column; gap:6px; margin-bottom:18px;}
.form-group label{font-family:'Space Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--primary-light);}
.form-group input, .form-group select, .form-group textarea{border:1px solid var(--border); border-radius:5px; padding:12px 14px; font-family:'Inter',sans-serif; font-size:0.94rem; color:var(--text); background:var(--surface);}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{outline:2px solid var(--primary-light); outline-offset:1px;}
.form-group.consent{flex-direction:row; align-items:flex-start; gap:10px;}
.form-group.consent input{width:auto; margin-top:3px;}
.form-group.consent label{font-family:'Inter',sans-serif; text-transform:none; letter-spacing:0; font-size:0.85rem; color:var(--muted);}
.form-msg{margin-top:14px; font-size:0.88rem; font-weight:600;}
.conditional-fields{display:none; border-top:1px dashed var(--border); padding-top:18px; margin-top:4px;}
.conditional-fields.active{display:block;}

/* ===== FAQ accordion ===== */
.faq-list{display:flex; flex-direction:column; gap:12px; max-width:900px; margin:0 auto;}
.faq-item{background:#fff; border:1px solid var(--border); border-radius:8px; overflow:hidden;}
.faq-q{width:100%; text-align:left; background:none; border:none; padding:20px 24px; font-family:'Inter',sans-serif; font-weight:600; font-size:0.96rem; color:var(--primary); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq-q .plus{font-size:1.2rem; color:var(--primary-light); transition:transform .2s ease; flex-shrink:0;}
.faq-item.open .faq-q .plus{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .25s ease;}
.faq-item.open .faq-a{max-height:400px;}
.faq-a p{padding:0 24px 20px; margin:0; font-size:0.9rem; line-height:1.6; color:var(--muted);}

/* ===== Testimonial / trust ===== */
.trust-note{background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:30px 34px; font-size:0.92rem; line-height:1.7; color:var(--muted); max-width:820px; margin:0 auto;}

/* ===== CTA band ===== */
.cta-band{text-align:center; padding:9vh 6vw;}
.cta-band h2{font-size:clamp(1.9rem,4vw,2.8rem); color:var(--primary); max-width:20ch; margin:0 auto 14px;}
.cta-band p{max-width:52ch; margin:0 auto 30px; color:var(--muted);}
.cta-band .hero-ctas{justify-content:center;}

/* ===== Footer ===== */
footer{position:relative; z-index:1; background:var(--primary-dark); color:rgba(255,255,255,0.8); padding:60px 6vw 30px;}
.foot-grid{max-width:1320px; margin:0 auto; display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.14);}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr;}}
footer h3{color:#fff; font-size:1.05rem; margin-bottom:16px;}
footer .brand{color:#fff; margin-bottom:14px;}
footer .brand span{color:#9FD0F0;}
footer p, footer li{font-size:0.9rem; line-height:1.8; color:rgba(255,255,255,0.7);}
footer ul{list-style:none; padding:0; margin:0;}
footer a{text-decoration:none;}
footer a:hover{color:#fff;}
.whatsapp-link{display:inline-flex; align-items:center; gap:8px; color:rgba(255,255,255,0.7);}
.whatsapp-link:hover{color:#fff;}
.social-icons{display:flex; gap:10px; margin-top:4px;}
.social-icons a{width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; transition:background .2s ease;}
.social-icons a:hover{background:var(--primary-light);}
.social-icons svg{fill:#fff;}
.foot-legal{max-width:1320px; margin:22px auto 0; font-size:0.78rem; line-height:1.7; color:rgba(255,255,255,0.55);}
.foot-bottom{max-width:1320px; margin:0 auto; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-family:'Space Mono',monospace; font-size:0.7rem; letter-spacing:0.03em; color:rgba(255,255,255,0.45);}

.whatsapp-float{position:fixed; bottom:26px; right:26px; z-index:60; width:58px; height:58px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px -8px rgba(37,211,102,0.6); text-decoration:none; transition:transform .2s ease;}
.whatsapp-float:hover{transform:scale(1.08);}

/* ===== Home-only hero ===== */
header.hero{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; text-align:center; gap:0; padding:7vh 6vw 5vh; max-width:860px; margin:0 auto;}
.hero h1{font-size:clamp(2.2rem,4.6vw,3.4rem); line-height:1.08; letter-spacing:-0.02em; color:var(--primary);}
.hero h1 em{font-style:normal; color:var(--primary-light);}
.hero p.lede{font-size:1.05rem; line-height:1.65; max-width:56ch; margin:20px auto 28px; color:var(--muted);}
.hero .eyebrow{justify-content:center;}

.tab-widget-wrap{position:relative; z-index:2; max-width:1100px; margin:-38px auto 0; padding:0 6vw;}
.tab-widget{background:#fff; border-radius:10px; box-shadow:0 30px 60px -24px rgba(11,61,99,0.28); border:1px solid var(--border); overflow:hidden;}
.tab-row{display:flex; background:var(--primary-dark); overflow-x:auto;}
.tab-btn{flex:1; min-width:120px; border:none; background:transparent; color:rgba(255,255,255,0.6); padding:14px 16px; font-family:'Inter',sans-serif; font-size:0.85rem; font-weight:600; cursor:pointer; transition:background .18s ease, color .18s ease; white-space:nowrap;}
.tab-btn:hover{color:rgba(255,255,255,0.9);}
.tab-btn.active{background:var(--primary-light); color:#fff;}
.tab-body{display:none; align-items:center; gap:20px; padding:22px 26px; flex-wrap:wrap;}
.tab-body.active{display:flex;}
.tab-field{flex:1; min-width:160px; display:flex; flex-direction:column; gap:6px;}
.tab-field label{font-family:'Space Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--primary-light);}
.tab-value{font-weight:600; color:var(--primary); font-size:0.95rem;}
.tab-field input, .tab-field select{border:1px solid var(--border); border-radius:5px; padding:10px 11px; font-family:'Inter',sans-serif; font-size:0.9rem; color:var(--text); width:100%;}
.tab-cta{white-space:nowrap; padding:13px 24px;}
.tab-disclaimer{width:100%; font-size:0.74rem; color:var(--muted); margin-top:-6px;}
@media(max-width:700px){ .tab-widget-wrap{margin-top:20px;} .tab-body{flex-direction:column; align-items:stretch;} .tab-cta{justify-content:center;} }

.trust-strip{position:relative; z-index:1; border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--surface);}
.trust-inner{max-width:1320px; margin:0 auto; padding:26px 6vw; display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px;}
.trust-item{display:flex; align-items:center; gap:10px; font-size:0.88rem; font-weight:500; color:var(--primary);}
.trust-item .dot{width:6px; height:6px; border-radius:50%; background:var(--primary-light);}

/* ---- Testimonials ------------------------------------------------- */
.testimonial-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media(max-width:900px){.testimonial-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.testimonial-grid{grid-template-columns:1fr;}}
.testimonial-card{background:#fff; border:1px solid var(--border); border-radius:8px; padding:26px; display:flex; flex-direction:column; gap:14px;}
.testimonial-stars{color:#E8A33D; font-size:0.95rem; letter-spacing:2px;}
.testimonial-quote{font-size:0.94rem; line-height:1.6; color:var(--text); margin:0; flex:1;}
.testimonial-author{display:flex; flex-direction:column; gap:2px;}
.testimonial-author .name{font-weight:600; color:var(--primary); font-size:0.9rem;}
.testimonial-author .meta{font-family:'Space Mono',monospace; font-size:0.7rem; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em;}

/* ---- Interactive package / rental / insurance calculator ---------- */
.calc-wrap{background:#fff; border:1px solid var(--border); border-radius:10px; padding:32px; max-width:900px; margin:0 auto;}
.calc-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
@media(max-width:640px){.calc-grid{grid-template-columns:1fr;}}
.calc-field{display:flex; flex-direction:column; gap:6px;}
.calc-field label{font-family:'Space Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--primary-light);}
.calc-field select, .calc-field input{border:1px solid var(--border); border-radius:5px; padding:12px 14px; font-family:'Inter',sans-serif; font-size:0.94rem; color:var(--text); background:var(--surface);}
.calc-result{margin-top:24px; padding:22px 24px; background:var(--primary-pale); border-radius:8px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;}
.calc-result .amount{font-family:'Playfair Display',serif; font-size:2rem; font-weight:600; color:var(--primary);}
.calc-result .amount span{font-size:0.95rem; font-weight:500; color:var(--muted); display:block; font-family:'Inter',sans-serif;}
.calc-note{font-size:0.78rem; color:var(--muted); margin-top:14px; line-height:1.6;}

/* ---- Visa region detail cards --------------------------------------- */
.dest-card{cursor:pointer; text-decoration:none; color:inherit; display:block; transition:box-shadow .15s ease, transform .15s ease;}
.dest-card:hover{box-shadow:0 10px 26px -14px rgba(11,61,99,0.3); transform:translateY(-2px);}
.visa-region-detail{background:#fff; border:1px solid var(--border); border-radius:10px; padding:32px; margin-bottom:24px; scroll-margin-top:90px;}
.visa-region-detail h3{font-size:1.3rem; margin-bottom:6px;}
.visa-region-detail .countries-covered{font-family:'Space Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--primary-light); margin-bottom:18px;}
.visa-country-block{border-top:1px solid var(--border); padding-top:18px; margin-top:18px;}
.visa-country-block:first-of-type{border-top:none; padding-top:0; margin-top:0;}
.visa-country-block h4{font-size:1rem; color:var(--primary); margin-bottom:10px;}
.visa-fact-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-bottom:14px;}
.visa-fact{background:var(--surface); border-radius:6px; padding:10px 14px;}
.visa-fact .lbl{font-family:'Space Mono',monospace; font-size:0.65rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted); display:block; margin-bottom:3px;}
.visa-fact .val{font-size:0.9rem; font-weight:600; color:var(--primary);}
.visa-country-block ul{margin:10px 0 0; padding-left:18px; font-size:0.86rem; color:var(--text); line-height:1.7;}
.visa-source-note{font-size:0.76rem; color:var(--muted); margin-top:10px; line-height:1.6;}

/* ---- Airport autocomplete ------------------------------------------- */
.ap-list{position:absolute; top:100%; left:0; right:0; min-width:280px; z-index:50; background:#fff; border:1px solid var(--border); border-radius:6px; box-shadow:0 14px 30px -12px rgba(11,61,99,0.35); margin:4px 0 0; padding:4px 0; list-style:none; max-height:320px; overflow-y:auto;}
.ap-item{display:grid; grid-template-columns:1fr auto; column-gap:12px; padding:9px 12px; cursor:pointer; align-items:center;}
.ap-item[aria-selected="true"], .ap-item:hover{background:var(--primary-pale);}
.ap-main{font-size:0.88rem; font-weight:600; color:var(--primary);}
.ap-sub{grid-column:1; font-size:0.78rem; color:var(--muted);}
.ap-code{grid-column:2; grid-row:1 / span 2; font-family:'Space Mono',monospace; font-size:0.8rem; font-weight:700; color:var(--primary-light);}
.ap-empty{padding:10px 12px; font-size:0.84rem; color:var(--muted);}
.swap-btn{align-self:flex-end; flex:0 0 auto; width:38px; height:38px; border:1px solid var(--border); border-radius:50%; background:#fff; color:var(--primary-light); font-size:1.05rem; cursor:pointer; margin-bottom:1px;}
.swap-btn:hover{background:var(--primary-pale);}
.swap-btn:focus-visible, .tab-field input:focus-visible, .tab-field select:focus-visible{outline:2px solid var(--primary-light); outline-offset:2px;}

/* ---- Visa check wizard ----------------------------------------------- */
.vw-grid{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:24px; align-items:start; max-width:1100px; margin:0 auto;}
@media(max-width:900px){.vw-grid{grid-template-columns:1fr;}}
.vw-card{background:#fff; border:1px solid var(--border); border-radius:10px; padding:28px;}
.vw-progress{height:6px; background:var(--surface); border-radius:3px; overflow:hidden; margin-bottom:14px;}
.vw-progress i{display:block; height:100%; background:var(--primary-light); transition:width .25s ease;}
.vw-stepno{font-family:'Space Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--primary-light); margin:0 0 6px;}
.vw-card h3, .vw-done h3{font-size:1.35rem; margin-bottom:18px; outline:none;}
.vw-field{margin-bottom:16px;}
.vw-field label, .vw-fs legend{display:block; font-size:0.84rem; font-weight:600; color:var(--primary); margin-bottom:6px;}
.vw-field input, .vw-field select, .vw-field textarea{width:100%; border:1px solid var(--border); border-radius:6px; padding:12px 13px; font-family:'Inter',sans-serif; font-size:0.95rem; color:var(--text); background:#fff;}
.vw-field input[aria-invalid="true"], .vw-field select[aria-invalid="true"]{border-color:#B3261E;}
.vw-field input:focus-visible, .vw-field select:focus-visible, .vw-field textarea:focus-visible, .vw-card button:focus-visible, .vw-radio input:focus-visible + span{outline:2px solid var(--primary-light); outline-offset:2px;}
.vw-err{color:#B3261E; font-size:0.8rem; font-weight:600; min-height:1em; margin-top:4px;}
.vw-hint{font-size:0.78rem; color:var(--muted); margin-top:5px; line-height:1.5;}
.vw-fs{border:none; padding:0; margin:0 0 14px;}
.vw-radio{display:flex; gap:12px; align-items:flex-start; border:1px solid var(--border); border-radius:8px; padding:12px 14px; margin-bottom:8px; cursor:pointer;}
.vw-radio:has(input:checked){border-color:var(--primary-light); background:var(--primary-pale);}
.vw-radio small{display:block; color:var(--muted); font-size:0.78rem; margin-top:2px;}
.vw-check{display:flex; gap:10px; align-items:flex-start; font-size:0.88rem; margin:9px 0; line-height:1.45;}
.vw-check input{margin-top:3px;}
.vw-actions{display:flex; justify-content:space-between; align-items:center; margin-top:22px; gap:12px;}
.vw-back{background:#fff; border:1px solid var(--border); color:var(--primary); border-radius:5px; padding:11px 18px; font-weight:600; font-size:0.86rem; cursor:pointer;}
.vw-status{color:#B3261E; font-size:0.86rem; font-weight:600; margin-top:12px; line-height:1.5;}
.vw-trap{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
.vw-panel{background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:24px; position:sticky; top:90px;}
@media(max-width:900px){.vw-panel{position:static;}}
.vw-panel h3{font-size:1.15rem; margin-bottom:10px;}
.vw-panel h4{font-size:0.86rem; color:var(--primary); margin:16px 0 6px;}
.vw-panel p, .vw-panel li{font-size:0.86rem; line-height:1.6; color:var(--text);}
.vw-panel ul{margin:0; padding-left:18px;}
.vw-facts{display:grid; grid-template-columns:auto 1fr; gap:6px 14px; margin:0 0 12px; font-size:0.86rem;}
.vw-facts dt{color:var(--muted);} .vw-facts dd{margin:0; font-weight:600; color:var(--primary);}
.vw-note{background:#fff; border-left:3px solid var(--primary-light); padding:10px 12px; border-radius:0 6px 6px 0;}
.vw-warn{font-size:0.78rem !important; color:var(--muted) !important; margin-top:16px;}
.vw-src{font-size:0.76rem !important; color:var(--muted) !important;}
.vw-muted{color:var(--muted);}
.vw-review{background:var(--surface); border-radius:8px; padding:14px 16px; margin-bottom:18px;}
.vw-review h3{font-size:1rem !important; margin-bottom:8px !important;}
.vw-row{display:grid; grid-template-columns:140px 1fr auto; gap:10px; font-size:0.86rem; padding:6px 0; border-bottom:1px dashed var(--border); align-items:baseline;}
.vw-row:last-child{border-bottom:none;}
.vw-row span:first-child{color:var(--muted);}
.vw-edit{background:none; border:none; color:var(--primary-light); font-weight:600; cursor:pointer; font-size:0.8rem;}
.vw-done{max-width:640px; margin:0 auto; background:#fff; border:1px solid var(--border); border-radius:10px; padding:32px; text-align:center;}
.vw-tick{width:54px; height:54px; border-radius:50%; background:#E8F7EE; color:#1E7E42; font-size:1.8rem; display:flex; align-items:center; justify-content:center; margin:0 auto 14px;}
.vw-ref{font-family:'Space Mono',monospace; font-size:1.3rem; font-weight:700; color:var(--primary); background:var(--primary-pale); border-radius:8px; padding:12px 16px; margin:6px auto 16px; display:inline-block;}
.vw-next{text-align:left; background:var(--surface); border-radius:8px; padding:16px 20px; margin:18px 0;}
.vw-next h4{margin:0 0 8px; font-size:0.95rem;} .vw-next li{font-size:0.88rem; line-height:1.6; margin-bottom:4px;}
.vw-sum{text-align:left; margin-bottom:18px;} .vw-sum .vw-row{grid-template-columns:140px 1fr;}
@media print{nav, header, footer, .whatsapp-float, .utility-bar, .vw-actions{display:none !important;} .vw-done{border:none;}}

/* ---- Homepage: quick routes, visa teaser ---------------------------- */
.qr-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; max-width:1100px; margin:0 auto;}
@media(max-width:900px){.qr-grid{grid-template-columns:repeat(2,1fr);}}
.qr-card{background:#fff; border:1px solid var(--border); border-radius:8px; padding:18px; text-align:left; cursor:pointer; display:flex; flex-direction:column; gap:4px; font-family:'Inter',sans-serif; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
.qr-card:hover{transform:translateY(-3px); box-shadow:0 18px 36px -22px rgba(11,61,99,0.35); border-color:var(--primary-light);}
.qr-card:focus-visible{outline:2px solid var(--primary-light); outline-offset:2px;}
.qr-from{font-family:'Space Mono',monospace; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted);}
.qr-card strong{font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--primary);}
.qr-go{font-size:0.78rem; font-weight:600; color:var(--primary-light);}
.visa-band{max-width:1100px; margin:0 auto; background:var(--primary); color:#fff; border-radius:10px; padding:32px 36px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.visa-band h2{color:#fff; font-size:1.5rem; margin-bottom:8px;}
.visa-band p{color:#D6E6F3; max-width:60ch; margin:0; font-size:0.95rem; line-height:1.6;}

/* ---- Accessibility basics ------------------------------------------- */
.skip-link{position:absolute; left:-9999px; top:8px; z-index:1000; background:var(--primary); color:#fff; padding:10px 16px; border-radius:6px; font-weight:600; text-decoration:none;}
.skip-link:focus{left:12px;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible{outline:2px solid var(--primary-light); outline-offset:2px;}
#main:focus{outline:none;}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}}
