/* 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-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-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 { margin:-10px 0 0 252px; }
.airport-official-link:empty { display:none; }
.airport-official-link a { display:inline-flex; align-items:center; gap:8px; color:var(--orange-dark); font-size:12px; font-weight:900; }
.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; }

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; }

@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 { grid-template-columns:1fr; }
    .airport-directory-card { grid-template-columns:1fr; }
    .airport-directory-card > img { height:240px; min-height:0; }
    .airport-official-link { margin:8px 0 0 0; }
    .airport-detail-hero, .airport-detail-grid, .airport-detail-photo, .airline-detail-hero, .airline-stats, .airline-detail-grid, .breed-visual-grid, .breed-route-panel, .breed-mini-grid { grid-template-columns:1fr; }
    .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 { padding:20px; }
    .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-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; }
.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; }
}
