/* =========================================================
   Alfa Park V30 — visual consistency, readable dark sections,
   richer inner pages and crawl-friendly presentation.
   ========================================================= */

/* Internal pages should never open with an invisible white header on a light hero. */
body.apv-inner-page .apv-header:before{
  background:rgba(8,20,13,.94)!important;
  backdrop-filter:blur(16px)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.08)!important;
}
body.apv-inner-page .apv-header{color:#fff!important}
body.apv-inner-page .apv-header .apv-menu a,
body.apv-inner-page .apv-header .apv-phone,
body.apv-inner-page .apv-header .apv-menu-toggle{color:#fff!important}

/* Dark / green section contrast audit. Global .apv-section h2 em was green,
   which became unreadable on forest backgrounds. */
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta,.apv-program-hero,.apv-page-hero) h1,
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta,.apv-program-hero,.apv-page-hero) h2,
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta,.apv-program-hero,.apv-page-hero) h3{
  color:#fff!important;
}
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta,.apv-program-hero,.apv-page-hero) h1 em,
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta,.apv-program-hero,.apv-page-hero) h2 em,
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta,.apv-program-hero,.apv-page-hero) h3 em{
  color:var(--lime)!important;
}
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta) .apv-eyebrow{
  color:#dbe5df!important;
}
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta) p{
  color:#c9d4cd!important;
}
:is(.apv-obstacle-feature,.apv-booking-promo,.apv-contact-band,.apv-infra,.apv-photo-break,.apv-dark-cta) a:not(.apv-btn){
  color:#fff;
}

