/* =======================================================================
 PISTEKART ITALIA / EDITORIAL TRACK — v3
 Brand & layout layer; template IDs, data attributes, model bindings,
 Leaflet coordinates, forms, event cards and service requests unchanged.
 Written after White Edition to replace its overly-flat white presentation.
 ======================================================================= */
:root {
  --bg:#f2f5f6;
  --panel:#fff;
  --panel-soft:#eaf0f3;
  --text:#1b3548;
  --muted:#647783;
  --line:#d5e0e5;
  --red:#843044;
  --red2:#6b2437;
  --blue:#23465f;
  --blue-dark:#152f42;
  --blue-soft:#e9f0f3;
  --pm-bg:#f2f5f6;
  --pm-panel:#fff;
  --pm-panel-2:#edf2f4;
  --pm-accent:#23465f;
  --pm-danger:#843044;
  --shadow-clean:0 9px 26px rgba(18,45,64,.055);
  --radius:8px;
}
html {background:var(--bg) !important;scroll-padding-top:82px;}
body:not(.promotion-management) { background:var(--bg) !important;color:var(--text); }
body:not(.promotion-management) :is(h1,h2,h3,h4,h5) { text-wrap:balance; }
body:not(.promotion-management) :is(.main-content,.home-shell,.page-shell) { overflow:visible; }

