/* =====================================================================
   PARKING WAYS - airport pages (theme v3, 7-Oct-2026)
   /airport/{jfk,ewr,lga,phl}-parking: APR airport page ka rhythm -
   photo hero + search card, crumbs, 2-col lot cards, intro, rates table,
   Leaflet map, "How to reserve" teal panel, Google ratings, cost/long/short
   /shuttle guides, useful links, CTA band, FAQ. Base = pw-theme.css (ap-*),
   yahan sirf airport page ke apne hisse (prefix apt-).
   ===================================================================== */

/* ---------------- hero (photo + overlay, search card, trust row) ---------------- */
/* theme me .ap-hero > .ap-wrap {z-index:1} calendar ko us layer me band kar deta tha -
   phone par modal calendar apne hi overlay (body, z 10085) ke neeche chala jata tha. */
.apt-hero > .ap-wrap { z-index: auto; }
/* pw-theme.css (.ap-hero z 5, .pwsrch z 20) bhi stacking context banata hai - wahi masla. Yahan teeno "auto":
   calendar (10050/10090) aur airport menu apne z-index ke sath root par aate hain, sab sections ke upar. */
.apt-hero.ap-hero { z-index: auto; }
.apt-hero .ap-search.pwsrch { z-index: auto; }
/* photo + apna overlay (desktop/tablet). Phone par APR jaisa saada teal (theme ::before), photo download hi nahi hoti. */
.apt-hero-media { display: none; position: absolute; inset: 0; }
.apt-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.apt-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(14, 36, 43, .40), rgba(14, 36, 43, .55)); }
@media (min-width: 768px) { .apt-hero-media { display: block; } }
.apt-hero .ap-hero-head { margin-bottom: 16px; }
.apt-hero .ap-hero-lead { max-width: 780px; margin-left: auto; margin-right: auto; }
.apt-hero .ap-search { position: relative; }
.apt-tab {
    grid-column: 1 / -1; justify-self: start;
    display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 18px;
    border-radius: var(--r); background: var(--teal); color: var(--off);
    font: 600 1rem/1 var(--font-ui);
}
.apt-tab i { font-size: .95rem; }
.apt-hero .ap-trust { margin-top: 16px; }
@media (min-width: 768px) {
    .apt-hero { padding: 56px 0 40px; }
    .apt-hero .ap-hero-head { margin-bottom: 24px; }
    .apt-hero .ap-trust { margin-top: 20px; }
}
@media (min-width: 1024px) {
    .apt-hero { min-height: 440px; }
    .apt-hero .ap-search.pwsrch { padding: 16px 24px 24px; row-gap: 20px; }
}

/* ---------------- big sentence-case H2 (APR "Find Airport Parking Near ...") ---------------- */
.apt-h2xl { font: 700 1.75rem/2.15rem var(--font); color: var(--ink); margin: 8px 0 24px; text-wrap: balance; }
@media (min-width: 1024px) { .apt-h2xl { font-size: 3rem; line-height: 3.5rem; margin: 24px 0 32px; } }
.apt-h2s { font: 700 1.5rem/1.9rem var(--font); color: var(--ink); margin-bottom: .75rem; text-wrap: balance; }
@media (min-width: 1024px) { .apt-h2s { font-size: 1.875rem; line-height: 2.3rem; } }

/* ---------------- lot cards (2 columns, photo left) ---------------- */
.apt-lots { padding: 8px 0 40px; }
@media (min-width: 1024px) { .apt-lots { padding-bottom: 56px; } }
.apt-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 960px) { .apt-grid { grid-template-columns: 1fr 1fr; gap: 16px; } }

/* lot card = search results ka card (pw-results.css .pw-lot ka port; owner 10-Oct "second pic wala"):
   phone par photo upar (16:9) + badge, naam | qeemat, Google rating, facts, Details + Book now;
   600px+ par photo left 200px (search page jaisa) */
