/*
Theme Name: Royal Crest — UK Visa Consultancy
Theme URI: https://ukvisapakistan.com
Author: UK Visa Pakistan
Author URI: https://ukvisapakistan.com
Description: A bespoke Victorian-British theme for UK visa consultancies. Built in British Racing Green, Navy, Maroon, Silver and Gold, with a custom Visa Category post type, requirement and fee ledgers, and a royal-seal icon system. Crafted for ukvisapakistan.com.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: royal-crest
Tags: custom-colors, custom-menu, custom-logo, featured-images, threaded-comments, translation-ready
*/

/* ==========================================================================
   0. TOKENS
   ========================================================================== */
:root{
  --c-green: #0B3D2E;
  --c-green-light: #1D5C43;
  --c-green-pale: #E4ECE6;
  --c-navy: #0B1F3A;
  --c-navy-light: #17335A;
  --c-maroon: #6B0E1A;
  --c-maroon-light: #8C1A26;
  --c-gold: #AD8A34;
  --c-gold-bright: #D8B34A;
  --c-gold-pale: #F1E6C8;
  --c-silver: #C9CDD3;
  --c-silver-dark: #8B9098;
  --c-parchment: #F7F2E7;
  --c-parchment-dark: #EEE3CB;
  --c-ink: #1E1A13;
  --c-ink-soft: #4A4438;

  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-body: 'EB Garamond', 'Georgia', serif;
  --font-label: 'Cinzel', 'Georgia', serif;

  --radius: 2px;
  --wrap: 1180px;
  --shadow-card: 0 2px 0 var(--c-gold), 0 14px 30px -18px rgba(11,31,58,0.45);
}

/* ==========================================================================
   1. RESET
   ========================================================================== */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--c-parchment);
  color:var(--c-ink);
  font-family:var(--font-body);
  font-size:18px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--c-maroon); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--c-gold); }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--c-navy);
  font-weight:600;
  line-height:1.15;
  margin:0 0 .5em;
}
h1{ font-size:clamp(2.4rem,4vw,3.6rem); }
h2{ font-size:clamp(1.9rem,3vw,2.6rem); }
h3{ font-size:1.5rem; }
p{ margin:0 0 1.1em; }
button, input, textarea, select{ font-family:var(--font-body); }
:focus-visible{ outline:3px solid var(--c-gold-bright); outline-offset:2px; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 28px; }
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }

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

/* ==========================================================================
   2. SHARED MOTIFS — labels, dividers, seals
   ========================================================================== */
.eyebrow{
  font-family:var(--font-label);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--c-maroon);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";
  width:26px; height:1px;
  background:var(--c-gold);
}
.eyebrow.on-dark{ color:var(--c-gold-bright); }

.divider-seal{
  display:flex; align-items:center; gap:16px;
  margin:14px 0 30px;
  color:var(--c-gold);
}
.divider-seal::before,.divider-seal::after{
  content:""; flex:1; height:1px;
  background:linear-gradient(90deg, transparent, var(--c-gold), transparent);
}
.divider-seal svg{ width:26px; height:26px; flex:none; }

.royal-frame{
  position:relative;
  border:1px solid var(--c-gold);
  outline:1px solid var(--c-gold);
  outline-offset:5px;
}