/* The brand is white-on-transparent: let it live directly on a blue navbar. */
.site-navbar,.main-content > .site-navbar {
  background:#16354b !important;
  background-image:linear-gradient(103deg,#153448 0%,#274c65 100%) !important;
  border:0 !important;
  border-bottom:3px solid #843044 !important;
  color:#fff !important;
  height:80px !important;
  min-height:80px !important;
  padding-inline:max(24px,calc((100vw - 1380px)/2)) !important;
  box-shadow:0 3px 10px rgba(14,36,52,.10) !important;
}
.site-navbar .logo {
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
}
.site-navbar .logo img { height:40px !important;max-width:185px !important;width:auto !important; }
.site-navbar .navbar-links a:not(.login-btn) {
  color:#e5ebef !important;
  font-size:1.12rem;
  letter-spacing:.035em;
  font-weight:600;
}
.site-navbar .navbar-links a:not(.login-btn):is(:hover,.active,[aria-current="page"]) {color:#fff !important;}
.site-navbar .navbar-links a:not(.login-btn)::after {background:#bb7885 !important;height:3px !important;}
.site-navbar .login-btn {background:#8b3346 !important;border:1px solid #ae6474 !important;border-radius:4px !important;min-width:106px !important;box-shadow:none !important;}
.site-navbar .login-btn:hover {background:#6e2639 !important;}
.site-navbar .site-menu-toggle {background:transparent !important;border:1px solid #7891a1 !important;border-radius:4px !important;}
.site-navbar .site-menu-toggle span {background:white !important;}
.site-navbar .site-mobile-menu:not([hidden]) {background:#18394f !important;border-top:1px solid #3d5d70;border-bottom:3px solid var(--red) !important;box-shadow:0 12px 18px rgba(10,28,43,.2) !important;}
.site-navbar .site-mobile-menu a {color:#f3f7f9 !important;}
.site-navbar .site-mobile-menu a:is(:hover,[aria-current="page"]) {color:#fff !important;background:#863347 !important;}

/* Unmistakable split-photo masthead. Not a fogged-out white image. */
body:not(.promotion-management) :is(.hero-catch,.page-hero) {
  isolation:isolate;
  background-color:#18384d !important;
  background-image:linear-gradient(90deg,#18384d 0%,#18384d 42%,rgba(24,56,77,.97) 49%,rgba(24,56,77,.76) 59%,rgba(24,56,77,.13) 76%,rgba(24,56,77,.07) 100%),url('/sfondo.png') !important;
  background-position:center,right 44% !important;
  background-size:cover,cover !important;
  border-bottom:4px solid var(--red) !important;
  color:#fff !important;
  box-shadow:none !important;
}
body:not(.promotion-management) :is(.hero-catch,.page-hero)::before,
body:not(.promotion-management) :is(.hero-catch,.page-hero)::after {content:none !important;}
body:not(.promotion-management) .hero-catch { min-height:358px;padding:63px max(24px,calc((100vw - 1380px)/2)) 66px !important; }
body:not(.promotion-management) .hero-catch-inner {position:relative;z-index:2;max-width:690px;}
body:not(.promotion-management) .hero-title {
  font-family:'Teko',sans-serif !important;
  font-style:italic !important;
  font-size:clamp(4.2rem,6.9vw,7.2rem) !important;
  font-weight:700 !important;
  line-height:.83 !important;
  letter-spacing:-.038em !important;
  text-shadow:none !important;
  color:#fff !important;
  max-width:850px;
  text-transform:uppercase;
}
body:not(.promotion-management) .hero-title span {color:#cc8794 !important;text-shadow:none !important;margin-top:7px;}
body:not(.promotion-management) .hero-subtitle {font-size:1.04rem;line-height:1.62;max-width:460px;color:#e0e8ec !important;margin-top:26px;font-weight:500;}
.hero-eyebrow {display:flex;align-items:center;gap:11px;margin:0 0 25px;font-size:.73rem;font-family:Inter,sans-serif;font-weight:800;letter-spacing:.12em;color:#cf9ca6;line-height:1.2;}
.hero-eyebrow span {display:inline-block;width:24px;height:2px;background:#cf9ca6;}
.hero-photo-signature {position:absolute;bottom:24px;right:max(24px,calc((100vw - 1380px)/2));display:flex;align-items:center;gap:10px;color:#fff;font:800 .68rem Inter,sans-serif;letter-spacing:.14em;text-shadow:0 1px 4px #19384dcc;z-index:2;}
.signature-line {width:35px;height:3px;background:#af5165;}
body:not(.promotion-management) .hero-actions {margin-top:27px;gap:11px;}
body:not(.promotion-management) .hero-btn {height:46px;border-radius:4px !important;font-size:1.16rem !important;letter-spacing:.025em;padding:0 20px;font-weight:700;}
body:not(.promotion-management) .hero-btn.primary {background:#8c3448 !important;border-color:#8c3448 !important;}
body:not(.promotion-management) .hero-btn.secondary {background:#fff !important;border-color:#fff !important;color:#18384d !important;}
body:not(.promotion-management) .hero-btn:hover {filter:brightness(1.07) !important;}
/* Secondary page mastheads are deliberately shorter and calmer. */
body:not(.promotion-management) .hero-catch:not(#heroCatch) {min-height:310px;padding-block:56px !important;}
body:not(.promotion-management) .hero-catch:not(#heroCatch) .hero-title {font-size:clamp(3.7rem,6vw,6.1rem) !important;}

/* Sections are editorial bands, not floating white rectangles. */
body:not(.promotion-management) .home-shell {
  width:min(100%,1428px);
  margin:0 auto !important;
  padding:24px clamp(14px,2.3vw,36px) 43px !important;
  z-index:auto !important;
}
body:not(.promotion-management) .page-shell {width:min(100%,1440px);margin:0 auto !important;padding:28px clamp(16px,2.4vw,36px) 42px !important;}
body:not(.promotion-management) :is(.home-panel,.page-panel) {
  background:#fff !important;
  border:1px solid #d6e0e5 !important;
  border-radius:7px !important;
  box-shadow:0 4px 15px rgba(20,52,73,.035) !important;
  margin-bottom:24px !important;
  overflow:hidden;
}
body:not(.promotion-management) :is(.events-block,#piste-section,.videos-carousel) {padding:27px clamp(17px,2.4vw,34px) 31px !important;}
body:not(.promotion-management) .section-headline {align-items:flex-end;gap:14px;margin-bottom:22px !important;position:relative;}
body:not(.promotion-management) :is(.section-title,.section-headline h2,.page-title) {
  font-family:'Teko',sans-serif !important;
  font-size:clamp(2.6rem,3.7vw,4.1rem) !important;
  line-height:.86 !important;
  font-weight:700 !important;
  font-style:italic !important;
  letter-spacing:-.025em !important;
  text-transform:uppercase;
  color:#17394f !important;
  margin:0 !important;
}
body:not(.promotion-management) .section-link {font-size:1.18rem;font-family:Teko,sans-serif;font-weight:700;letter-spacing:.035em;color:var(--red) !important;gap:11px;padding-bottom:5px;}
body:not(.promotion-management) .section-link i {font-size:.85rem;}
body:not(.promotion-management) .events-block {border-top:5px solid #183d54 !important;}
body:not(.promotion-management) .events-block .section-headline::before {content:'01 / EVENTI';display:block;position:absolute;top:-9px;left:0;transform:translateY(-100%);font:800 .63rem Inter,sans-serif;letter-spacing:.14em;color:#7a3a4b;}
body:not(.promotion-management) #piste-section {
  background:#e8eff3 !important;
  border:1px solid #cddde5 !important;
  border-left:5px solid #86384b !important;
}
body:not(.promotion-management) #piste-section .section-headline::before {content:'02 / CIRCUITI';display:block;position:absolute;top:-9px;left:0;transform:translateY(-100%);font:800 .63rem Inter,sans-serif;letter-spacing:.14em;color:#8b3a4f;}
body:not(.promotion-management) .videos-carousel {background:#f7f9fa !important;border-top:4px solid #23465f !important;}
body:not(.promotion-management) .videos-carousel .section-headline::before {content:'03 / MEDIA';display:block;position:absolute;top:-9px;left:0;transform:translateY(-100%);font:800 .63rem Inter,sans-serif;letter-spacing:.14em;color:#8b3a4f;}
body:not(.promotion-management) .events-page {grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:16px !important;}
/* Keep photo event cards and their dynamic content exactly as supplied. */
body:not(.promotion-management) .event-card-moderno {border-radius:6px !important;}
/* Editorial accents reserved for the container, not an artificial navy cut across cards. */
body:not(.promotion-management) .event-card-gradient {background:linear-gradient(180deg,rgba(13,30,43,.03) 0%,rgba(13,30,43,.22) 36%,rgba(13,30,43,.92) 100%) !important;}

/* Map / search UI: gentle contrast, a single clear visual hierarchy. */
body:not(.promotion-management) :is(.filter-section,.results-tab,.track-info-panel) {
  background:white !important;
  border:1px solid #d1dde3 !important;
  border-radius:5px !important;
  box-shadow:none !important;
}
body:not(.promotion-management) .filter-section {padding:19px !important;}
body:not(.promotion-management) .filter-btn {background:#234b64 !important;border-color:#234b64 !important;border-radius:4px !important;}
body:not(.promotion-management) :is(.filter-section input,.filter-section select) {border-radius:4px !important;background:#fff !important;border-color:#bfcdd5 !important;}
body:not(.promotion-management) .field-label {color:#324f61 !important;font-weight:650 !important;}
body:not(.promotion-management) .results-tab {padding:8px !important;}
body:not(.promotion-management) .track-row {border-radius:5px !important;}
body:not(.promotion-management) .track-row.selected {background:#e8eff3 !important;border-left:3px solid #893d50 !important;}
body:not(.promotion-management) :is(#map,#track-map,.leaflet-map) {border:1px solid #c4d3dc !important;border-radius:5px !important;}
body:not(.promotion-management) #map .leaflet-tile {filter:none !important;}
body:not(.promotion-management) .pki-dark-tiles .leaflet-tile-pane {filter:grayscale(.35) invert(.92) hue-rotate(170deg) brightness(.68) contrast(1.14) !important;}
.pki-map-style-control.leaflet-bar {border-radius:4px !important;}
.pki-map-style-trigger {font-size:12px;font-weight:650;}
/* Map markers/popup/tile data are not touched. */
body:not(.promotion-management) .leaflet-popup-content-wrapper {border-radius:5px !important;}
body:not(.promotion-management) .videos-nav-btn,
body:not(.promotion-management) .mute-btn {background:#1c4057 !important;color:#fff !important;border-color:#1c4057 !important;box-shadow:none !important;}
body:not(.promotion-management) .video-indicators {background:#dfebf0 !important;}
body:not(.promotion-management) .video-indicator:not(.active) {background:#aabdc8 !important;box-shadow:none !important;}
body:not(.promotion-management) .video-wrapper {border-radius:5px;box-shadow:none !important;}

/* Track detail: keep its good layout, add contrast to the huge white regions. */
body:not(.promotion-management) .track-top-stage {background:#e4edf2 !important;border-bottom:4px solid var(--red) !important;}
body:not(.promotion-management) .track-top-stage::before {background:linear-gradient(90deg,rgba(246,249,250,.96) 0%,rgba(246,249,250,.90) 52%,rgba(246,249,250,.46) 100%) !important;}
body:not(.promotion-management) .track-top-stage::after {background:linear-gradient(180deg,transparent 55%,#e4edf2 100%) !important;}
body:not(.promotion-management) .track-top-bg {opacity:.43 !important;}
body:not(.promotion-management) .track-top-stage :is(.hero-title,.track-hero-title) {font-style:italic !important;}
body:not(.promotion-management) :is(.calendar-container,.fleet-panel,.events-panel,.faq-panel,.media-panel,.info-card,.card,.page-panel) {border-top:3px solid #d1dfe6 !important;}
body:not(.promotion-management) :is(.calendar-header,.track-panel-head,.section-header) {border-bottom-color:#cbd9e0 !important;}
body:not(.promotion-management) :is(.track-note-box,.track-detail-block,.kart-mini-card) {background:#edf3f6 !important;}

/* Admin and promotion editors: same brand vocabulary, never overwhelm controls. */
body:has(.admin-header) .admin-header,body:has(.page-header) .page-header {
  background:linear-gradient(108deg,#17394f,#2c526a) !important;
  color:#fff !important;
  border-bottom:3px solid #843044 !important;
}
body:has(.admin-header) .admin-header h1,body:has(.page-header) .page-header h1,
body:has(.admin-header) .admin-header span {color:white !important;}
body:has(.admin-header) .admin-header a[href] {background:#fff !important;color:#18394f !important;}
body:has(.admin-header) :is(.section-card,.accordion-item),body:has(.page-header) :is(.main-section,.item-card) {border-radius:6px !important;}
body.promotion-management {background:#edf2f5 !important;}
body.promotion-management .pm-header {border:0 !important;border-left:5px solid var(--red) !important;background:#18394f !important;color:white !important;}
body.promotion-management .pm-header h1,body.promotion-management .pm-header p,body.promotion-management .pm-header p strong {color:#fff !important;}
body.promotion-management .pm-header .pm-btn {background:white !important;color:#18394f !important;}
body.promotion-management .pm-section-heading {background:#e9f0f4 !important;}
body.promotion-management .pm-section-heading h2 {font-style:italic;}
body:not(.promotion-management) footer {background:#16364b !important;color:#c3d1d9 !important;border:0 !important;border-top:3px solid var(--red) !important;}
body:not(.promotion-management) .mobile-bottom-nav {background:#16354b !important;border-top:2px solid #823244 !important;box-shadow:0 -3px 14px rgba(20,42,56,.12) !important;}
body:not(.promotion-management) .mobile-nav-item {color:#b9c9d3 !important;}
body:not(.promotion-management) .mobile-nav-item.active {background:#284d64 !important;color:#fff !important;box-shadow:inset 0 3px #c58291 !important;}

/* Respect the existing page's dynamic layout while making it fit all screens. */
@media(max-width:1190px) {
  .site-navbar,.main-content > .site-navbar {padding-inline:18px !important;}
  body:not(.promotion-management) .hero-catch {padding-inline:clamp(20px,4vw,48px) !important;}
  body:not(.promotion-management) .events-page {grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  body:not(.promotion-management) .piste-layout {min-width:0;}
}
@media(max-width:1080px) {
  .site-navbar,.main-content > .site-navbar {height:66px !important;min-height:66px !important;padding-inline:16px !important;}
  .site-navbar .logo {padding:0 !important;min-height:0 !important;}
  .site-navbar .logo img {height:34px !important;max-width:152px !important;}
  .site-navbar .site-mobile-menu:not([hidden]) {grid-template-columns:repeat(2,minmax(0,1fr));}
  .site-navbar .login-btn {height:38px !important;min-width:77px !important;}
  body:not(.promotion-management) .hero-catch {min-height:375px;padding:53px 5% 55px !important;}
  body:not(.promotion-management) .hero-title {font-size:clamp(4.1rem,9vw,6.5rem) !important;}
  body:not(.promotion-management) .hero-photo-signature {right:5%;}
  body:not(.promotion-management) .home-shell {padding-inline:14px !important;}
}
@media(max-width:768px) {
  body:not(.promotion-management) :is(.hero-catch,.page-hero) {
    background-image:linear-gradient(90deg,rgba(21,52,73,.94),rgba(21,52,73,.86) 60%,rgba(21,52,73,.65)),url('/sfondo.png') !important;
    background-position:center,center !important;
  }
  body:not(.promotion-management) .hero-catch {min-height:420px;padding:43px 21px 47px !important;}
  body:not(.promotion-management) .hero-catch:not(#heroCatch) {min-height:295px;padding:43px 20px !important;}
  body:not(.promotion-management) .hero-title {font-size:clamp(4rem,13vw,6.1rem) !important;line-height:.82 !important;max-width:640px !important;}
  body:not(.promotion-management) .hero-catch:not(#heroCatch) .hero-title {font-size:clamp(3.8rem,12vw,5rem) !important;}
  body:not(.promotion-management) .hero-subtitle {max-width:460px;font-size:.94rem;margin-top:22px;}
  .hero-eyebrow {font-size:.66rem;margin-bottom:23px;}
  .hero-photo-signature {display:none;}
  body:not(.promotion-management) .home-shell {padding:13px 12px 30px !important;}
  body:not(.promotion-management) :is(.events-block,#piste-section,.videos-carousel) {padding:22px 16px 24px !important;}
  body:not(.promotion-management) :is(.home-panel,.page-panel) {border-radius:6px !important;margin-bottom:14px !important;}
  body:not(.promotion-management) .section-headline {margin-bottom:18px !important;align-items:flex-start;gap:9px;}
  body:not(.promotion-management) .section-title {font-size:clamp(2.35rem,8.3vw,3.2rem) !important;}
  body:not(.promotion-management) .section-link {font-size:.97rem;padding-top:2px;}
  body:not(.promotion-management) .events-page {grid-template-columns:1fr !important;}
  body:not(.promotion-management) .piste-layout {display:flex;flex-direction:column;gap:10px;}
  body:not(.promotion-management) .filter-section {padding:15px !important;}
  body:not(.promotion-management) .results-tab {max-height:300px;}
  body:not(.promotion-management) .track-top-stage {border-bottom-width:3px !important;}
  body:not(.promotion-management) .track-top-bg {opacity:.29 !important;}
  body:not(.promotion-management) .hero-actions {flex-direction:row !important;gap:9px;}
  body:not(.promotion-management) .hero-btn {width:auto !important;max-width:100%;flex:1 1 180px;white-space:normal;text-align:center;}
}
@media(max-width:420px) {
  .site-navbar,.main-content > .site-navbar {padding-inline:11px !important;gap:8px !important;}
  .site-navbar .logo img {height:28px !important;max-width:126px !important;}
  .site-navbar .login-btn {min-width:66px !important;padding:0 9px !important;}
  .site-navbar .site-menu-toggle {height:36px;width:37px;flex-basis:37px;}
  body:not(.promotion-management) .hero-catch {padding-inline:17px !important;min-height:415px;}
  body:not(.promotion-management) .hero-title {font-size:clamp(3.8rem,14.6vw,5.25rem) !important;}
  body:not(.promotion-management) .hero-catch:not(#heroCatch) .hero-title {font-size:clamp(3.25rem,12.5vw,4.7rem) !important;}
  body:not(.promotion-management) .home-shell {padding-inline:9px !important;}
  body:not(.promotion-management) :is(.events-block,#piste-section,.videos-carousel) {padding:22px 12px !important;}
  body:not(.promotion-management) .section-headline {flex-wrap:wrap !important;}
  body:not(.promotion-management) .section-link {margin-top:1px;}
}
@media(prefers-reduced-motion:reduce) {
 body:not(.promotion-management) :is(.hero-catch,.event-card-moderno,.video-item,.hero-btn) {transition:none !important;}
}
/* No glowing map pins: clear position and state without luminous effects. */
body:not(.promotion-management) #map .custom-marker,
body:not(.promotion-management) #map .custom-marker:hover,
body:not(.promotion-management) #map .custom-marker.highlighted,
body:not(.promotion-management) #map .custom-marker.selected {
  filter:none !important;
}
/* Explicit full-bleed layout on the track detail template too. */
body:not(.promotion-management) {margin:0 !important;}
@media(max-width:768px) {
  body:not(.promotion-management) .track-top-stage .hero-facts {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px 10px !important;
    align-items:start !important;
    justify-items:stretch !important;
    padding-block:8px 12px !important;
  }
  body:not(.promotion-management) .track-top-stage .hero-fact {
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    min-width:0 !important;
    width:100% !important;
    text-align:left !important;
    gap:6px !important;
  }
  body:not(.promotion-management) .track-top-stage .hero-fact > span {
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:4px !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  body:not(.promotion-management) .track-top-stage .hero-fact :is(strong,small) {
    display:block !important;
    text-align:left !important;
    max-width:100% !important;
    overflow-wrap:anywhere !important;
  }
}
