/* ===================================================================
   "Locate at Airport" map section + feature-bullet list for operator pages
   Extends tokens from bcp-design-system.css — does not redefine them.
=================================================================== */

/* ---------- Features icon grid ---------- */
.feature-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px 20px;
  margin:8px 0 30px;
}
.feature-item{ display:flex; align-items:center; gap:12px; }
.feature-item svg{ flex:none; width:24px; height:24px; color:var(--amber-hover); }
.feature-item span{ font-size:.95rem; color:var(--charcoal); font-weight:500; }

.feature-rule{ border:none; border-top:1px solid var(--border); margin:0 0 30px; }

/* ---------- Security checklist ---------- */
.security-checklist{ list-style:none; margin:8px 0 26px; padding:0; }
.security-checklist li{
  display:flex; align-items:center; gap:10px;
  font-size:.95rem; font-weight:700; color:var(--navy-light);
  margin-bottom:12px;
}
.security-checklist li svg{ flex:none; width:21px; height:21px; color:var(--amber-hover); }

@media(max-width:720px){
  .feature-grid{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:420px){
  .feature-grid{ grid-template-columns:1fr; }
}

/* ---------- Locate / map section ---------- */
.locate-section{ margin:0 0 44px; }
.locate-title{
  font-family:var(--font-display); font-size:1.4rem; font-weight:800; color:var(--navy);
  text-align:center; margin:0 0 8px; padding-top:0; border-top:none;
}
.locate-title-rule{ width:56px; height:3px; background:var(--amber); margin:0 auto 28px; border-radius:2px; }

.locate-grid{ display:grid; grid-template-columns:300px 1fr; gap:24px; align-items:stretch; }
.locate-pins{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:26px; }
.locate-pins li{ display:flex; gap:12px; align-items:flex-start; }
.locate-pin-icon{
  flex:none; width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.locate-pin-icon svg{ width:17px; height:17px; }
.pin-carpark{ background:var(--navy-light); }
.pin-airport{ background:var(--amber-hover); }
.locate-pins h4{ margin:0 0 4px; font-size:.94rem; font-weight:700; color:var(--navy-light); }
.locate-pins p{ margin:0; font-size:.86rem; color:var(--slate); line-height:1.4; }

.locate-map{ border-radius:var(--r-md); overflow:hidden; border:1px solid var(--border); min-height:320px; }
.locate-map iframe{ width:100%; height:100%; min-height:320px; border:0; display:block; }

@media(max-width:720px){
  .locate-grid{ grid-template-columns:1fr; }
  .locate-pins{ flex-direction:row; flex-wrap:wrap; gap:20px; }
  .locate-pins li{ flex:1 1 220px; }
}

/* ---------- Page-lead row (intro text + image) ---------- */
.page-lead-row{
  display:flex; align-items:center; gap:24px; margin:0 0 26px;
}
.page-lead-row .page-lead{ margin:0; flex:1; }
.page-lead-img{
  flex:0 0 220px; width:220px; height:225px; object-fit:cover;
  border-radius:var(--r-lg); border:1px solid var(--border);
}
@media(max-width:720px){
  .page-lead-row{ flex-direction:column-reverse; align-items:stretch; }
  .page-lead-img{ width:100%; height:180px; flex:none; }
}

/* ---------- Jump-to-section nav (top of content-body) ---------- */
.jump-nav-heading{
  font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.09em;
  color:var(--slate); margin-bottom:12px;
}

/* ---------- Jump-to-section pills ---------- */
.jump-pills-wrap{
  background:var(--arctic); border:1px solid var(--border); border-radius:var(--r-md);
  padding:18px 20px 20px; margin:0 0 34px;
}
.jump-pills{ display:flex; flex-wrap:wrap; gap:10px; }
.jump-pill{
  display:inline-flex; align-items:center;
  padding:10px 18px; border-radius:999px;
  background:#dfe7f1; color:#374151; font-weight:700; font-size:.85rem;
  text-decoration:none; transition:background .15s;
}
.jump-pill:hover{ background:var(--navy); text-decoration:none; color:#fff; }

/* ---------- Stats bar (under hero/search widget) ---------- */
.stats-bar{
  background:var(--navy); border-bottom:3px dotted var(--amber);
  padding:26px 0;
}
.stats-grid{ max-width:1200px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:repeat(4,1fr); }
.stat-item{ text-align:center; border-left:1px solid rgba(255,255,255,.12); padding:0 12px; }
.stat-item:first-child{ border-left:none; }
.stat-num{ font-family:var(--font-display); font-size:1.6rem; font-weight:800; color:var(--amber); line-height:1; margin-bottom:6px; }
.stat-label{ font-size:.76rem; color:rgba(255,255,255,.75); }
@media(max-width:800px){ .stats-grid{ grid-template-columns:repeat(3,1fr); gap:20px 0; } .stat-item:nth-child(3n+1){ border-left:none; } }
@media(max-width:480px){ .stats-grid{ grid-template-columns:repeat(2,1fr); } .stat-item:nth-child(odd){ border-left:none; } }

/* ---------- How it works ---------- */
.how-section{ margin:0 0 48px; }
.how-eyebrow{ font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--amber-hover); margin-bottom:8px; }
.how-title{ font-family:var(--font-display); font-size:1.7rem; font-weight:800; color:var(--navy); margin:0 0 10px; padding-top:0; border-top:none; }
.how-sub{ color:var(--slate); font-size:1rem; margin:0 0 30px; }
.how-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.how-step{ text-align:center; }
.how-num{
  width:48px; height:48px; border-radius:50%; border:2px solid var(--amber-hover); color:var(--amber-hover);
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px;
  font-family:var(--font-display); font-weight:800; font-size:1.05rem;
}
.how-step h4{ font-family:var(--font-display); font-size:.98rem; color:var(--charcoal); margin:0 0 8px; }
.how-step p{ font-size:.85rem; color:var(--slate); line-height:1.5; margin:0; }
@media(max-width:800px){ .how-steps{ grid-template-columns:repeat(2,1fr); gap:30px 20px; } }
@media(max-width:480px){ .how-steps{ grid-template-columns:1fr; } }

/* ---------- Featured car parks (Top Picks redesign) ---------- */
.feat-section{ margin:0 0 48px; }
.feat-eyebrow{ font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--amber-hover); margin-bottom:8px; }
.feat-title{ font-family:var(--font-display); font-size:1.7rem; font-weight:800; color:var(--navy); margin:0 0 10px; padding-top:0; border-top:none; }
.feat-sub{ color:var(--slate); font-size:.96rem; margin:0 0 28px; }
.feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
.feat-card{
  background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg);
  padding:24px; position:relative; display:flex; flex-direction:column;
}
.feat-card.popular{ border:2px solid var(--amber); box-shadow:var(--shadow-panel); transform:translateY(-10px); }
.feat-ribbon{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--amber); color:var(--navy); font-size:.72rem; font-weight:800;
  padding:6px 16px; border-radius:999px; white-space:nowrap;
}
.feat-meta{ font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--slate); margin-bottom:8px; }
.feat-name{ font-family:var(--font-display); font-size:1.1rem; font-weight:700; color:var(--charcoal); margin-bottom:8px; }
.feat-rating{ display:flex; align-items:center; gap:6px; font-size:.84rem; color:var(--slate); margin-bottom:16px; }
.feat-rating .stars{ color:var(--amber); letter-spacing:1px; }
.feat-rating .none{ color:var(--slate); font-style:italic; }
.feat-list{ list-style:none; margin:0 0 20px; padding:0; flex:1; }
.feat-list li{ display:flex; gap:8px; font-size:.86rem; color:var(--body-text); margin-bottom:9px; align-items:flex-start; }
.feat-list li svg{ flex:none; width:16px; height:16px; margin-top:2px; color:var(--trust-green); }
.feat-from{ font-size:.76rem; color:var(--slate); margin-bottom:2px; }
.feat-price{ font-family:var(--font-display); font-size:1.5rem; font-weight:800; color:var(--navy); margin-bottom:16px; }
.feat-price span{ font-size:.78rem; font-weight:500; color:var(--slate); }
.feat-btn{ display:block; text-align:center; padding:12px; border-radius:var(--r-sm); font-weight:700; font-size:.9rem; text-decoration:none; }
.feat-btn.outline{ border:2px solid var(--navy); color:var(--navy); }
.feat-btn.solid{ background:var(--amber); color:var(--navy); border:2px solid var(--amber); }