.apt-lot {
    position: relative; display: grid; grid-template-columns: minmax(0, 1fr);
    background: #fff; border: 1px solid rgba(0, 0, 0, .125); border-radius: var(--r); overflow: hidden;
    transition: border-color .15s, box-shadow .15s;
}
.apt-lot:hover { border-color: var(--teal-2); box-shadow: var(--shadow-card); }
.apt-lot-pic { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--bg-soft); overflow: hidden; }
.apt-lot-pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .15s cubic-bezier(.4, 0, .2, 1); }
.apt-lot:hover .apt-lot-pic img { transform: scale(1.04); }
.apt-lot-noimg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--teal-2); font-size: 2.5rem; }
.apt-lot-badge {
    position: absolute; top: 12px; left: 12px; z-index: 1;
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: var(--r-sm);
    font: 600 .75rem/1 var(--font-ui); letter-spacing: .06em; text-transform: uppercase;
    box-shadow: 0 2px 8px rgba(14, 36, 43, .18);
}
.apt-lot-badge i { font-size: .9em; }
.apt-lot-badge.is-value { background: var(--lime); color: var(--teal); }
.apt-lot-badge.is-near { background: var(--teal); color: var(--off); }
.apt-lot-badge.is-near i { color: var(--lime); }
.apt-lot-badge.is-rated { background: #fff; color: var(--teal); }
.apt-lot-badge.is-rated i { color: var(--star); }

.apt-lot-main { display: flex; flex-direction: column; min-width: 0; padding: 16px 16px 18px; }
.apt-lot-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px 14px; margin-bottom: 8px; }
.apt-lot-name { flex: 1 1 auto; min-width: 0; font: 400 1.125rem/1.5rem var(--font); color: var(--ink); padding-top: 2px; }
.apt-lot-name a { color: var(--ink); display: inline-block; padding: 10px 0; margin: -10px 0; }  /* tap target ~44px, layout same */
.apt-lot-name a:hover { color: var(--teal); }

/* "from $12.95/day" ek hi baseline par (owner 10-Oct: "from" upar alag line me theek nahi laga) */
.apt-lot-price { flex: 0 0 auto; display: flex; align-items: baseline; gap: 5px; white-space: nowrap; color: var(--ink); padding-top: 2px; }
.apt-lot-price .from { font-size: .875rem; line-height: 1; color: var(--muted); }
.apt-lot-price b { font: 700 1.75rem/1 var(--font); color: var(--ink); letter-spacing: -.01em; }
.apt-lot-price .per { font-size: .875rem; line-height: 1; color: var(--ink); margin-left: -3px; }

/* Google rating: G + sitare (aadhe tak bhare) + lafz + (score, ginti) */
.apt-rate { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: .875rem; line-height: 1.25rem; color: var(--ink); margin-bottom: 12px; }
.apt-rate .g { width: 15px; height: 15px; flex: 0 0 auto; margin-right: -2px; }
.apt-rate .stars { position: relative; display: inline-block; width: 95px; height: 19px; flex: 0 0 auto; }
.apt-rate .stars i { position: absolute; left: 0; top: 0; height: 19px; overflow: hidden; display: block; }
.apt-rate .stars i.off { width: 100%; }
.apt-rate .stars svg { width: 95px; height: 19px; display: block; }
.apt-rate .stars .off svg path { fill: #d5dadc; }
.apt-rate .stars .on svg path { fill: var(--star); }
.apt-rate b { font-weight: 700; }
.apt-rate.is-none span { display: inline-block; padding: 3px 8px; border-radius: var(--r-sm); background: var(--bg-soft); color: var(--teal); font: 600 .875rem/1.25rem var(--font-ui); letter-spacing: .02em; }

.apt-lot-facts { display: grid; gap: 8px; font-size: .9375rem; line-height: 1.35rem; }
.apt-lot-facts li { display: flex; align-items: flex-start; gap: 10px; }
.apt-lot-facts i { flex: 0 0 18px; width: 18px; text-align: center; color: var(--ink); font-size: 1rem; margin-top: 2px; }
.apt-lot-facts .k { color: var(--muted); }

.apt-lot-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: auto; padding-top: 16px; }
.apt-lot-actions .ap-btn { height: 44px; padding: 0 18px; font-size: .9375rem; }
@media (max-width: 599.98px) {
    .apt-lot-actions .ap-btn { flex: 1 1 0; padding: 0 10px; }
}
@media (min-width: 600px) {
    .apt-lot { grid-template-columns: 200px minmax(0, 1fr); }
    .apt-lot-pic { aspect-ratio: auto; min-height: 220px; }
    .apt-lot-main { padding: 16px 20px 20px; }
}