/* Photo heroes for previously plain inner pages. */
.apv-inner-photo-hero{
  position:relative;
  min-height:610px;
  padding:190px 0 82px;
  display:flex;
  align-items:end;
  overflow:hidden;
  color:#fff;
  background:#0c1c13;
}
.apv-inner-photo-hero__media{position:absolute;inset:0}
.apv-inner-photo-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.92) contrast(1.03)}
.apv-inner-photo-hero__media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(5,15,9,.92) 0%,rgba(5,15,9,.72) 43%,rgba(5,15,9,.22) 82%),linear-gradient(0deg,rgba(5,15,9,.54),transparent 54%);
}
.apv-inner-photo-hero>.apv-shell{position:relative;z-index:2}
.apv-inner-photo-hero h1{max-width:920px;margin:0 0 22px;color:#fff;font-size:clamp(48px,5.4vw,84px);line-height:.97;letter-spacing:-.06em;font-weight:900}
.apv-inner-photo-hero h1 em{font-style:normal;color:var(--lime)}
.apv-inner-photo-hero p{max-width:750px;margin:0;color:#d7e0da;font-size:18px;line-height:1.65}
.apv-inner-photo-hero .apv-eyebrow{color:#dce5df!important}

/* Rich image strip used across inner pages. */
.apv-visual-gallery{padding:0 0 96px;background:var(--paper)}
.apv-visual-gallery__grid{
  display:grid;
  grid-template-columns:1.35fr .82fr .82fr;
  grid-auto-rows:220px;
  gap:14px;
}
.apv-visual-gallery__item{position:relative;margin:0;overflow:hidden;border-radius:24px;background:#102217;box-shadow:0 16px 45px rgba(8,26,14,.08)}
.apv-visual-gallery__item.is-featured{grid-row:span 2}
.apv-visual-gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.apv-visual-gallery__item:hover img{transform:scale(1.035)}
.apv-visual-gallery__item>span{position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,18,10,.18),transparent 56%);pointer-events:none}

/* Company page: use real action photography instead of a map screenshot as hero. */
.apv-business-hero{background-image:linear-gradient(90deg,rgba(5,16,9,.9),rgba(5,16,9,.34)),var(--apv-company-hero)!important;background-size:cover!important;background-position:center!important}

/* Contact page polish. */
.apv-contact-page-grid{align-items:start}
.apv-contact-card{position:relative;isolation:isolate;background:linear-gradient(155deg,#0c2116,#153d2b)!important;box-shadow:0 28px 70px rgba(9,30,18,.14)}
.apv-contact-card:after{content:"";position:absolute;width:220px;height:220px;right:-70px;bottom:-80px;border-radius:50%;background:radial-gradient(circle,rgba(185,255,56,.16),transparent 68%);z-index:-1}
.apv-contact-card h2{color:#fff!important}
.apv-contact-card a{color:#fff!important}
.apv-contact-card .apv-map-collage img{height:180px!important}
.apv-contact-page-grid>div:last-child>h2{font-size:clamp(34px,3.5vw,52px);line-height:1.02;letter-spacing:-.045em;margin-top:0}
.apv-contact-page-grid>div:last-child>p{color:var(--muted);max-width:560px}

/* Light forms need dark text even when the same form component is reused inside green sections. */
.apv-contact-page-grid .apv-lead-form label>span{color:#314237!important}
.apv-contact-page-grid .apv-form-consent span{color:#5f6c64!important}
.apv-contact-page-grid .apv-form-consent a{color:#173c28!important}
.apv-contact-band .apv-lead-form label>span,
.apv-contact-band .apv-form-consent span,
.apv-contact-band .apv-form-consent a{color:#fff!important}
.apv-contact-band .apv-lead-form input::placeholder,
.apv-contact-band .apv-lead-form textarea::placeholder{color:rgba(255,255,255,.62)!important}

/* About / FAQ / generic pages get more deliberate visual rhythm. */
.apv-about-grid{align-items:start}
.apv-about-grid>div:first-child p{line-height:1.8}
.apv-faq-page-grid aside{padding:16px;border:1px solid #e0e6e1;border-radius:26px;background:#fff;box-shadow:0 18px 44px rgba(13,32,19,.06)}
.apv-faq-page-grid aside img{width:100%;aspect-ratio:1/.72;object-fit:cover}
.apv-faq-page-grid aside h3{margin:8px 4px 12px}
.apv-faq-page-grid aside a{margin:5px 4px;color:#173c28}

.apv-generic-hero{position:relative;min-height:430px;padding:160px 0 64px;display:flex;align-items:end;overflow:hidden;background:#0d2015;color:#fff}
.apv-generic-hero__media{position:absolute;inset:0}
.apv-generic-hero__media img{width:100%;height:100%;object-fit:cover;filter:saturate(.75)}
.apv-generic-hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,15,9,.94),rgba(5,15,9,.55)),linear-gradient(0deg,rgba(5,15,9,.55),transparent)}
.apv-generic-hero>.apv-shell{position:relative;z-index:2}
.apv-generic-hero h1{max-width:900px;margin:0;color:#fff;font-size:clamp(42px,5vw,70px);line-height:1;letter-spacing:-.055em}
.apv-generic-hero .apv-eyebrow{color:#d8e2dc!important}
.apv-generic-content{padding:72px 0 100px}

/* Help crawlers and users: related-link section remains readable and obviously navigable. */
.apv-seo-related{border-top:1px solid #e2e7e3;background:#f4f7f3}
.apv-seo-related__head strong{color:#102217}
.apv-seo-related nav a{background:#fff;color:#14231a;border-color:#dde5df}
.apv-seo-related nav a:hover{border-color:#9aad9d;transform:translateY(-2px)}

/* Desktop consistency. */
@media(min-width:1181px){
  .apv-section>.apv-shell{position:relative}
  .apv-business-options article{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
  .apv-business-options article:hover{transform:translateY(-4px);border-color:#cfd9d1;box-shadow:0 18px 46px rgba(12,30,18,.07)}
}

@media(max-width:980px){
  .apv-visual-gallery__grid{grid-template-columns:1fr 1fr;grid-auto-rows:210px}
  .apv-visual-gallery__item.is-featured{grid-column:1/-1;grid-row:auto;min-height:350px}
}

@media(max-width:780px){
  body.apv-inner-page .apv-header-inner{height:70px}
  .apv-inner-photo-hero{min-height:560px;padding:145px 0 54px}
  .apv-inner-photo-hero h1{font-size:44px;line-height:.98}
  .apv-inner-photo-hero p{font-size:14px;line-height:1.6}
  .apv-visual-gallery{padding-bottom:62px}
  .apv-visual-gallery__grid{grid-template-columns:1fr 1fr;grid-auto-rows:165px;gap:9px}
  .apv-visual-gallery__item{border-radius:17px}
  .apv-visual-gallery__item.is-featured{grid-column:1/-1;min-height:260px}
  .apv-contact-page-grid{gap:24px!important}
  .apv-contact-card{padding:24px!important;border-radius:22px!important}
  .apv-contact-card .apv-map-collage{grid-template-columns:1fr 1fr!important}
  .apv-contact-card .apv-map-collage img{height:120px!important}
  .apv-faq-page-grid aside{padding:12px;border-radius:20px}
  .apv-generic-hero{min-height:350px;padding:130px 0 46px}
  .apv-generic-content{padding:48px 0 76px}
}

@media(max-width:480px){
  .apv-inner-photo-hero h1{font-size:39px}
  .apv-visual-gallery__grid{grid-template-columns:1fr;grid-auto-rows:210px}
  .apv-visual-gallery__item.is-featured{grid-column:auto;min-height:260px}
}