.btn{
  font-family:var(--font-label);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 28px;
  border:1px solid var(--c-gold);
  border-radius:var(--radius);
  transition:all .25s ease;
}
.btn-solid{ background:var(--c-maroon); color:var(--c-gold-pale); border-color:var(--c-maroon); }
.btn-solid:hover{ background:var(--c-maroon-light); color:#fff; border-color:var(--c-gold-bright); }
.btn-ghost{ color:var(--c-gold-bright); background:transparent; }
.btn-ghost:hover{ background:rgba(216,179,74,.12); color:var(--c-gold-bright); }
.btn-line{ color:var(--c-navy); border-color:var(--c-navy); }
.btn-line:hover{ background:var(--c-navy); color:var(--c-gold-bright); }

/* ==========================================================================
   3. HEADER
   ========================================================================== */
.top-bar{
  background:var(--c-navy);
  color:var(--c-silver);
  font-family:var(--font-label);
  font-size:.7rem;
  letter-spacing:.08em;
}
.top-bar .wrap{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:9px; padding-bottom:9px; flex-wrap:wrap; gap:8px;
}
.top-bar a{ color:var(--c-silver); }
.top-bar a:hover{ color:var(--c-gold-bright); }
.top-bar__contact{ display:flex; gap:22px; flex-wrap:wrap; }

.site-header{
  background:var(--c-parchment);
  border-bottom:3px solid var(--c-green);
  position:relative;
}
.site-header::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-6px; height:1px;
  background:var(--c-gold);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:20px; padding-bottom:20px; gap:24px;
}
.brand{ display:flex; align-items:center; gap:14px; }
.brand__crest{ width:46px; height:46px; flex:none; color:var(--c-green); }
.brand__crest .gold{ color:var(--c-gold); }
.custom-logo-link{ display:flex; align-items:center; flex:none; line-height:0; }
.custom-logo-link img.custom-logo{
  max-height:48px; width:auto; height:auto;
  object-fit:contain; display:block;
}
@media (max-width:720px){
  .custom-logo-link img.custom-logo{ max-height:38px; }
  .brand__crest{ width:38px; height:38px; }
}
.brand__text .site-title{
  font-family:var(--font-display); font-weight:700; font-size:1.6rem;
  color:var(--c-navy); margin:0; letter-spacing:.01em;
}
.brand__text .site-title a{ color:inherit; }
.brand__text .site-tagline{
  font-family:var(--font-label); font-size:.66rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--c-maroon); margin:2px 0 0;
}

.main-nav{ background:var(--c-green); border-top:1px solid var(--c-gold); }
.main-nav .wrap{ display:flex; align-items:center; justify-content:space-between; }
.main-nav ul{ display:flex; flex-wrap:wrap; }
.main-nav a{
  display:block; padding:16px 20px;
  font-family:var(--font-label); font-size:.78rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--c-parchment);
  border-right:1px solid rgba(255,255,255,.08);
}
.main-nav li:first-child a{ padding-left:0; }
.main-nav a:hover, .main-nav .current-menu-item > a{ color:var(--c-gold-bright); background:rgba(0,0,0,.12); }
.nav-toggle{
  display:none; background:transparent; border:1px solid var(--c-gold);
  color:var(--c-parchment); padding:10px 14px; font-family:var(--font-label);
  font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
}

/* ==========================================================================
   4. HERO
   ========================================================================== */
.hero{
  position:relative;
  background:
    radial-gradient(circle at 85% 20%, rgba(173,138,52,.18), transparent 45%),
    linear-gradient(160deg, var(--c-navy) 0%, var(--c-green) 100%);
  color:var(--c-parchment);
  padding:96px 0 84px;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:14px;
  border:1px solid rgba(216,179,74,.55);
  pointer-events:none;
}
.hero__crest{
  position:absolute; right:-40px; top:50%; transform:translateY(-50%);
  width:420px; height:420px; opacity:.08; color:var(--c-gold-bright);
}
.hero .wrap{ position:relative; max-width:760px; }
.hero h1{ color:#fff; margin-bottom:22px; }
.hero h1 em{ font-style:italic; color:var(--c-gold-bright); }
.hero p.lede{ font-size:1.18rem; color:var(--c-silver); max-width:560px; }
.hero__cta{ display:flex; gap:16px; margin-top:32px; flex-wrap:wrap; }
.hero__stats{
  display:flex; gap:0; margin-top:54px; border-top:1px solid rgba(216,179,74,.35);
  padding-top:26px; flex-wrap:wrap;
}
.hero__stats div{ padding-right:44px; }
.hero__stats strong{
  display:block; font-family:var(--font-display); font-size:2rem; color:var(--c-gold-bright);
}
.hero__stats span{ font-family:var(--font-label); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--c-silver); }