/* loading / error */
.apt-lot.is-skel { min-height: 236px; background: linear-gradient(90deg, var(--bg-soft) 0, #fff 50%, var(--bg-soft) 100%) 0 0/200% 100%; animation: aptskel 1.2s linear infinite; }
@keyframes aptskel { to { background-position: -200% 0; } }
.apt-empty { grid-column: 1 / -1; padding: 24px; border: 1px dashed var(--line-2); border-radius: var(--r); text-align: center; color: var(--muted); }
.apt-empty i { margin-right: 8px; color: var(--teal); }

/* ---------------- intro + rates table ---------------- */
.apt-intro { max-width: none; }
.apt-intro p { font-size: 1rem; line-height: 1.6; }
.apt-intro p + p { margin-top: 1.25rem; }
.apt-rates { padding-top: 16px; }
.apt-rates .ap-h2 { margin-top: 40px; }
@media (min-width: 1024px) { .apt-rates .ap-h2 { margin-top: 56px; } }
.apt-rates-lead { margin-bottom: 20px; max-width: 80ch; }
.apt-rates .ap-table { min-width: 0; }
.apt-rates .ap-table th, .apt-rates .ap-table td { vertical-align: top; }
.apt-rates .ap-table td:last-child b { font-weight: 700; color: var(--ink); }
@media (max-width: 767.98px) {
    .apt-rates .ap-table { font-size: .875rem; }
    .apt-rates .ap-table th, .apt-rates .ap-table td { padding: 6px 6px; }
    .apt-rates .ap-table td:nth-child(3), .apt-rates .ap-table td:nth-child(4) { white-space: nowrap; }
}
.apt-note { font-size: .875rem; line-height: 1.45; color: var(--ink); margin-top: 8px; }

/* ---------------- map ---------------- */
.apt-mapsec { padding: 40px 0 8px; }
@media (min-width: 1024px) { .apt-mapsec { padding: 56px 0 16px; } }
.apt-mapsec p { margin-bottom: 20px; max-width: 80ch; }
.apt-map {
    position: relative; height: 340px; border-radius: var(--r); overflow: hidden; z-index: 0;
    background: var(--bg-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23e2e8e9' stroke-width='1'/%3E%3C/svg%3E");
}
@media (min-width: 768px) { .apt-map { height: 430px; } }
.apt-map-msg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--muted); font-size: .9rem; text-align: center; padding: 16px; }
.apt-map .leaflet-container, .apt-map.leaflet-container { font: inherit; }
.apt-pin {
    display: inline-flex; align-items: center; justify-content: center; gap: 4px;
    min-width: 52px; height: 30px; padding: 0 8px; transform: translate(-50%, -100%);
    background: var(--lime); color: var(--teal); border: 2px solid var(--teal); border-radius: 15px;
    font: 700 .8125rem/1 var(--font-ui); white-space: nowrap; box-shadow: 0 3px 8px rgba(14, 36, 43, .25);
    position: relative; cursor: pointer;
}
.apt-pin::after { content: ""; position: absolute; left: 50%; bottom: -7px; margin-left: -6px; border: 6px solid transparent; border-top-color: var(--teal); border-bottom: 0; }
.apt-pin i { font-size: .75rem; }
/* do lot bilkul paas paas: ek pin baen taraf khulta hai, ek daen - nok (tail) kone par, dono ek hi nuqte ko chhooti hain */
.apt-pin.is-l { transform: translate(-100%, calc(-100% - 9px)); border-bottom-right-radius: 0; }
.apt-pin.is-r { transform: translate(0, calc(-100% - 9px)); border-bottom-left-radius: 0; }
.apt-pin.is-l::after, .apt-pin.is-r::after { margin: 0; bottom: -11px; border-style: solid; border-color: var(--teal) transparent transparent transparent; }
.apt-pin.is-l::after { left: auto; right: -2px; border-width: 9px 0 0 9px; }
.apt-pin.is-r::after { left: -2px; right: auto; border-width: 9px 9px 0 0; }
.apt-pin.is-on { background: var(--teal); color: var(--lime); }
.apt-pin-air {
    width: 36px; height: 36px; transform: translate(-50%, -50%); border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--teal); color: var(--lime); border: 2px solid #fff; box-shadow: 0 3px 8px rgba(14, 36, 43, .3); font-size: .95rem;
}
.apt-pop { min-width: 190px; font: 400 .875rem/1.4 var(--font); color: var(--ink); }
.apt-pop b { display: block; font-size: 1rem; margin-bottom: 2px; }
.apt-pop .apt-pop-price { margin: 6px 0 8px; }
.apt-pop .apt-pop-price strong { color: var(--teal); font-size: 1.125rem; }
.apt-pop a { font: 600 .875rem/1.2 var(--font-ui); text-transform: uppercase; color: var(--teal); }
.apt-map .leaflet-popup-content-wrapper { border-radius: var(--r); }