@media(max-width:900px){
  .feat-grid{ grid-template-columns:1fr; }
  .feat-card.popular{ transform:none; order:-1; }
}

/* ---------- Car park comparison table (replaces plain price table) ---------- */
#car-park-comparison{ overflow-x:auto; border:1px solid var(--border); border-radius:var(--r-md); margin:0 0 8px; }
.cmp-table{ width:100%; border-collapse:collapse; background:var(--white); min-width:720px; }
.cmp-table thead th{
  background:var(--navy); color:#fff; text-align:left;
  font-family:var(--font-display); font-weight:700; font-size:.86rem;
  padding:16px 18px;
}
.cmp-table tbody tr{ border-top:1px solid var(--border); }
.cmp-table tbody tr:nth-child(even){ background:#FAFBFD; }
.cmp-table td{ padding:18px; vertical-align:middle; }

.cmp-carpark-cell{ display:flex; align-items:center; gap:16px; }
.cmp-carpark-name{ font-family:var(--font-display); font-weight:700; font-size:.98rem; color:var(--charcoal); }

.cmp-type{ display:flex; align-items:center; gap:7px; font-size:.84rem; color:var(--body-text); white-space:nowrap; }
.cmp-type svg{ width:16px; height:16px; color:var(--slate); flex:none; }

.cmp-transfer{ display:flex; align-items:center; gap:7px; font-size:.84rem; color:var(--body-text); white-space:nowrap; }
.cmp-transfer svg{ width:16px; height:16px; color:var(--slate); flex:none; }

.cmp-price{ font-family:var(--font-display); font-size:1.3rem; font-weight:800; color:var(--navy); white-space:nowrap; }
.cmp-price .per{ display:block; font-size:.74rem; font-weight:500; color:var(--slate); margin-top:2px; }

/* Enlarge the shared .op-dummy badge only inside this table (site default stays 120x60 elsewhere) */
#car-park-comparison .op-dummy{ width:150px; height:80px; font-size:.72rem; }

@media(max-width:640px){
  .cmp-carpark-cell{ flex-direction:column; align-items:flex-start; gap:10px; }
}

/* ---------- FAQ 2-column layout ---------- */
.faq-columns{ display:flex; gap:40px; align-items:flex-start; }
.faq-columns .faq-list{ flex:1; min-width:0; }
 
@media(max-width:760px){
  .faq-columns{ flex-direction:column; gap:0; }
}