/* ==========================================================================
   5. SECTIONS — generic
   ========================================================================== */
.section{ padding:80px 0; }
.section--tight{ padding:56px 0; }
.section--parchment-dark{ background:var(--c-parchment-dark); }
.section--navy{ background:var(--c-navy); color:var(--c-silver); }
.section--navy h2{ color:#fff; }
.section__head{ max-width:640px; margin-bottom:44px; }
.section__head h2{ margin-top:10px; }
.section__foot{ margin-top:40px; text-align:center; }

/* ==========================================================================
   5b. INTRO STRIP / VIDEO / FACTS / AWARENESS
   ========================================================================== */
.intro-strip{ background:var(--c-parchment); border-bottom:1px solid var(--c-gold); }
.intro-strip__inner{ max-width:820px; text-align:center; }
.intro-strip__inner .eyebrow{ justify-content:center; }
.intro-strip__inner .lede{ font-size:1.08rem; color:var(--c-ink-soft); }

.video-embed{
  position:relative; width:100%; padding-top:56.25%; background:var(--c-navy);
  overflow:hidden;
}
.video-embed iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0;
}
.video-embed__credit{
  text-align:center; font-size:.82rem; color:var(--c-ink-soft); font-style:italic; margin-top:14px;
}

.facts-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.fact-card{
  background:#fff; border:1px solid var(--c-parchment-dark); border-top:3px solid var(--c-gold);
  padding:28px 26px;
}
.fact-card strong{
  display:block; font-family:var(--font-display); font-size:1.2rem; color:var(--c-navy); margin-bottom:10px;
}
.fact-card p{ color:var(--c-ink-soft); font-size:.94rem; margin:0; }

.checklist--dark{ max-width:820px; margin:34px auto 0; }
.checklist--dark li{ border-bottom:1px solid rgba(201,205,211,.2); color:var(--c-silver); }
.checklist--dark svg{ color:var(--c-gold-bright); }

/* ==========================================================================
   6. NEWS
   ========================================================================== */
.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.news-card{
  background:#fff; border:1px solid var(--c-parchment-dark);
  box-shadow:var(--shadow-card); display:flex; flex-direction:column;
}
.news-card__media{ aspect-ratio:16/10; overflow:hidden; background:var(--c-green-pale); }
.news-card__media img{ width:100%; height:100%; object-fit:cover; }
.news-card__body{ padding:24px 26px 28px; display:flex; flex-direction:column; flex:1; }
.news-card__date{
  font-family:var(--font-label); font-size:.66rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--c-maroon); margin-bottom:10px;
}
.news-card h3{ font-size:1.32rem; margin-bottom:12px; }
.news-card h3 a{ color:var(--c-navy); }
.news-card h3 a:hover{ color:var(--c-maroon); }
.news-card p{ color:var(--c-ink-soft); flex:1; }
.news-card .more{
  font-family:var(--font-label); font-size:.68rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--c-green); margin-top:auto;
}

/* ==========================================================================
   7. VISA CATEGORY GRID + CREST ICONS
   ========================================================================== */
.visa-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.visa-card{
  background:var(--c-parchment); border:1px solid var(--c-gold);
  padding:34px 30px; position:relative; transition:transform .25s ease, box-shadow .25s ease;
}
.visa-card:hover{ transform:translateY(-6px); box-shadow:0 18px 34px -22px rgba(11,31,58,.5); }
.visa-card__icon{
  width:58px; height:58px; margin-bottom:20px; color:var(--c-maroon);
}
.visa-card h3{ margin-bottom:10px; }
.visa-card h3 a{ color:var(--c-navy); }
.visa-card p{ color:var(--c-ink-soft); font-size:.98rem; margin-bottom:16px; }
.visa-card__meta{
  display:flex; justify-content:space-between; font-family:var(--font-label);
  font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--c-green); border-top:1px solid var(--c-parchment-dark); padding-top:14px;
}

/* ==========================================================================
   8. SINGLE VISA CATEGORY — ledger / certificate styling
   ========================================================================== */