/* ---------------- how to reserve (teal panel) ---------------- */
.apt-reserve .ap-panel .ap-sub { margin-bottom: 8px; }
.apt-reserve .ap-steps { margin-bottom: 0; }
.apt-reserve .ap-step h3 { font-size: 1.25rem; }
/* desktop: chhota step row ki height me phail kar h3 ko neeche dhakelta tha (step 1 ~12px neeche) */
.apt-reserve .ap-step { align-content: start; }
@media (min-width: 768px) { .apt-reserve .ap-step p { max-width: 30ch; margin: 0 auto; } }

/* ---------------- Google ratings ---------------- */
.apt-revs { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px) { .apt-revs { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .apt-revs { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.apt-rev { background: var(--bg-soft); border-radius: var(--r); padding: 20px; display: flex; flex-direction: column; gap: 6px; }
.apt-rev h3 { font: 700 1.0625rem/1.4 var(--font); color: var(--ink); }
.apt-rev-score { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.apt-rev-score b { font: 700 2rem/1 var(--font); color: var(--teal); }
.apt-rev-score .ap-stars { font-size: 1.1rem; }
.apt-rev-count { font-size: .875rem; color: var(--muted); }
.apt-rev a { margin-top: auto; padding-top: 6px; font-size: .9rem; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.apt-rev a i { font-size: .75em; }

/* ---------------- how much (cost) ---------------- */
.apt-cost-grid { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: start; }
@media (min-width: 1024px) { .apt-cost-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; } }
.apt-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.apt-tile { background: #fff; border: 1px solid rgba(0, 0, 0, .125); border-radius: var(--r); padding: 14px 10px; text-align: center; }
.apt-tile span { display: block; font-size: .8125rem; line-height: 1.25; color: var(--muted); }
.apt-tile small { display: block; font-size: .75rem; color: var(--muted); margin-top: 6px; }
.apt-tile b { display: block; font: 700 1.25rem/1.2 var(--font); color: var(--teal); margin-top: 6px; }
@media (min-width: 560px) {
    .apt-tiles { gap: 16px; }
    .apt-tile { padding: 20px 16px; }
    .apt-tile span { font-size: .9375rem; }
    .apt-tile b { font-size: 1.75rem; }
}
.apt-tiles-note { margin-top: 10px; font-size: .875rem; color: var(--muted); }
.apt-compare { margin-top: 32px; }
.apt-compare .ap-table { min-width: 0; }
.apt-compare .ap-table tr.is-ours td { background: var(--lime-tint); font-weight: 700; }
@media (max-width: 767.98px) {
    .apt-compare .ap-table { font-size: .875rem; }
    .apt-compare .ap-table th, .apt-compare .ap-table td { padding: 6px; }
}

/* ---------------- long / short term guides ---------------- */
.apt-two { display: grid; grid-template-columns: 1fr; gap: 40px; }
@media (min-width: 900px) { .apt-two { grid-template-columns: 1fr 1fr; gap: 48px; } }
.apt-guide-img { aspect-ratio: 16 / 9; border-radius: var(--r); overflow: hidden; margin-bottom: 24px; background: var(--bg-soft); }
.apt-guide-img img { width: 100%; height: 100%; object-fit: cover; }

/* ---------------- shuttle + terminal split ---------------- */
.apt-split { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
@media (min-width: 900px) { .apt-split { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 56px; } }
.apt-split-img { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: 14px 14px 0 var(--lime); margin: 0 14px 14px 0; background: var(--bg-soft); }
.apt-split-img img { width: 100%; height: 100%; object-fit: cover; }
.apt-split .ap-prose h3 { margin-top: 1.25rem; }

/* ---------------- useful links ---------------- */
.apt-useful { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 8px; }
@media (min-width: 640px) { .apt-useful { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .apt-useful { grid-template-columns: repeat(3, 1fr); gap: 32px 40px; } }
.apt-useful a { display: inline-flex; align-items: center; gap: 8px; font: 700 1rem/1.5rem var(--font); color: var(--link); min-height: 44px; }
.apt-useful a i { font-size: .75rem; }
.apt-useful p { font-size: 1rem; line-height: 1.5rem; color: var(--ink); margin-top: 4px; max-width: 36ch; }

/* ---------------- CTA band + FAQ tweaks ---------------- */
.apt-cta .ap-title { margin-bottom: 12px; }
.apt-faq .ap-faqwrap > .ap-title { margin-bottom: 0; }
.apt-faq .ap-faq-a a { text-decoration: underline; }

/* =====================================================================
   Round 2 (QA2, 7-Oct-2026)
   ===================================================================== */
/* hero: chuna hua airport lamba ho to "..." (pw-widgets bhi deta hai; yahan pakka) */
.apt-hero #airport-search { text-overflow: ellipsis; }
/* tablet 768: trust row 3 + 1 me toot-ti thi - 2 x 2 grid, beech me */
@media (min-width: 600px) and (max-width: 1023.98px) {
    .apt-hero .ap-trust { display: grid; grid-template-columns: repeat(2, max-content); justify-content: center; gap: 10px 40px; }
}
/* rates + trip table ke lot links: 44px tap area, row ki height wahi */
.apt-rates .ap-table td a, .apt-trip .ap-table td a { display: inline-block; padding: 12px 0; margin: -12px 0; }

/* GBP listing ke baghair lot (Parking Place LGA): na khali stars, sirf saada note */
.apt-rev.is-none .apt-rev-count { font-size: .9375rem; color: var(--ink); margin-top: 4px; }
.apt-rev.is-none a { color: var(--link); }

/* cost section: per-lot trip totals table */
.apt-h3 { font: 700 1.25rem/1.5 var(--font); color: var(--ink); margin: 32px 0 12px; }
@media (min-width: 1024px) { .apt-h3 { font-size: 1.375rem; margin-top: 40px; } }
.apt-trip .ap-table { min-width: 0; }
.apt-trip .ap-table th:not(:first-child), .apt-trip .ap-table td:not(:first-child) { text-align: right; white-space: nowrap; }
.apt-trip .ap-table td:not(:first-child) { font-variant-numeric: tabular-nums; }
.apt-deal { color: var(--teal); font-weight: 700; margin-left: 1px; cursor: help; }
@media (max-width: 767.98px) {
    .apt-trip .ap-table { font-size: .875rem; }
    .apt-trip .ap-table th, .apt-trip .ap-table td { padding: 6px 5px; }
}
.apt-cost .ap-prose h3:first-child { margin-top: 0; }

/* JFK: "Best parking for your trip" - 3 cards */
.apt-best-lead { max-width: 80ch; margin-bottom: 24px; }
.apt-best-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 900px) { .apt-best-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.apt-best-item { border: 1px solid rgba(0, 0, 0, .125); border-top: 4px solid var(--lime); border-radius: var(--r); padding: 20px; background: #fff; }
.apt-best-item h3 { font: 700 1.125rem/1.4 var(--font); color: var(--ink); margin-bottom: 8px; }
.apt-best-item p { font-size: 1rem; line-height: 1.55; }

/* JFK terminal list + source line */
.apt-shuttle .apt-terms { margin-top: .5rem; }
.apt-shuttle .apt-terms li + li { margin-top: .35rem; }
.apt-src { font-size: .875rem; color: var(--muted); }
.apt-intro h3 { font: 700 1.25rem/1.5 var(--font); color: var(--ink); margin: 1.75rem 0 .5rem; }

/* =====================================================================
   Load glitches (10-Oct-2026)
   ===================================================================== */
/* Leaflet apna #ddd grey box lagata hai (leaflet.css) - tiles aane tak wahi halka grid rahe, grey flash nahi */
.apt-map.leaflet-container {
    background: var(--bg-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23e2e8e9' stroke-width='1'/%3E%3C/svg%3E");
}
/* photo load fail (pw-airport.js photoFail): alt text / toota icon nahi - saada box, retry kamyab ho to photo wapas */
#main img.is-broken { visibility: hidden; }
/* #rates / #cost jaise links: hissa sticky header (56 / 80px) ke neeche na chhupe - landing jaisa 8px fasla */
#main section[id], #main article[id] { scroll-margin-top: 64px; }
@media (min-width: 1024px) { #main section[id], #main article[id] { scroll-margin-top: 88px; } }
