/* DogAbroad.com shared design system, matched to the CatAbroad sister-site feel */
:root {
    --orange:#f97316;
    --orange-dark:#ea580c;
    --orange-deep:#c2410c;
    --amber:#f59e0b;
    --cream:#fff7ed;
    --ink:#0f172a;
    --ink-2:#1e293b;
    --muted:#64748b;
    --line:#e2e8f0;
    --soft:#f8fafc;
    --green:#10b981;
    --red:#dc2626;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,sans-serif; color:var(--ink-2); background:var(--soft); line-height:1.65; }
a { color:inherit; text-decoration:none; }
.wrap { max-width:1180px; margin:0 auto; padding:0 24px; }
.wrap-narrow { max-width:900px; margin:0 auto; padding:0 24px; }

header.site { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.96); backdrop-filter:blur(14px); box-shadow:0 1px 0 rgba(15,23,42,.08); }
.nav { display:flex; align-items:center; justify-content:space-between; min-height:88px; gap:20px; }
.brand-mark { display:inline-flex; align-items:center; gap:12px; color:var(--ink); font-weight:900; letter-spacing:0; }
.brand-mark span:first-child { width:42px; height:42px; border-radius:14px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); box-shadow:0 14px 30px rgba(249,115,22,.24); }
.brand-mark strong { font-size:24px; line-height:1; text-transform:uppercase; letter-spacing:0; }
.brand-mark strong span { color:var(--orange-dark); }
.brand-logo { display:inline-flex; align-items:center; }
.brand-logo img { width:auto; height:50px; display:block; }
.nav-links { display:flex; align-items:center; gap:22px; font-weight:800; font-size:13px; text-transform:uppercase; color:#334155; }
.nav-links a { position:relative; padding:34px 0; }
.nav-links a::after { content:""; position:absolute; left:0; right:0; bottom:25px; height:3px; border-radius:999px; background:var(--orange); opacity:0; transform:scaleX(.4); transition:.18s ease; }
.nav-links a:hover { color:var(--orange-dark); }
.nav-links a:hover::after { opacity:1; transform:scaleX(1); }
.nav-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.nav-cta { display:inline-flex; align-items:center; gap:8px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); padding:13px 17px; border-radius:999px; font-weight:900; font-size:13px; text-transform:uppercase; box-shadow:0 16px 32px rgba(249,115,22,.28); white-space:nowrap; }
.nav-cta:hover { transform:translateY(-1px); box-shadow:0 20px 38px rgba(249,115,22,.34); }
.nav-search { position:relative; display:flex; align-items:center; gap:8px; width:34px; height:38px; padding:0 11px; border:1.5px solid transparent; border-radius:999px; background:#f1f5f9; cursor:text; transition:width .32s cubic-bezier(.4,0,.2,1), background .2s ease, border-color .2s ease, box-shadow .2s ease; }
.nav-search:focus-within { width:220px; background:#fff; border-color:#fb923c; box-shadow:0 2px 12px rgba(249,115,22,.2); }
.nav-search i { flex-shrink:0; color:#94a3b8; font-size:12px; }
.nav-search input { width:0; min-width:0; opacity:0; border:0; outline:0; padding:0; background:transparent; color:#1e293b; font:inherit; font-size:12px; font-weight:800; transition:opacity .18s ease; }
.nav-search:focus-within input { width:100%; opacity:1; }
.autocomplete-wrap { position:relative; }
.autocomplete-items { position:absolute; z-index:90; top:calc(100% + 10px); left:0; right:0; min-width:280px; overflow:hidden; border:1px solid #fed7aa; border-radius:18px; background:#fff; box-shadow:0 24px 58px rgba(15,23,42,.18); }
.autocomplete-item { width:100%; display:flex; align-items:center; gap:12px; padding:12px 14px; border:0; border-bottom:1px solid #f1f5f9; background:#fff; color:var(--ink); text-align:left; font:inherit; cursor:pointer; }
.autocomplete-item:last-child { border-bottom:0; }
.autocomplete-item:hover, .autocomplete-item.is-active { background:#fff7ed; }
.autocomplete-item img { width:28px; height:21px; border-radius:4px; object-fit:cover; box-shadow:0 0 0 1px rgba(15,23,42,.08); }
.autocomplete-item .suggest-icon { width:28px; height:28px; display:grid; place-items:center; border-radius:10px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--amber)); font-size:12px; flex-shrink:0; }
.autocomplete-main { display:block; color:var(--ink); font-size:14px; font-weight:900; line-height:1.15; }
.autocomplete-sub { display:block; margin-top:3px; color:#94a3b8; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }

.page-hero { position:relative; overflow:hidden; color:#fff; background:linear-gradient(rgba(15,23,42,.86),rgba(15,23,42,.78)), url('/images/home-hero.webp') center/cover; padding:54px 0 58px; }
.page-hero::after { content:""; position:absolute; inset:auto 0 0; height:5px; background:linear-gradient(90deg,var(--orange),var(--amber),var(--orange)); }
.page-hero .wrap { position:relative; z-index:1; }
.crumb { font-size:12px; font-weight:900; color:#fed7aa; text-transform:uppercase; letter-spacing:.12em; margin-bottom:18px; }
.crumb span { color:rgba(255,255,255,.45); margin:0 7px; }
.page-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:34px; align-items:end; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; margin-bottom:14px; color:#fed7aa; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.page-hero h1 { max-width:850px; font-size:clamp(34px,5vw,58px); font-weight:900; line-height:1.02; letter-spacing:0; text-wrap:balance; }
.page-hero h1 em { color:#fdba74; font-style:normal; }
.page-hero p.lead { max-width:720px; margin-top:18px; color:#e2e8f0; font-size:18px; line-height:1.75; }
.hero-tool { display:grid; gap:6px; padding:22px; border:1px solid rgba(255,255,255,.18); border-radius:20px; background:rgba(15,23,42,.58); box-shadow:0 24px 70px rgba(0,0,0,.22); }
.hero-tool i { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; background:#fff; color:var(--orange-dark); }
.hero-tool strong { color:#fff; font-size:18px; }
.hero-tool small { color:#cbd5e1; line-height:1.45; }

main.content { padding:54px 0 78px; }
main.content .wrap, main.content .wrap-narrow { position:relative; }
main.content h2 { font-size:clamp(26px,3vw,34px); font-weight:900; color:var(--ink); letter-spacing:0; line-height:1.15; margin:42px 0 14px; }
main.content h3 { font-size:19px; font-weight:900; color:var(--ink); margin:28px 0 10px; }
main.content p { color:#475569; margin-bottom:15px; }
main.content ul, main.content ol { color:#475569; margin:0 0 18px 24px; }
main.content li { margin-bottom:7px; }
main.content a.txt { color:var(--orange-dark); font-weight:900; }
main.content a.txt:hover { text-decoration:underline; }

.country-hero { overflow:hidden; border-radius:24px; margin:-16px 0 30px; box-shadow:0 28px 70px rgba(15,23,42,.18); background:#111827; }
.country-hero img { display:block; width:100%; height:auto; }
.glance { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:24px 0 22px; }
.glance .g { background:#fff; border:1px solid rgba(226,232,240,.92); border-radius:18px; padding:18px; box-shadow:0 16px 38px rgba(15,23,42,.05); }
.glance .g span { display:block; margin-bottom:7px; color:#94a3b8; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.glance .g b { color:var(--ink); font-size:15px; font-weight:900; }

.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; }
.card { background:#fff; border:1px solid rgba(226,232,240,.94); border-radius:20px; padding:26px; box-shadow:0 16px 38px rgba(15,23,42,.05); transition:transform .18s ease, box-shadow .18s ease; }
a.card:hover { transform:translateY(-4px); box-shadow:0 24px 55px rgba(15,23,42,.1); }
.card .ico { width:52px; height:52px; border-radius:16px; display:grid; place-items:center; background:linear-gradient(135deg,#fff7ed,#fed7aa); color:var(--orange-deep); font-size:22px; margin-bottom:16px; }
.card h3 { margin:0 0 8px; font-size:18px; }
.card p { margin:0; font-size:14px; color:#64748b; }
.fact { margin:18px 0; padding:22px 24px; border:1px solid #fed7aa; border-left:6px solid var(--orange); border-radius:0 20px 20px 0; background:#fff7ed; box-shadow:0 14px 34px rgba(249,115,22,.08); }
.fact.warn { border-color:#fecaca; border-left-color:var(--red); background:#fff7f7; }
.fact.good { border-color:#bbf7d0; border-left-color:var(--green); background:#f0fdf4; }
.fact h3 { display:flex; align-items:center; gap:10px; margin:0 0 7px; color:#92400e; font-size:16px; }
.fact.warn h3 { color:#991b1b; }
.fact.good h3 { color:#065f46; }
.fact p { margin:0; font-size:15px; color:#475569; }

table.data { width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; margin:20px 0 32px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 16px 38px rgba(15,23,42,.05); font-size:14px; }
table.data th { text-align:left; padding:14px 16px; color:#fff; background:var(--ink); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
table.data td { padding:15px 16px; border-top:1px solid #e2e8f0; color:#475569; vertical-align:top; }
table.data td b { color:var(--ink); }
table.data tr:hover td { background:#fff7ed; }
.badge { display:inline-block; padding:4px 10px; border-radius:999px; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.badge.ok { background:#dcfce7; color:#166534; }
.badge.warn { background:#ffedd5; color:#9a3412; }
.badge.no { background:#fee2e2; color:#991b1b; }

.eyebrow.dark { color:var(--orange-dark); }
.section-head { margin:46px 0 20px; }
.section-head span { display:block; margin-bottom:8px; color:var(--orange-dark); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.section-head h2 { margin:0 0 10px; max-width:820px; }
.section-head p { max-width:820px; }

.airline-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.airline-card { display:flex; flex-direction:column; min-width:0; min-height:100%; padding:24px; border:1px solid rgba(226,232,240,.94); border-radius:24px; background:#fff; box-shadow:0 16px 38px rgba(15,23,42,.05); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.airline-card:hover { transform:translateY(-3px); border-color:#fed7aa; box-shadow:0 24px 55px rgba(15,23,42,.1); }
.airline-card > span { width:48px; height:48px; display:grid; place-items:center; margin-bottom:16px; border-radius:16px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); }
.airline-card h3 { margin:0 0 10px; color:var(--ink); font-size:21px; line-height:1.16; }
.airline-card p { margin:0 0 18px; color:#64748b; font-size:14px; line-height:1.62; }
.airline-card dl { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:auto 0 16px; }
.airline-card dt { color:#94a3b8; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.airline-card dd { margin:3px 0 0; color:#0f172a; font-size:13px; font-weight:900; }
.airline-card b { display:inline-flex; align-items:center; gap:8px; color:var(--orange-dark); font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.airline-page { background:#f8fafc; }
.airline-detail-hero { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:24px; align-items:stretch; margin-bottom:24px; }
.airline-detail-hero > div, .airline-detail-hero aside { padding:30px; border:1px solid #e2e8f0; border-radius:28px; background:#fff; box-shadow:0 18px 44px rgba(15,23,42,.06); }
.airline-detail-hero h2 { margin:0 0 14px; font-size:clamp(30px,4vw,48px); line-height:1.04; }
.airline-detail-hero p { margin:0; font-size:16px; line-height:1.72; }
.airline-detail-hero aside { display:flex; flex-direction:column; justify-content:center; color:#fff; background:linear-gradient(135deg,#0f172a,#1e293b 62%,#7c2d12); }
.airline-detail-hero aside span { color:#fdba74; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; overflow-wrap:anywhere; }
.airline-detail-hero aside strong { margin:10px 0; font-size:26px; line-height:1.08; }
.airline-detail-hero aside p { color:#e2e8f0; font-size:14px; }
.airline-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.airline-stats article, .airline-detail-grid article { padding:22px; border:1px solid #e2e8f0; border-radius:22px; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.05); }
.airline-stats i, .airline-detail-grid i { width:44px; height:44px; display:grid; place-items:center; margin-bottom:14px; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); }
.airline-stats span { display:block; margin-bottom:8px; color:#94a3b8; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.airline-stats b { display:block; margin-bottom:8px; color:#0f172a; font-size:20px; line-height:1.18; overflow-wrap:anywhere; }
.airline-stats b.ok { color:#166534; }
.airline-stats b.warn { color:#9a3412; }
.airline-stats b.no { color:#991b1b; }
.airline-stats p, .airline-detail-grid p { margin:0; color:#64748b; font-size:14px; line-height:1.62; }
.airline-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:26px; }
.airline-detail-grid h3 { margin:0 0 10px; font-size:19px; }

.breed-page { background:#f8fafc; }
.breed-visual-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-bottom:34px; }
.breed-card { overflow:hidden; border:1px solid #e2e8f0; border-radius:28px; background:#fff; box-shadow:0 18px 48px rgba(15,23,42,.08); }
.breed-card img { width:100%; height:270px; object-fit:cover; display:block; background:#0f172a; }
.breed-card-copy { padding:24px; }
.breed-card-kicker { display:flex; align-items:center; gap:8px; margin-bottom:9px; color:var(--orange-dark); font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.breed-card h2 { margin:0 0 10px; color:#0f172a; font-size:26px; line-height:1.08; letter-spacing:0; }
.breed-card p { margin:0; color:#475569; font-size:15px; line-height:1.66; }
.breed-card ul { display:grid; gap:8px; margin:18px 0 0; padding:0; list-style:none; }
.breed-card li { display:flex; gap:9px; margin:0; color:#334155; font-size:13px; font-weight:800; line-height:1.4; }
.breed-card li i { margin-top:2px; color:#f97316; }
.breed-route-panel { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:24px; align-items:center; margin-top:8px; padding:30px; border-radius:28px; color:#fff; background:linear-gradient(135deg,#0f172a,#1e293b 58%,#7c2d12); box-shadow:0 24px 65px rgba(15,23,42,.16); }
.breed-route-panel h2 { margin:0 0 10px; color:#fff; font-size:30px; line-height:1.08; }
.breed-route-panel p { margin:0; color:#cbd5e1; line-height:1.72; }
.breed-route-panel a { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:0 20px; border-radius:16px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; box-shadow:0 16px 32px rgba(249,115,22,.24); }
.breed-mini-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:34px 0; }
.breed-mini-grid article { padding:22px; border:1px solid #e2e8f0; border-radius:22px; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.05); }
.breed-mini-grid i { width:42px; height:42px; display:grid; place-items:center; margin-bottom:14px; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); }
.breed-mini-grid h3 { margin:0 0 8px; font-size:17px; }
.breed-mini-grid p { margin:0; color:#64748b; font-size:14px; line-height:1.6; }

.airport-page { background:#f8fafc; }
.airport-intro { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:34px; align-items:stretch; margin-bottom:24px; }
.airport-intro > div:first-child { padding:34px; border:1px solid #fed7aa; border-radius:28px; background:linear-gradient(135deg,#fff 0%,#fff7ed 100%); box-shadow:0 20px 55px rgba(15,23,42,.06); }
.airport-intro h2 { margin:0 0 14px; }
.airport-intro p { max-width:760px; margin:0; font-size:17px; line-height:1.78; }
.airport-stat-panel { display:grid; grid-template-columns:1fr; align-content:center; gap:4px; padding:28px; border-radius:28px; color:#fff; background:linear-gradient(135deg,#0f172a,#1e293b 62%,#7c2d12); box-shadow:0 24px 65px rgba(15,23,42,.16); }
.airport-stat-panel b { display:block; color:#fdba74; font-size:42px; line-height:1; font-weight:900; }
.airport-stat-panel span { display:block; margin:0 0 18px; color:#e2e8f0; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.airport-stat-panel span:last-child { margin-bottom:0; }
.airport-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:24px 0 42px; }
.airport-process article { padding:24px; border:1px solid #e2e8f0; border-radius:24px; background:#fff; box-shadow:0 16px 38px rgba(15,23,42,.05); }
.airport-process i { width:46px; height:46px; display:grid; place-items:center; margin-bottom:16px; border-radius:16px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); }
.airport-process h3 { margin:0 0 8px; font-size:17px; }
.airport-process p { margin:0; font-size:14px; line-height:1.6; }
.airport-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.airport-feature-grid > *, .airport-feature-card, .airport-feature-media { min-width:0; }
.airport-feature-card { display:block; overflow:hidden; border:1px solid rgba(226,232,240,.94); border-radius:26px; background:#fff; box-shadow:0 18px 48px rgba(15,23,42,.08); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.airport-feature-card:hover { transform:translateY(-3px); border-color:#fed7aa; box-shadow:0 24px 58px rgba(15,23,42,.12); }
.airport-feature-media { position:relative; aspect-ratio:16/10; overflow:hidden; background:#0f172a; }
.airport-feature-media img { width:100%; max-width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.airport-feature-card:hover .airport-feature-media img { transform:scale(1.04); }
.airport-feature-media::after { content:""; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(15,23,42,.04),rgba(15,23,42,.48)); }
.airport-feature-media span { position:absolute; z-index:1; left:16px; bottom:14px; padding:7px 11px; border-radius:999px; color:#fff; background:rgba(15,23,42,.78); font-size:12px; font-weight:900; letter-spacing:.1em; }
.airport-feature-copy { padding:22px; }
.airport-feature-copy p { margin:0 0 7px; color:#fb923c; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.airport-feature-copy h3 { margin:0 0 8px; font-size:21px; line-height:1.15; }
.airport-feature-copy strong { display:block; margin-bottom:10px; color:#0f172a; line-height:1.35; }
.airport-feature-copy span { display:block; color:#64748b; font-size:14px; line-height:1.62; }
.airport-feature-copy small { display:flex; align-items:center; gap:7px; margin-top:14px; color:#92400e; font-weight:800; }
.airport-feature-copy b { display:inline-flex; align-items:center; gap:8px; margin-top:16px; color:var(--orange-dark); font-size:13px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.airport-directory-grid { display:grid; grid-template-columns:1fr; gap:18px; min-width:0; }
.airport-directory-shell { overflow:hidden; border:1px solid #e2e8f0; border-radius:24px; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.05); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.airport-directory-shell:hover { transform:translateY(-2px); border-color:#fed7aa; box-shadow:0 18px 42px rgba(15,23,42,.09); }
.airport-directory-card { display:grid; grid-template-columns:230px minmax(0,1fr); min-width:0; overflow:hidden; border:1px solid #e2e8f0; border-radius:24px; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.05); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.airport-directory-card:hover { transform:translateY(-2px); border-color:#fed7aa; box-shadow:0 18px 42px rgba(15,23,42,.09); }
.airport-directory-shell .airport-directory-card { border:0; border-radius:0; box-shadow:none; }
.airport-directory-shell .airport-directory-card:hover { transform:none; border-color:transparent; box-shadow:none; }
.airport-directory-card > img { width:100%; max-width:100%; height:100%; min-height:260px; object-fit:cover; background:#0f172a; }
.airport-directory-card > div { padding:24px; min-width:0; }
.airport-directory-card p { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0 0 8px; }
.airport-directory-card p b { padding:6px 9px; border-radius:999px; color:#fff; background:#0f172a; font-size:11px; letter-spacing:.09em; }
.airport-directory-card p span { color:#fb923c; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.airport-directory-card h3 { margin:0 0 6px; font-size:24px; line-height:1.14; }
.airport-directory-card strong { display:block; margin-bottom:16px; color:#0f172a; line-height:1.35; }
.airport-directory-card dl { display:grid; gap:13px; margin:0; }
.airport-directory-card dt { color:#94a3b8; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.airport-directory-card dd { margin:4px 0 0; color:#475569; font-size:14px; line-height:1.62; }
.airport-directory-card footer { display:flex; flex-wrap:wrap; gap:10px 14px; margin-top:18px; padding-top:16px; border-top:1px solid #f1f5f9; }
.airport-directory-card footer span, .airport-directory-card footer a { display:inline-flex; align-items:center; gap:7px; color:#64748b; font-size:12px; font-weight:800; }
.airport-directory-card footer a { color:var(--orange-dark); }
.airport-directory-card .airport-open-guide { color:var(--orange-dark); }
.airport-official-link { display:flex; justify-content:flex-start; margin:-4px 0 0; padding:0 24px 22px 254px; }
.airport-official-link:empty { display:none; }
.airport-official-link a { display:inline-flex; align-items:center; gap:8px; max-width:100%; padding:10px 12px; border-radius:999px; background:#fff7ed; color:var(--orange-dark); font-size:12px; line-height:1.2; font-weight:900; overflow-wrap:anywhere; }
.airport-official-link a:hover { background:#ffedd5; color:#9a3412; }
.airport-detail-hero { display:grid; grid-template-columns:minmax(280px,440px) minmax(0,1fr); gap:30px; align-items:center; margin-bottom:34px; padding:24px; border:1px solid #e2e8f0; border-radius:28px; background:#fff; box-shadow:0 18px 44px rgba(15,23,42,.06); }
.airport-detail-hero img, .airport-detail-photo img { width:100%; height:100%; object-fit:cover; border-radius:22px; background:#0f172a; }
.airport-detail-hero img { min-height:300px; }
.airport-detail-hero h2, .airport-detail-photo h2 { margin:0 0 14px; color:#0f172a; font-size:clamp(28px,4vw,44px); line-height:1.04; letter-spacing:0; }
.airport-detail-hero p, .airport-detail-photo p { margin:0; color:#475569; font-size:16px; line-height:1.72; }
.airport-detail-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.airport-detail-actions a { display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 14px; border-radius:999px; color:#0f172a; background:#fff7ed; font-size:12px; font-weight:900; text-transform:uppercase; }
.airport-detail-grid { display:grid; grid-template-columns:1.2fr .65fr 1.2fr; gap:18px; margin-bottom:34px; }
.airport-detail-grid article { padding:24px; border:1px solid #e2e8f0; border-radius:24px; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.05); }
.airport-detail-grid i { width:44px; height:44px; display:grid; place-items:center; margin-bottom:15px; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); }
.airport-detail-grid h3 { margin:0 0 10px; font-size:18px; }
.airport-detail-grid p { margin:0; color:#475569; font-size:14px; line-height:1.66; }
.airport-detail-photo { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,420px); gap:28px; align-items:center; margin:0 0 34px; padding:28px; border-radius:28px; background:#fff7ed; }
.airport-detail-photo img { min-height:260px; }
.airport-map-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(330px,520px); gap:28px; align-items:stretch; margin:0 0 34px; padding:28px; border:1px solid #fed7aa; border-radius:28px; background:linear-gradient(135deg,#fff7ed 0%,#ffffff 58%); box-shadow:0 18px 46px rgba(15,23,42,.06); }
.airport-map-copy h2 { margin:0 0 12px; color:#0f172a; font-size:clamp(28px,4vw,42px); line-height:1.05; letter-spacing:0; }
.airport-map-copy p { margin:0 0 18px; color:#475569; font-size:16px; line-height:1.72; }
.airport-map-copy ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.airport-map-copy li { padding:14px; border:1px solid #ffedd5; border-radius:16px; background:rgba(255,255,255,.78); }
.airport-map-copy li span { display:block; margin-bottom:5px; color:#94a3b8; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.airport-map-copy li strong { display:block; color:#0f172a; font-size:14px; line-height:1.35; }
.airport-map-frame { display:grid; gap:12px; min-height:360px; }
.airport-map-frame iframe, .airport-map-frame img { width:100%; border:0; border-radius:22px; background:#e2e8f0; box-shadow:0 10px 26px rgba(15,23,42,.08); }
.airport-map-frame iframe { min-height:230px; height:100%; }
.airport-map-frame img { display:none; height:150px; object-fit:cover; }

details.faq { margin:13px 0; overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 12px 30px rgba(15,23,42,.04); }
details.faq summary { position:relative; padding:18px 56px 18px 22px; color:var(--ink); font-weight:900; cursor:pointer; list-style:none; }
details.faq summary::-webkit-details-marker { display:none; }
details.faq summary::after { content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%); width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#fff7ed; color:var(--orange-dark); font-weight:900; }
details.faq[open] summary::after { content:"-"; }
details.faq div { padding:0 22px 18px; color:#475569; }

.form-grid { display:grid; gap:16px; max-width:620px; padding:26px; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 20px 55px rgba(15,23,42,.08); }
.form-grid label { display:block; margin-bottom:7px; color:#475569; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.form-grid input, .form-grid textarea, .form-grid select { width:100%; padding:14px 15px; border:2px solid #e2e8f0; border-radius:14px; background:#f8fafc; color:var(--ink); font:inherit; outline:none; }
.form-grid input:focus, .form-grid textarea:focus, .form-grid select:focus { border-color:var(--orange); background:#fff; }
button.btn { display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:999px; padding:15px 26px; color:#fff; background:linear-gradient(135deg,var(--orange),var(--orange-deep)); font:inherit; font-weight:900; cursor:pointer; box-shadow:0 16px 32px rgba(249,115,22,.26); }
button.btn:hover { transform:translateY(-1px); }

footer.site { position:relative; overflow:hidden; margin-top:0; padding:64px 0 32px; color:#94a3b8; background:linear-gradient(135deg,#0f172a 0%,#1a1a2e 52%,#020617 100%); }
footer.site::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,var(--orange),var(--amber),var(--orange)); }
footer.site .paw-print { position:absolute; pointer-events:none; user-select:none; line-height:1; color:#fb923c; opacity:.16; }
footer.site .paw-one { top:36px; right:7%; font-size:128px; transform:rotate(-20deg); }
footer.site .paw-two { bottom:48px; left:5%; font-size:96px; color:#fbbf24; transform:rotate(15deg); opacity:.12; }
footer.site .paw-three { top:50%; right:33%; font-size:54px; color:#fed7aa; transform:rotate(35deg); opacity:.08; }
.foot-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.25fr 1fr 1fr 1fr; gap:40px; margin-bottom:36px; }
.foot-wordmark { display:inline-flex; align-items:center; gap:9px; margin-bottom:16px; color:#fff; font-size:18px; font-weight:900; text-transform:uppercase; letter-spacing:0; }
.foot-wordmark i { color:var(--orange); font-size:20px; }
.foot-wordmark b { color:var(--orange); font-weight:900; }
.foot-brand p { max-width:360px; margin:0; color:#94a3b8; font-size:14px; line-height:1.65; }
.foot-social { display:flex; gap:12px; margin-top:16px; }
.foot-social a { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:rgba(30,41,59,.8); color:#64748b; font-size:14px; transition:.16s ease; }
.foot-social a:hover { color:#fff; background:linear-gradient(135deg,var(--orange),var(--amber)); transform:translateY(-1px); }
.foot-grid h4 { width:max-content; margin:0 0 16px; color:transparent; background:linear-gradient(90deg,#fb923c,#fcd34d); -webkit-background-clip:text; background-clip:text; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }
.foot-grid ul { list-style:none; margin:0; padding:0; }
.foot-grid li { margin-bottom:9px; }
.foot-grid a { color:#94a3b8; font-size:14px; font-weight:700; transition:.14s ease; }
.foot-grid a i { width:18px; margin-right:6px; color:#475569; text-align:center; transition:.14s ease; }
.foot-grid a:hover { color:#fb923c; }
.foot-grid a:hover i { color:#fb923c; }
.foot-legal { position:relative; z-index:1; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; padding-top:24px; border-top:1px solid rgba(30,41,59,.65); color:#475569; font-size:12px; }
.foot-legal a { margin-left:16px; color:#64748b; font-weight:700; }
.foot-legal a:hover { color:#fb923c; }

.sea-page .section-head { margin-top:46px; }
.sea-intro { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:28px; align-items:stretch; margin-bottom:28px; }
.sea-intro > div:first-child, .sea-stat-panel, .sea-process article, .sea-route-card, .sea-detail-card { border:1px solid #e2e8f0; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.05); }
.sea-intro > div:first-child { padding:32px; border-radius:28px; }
.sea-intro h2 { margin:10px 0 12px; color:#0f172a; font-size:34px; line-height:1.08; letter-spacing:0; }
.sea-intro p { margin:0; color:#475569; font-size:16px; line-height:1.7; }
.sea-stat-panel { display:grid; align-content:center; gap:8px; padding:28px; border-radius:28px; background:linear-gradient(135deg,#fff7ed,#fff); }
.sea-stat-panel b { color:#0f172a; font-size:42px; line-height:1; font-weight:900; }
.sea-stat-panel span { color:#9a3412; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.sea-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-bottom:42px; }
.sea-process article { padding:24px; border-radius:24px; }
.sea-process i { width:42px; height:42px; display:grid; place-items:center; margin-bottom:16px; border-radius:14px; background:#fff7ed; color:#ea580c; }
.sea-process h3 { margin:0 0 8px; color:#0f172a; font-size:17px; }
.sea-process p { margin:0; color:#64748b; font-size:14px; line-height:1.6; }
.sea-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.sea-route-card { display:flex; min-width:0; min-height:340px; flex-direction:column; padding:24px; border-radius:24px; transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.sea-route-card:hover { transform:translateY(-3px); border-color:#fed7aa; box-shadow:0 18px 44px rgba(15,23,42,.09); }
.sea-route-top { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:18px; }
.sea-route-top img { width:42px; height:42px; border:1px solid #e2e8f0; border-radius:12px; object-fit:contain; background:#fff; }
.sea-route-top div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.sea-route-top span, .sea-route-top b { padding:6px 8px; border-radius:999px; font-size:10px; line-height:1; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.sea-route-top span { background:#ecfeff; color:#0e7490; }
.sea-route-top b.good { background:#ecfdf5; color:#047857; }
.sea-route-top b.neutral { background:#f8fafc; color:#64748b; }
.sea-route-card h2 { margin:0 0 8px; color:#0f172a; font-size:21px; line-height:1.12; }
.sea-route-route, .sea-route-summary { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; }
.sea-route-route { -webkit-line-clamp:2; min-height:34px; margin:0 0 12px; color:#94a3b8; font-size:12px; line-height:1.45; font-weight:800; }
.sea-route-summary { -webkit-line-clamp:4; margin:0; color:#64748b; font-size:14px; line-height:1.62; }
.sea-route-bottom { display:grid; gap:12px; margin-top:auto; padding-top:18px; }
.sea-route-bottom span { display:block; min-height:32px; color:#94a3b8; font-size:12px; font-weight:800; line-height:1.35; }
.sea-route-bottom strong { width:max-content; max-width:100%; display:inline-flex; align-items:center; gap:8px; border-radius:999px; padding:9px 12px; color:var(--orange-dark); background:#fff7ed; font-size:11px; line-height:1; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.sea-detail-page { padding:0 0 78px; }
.sea-detail-hero { position:relative; min-height:360px; display:grid; align-items:end; overflow:hidden; margin-top:0; background:#0f172a; }
.sea-detail-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(1.05); }
.sea-detail-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,23,42,.92),rgba(15,23,42,.56),rgba(15,23,42,.18)); }
.sea-detail-hero::after { content:""; position:absolute; inset:auto 0 0; height:130px; background:linear-gradient(0deg,rgba(15,23,42,.86),transparent); }
.sea-detail-hero > div { position:relative; z-index:1; width:min(1040px,100%); margin:0 auto; padding:0 24px 42px; }
.sea-detail-hero h1 { margin:10px 0; color:#fff; font-size:clamp(38px,6vw,70px); line-height:.95; letter-spacing:0; }
.sea-detail-hero p { max-width:760px; margin:0; color:#e2e8f0; font-size:16px; line-height:1.55; font-weight:700; }
.sea-detail-hero a { display:inline-block; margin-top:14px; color:#cbd5e1; font-size:11px; font-weight:700; }
.sea-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:start; padding-top:34px; }
.sea-detail-main { display:grid; gap:22px; min-width:0; }
.sea-detail-card { overflow:hidden; border-radius:24px; }
.sea-detail-card .module-head { display:flex; align-items:center; gap:14px; margin:0; padding:26px 28px 18px; }
.sea-detail-card .module-head span { width:38px; height:38px; display:grid; place-items:center; flex:0 0 auto; border-radius:14px; color:#fff; background:linear-gradient(135deg,#f97316,#ea580c); }
.sea-detail-card .module-head h2 { margin:0; color:#0f172a; font-size:15px; line-height:1.18; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.sea-detail-card > p { margin:0; padding:0 28px 28px; color:#475569; font-size:15px; line-height:1.72; }
.sea-detail-list { display:grid; gap:12px; padding:0 28px 28px; }
.sea-detail-list > div { display:flex; gap:14px; padding:16px; border-radius:18px; background:#f8fafc; }
.sea-detail-list > div.warm { background:#fff7ed; border:1px solid #fed7aa; }
.sea-detail-list > div.good { background:#f0fdf4; border:1px solid #bbf7d0; }
.sea-detail-list > div.danger { background:#fff1f2; border:1px solid #fecdd3; }
.sea-detail-list i { color:#ea580c; margin-top:3px; }
.sea-detail-list p { margin:0; }
.sea-detail-list b { display:block; margin-bottom:4px; color:#0f172a; font-size:13px; font-weight:900; }
.sea-detail-list span { color:#475569; font-size:14px; line-height:1.58; }
.sea-detail-side { position:sticky; top:120px; display:grid; gap:14px; }
.sea-detail-side h3 { margin:0; font-size:24px; }
.sea-detail-side h3.good { color:#047857; }
.sea-detail-side h3.neutral { color:#64748b; }
.sea-policy-btn { display:flex; align-items:center; justify-content:center; gap:9px; padding:14px 16px; border-radius:16px; color:#fff; background:#0f172a; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; text-align:center; }
.sea-policy-btn:hover { background:#ea580c; }
.sea-policy-btn.ghost { color:#64748b; background:#fff; border:1px solid #e2e8f0; }
.sea-policy-btn.ghost:hover { color:#ea580c; background:#fff7ed; }

@media (max-width:980px) {
    .nav { min-height:74px; }
    .nav-links { display:none; }
    .nav-search { display:none; }
    .page-hero-grid { grid-template-columns:1fr; }
    .hero-tool { max-width:360px; }
    .glance { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .airport-intro { grid-template-columns:1fr; }
    .airport-process, .airport-feature-grid, .sea-process { grid-template-columns:1fr; }
    .airport-directory-card { grid-template-columns:1fr; }
    .airport-directory-card > img { height:240px; min-height:0; }
    .airport-official-link { margin:-2px 0 0; padding:0 20px 20px; }
    .airport-detail-hero, .airport-detail-grid, .airport-detail-photo, .airport-map-panel, .airline-detail-hero, .airline-stats, .airline-detail-grid, .breed-visual-grid, .breed-route-panel, .breed-mini-grid, .sea-intro, .sea-detail-layout { grid-template-columns:1fr; }
    .sea-route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sea-detail-side { position:static; }
    .foot-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
    .wrap, .wrap-narrow { padding:0 18px; }
    .brand-mark strong { font-size:19px; }
    .brand-mark span:first-child { width:38px; height:38px; }
    .brand-logo img { height:44px; }
    footer.site .paw-print { display:none; }
    .nav-cta { padding:11px 13px; font-size:12px; }
    .page-hero { padding:38px 0 44px; }
    .page-hero p.lead { font-size:16px; }
    .glance, .foot-grid { grid-template-columns:1fr; }
    .airport-intro > div:first-child, .airport-stat-panel, .airport-process article, .airport-feature-copy, .airport-directory-card > div, .breed-card-copy, .breed-route-panel, .sea-intro > div:first-child, .sea-stat-panel, .sea-process article, .sea-route-card { padding:20px; }
    .sea-route-grid { grid-template-columns:1fr; }
    .sea-detail-card .module-head { padding:22px 20px 16px; }
    .sea-detail-card > p, .sea-detail-list { padding-left:20px; padding-right:20px; }
    .sea-detail-hero { min-height:330px; }
    .breed-visual-grid { gap:18px; }
    .breed-card { border-radius:20px; }
    .breed-card img { height:220px; }
    .breed-card h2 { font-size:22px; }
    .breed-route-panel { border-radius:20px; }
    .breed-route-panel h2 { font-size:24px; }
    .breed-route-panel a { width:100%; }
    .airport-directory-card h3 { font-size:20px; }
    .airport-map-panel { padding:20px; border-radius:22px; }
    .airport-map-copy ul { grid-template-columns:1fr; }
    .airport-map-frame { min-height:300px; }
    .airport-map-frame iframe { min-height:280px; }
    .airport-stat-panel b { font-size:34px; }
    table.data { display:block; overflow-x:auto; white-space:normal; }
    .foot-legal a { margin-left:0; margin-right:14px; }
}

/* CatAbroad-style country guide pages */
.country-page { background:#f8fafc; }
.country-visual-hero { position:relative; height:420px; min-height:340px; overflow:hidden; background:linear-gradient(135deg,#1a0a3c 0%,#2d1b69 38%,#4c1d95 70%,#7c2d12 100%); }
.country-visual-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 58%; opacity:0; animation:countryHeroIn .4s ease forwards; }
@keyframes countryHeroIn { to { opacity:1; } }
.country-hero-fallback { position:absolute; inset:0; opacity:.18; background:
    radial-gradient(ellipse 35% 70% at 0% 100%,rgba(251,146,60,.45) 0%,transparent 60%),
    radial-gradient(ellipse 40% 60% at 100% 0%,rgba(167,139,250,.45) 0%,transparent 55%),
    repeating-linear-gradient(-15deg,rgba(255,255,255,.08) 0 2px,transparent 2px 80px); }
.country-visual-hero.missing-image .country-hero-fallback { opacity:1; }
.country-visual-shade { position:absolute; inset:0; background:
    linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.34) 38%,rgba(0,0,0,.08) 66%,rgba(0,0,0,.26) 100%),
    linear-gradient(to bottom,rgba(0,0,0,.08) 0%,rgba(0,0,0,.05) 42%,rgba(0,0,0,.42) 78%,rgba(0,0,0,.72) 100%),
    radial-gradient(ellipse 115% 110% at 68% 50%,transparent 55%,rgba(0,0,0,.32) 100%); }
.country-hero-badges { position:absolute; z-index:2; inset:20px 32px auto; display:flex; justify-content:space-between; gap:14px; pointer-events:none; }
.difficulty-pill, .brand-pill { display:inline-flex; align-items:center; gap:7px; border:1px solid; border-radius:999px; padding:7px 12px; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; backdrop-filter:blur(8px); }
.brand-pill { color:#fdba74; background:rgba(15,23,42,.35); border-color:rgba(253,186,116,.35); }
.country-hero-title { position:absolute; z-index:2; left:32px; right:auto; bottom:34px; width:min(58vw,720px); display:flex; align-items:flex-end; gap:22px; min-width:0; }
.country-hero-title img { width:86px; min-width:64px; height:auto; border-radius:14px; box-shadow:0 4px 24px rgba(0,0,0,.6),0 0 0 2px rgba(255,255,255,.25); }
.country-hero-title p { display:flex; align-items:center; gap:8px; margin:0 0 8px; color:#fdba74; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.14em; text-shadow:0 1px 4px rgba(0,0,0,.5); }
.country-hero-title h1 { margin:0; color:#fff; font-size:clamp(42px,6vw,72px); font-weight:900; line-height:.88; text-transform:uppercase; letter-spacing:0; text-shadow:0 2px 24px rgba(0,0,0,.62); }
.country-hero-title span { display:block; margin-top:12px; color:rgba(226,232,240,.9); font-size:15px; font-weight:700; text-shadow:0 1px 6px rgba(0,0,0,.5); }
.country-action-bar { position:sticky; top:88px; z-index:35; background:#fff; border-bottom:1px solid #f1f5f9; box-shadow:0 1px 8px rgba(15,23,42,.04); }
.country-action-bar .wrap { min-height:56px; display:flex; align-items:center; justify-content:space-between; }
.country-action-bar a { display:inline-flex; align-items:center; gap:8px; color:#94a3b8; font-size:13px; font-weight:900; text-transform:uppercase; }
.country-action-bar button { width:42px; height:42px; border:0; border-radius:14px; color:#64748b; background:#f1f5f9; cursor:pointer; }
.country-action-bar button:hover { color:var(--orange-dark); background:#ffedd5; }
.country-toc { margin:22px 0 0; padding:14px 16px; border:1px solid #fed7aa; border-radius:16px; background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 60%,#fef3c7 100%); }
.country-toc p { margin:0 0 9px; color:#fb923c; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.14em; }
.country-toc div { display:flex; flex-wrap:wrap; gap:4px 7px; }
.country-toc a { display:inline-flex; align-items:center; gap:6px; padding:6px 9px; border-radius:9px; color:#92400e; font-size:11px; font-weight:900; }
.country-toc a:hover { color:#c2410c; background:rgba(249,115,22,.16); }
.country-toc i { color:#fb923c; font-size:10px; }
.country-layout { display:grid; grid-template-columns:minmax(0,8fr) minmax(300px,4fr); gap:34px; align-items:start; padding-top:32px; padding-bottom:74px; }
.country-article { display:grid; gap:24px; min-width:0; }
.country-module { overflow:hidden; border-radius:28px; background:#fff; box-shadow:0 2px 20px rgba(15,23,42,.07); scroll-margin-top:160px; }
.country-module .module-head { display:flex; align-items:center; gap:14px; padding:28px 32px 0; margin-bottom:20px; }
.country-module .module-head span { width:38px; height:38px; display:grid; place-items:center; border-radius:14px; color:#fff; flex-shrink:0; }
.country-module .module-head h2 { margin:0; color:#0f172a; font-size:16px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.country-module .module-copy { padding:0 32px 30px; color:#475569; font-size:15px; line-height:1.76; }
.country-module .module-copy p { margin:0; }
.module-source { padding:20px 32px; background:rgba(248,250,252,.72); }
.module-source a, .side-card .solid { display:inline-flex; align-items:center; justify-content:center; gap:9px; max-width:100%; border-radius:14px; padding:12px 18px; color:#fff; background:#0f172a; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.09em; white-space:normal; overflow-wrap:anywhere; text-align:center; line-height:1.35; }
.module-source a:hover, .side-card .solid:hover { background:var(--orange-dark); }
.link-strip { display:flex; flex-wrap:wrap; gap:10px; padding:0 32px 30px; }
.link-strip a { display:inline-flex; align-items:center; gap:8px; padding:10px 12px; border-radius:12px; color:#0f172a; background:#fff; border:1px solid rgba(226,232,240,.92); font-size:12px; font-weight:900; }
.link-strip a:hover { color:var(--orange-dark); border-color:#fed7aa; background:#fff7ed; }
.link-strip i { color:#fb923c; font-size:10px; }
.tone-orange { background:#fffaf5; }
.tone-pink { background:#fdf8fc; }
.tone-red { background:#fdf7f7; }
.tone-blue { background:#f7fbff; }
.tone-green { background:#f0fdf4; }
.tone-amber { background:#fffcf0; }
.tone-orange .module-head span { background:linear-gradient(135deg,#f97316,#ea580c); }
.tone-pink .module-head span { background:linear-gradient(135deg,#ec4899,#be185d); }
.tone-red .module-head span { background:linear-gradient(135deg,#ef4444,#dc2626); }
.tone-blue .module-head span { background:linear-gradient(135deg,#0ea5e9,#0284c7); }
.tone-green .module-head span { background:linear-gradient(135deg,#10b981,#059669); }
.tone-amber .module-head span { background:linear-gradient(135deg,#f59e0b,#d97706); }
.route-cta { display:flex; align-items:center; gap:18px; padding:20px 24px; border:1px solid #ccfbf1; border-radius:24px; background:#fff; box-shadow:0 2px 18px rgba(15,23,42,.06); transition:.16s ease; }
.route-cta:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(15,23,42,.1); }
.route-cta > span { width:46px; height:46px; display:grid; place-items:center; border-radius:17px; color:#0f766e; background:linear-gradient(135deg,#ccfbf1,#fff7ed); flex-shrink:0; }
.route-cta p { margin:0 0 3px; color:#0f766e; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.route-cta strong { display:block; color:#0f172a; font-size:17px; line-height:1.2; }
.route-cta small { display:block; margin-top:4px; color:#64748b; }
.route-cta b { margin-left:auto; flex-shrink:0; border-radius:14px; padding:13px 16px; color:#fff; background:linear-gradient(135deg,#0f766e,#14b8a6); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.roadmap { padding:0 32px 30px; }
.road-step { display:grid; grid-template-columns:34px minmax(0,1fr); gap:16px; padding-bottom:22px; position:relative; }
.road-step:not(:last-child)::after { content:""; position:absolute; left:16px; top:38px; bottom:2px; width:2px; background:linear-gradient(to bottom,#fed7aa,transparent); }
.road-step span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(135deg,#f97316,#ea580c); font-weight:900; z-index:1; }
.road-step h3 { margin:0 0 5px; color:#0f172a; font-size:15px; font-weight:900; }
.road-step p { margin:0; color:#64748b; font-size:14px; line-height:1.55; }
.alert-block { margin:0 32px 18px; padding:18px 20px; border-left:4px solid #f97316; border-radius:0 18px 18px 0; background:#fff7ed; }
.alert-block.danger { border-left-color:#dc2626; background:#fff7f7; }
.alert-block.good { border-left-color:#10b981; background:#f0fdf4; }
.alert-block h3 { display:flex; align-items:center; gap:9px; margin:0 0 6px; color:#92400e; font-size:15px; font-weight:900; }
.alert-block.danger h3 { color:#991b1b; }
.alert-block.good h3 { color:#047857; }
.alert-block p { margin:0; color:#475569; font-size:14px; line-height:1.62; }
.cost-list { padding:0 32px 30px; }
.cost-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 0; border-bottom:1px solid rgba(148,163,184,.18); }
.cost-row:last-child { border-bottom:0; }
.cost-row span { color:#64748b; font-weight:700; }
.cost-row b { color:#0f172a; text-align:right; }
.country-module details.faq { margin:0 32px 12px; }
.country-module details.faq:last-child { margin-bottom:30px; }
.author-card { display:flex; align-items:flex-start; gap:16px; padding:20px 24px; border:1px solid #e2e8f0; border-radius:20px; background:#fff; box-shadow:0 1px 8px rgba(15,23,42,.04); }
.author-card div { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#0f172a; font-size:12px; font-weight:900; flex-shrink:0; }
.author-card p { margin:0; }
.author-card b { display:block; color:#0f172a; font-size:14px; }
.author-card span { display:block; margin-top:4px; color:#64748b; font-size:13px; line-height:1.55; }
.update-history-open { display:inline-flex; align-items:center; gap:8px; width:max-content; margin:0 0 14px; padding:10px 14px; border:1px solid rgba(249,115,22,.22); border-radius:999px; background:#fff7ed; color:#c2410c; font-size:12px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; box-shadow:0 8px 20px rgba(249,115,22,.10); cursor:pointer; }
.update-history-open::before { content:"\\f1da"; font-family:"Font Awesome 6 Free"; font-weight:900; }
.update-history-open:hover { background:#ffedd5; color:#9a3412; transform:translateY(-1px); }
.update-history-modal[hidden] { display:none; }
.update-history-modal { position:fixed; inset:0; z-index:9999; display:block; }
.update-history-is-open { overflow:hidden; }
.update-history-backdrop { position:absolute; inset:0; background:rgba(15,23,42,.48); backdrop-filter:blur(3px); }
.update-history-panel { position:absolute; top:0; right:0; width:min(440px,100%); height:100%; overflow:auto; padding:28px; background:#fff; box-shadow:-24px 0 70px rgba(15,23,42,.24); }
.update-history-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:24px; }
.update-history-eyebrow { margin:0 0 8px; color:#f97316; font-size:10px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.update-history-panel h2 { margin:0; color:#0f172a; font-size:24px; line-height:1.05; font-weight:900; letter-spacing:0; }
.update-history-close { width:40px; height:40px; display:grid; place-items:center; flex:0 0 auto; border:0; border-radius:50%; background:#f8fafc; color:#64748b; cursor:pointer; }
.update-history-close:hover { background:#fff7ed; color:#ea580c; }
.update-history-list { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.update-history-item { position:relative; padding:0 0 20px 20px; border-left:2px solid #fed7aa; }
.update-history-item::before { content:""; position:absolute; left:-6px; top:2px; width:10px; height:10px; border-radius:50%; background:#f97316; box-shadow:0 0 0 4px #fff7ed; }
.update-history-date { margin:0 0 5px; color:#94a3b8; font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.update-history-summary { margin:0 0 7px; color:#0f172a; font-size:14px; line-height:1.4; font-weight:800; }
.update-history-source-row { margin:0; font-size:12px; line-height:1.45; }
.update-history-source { color:#ea580c; font-weight:900; }
.update-history-source:hover { color:#9a3412; }
.update-history-source.muted { color:#94a3b8; }
.update-history-more { margin-top:4px; border:0; background:transparent; color:#64748b; font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.update-history-more:hover { color:#ea580c; }
.country-sidebar { min-width:0; }
.sticky-stack { position:sticky; top:166px; display:grid; gap:20px; }
.side-stats { overflow:hidden; display:grid; grid-template-columns:1fr 1fr; border:1px solid #f1f5f9; border-radius:28px; background:#fff; box-shadow:0 2px 12px rgba(15,23,42,.05); }
.side-stats div { min-height:96px; padding:20px; text-align:center; border-right:1px solid #f1f5f9; border-bottom:1px solid #f1f5f9; }
.side-stats div:nth-child(even) { border-right:0; }
.side-stats div:nth-last-child(-n+2) { border-bottom:0; }
.side-stats span, .side-card p { display:block; margin:0 0 8px; color:#94a3b8; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.side-stats b { display:block; color:#0f172a; font-size:16px; font-weight:900; line-height:1.18; overflow-wrap:anywhere; }
.side-card { padding:24px; border:1px solid #f1f5f9; border-radius:24px; background:#fff; box-shadow:0 2px 12px rgba(15,23,42,.05); }
.side-card h3 { margin:0 0 8px; color:#0f172a; font-size:17px; line-height:1.2; overflow-wrap:anywhere; }
.side-card span { display:block; color:#64748b; font-size:13px; line-height:1.55; margin-bottom:14px; }
.side-card a { display:flex; align-items:center; gap:9px; min-width:0; color:#64748b; font-size:12px; font-weight:900; padding:8px 0; overflow-wrap:anywhere; }
.side-card a:hover { color:var(--orange-dark); }
.side-card.planner { background:linear-gradient(135deg,#fff,#f0fdfa); }
.side-card.planner p { color:#0f766e; }
.side-card.planner a { color:#0f766e; text-transform:uppercase; letter-spacing:.08em; }
.side-card.related a { padding:12px; border-radius:14px; background:#f8fafc; margin-bottom:8px; }
.side-card.related a:hover { background:#fff7ed; }
.side-card.related img { width:24px; height:18px; border-radius:3px; object-fit:cover; }
.side-card.related span { min-width:0; margin:0; color:#334155; font-weight:900; flex:1; overflow-wrap:anywhere; }
@media (max-width:980px) {
    .country-action-bar { top:74px; }
    .country-layout { grid-template-columns:1fr; }
    .sticky-stack { position:static; }
}
@media (max-width:640px) {
    .country-visual-hero { height:380px; }
    .country-visual-hero > img { object-position:center 54%; }
    .country-hero-badges { inset:16px 18px auto; }
    .country-hero-title { left:18px; right:18px; bottom:26px; width:auto; gap:14px; }
    .country-hero-title img { display:none; }
    .country-hero-title h1 { font-size:44px; }
    .country-module .module-head, .country-module .module-copy, .module-source, .roadmap, .cost-list, .link-strip { padding-left:22px; padding-right:22px; }
    .alert-block, .country-module details.faq { margin-left:22px; margin-right:22px; }
    .route-cta { align-items:flex-start; flex-direction:column; }
    .route-cta b { margin-left:0; }
    .side-stats { grid-template-columns:1fr; }
    .side-stats div { border-right:0; }
    .side-stats div:nth-last-child(-n+2) { border-bottom:1px solid #f1f5f9; }
    .side-stats div:last-child { border-bottom:0; }
}