.visa-hero{
  background:linear-gradient(160deg, var(--c-navy), var(--c-green));
  color:#fff; padding:64px 0 56px; position:relative;
}
.visa-hero .wrap{ display:flex; align-items:center; gap:28px; }
.visa-hero__icon{ width:74px; height:74px; color:var(--c-gold-bright); flex:none; }
.visa-hero h1{ color:#fff; margin-bottom:6px; }
.visa-hero .lede{ color:var(--c-silver); max-width:600px; }

.visa-layout{
  display:grid; grid-template-columns:1.7fr 1fr; gap:50px;
  padding:64px 0 90px; align-items:start;
}
.visa-content__image{ margin-bottom:36px; border:1px solid var(--c-gold); }
.visa-content__image img{ width:100%; height:auto; margin:0; aspect-ratio:16/9; object-fit:cover; }
.visa-content h2{ font-size:1.5rem; margin-top:2.2em; }
.visa-content h2:first-child{ margin-top:0; }
.checklist{ margin:18px 0 30px; }
.checklist li{
  display:flex; gap:14px; padding:11px 0; border-bottom:1px solid var(--c-parchment-dark);
}
.checklist li:last-child{ border-bottom:0; }
.checklist svg{ width:18px; height:18px; flex:none; margin-top:5px; color:var(--c-green); }

.ledger{
  background:#fff; border:1px solid var(--c-gold); position:relative; padding:8px;
}
.ledger::before{ content:""; position:absolute; inset:6px; border:1px solid var(--c-gold); pointer-events:none; }
.ledger__head{
  background:var(--c-maroon); color:var(--c-gold-pale); text-align:center;
  padding:18px 20px; font-family:var(--font-label); font-size:.78rem;
  letter-spacing:.16em; text-transform:uppercase;
}
.ledger__body{ padding:26px 26px 8px; }
.ledger__row{
  display:flex; justify-content:space-between; gap:12px; padding:14px 0;
  border-bottom:1px dashed var(--c-silver-dark);
  font-family:var(--font-label); font-size:.82rem; letter-spacing:.02em;
}
.ledger__row:last-child{ border-bottom:0; }
.ledger__row .label{ color:var(--c-ink-soft); text-transform:uppercase; font-size:.7rem; letter-spacing:.1em; }
.ledger__row .value{ color:var(--c-navy); font-weight:600; font-size:1rem; text-align:right; }
.ledger__cta{ padding:22px 26px 26px; }
.ledger__cta .btn{ width:100%; justify-content:center; }
.ledger__note{ padding:0 26px 22px; font-size:.8rem; color:var(--c-ink-soft); font-style:italic; }

/* ==========================================================================
   9. FOOTER
   ========================================================================== */
.site-footer{ background:var(--c-navy); color:var(--c-silver); border-top:4px solid var(--c-gold); }
.footer-cols{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;
  padding:64px 0 40px;
}
.footer-col h4{
  color:var(--c-gold-bright); font-family:var(--font-label); font-size:.78rem;
  letter-spacing:.14em; text-transform:uppercase; margin-bottom:20px;
}
.footer-col p, .footer-col li{ font-size:.94rem; color:var(--c-silver); margin-bottom:10px; }
.footer-col a{ color:var(--c-silver); }
.footer-col a:hover{ color:var(--c-gold-bright); }
.footer-brand{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.footer-brand svg{ width:40px; height:40px; color:var(--c-gold-bright); }
.footer-brand span{ font-family:var(--font-display); font-size:1.3rem; color:#fff; }
.footer-disclaimer{
  border-top:1px solid rgba(201,205,211,.2); padding:22px 28px;
}
.footer-disclaimer p{
  font-size:.78rem; line-height:1.6; color:var(--c-silver-dark); margin:0; max-width:var(--wrap);
}
.footer-disclaimer a{ color:var(--c-gold-bright); white-space:nowrap; }
.footer-bottom{
  background:var(--c-maroon); color:var(--c-gold-pale); text-align:center;
  padding:14px 0; font-family:var(--font-label); font-size:.68rem;
  letter-spacing:.08em; text-transform:uppercase;
}

/* ==========================================================================
   10. GENERIC PAGE / SINGLE POST
   ========================================================================== */
.page-hero{
  background:var(--c-parchment-dark); border-bottom:1px solid var(--c-gold);
  padding:56px 0; text-align:center;
}
.entry-content{ padding:64px 0; max-width:760px; margin:0 auto; }
.entry-content > *:first-child::first-letter{
  float:left; font-family:var(--font-display); font-size:4.4rem; line-height:.8;
  padding:8px 10px 0 0; color:var(--c-maroon);
}
.entry-content h2{ margin-top:1.6em; }
.entry-content blockquote{
  border-left:3px solid var(--c-gold); margin:26px 0; padding:6px 0 6px 24px;
  font-style:italic; color:var(--c-ink-soft);
}
.entry-content img{ margin:24px 0; }
.entry-meta{
  font-family:var(--font-label); font-size:.7rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--c-maroon); text-align:center; margin-bottom:8px;
}

.blog-list{ display:grid; gap:30px; max-width:800px; margin:0 auto; }
.blog-list .news-card{ flex-direction:row; }
.blog-list .news-card__media{ width:260px; flex:none; aspect-ratio:auto; }
.blog-list .news-card__body{ padding:26px 30px; }

.pagination{ display:flex; justify-content:center; gap:10px; margin-top:50px; }
.pagination a, .pagination span{
  border:1px solid var(--c-gold); padding:9px 16px; font-family:var(--font-label);
  font-size:.78rem; color:var(--c-navy);
}
.pagination .current{ background:var(--c-maroon); color:#fff; border-color:var(--c-maroon); }

.fee-box{
  border:1px solid var(--c-gold); background:#fff; padding:26px 28px; margin:30px 0;
}
.fee-box h4{
  font-family:var(--font-label); font-size:.82rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--c-maroon); margin-bottom:14px;
}
.fee-box .ledger__row{ padding:10px 0; font-size:.9rem; }

/* 404 */
.error-404{ text-align:center; padding:110px 0; }
.error-404 .eyebrow{ justify-content:center; }
.error-404 h1{ font-size:5rem; color:var(--c-maroon); }

/* ==========================================================================
   11. RESPONSIVE
   ========================================================================== */
@media (max-width: 960px){
  .visa-grid, .news-grid, .facts-grid{ grid-template-columns:repeat(2,1fr); }
  .visa-layout{ grid-template-columns:1fr; }
  .footer-cols{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 720px){
  .visa-grid, .news-grid, .footer-cols, .facts-grid{ grid-template-columns:1fr; }
  .main-nav ul{
    display:none; flex-direction:column; position:absolute; left:0; right:0; top:100%;
    background:var(--c-green); z-index:20; border-top:1px solid var(--c-gold);
  }
  .main-nav ul.is-open{ display:flex; }
  .main-nav a{ border-right:0; border-bottom:1px solid rgba(255,255,255,.08); }
  .nav-toggle{ display:block; }
  .main-nav .wrap{ position:relative; padding-top:6px; padding-bottom:6px; }
  .hero{ padding:64px 0 54px; }
  .hero__crest{ display:none; }
  .blog-list .news-card{ flex-direction:column; }
  .blog-list .news-card__media{ width:100%; aspect-ratio:16/10; }
  .visa-hero .wrap{ flex-direction:column; text-align:center; }
  .top-bar__contact{ justify-content:center; width:100%; }
}

/* v2.0 visual and lead enhancements */
.notice-box{background:var(--c-gold-pale);border-left:4px solid var(--c-gold);padding:18px 20px;margin:24px 0;box-shadow:0 8px 24px -20px rgba(11,31,58,.5)}
.steps{counter-reset:steps;margin:20px 0 32px;padding:0;list-style:none;display:grid;gap:12px}.steps li{counter-increment:steps;padding:14px 18px 14px 52px;background:#fff;border:1px solid var(--c-silver);position:relative}.steps li:before{content:counter(steps);position:absolute;left:16px;top:12px;width:25px;height:25px;border-radius:50%;background:var(--c-green);color:#fff;text-align:center;font:600 .75rem/25px var(--font-label)}
.visa-hero{background-color:var(--c-navy);background-size:cover;background-position:center;min-height:390px;display:flex;align-items:center;color:#fff}.visa-hero h1{color:#fff;max-width:780px}.visa-hero .wrap{display:flex;gap:24px;align-items:center}.visa-hero__icon{width:80px;flex:none;color:var(--c-gold-bright)}.visa-hero__icon svg{width:100%;height:auto}.visa-content__image{margin:0 0 30px;border:1px solid var(--c-gold);padding:6px;background:#fff}.visa-content__image img{width:100%;max-height:500px;object-fit:cover}
.lead-card{margin:42px 0 10px;padding:30px;background:#fff;border:1px solid var(--c-gold);box-shadow:var(--shadow-card)}.lead-card h2{margin-top:8px}.lead-form label{display:block;font-family:var(--font-label);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--c-navy);margin-bottom:14px}.lead-form input,.lead-form textarea,.lead-form select{display:block;width:100%;margin-top:7px;padding:12px 13px;border:1px solid var(--c-silver-dark);background:#fff;color:var(--c-ink);font-size:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.consent{font-family:var(--font-body)!important;text-transform:none!important;letter-spacing:0!important;font-size:.95rem!important}.consent input{display:inline-block;width:auto;margin-right:8px}.small-note{font-size:.9rem;color:var(--c-ink-soft)}
.visa-card--photo{padding:0;overflow:hidden}.visa-card__photo{height:190px;background:var(--c-navy);overflow:hidden}.visa-card__photo img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.visa-card--photo:hover img{transform:scale(1.04)}.visa-card__body{padding:24px}.fee-table{width:100%;border-collapse:collapse;margin:25px 0;background:#fff}.fee-table th,.fee-table td{padding:13px 15px;border:1px solid var(--c-silver);text-align:left}.fee-table th{background:var(--c-navy);color:#fff;font-family:var(--font-label);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.fact-card{overflow:hidden}.fact-card__media{height:150px;margin:-1px -1px 20px;overflow:hidden}.fact-card__media img{width:100%;height:100%;object-fit:cover}.fact-card strong{display:block}
@media(max-width:720px){.visa-hero .wrap{flex-direction:column;align-items:flex-start}.visa-hero{min-height:330px}.form-grid{grid-template-columns:1fr}.visa-layout{display:block}.visa-layout aside{margin-top:30px}}

/* v2.1 navigation, branding and facts polish */
.site-header .wrap{padding-top:24px;padding-bottom:24px}
.brand{gap:18px}
.brand__crest{width:64px;height:64px}
.custom-logo-link img.custom-logo{max-height:68px;max-width:110px}
.brand__text .site-title{font-size:1.92rem;line-height:1.05}
.brand__text .site-tagline{font-size:.7rem;margin-top:5px}

.main-nav ul{align-items:stretch}
.main-nav li{position:relative}
.main-nav li.menu-item-has-children > a::after{content:'⌄';display:inline-block;margin-left:8px;font-size:.78rem;transform:translateY(-1px)}
.main-nav li.menu-item-has-children:hover > .sub-menu,
.main-nav li.menu-item-has-children:focus-within > .sub-menu{display:block}
.main-nav .sub-menu{display:none;position:absolute;left:0;top:100%;min-width:285px;z-index:100;background:var(--c-green);border:1px solid var(--c-gold);box-shadow:0 14px 30px rgba(0,0,0,.22);padding:6px 0}
.main-nav .sub-menu li{width:100%}
.main-nav .sub-menu a{padding:12px 18px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);white-space:normal;line-height:1.3}
.main-nav .sub-menu a:hover{background:rgba(0,0,0,.18)}
.main-nav .sub-menu li:last-child a{border-bottom:0}

.facts-grid{grid-template-columns:repeat(3,1fr);gap:22px}
.fact-card{padding:0 22px 22px;min-height:100%;display:flex;flex-direction:column}
.fact-card__media{height:128px;margin:0 -22px 18px}
.fact-card strong{font-size:1.12rem;margin-bottom:8px}
.fact-card p{line-height:1.65}

@media(max-width:960px){
  .facts-grid{grid-template-columns:repeat(2,1fr)}
  .brand__text .site-title{font-size:1.72rem}
}
@media(max-width:720px){
  .site-header .wrap{padding-top:16px;padding-bottom:16px}
  .brand{gap:12px}
  .brand__crest{width:48px;height:48px}
  .custom-logo-link img.custom-logo{max-height:52px;max-width:84px}
  .brand__text .site-title{font-size:1.38rem}
  .brand__text .site-tagline{font-size:.58rem;letter-spacing:.12em}
  .main-nav .sub-menu{position:static;display:none;box-shadow:none;border:0;padding:0;background:rgba(0,0,0,.12)}
  .main-nav li.menu-item-has-children:hover > .sub-menu,.main-nav li.menu-item-has-children:focus-within > .sub-menu{display:block}
  .main-nav .sub-menu a{padding-left:34px}
}


/* v2.2 audit fixes */
.facts-grid{align-items:start}.fact-card{padding:18px 20px}.fact-card__media{height:128px;overflow:hidden;margin:-18px -20px 16px}.fact-card__media img{width:100%;height:100%;object-fit:cover;display:block}.hero__stats--visual div{position:relative;padding-left:18px}.stat-icon{display:block;font-family:var(--font-label);font-size:.9rem;color:var(--c-gold-bright);margin-bottom:2px}.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:start}.map-frame{border:1px solid var(--c-gold);background:#eee;min-height:480px}.map-frame iframe{width:100%;height:480px;border:0}.contact-details{margin-top:28px;padding:26px;background:#fff;border:1px solid var(--c-parchment-dark)}.resource-card{background:#fff;border:1px solid var(--c-gold);padding:26px;margin:24px 0}.social-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.social-links a{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.footer-whatsapp{color:var(--c-gold)!important}.main-nav li{position:relative}.main-nav .sub-menu{position:absolute;left:0;top:100%;min-width:270px;background:var(--c-green);border:1px solid var(--c-gold);display:none;z-index:50;box-shadow:0 12px 24px rgba(0,0,0,.18)}.main-nav li:hover>.sub-menu,.main-nav li:focus-within>.sub-menu{display:block}.main-nav .sub-menu li a{padding:11px 16px;font-size:.68rem}.main-nav .sub-menu .sub-menu{left:100%;top:0}.brand__crest{width:58px;height:58px}.custom-logo-link img.custom-logo{max-height:62px}.brand__text .site-title{font-size:1.82rem}.brand{gap:16px}@media(max-width:720px){.brand__crest{width:48px;height:48px}.custom-logo-link img.custom-logo{max-height:50px}.brand__text .site-title{font-size:1.42rem}.contact-grid{grid-template-columns:1fr}.map-frame,.map-frame iframe{min-height:340px;height:340px}.main-nav .sub-menu{position:static;box-shadow:none;display:none}.main-nav li.menu-item-has-children.is-open>.sub-menu{display:block}.hero__stats div{padding-right:22px;margin-bottom:12px}.fact-card__media{height:118px}}

.footer-credentials{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 0;border-top:1px solid rgba(201,205,211,.15);font-size:.78rem}.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:90;background:#138a45;color:#fff!important;padding:13px 17px;border-radius:999px;font-family:var(--font-label);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 25px rgba(0,0,0,.2)}.faq-list details{border:1px solid var(--c-parchment-dark);margin:0 0 12px;background:#fff}.faq-list summary{cursor:pointer;padding:18px 20px;font-family:var(--font-display);font-size:1.1rem;color:var(--c-navy)}.faq-list details p{padding:0 20px 18px;margin:0}@media(max-width:720px){.footer-credentials{display:block}.whatsapp-float{right:14px;bottom:14px}}
