/* Atletica Muggiò - personalizzazione Cassiopeia (giallo e blu) */

:root {
  --am-blu: #304ba6;
  --am-blu-scuro: #233a85;
  --am-giallo: #fbda00;
  --am-giallo-chiaro: #fff6bf;
  --cassiopeia-color-primary: #304ba6;
  --cassiopeia-color-link: #304ba6;
  --cassiopeia-color-hover: #233a85;
  --cassiopeia-font-family-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --cassiopeia-font-family-headings: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --cassiopeia-font-weight-headings: 800;
}

body { font-family: var(--cassiopeia-font-family-body); background: #f5f6f9; color: #1f2733; }
h1, h2, h3, .page-header h1, .page-header h2 { color: var(--am-blu); letter-spacing: -.01em; }

/* Testata: logo tondo + scritta vera (Montserrat ospitato in locale), linee di velocità, entrata animata */
@font-face { font-family: "Montserrat AM"; font-weight: 800; font-display: swap; src: url("../fonts/montserrat-latin-800-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat AM"; font-weight: 500; font-display: swap; src: url("../fonts/montserrat-latin-500-normal.woff2") format("woff2"); }
.container-header { position: relative; background: #f6db49; background-image: none; box-shadow: none; overflow: hidden; }
.container-header::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(45deg, transparent 0 46%, rgba(255,255,255,.35) 46% 49%, transparent 49% 96%, rgba(255,255,255,.35) 96% 99%, transparent 99%),
    linear-gradient(45deg, transparent 0 47%, rgba(38,73,164,.10) 47% 50%, transparent 50% 97%, rgba(38,73,164,.10) 97% 100%);
  background-size: 120px 120px, 200px 200px;
  -webkit-mask-image: linear-gradient(90deg, #000 0, rgba(0,0,0,.15) 30%, rgba(0,0,0,.15) 70%, #000 100%);
          mask-image: linear-gradient(90deg, #000 0, rgba(0,0,0,.15) 30%, rgba(0,0,0,.15) 70%, #000 100%);
  animation: am-speed 14s linear infinite;
}
@keyframes am-speed { from { background-position: 0 0, 0 0; } to { background-position: 240px 0, 200px 0; } }
.container-header > .grid-child { position: relative; z-index: 1; }
.container-header .grid-child:not(.container-nav) { padding-bottom: 0; }
.container-header .navbar-brand {
  display: grid; grid-template-columns: auto auto; grid-template-areas: "logo title" "logo desc";
  justify-content: center; align-items: center; column-gap: clamp(.75rem, 2.5vw, 2rem); row-gap: .35rem;
  width: 100%; margin: 0; padding: clamp(.75rem, 2vw, 1.75rem) 0 clamp(.75rem, 1.5vw, 1.5rem);
}
.container-header .navbar-brand a.brand-logo { display: contents; color: #2649a4; text-decoration: none; }
.container-header .brand-logo img { grid-area: logo; display: block; width: auto; height: clamp(64px, 11vw, 150px); max-height: none; margin: 0;
  animation: am-logo-in 1.1s cubic-bezier(.2,.8,.2,1) both; }
.container-header .navbar-brand a.brand-logo::after {
  content: "Atletica Muggió"; grid-area: title; align-self: end; text-align: center;
  font-family: "Montserrat AM", "Montserrat", "Century Gothic", system-ui, sans-serif; font-weight: 800; text-transform: uppercase;
  font-size: clamp(1.45rem, 5.6vw, 4.6rem); line-height: 1; letter-spacing: .01em; color: #2649a4;
  animation: am-title-in .9s .25s cubic-bezier(.2,.8,.2,1) both;
}
.container-header .site-description {
  grid-area: desc; display: block; align-self: start; text-align: center; color: #2649a4; opacity: 1;
  font-family: "Montserrat AM", "Montserrat", system-ui, sans-serif; font-weight: 500;
  font-size: clamp(.55rem, 1.3vw, 1.1rem); letter-spacing: .02em; white-space: normal;
  animation: am-desc-in .8s .6s ease-out both;
}
@keyframes am-logo-in { from { opacity: 0; transform: rotate(-220deg) scale(.4); } to { opacity: 1; transform: none; } }
@keyframes am-title-in { from { opacity: 0; transform: translateX(60px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes am-desc-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.container-header { padding-bottom: 1.25rem; }
.container-header .container-nav { background: var(--am-blu); border-radius: .9rem; padding: 0; overflow: hidden; box-shadow: 0 10px 24px -10px rgba(35,58,133,.55); }
.container-header .container-nav nav { margin: 0; }

/* Menu fisso in alto durante lo scorrimento, con logo piccolo */
.am-mini-logo { display: none; }
body.am-sticky .container-header { overflow: visible; }
body.am-sticky .container-header .container-nav {
  position: fixed; top: 0; left: 50%; transform: translateX(-50%); z-index: 1030;
  width: min(1320px, 100%); max-width: none; margin: 0; border-radius: 0 0 .9rem .9rem;
  flex-wrap: nowrap; align-items: center; animation: am-drop .35s ease-out both;
}
body.am-sticky .container-header .container-nav nav { flex: 1 1 auto; width: auto; min-width: 0; }
body.am-sticky .am-mini-logo { display: flex; align-items: center; flex: 0 0 auto; margin: 0 .5rem 0 .75rem; padding: .3rem 0; }
.am-mini-logo img { height: 40px; width: 40px; border-radius: 50%; background: #f6db49; padding: 2px; }
.am-nav-spacer { display: none; }
body.am-sticky .am-nav-spacer { display: block; }
@keyframes am-drop { from { transform: translate(-50%, -100%); } to { transform: translate(-50%, 0); } }
@media (max-width: 991.98px) {
  body.am-sticky .container-header .container-nav { flex-wrap: wrap; border-radius: 0; }
  body.am-sticky .container-header .navbar-collapse.show, body.am-sticky .container-header .navbar-collapse.collapsing { max-height: calc(100vh - 70px); overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .container-header::before, .container-header .brand-logo img, .container-header .navbar-brand a.brand-logo::after,
  .container-header .site-description, body.am-sticky .container-header .container-nav { animation: none !important; }
}

/* Menu: desktop su una riga (va a capo se serve), telefono con hamburger */
.container-header .metismenu.mod-menu .metismenu-item { padding: 0; font-size: 1rem; }
.container-header .container-nav nav { margin-top: 0; width: 100%; }
.container-header .navbar-toggler { color: #fff; border: 2px solid rgba(255,255,255,.6); border-radius: .5rem; margin: .6rem 0; padding: .35rem .7rem; font-size: 1.3rem; }
.container-header .metismenu > li > a, .container-header .metismenu > li > span,
.container-header .metismenu > li > button { display: block; color: #fff; font-weight: 600; text-transform: uppercase; font-size: .85rem; letter-spacing: .01em; padding: .95rem .6rem; white-space: nowrap; text-decoration: none; transition: background-color .25s ease, color .25s ease; }
/* passaggio del mouse e pagina attiva: colori invertiti (giallo con testo blu) */
.container-header .metismenu > li > a:hover, .container-header .metismenu > li > a:focus-visible,
.container-header .metismenu > li.active > a, .container-header .metismenu > li.current > a { color: var(--am-blu); background: #f6db49; text-decoration: none; }
.container-header .metismenu.mod-menu .metismenu-item > a:hover { text-decoration: none; }
.container-header .metismenu > li { flex: 1 1 auto; text-align: center; }
@media (min-width: 992px) {
  .container-header .navbar-collapse { flex-grow: 1; }
  .container-header .metismenu.mod-menu { flex-wrap: wrap; justify-content: center; width: 100%; }
  .container-header .metismenu > li > a { font-size: .8rem; padding: .85rem .45rem; }
}
@media (min-width: 1200px) {
  .container-header .navbar-collapse { flex-grow: 1; }
  .container-header .metismenu.mod-menu { flex-wrap: nowrap; justify-content: stretch; width: 100%; }
  .container-header .metismenu > li > a { padding: .9rem .75rem; font-size: .9rem; }
}
@media (max-width: 991.98px) {
  .container-header .navbar-collapse { padding-bottom: .5rem; }
  .container-header .metismenu.mod-menu { display: block; }
  .container-header .metismenu > li { border-top: 1px solid rgba(255,255,255,.15); }
  .container-header .metismenu > li > a { display: block; padding: .8rem 1rem; text-align: left; }
  .container-header .container-nav { padding: 0 .75rem; }
}

/* Slider largo come il menu (1320 px, centrato), non a tutto schermo */
.site-grid > .container-banner, .container-banner.full-width {
  grid-column: full-start / full-end !important;
  justify-self: center; width: 100%; max-width: 1320px !important;
  margin: 0 auto 1.5rem !important; padding: 0 !important; box-sizing: border-box;
}
.container-banner .am-slider { margin: 0; }

/* Contenuti in schede bianche */
.site-grid { padding-top: 0; background: linear-gradient(180deg, #f6db49 0, #f6db49 90px, #f5f6f9 420px) no-repeat; }
.container-header { box-shadow: none; }
.com-content-article, .com-contact .contact, .blog-item .item-content, .com-content-category-blog .category-desc {
  background: #fff; border-radius: .75rem; padding: 1.5rem; box-shadow: 0 1px 4px rgba(15,52,122,.08);
}
.blog-item { margin-bottom: 1.5rem; }
.blog-item .item-image img, .com-content-article .item-image img { border-radius: .75rem .75rem 0 0; width: 100%; height: auto; object-fit: cover; }
.blog-item .item-image { margin: 0; }
.blog-item .item-image + .item-content { border-radius: 0 0 .75rem .75rem; }
.news-grid .blog-item .item-image img { aspect-ratio: 16 / 10; }
.blog-item h2 a { color: var(--am-blu); text-decoration: none; }
.blog-item h2 a:hover { color: var(--am-blu-scuro); text-decoration: underline; }
.readmore .btn, .btn-primary { background: var(--am-blu); border-color: var(--am-blu); color: #fff; }
.readmore .btn:hover, .btn-primary:hover { background: var(--am-blu-scuro); border-color: var(--am-blu-scuro); }
figcaption { font-size: .9rem; color: #5a6475; padding: .5rem 0; }

/* Barra laterale */
.sidebar-right .card { border: 0; border-top: 4px solid var(--am-giallo); border-radius: .75rem; box-shadow: 0 1px 4px rgba(15,52,122,.08); }
.sidebar-right .card-header { background: #fff; color: var(--am-blu); font-weight: 800; text-transform: uppercase; border: 0; }
.box-orari p { margin-bottom: .75rem; }
.btn-gare { display: block; background: var(--am-blu); color: #fff !important; border: 4px solid var(--am-giallo); border-radius: .75rem; padding: 1rem; font-size: 1.3rem; font-weight: 800; text-transform: uppercase; text-decoration: none; }
.btn-gare:hover { background: var(--am-blu-scuro); }
.social { display: flex; justify-content: center; gap: .75rem; }
.social img { transition: transform .2s; }
.social img:hover { transform: scale(1.08); }

/* Elenchi rassegna stampa, allegati, link */
ul.rassegna, ul.allegati, ul.link-utili { list-style: none; padding: 0; }
ul.rassegna li, ul.allegati li, ul.link-utili li { padding: .6rem .75rem; border-bottom: 1px solid #e7eaf0; }
ul.rassegna li:hover, ul.link-utili li:hover { background: var(--am-giallo-chiaro); }
ul.allegati li::before { content: "📎 "; }

/* Sponsor e piè di pagina */
.sponsor { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem; }
.sponsor img { max-width: 100%; height: auto; max-height: 81px; }
.footer { background: var(--am-blu); background-image: none; color: #fff; border-top: 6px solid var(--am-giallo); }
.footer a { color: var(--am-giallo); }
.mappa iframe { border: 0; border-radius: .75rem; width: 100%; }

/* Slider della home: transizioni a rotazione (zoom, tendina, cerchio, scorrimento) + effetto Ken Burns */
.am-slider { position: relative; overflow: hidden; border-radius: .9rem; aspect-ratio: 2800 / 1145; background: var(--am-blu-scuro); box-shadow: 0 18px 40px -18px rgba(15,52,122,.6); isolation: isolate; }
.am-slide { position: absolute; inset: 0; margin: 0; opacity: 0; z-index: 0; will-change: opacity, transform, clip-path; }
.am-slide:first-child { opacity: 1; }
.am-slider.js-ready .am-slide { opacity: 0; }
.am-slide img { width: 100%; height: 100%; object-fit: cover; display: block; transform-origin: 50% 50%; }
.am-slide:nth-child(3n+1) img { transform-origin: 20% 30%; }
.am-slide:nth-child(3n+2) img { transform-origin: 80% 40%; }
.am-slide:nth-child(3n) img { transform-origin: 50% 80%; }
.am-slider.js-ready .am-slide.is-active, .am-slider.js-ready .am-slide.is-leaving { opacity: 1; }
.am-slide.is-active { z-index: 2; }
.am-slide.is-leaving { z-index: 1; }
.am-slide.is-active img { animation: am-kenburns var(--am-life, 6.5s) ease-out both; }
.am-slide.is-leaving img { animation: none; transform: scale(1); }
@keyframes am-kenburns { from { transform: scale(1.14); } to { transform: scale(1); } }

/* 1. zoom con sfocatura */
.am-slider[data-fx="zoom"] .am-slide.is-active { animation: am-fx-zoom 1.3s cubic-bezier(.2,.7,.2,1) both; }
@keyframes am-fx-zoom { from { opacity: 0; transform: scale(1.08); filter: blur(10px) saturate(1.4); } to { opacity: 1; transform: none; filter: none; } }
/* 2. tendina diagonale */
.am-slider[data-fx="wipe"] .am-slide.is-active { animation: am-fx-wipe 1.2s cubic-bezier(.77,0,.18,1) both; }
.am-slider[data-fx="wipe"][data-dir="prev"] .am-slide.is-active { animation-name: am-fx-wipe-prev; }
@keyframes am-fx-wipe { from { clip-path: polygon(100% 0, 140% 0, 120% 100%, 80% 100%); } to { clip-path: polygon(-40% 0, 140% 0, 120% 100%, -60% 100%); } }
@keyframes am-fx-wipe-prev { from { clip-path: polygon(-40% 0, 0 0, -20% 100%, -60% 100%); } to { clip-path: polygon(-40% 0, 140% 0, 120% 100%, -60% 100%); } }
/* 3. cerchio che si apre */
.am-slider[data-fx="circle"] .am-slide.is-active { animation: am-fx-circle 1.3s cubic-bezier(.65,0,.35,1) both; }
@keyframes am-fx-circle { from { clip-path: circle(0% at 50% 50%); } to { clip-path: circle(75% at 50% 50%); } }
/* 4. scorrimento con parallasse */
.am-slider[data-fx="slide"] .am-slide.is-active { animation: am-fx-slide-in 1.1s cubic-bezier(.77,0,.18,1) both; }
.am-slider[data-fx="slide"] .am-slide.is-leaving { animation: am-fx-slide-out 1.1s cubic-bezier(.77,0,.18,1) both; }
.am-slider[data-fx="slide"][data-dir="prev"] .am-slide.is-active { animation-name: am-fx-slide-in-prev; }
.am-slider[data-fx="slide"][data-dir="prev"] .am-slide.is-leaving { animation-name: am-fx-slide-out-prev; }
@keyframes am-fx-slide-in { from { transform: translateX(100%); } to { transform: none; } }
@keyframes am-fx-slide-out { from { transform: none; filter: none; } to { transform: translateX(-30%); filter: brightness(.6); } }
@keyframes am-fx-slide-in-prev { from { transform: translateX(-100%); } to { transform: none; } }
@keyframes am-fx-slide-out-prev { from { transform: none; filter: none; } to { transform: translateX(30%); filter: brightness(.6); } }

/* frecce, pallini, barra di avanzamento */
.am-prev, .am-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 3rem; height: 3rem; border: 0; border-radius: 50%; background: rgba(255,255,255,.25); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); color: #fff; font-size: 1.8rem; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .3s, background .3s, transform .3s; }
.am-prev { left: 1rem; } .am-next { right: 1rem; }
.am-slider:hover .am-prev, .am-slider:hover .am-next, .am-slider:focus-within .am-prev, .am-slider:focus-within .am-next { opacity: 1; }
.am-prev:hover, .am-next:hover { background: var(--am-giallo); color: var(--am-blu); transform: translateY(-50%) scale(1.08); }
@media (hover: none) { .am-prev, .am-next { opacity: .9; } }
.am-slider-dots { position: absolute; left: 0; right: 0; bottom: 1rem; display: flex; justify-content: center; gap: .45rem; z-index: 5; }
.am-slider-dots button { width: .65rem; height: .65rem; padding: 0; border: 0; border-radius: 1rem; background: rgba(255,255,255,.6); cursor: pointer; transition: width .4s, background .4s; }
.am-slider-dots button.is-active { width: 2rem; background: var(--am-giallo); }
.am-progress { position: absolute; left: 0; bottom: 0; height: 4px; width: 100%; z-index: 5; background: var(--am-giallo); transform-origin: left; transform: scaleX(0); }
.am-progress.run { animation: am-progress var(--am-delay, 5s) linear forwards; }
.am-slider.is-paused .am-progress.run { animation-play-state: paused; }
@keyframes am-progress { to { transform: scaleX(1); } }
.am-slider::after { content: ""; position: absolute; inset: auto 0 0 0; height: 35%; z-index: 3; pointer-events: none; background: linear-gradient(transparent, rgba(10,30,70,.45)); }
@media (max-width: 575.98px) { .am-prev, .am-next { width: 2.2rem; height: 2.2rem; font-size: 1.3rem; } .am-slider { border-radius: .6rem; } }
@media (prefers-reduced-motion: reduce) { .am-slide, .am-slide img, .am-progress { animation: none !important; } }

/* ===== Menu: bordino, sfumatura interna, evidenziatore scorrevole, pannello a schermo intero da telefono ===== */
.container-header .container-nav {
  background: radial-gradient(120% 160% at 50% -20%, rgba(255,255,255,.16) 0, rgba(255,255,255,0) 55%), linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.08)), var(--am-blu);
  border: 1px solid rgba(255,255,255,.45);
  box-shadow: 0 0 0 1px rgba(35,58,133,.25), inset 0 1px 0 rgba(255,255,255,.28), inset 0 -12px 20px -12px rgba(10,25,70,.45), 0 12px 26px -12px rgba(35,58,133,.6);
}
@media (min-width: 992px) {
  .container-header .metismenu.mod-menu { position: relative; }
  .am-hl { position: absolute; top: 6px; bottom: 6px; left: 0; width: 0; z-index: 0; border-radius: .6rem; pointer-events: none;
    background: linear-gradient(180deg, #ffe772, #f6db49); box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 10px -4px rgba(0,0,0,.35);
    opacity: 0; transition: left .38s cubic-bezier(.6,0,.2,1), width .38s cubic-bezier(.6,0,.2,1), opacity .25s; }
  .am-hl.is-on { opacity: 1; }
  .am-hl-ready > li { position: relative; z-index: 1; }
  .am-hl-ready > li > a, .am-hl-ready > li.active > a, .am-hl-ready > li.current > a,
  .am-hl-ready > li > a:hover, .am-hl-ready > li > a:focus-visible { background: transparent !important; color: #fff; }
  .container-header .am-hl-ready > li.am-hl-target > a { color: var(--am-blu) !important; }
}

/* Pulsante hamburger disegnato (diventa una X) */
.container-header .navbar-toggler .icon-menu { display: none; }
.am-burger { display: inline-block; position: relative; width: 22px; height: 16px; vertical-align: middle; }
.am-burger i { position: absolute; left: 0; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transition: transform .3s, opacity .2s, top .3s; }
.am-burger i:nth-child(1) { top: 0; } .am-burger i:nth-child(2) { top: 7px; } .am-burger i:nth-child(3) { top: 14px; }
body.am-menu-open .am-burger i:nth-child(1) { top: 7px; transform: rotate(45deg); }
body.am-menu-open .am-burger i:nth-child(2) { opacity: 0; }
body.am-menu-open .am-burger i:nth-child(3) { top: 7px; transform: rotate(-45deg); }

@media (max-width: 991.98px) {
  .container-header .navbar-collapse {
    display: flex !important; flex-direction: column; justify-content: center; align-items: stretch;
    position: fixed; inset: 0; z-index: 1050; height: 100vh !important; height: 100dvh !important; padding: 5rem 1.5rem 2rem; overflow-y: auto;
    background: radial-gradient(140% 90% at 50% 0%, #3d5cc0 0, var(--am-blu) 45%, #1f3478 100%);
    visibility: hidden; opacity: 0; transform: scale(1.04); transition: opacity .3s ease, transform .35s ease, visibility 0s linear .35s;
  }
  body.am-menu-open .container-header .navbar-collapse { visibility: visible; opacity: 1; transform: none; transition: opacity .3s ease, transform .35s ease, visibility 0s; }
  body.am-menu-open { overflow: hidden; }
  body.am-menu-open .container-header { overflow: visible; }
  body.am-menu-open .container-header .navbar-toggler { position: fixed; top: 1rem; right: 1rem; z-index: 1060; margin: 0; background: rgba(255,255,255,.12); }
  .am-panel-logo { display: block; width: 84px; height: 84px; margin: 0 auto 1.5rem; }
  .container-header .navbar-collapse .metismenu.mod-menu { display: block; width: 100%; }
  .container-header .navbar-collapse .metismenu > li { border: 0; text-align: center; opacity: 0; transform: translateY(14px); }
  body.am-menu-open .container-header .navbar-collapse .metismenu > li { animation: am-item-in .45s calc(var(--i, 0) * 45ms + .1s) cubic-bezier(.2,.8,.2,1) both; }
  .container-header .navbar-collapse .metismenu > li > a { display: inline-block; font-size: 1.35rem; font-weight: 700; letter-spacing: .03em; padding: .55rem 1.4rem; border-radius: 999px; text-align: center; }
  .container-header .navbar-collapse .metismenu > li > a:hover, .container-header .navbar-collapse .metismenu > li.active > a { background: #f6db49; color: var(--am-blu); }
}
@keyframes am-item-in { to { opacity: 1; transform: none; } }
.am-panel-logo { display: none; }
@media (max-width: 991.98px) { body.am-menu-open .am-panel-logo { display: block; } }
@media (prefers-reduced-motion: reduce) { .am-hl, .container-header .navbar-collapse { transition: none !important; } body.am-menu-open .container-header .navbar-collapse .metismenu > li { animation: none; opacity: 1; transform: none; } }
@media (max-width: 991.98px) {
  body.am-sticky .container-header .container-nav { left: 0; transform: none; width: 100%; animation: none; }
}
@media (max-width: 991.98px) {
  .am-panel-logo { background: #f6db49; border-radius: 50%; padding: 6px; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
  .container-header .navbar-collapse .metismenu.mod-menu .metismenu-item { display: flex; justify-content: center; padding: 0; }
}
@media (min-width: 992px) {
  .container-header .am-hl-ready > li > a { color: #fff !important; }
  .container-header .am-hl-ready > li.am-hl-target > a { color: var(--am-blu) !important; }
}
/* niente sottolineatura nel menu */
.container-header .metismenu a, .container-header .metismenu a:hover, .container-header .metismenu a:focus,
.container-header .metismenu li.active > a, .container-header .metismenu li.current > a { text-decoration: none !important; }

/* ===== Caratteri: Oswald per menu, titoli e pulsanti; Barlow per il testo (ospitati sul sito) ===== */
@font-face { font-family: "Oswald AM"; font-weight: 500; font-display: swap; src: url("../fonts/oswald-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Oswald AM"; font-weight: 600; font-display: swap; src: url("../fonts/oswald-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow AM"; font-weight: 400; font-display: swap; src: url("../fonts/barlow-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Barlow AM"; font-weight: 400; font-style: italic; font-display: swap; src: url("../fonts/barlow-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Barlow AM"; font-weight: 600; font-display: swap; src: url("../fonts/barlow-latin-600-normal.woff2") format("woff2"); }
:root {
  --am-font-titoli: "Oswald AM", "Oswald", "Arial Narrow", sans-serif;
  --am-font-testo: "Barlow AM", "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --cassiopeia-font-family-body: var(--am-font-testo);
  --cassiopeia-font-family-headings: var(--am-font-titoli);
}
body { font-family: var(--am-font-testo); font-size: 1.06rem; line-height: 1.6; }
strong, b { font-weight: 600; }
h1, h2, h3, h4, .page-header h1, .page-header h2, .sidebar-right .card-header, .btn-gare, .readmore .btn {
  font-family: var(--am-font-titoli); font-weight: 600; letter-spacing: .01em;
}
h1, h2 { line-height: 1.15; }
.sidebar-right .card-header { letter-spacing: .05em; }
.container-header .metismenu > li > a, .container-header .metismenu > li > span, .container-header .metismenu > li > button {
  font-family: var(--am-font-titoli); font-weight: 500; letter-spacing: .06em; font-size: 1rem;
}
@media (min-width: 992px) and (max-width: 1199.98px) { .container-header .metismenu > li > a { font-size: .92rem; letter-spacing: .04em; } }
@media (max-width: 991.98px) { .container-header .navbar-collapse .metismenu > li > a { font-size: 1.6rem; font-weight: 500; letter-spacing: .06em; } }

/* Menu: via le lineette di Cassiopeia, voci centrate nel loro spazio */
.container-header .metismenu > li::after, .container-header .metismenu > li > a::after,
.container-header .metismenu > li > button::before { content: none !important; display: none !important; }
.container-header .metismenu.mod-menu > .metismenu-item { justify-content: center; }
@media (min-width: 992px) { .container-header .metismenu > li > a { padding-left: 1rem; padding-right: 1rem; } }
@media (min-width: 992px) and (max-width: 1199.98px) { .container-header .metismenu > li > a { padding-left: .55rem; padding-right: .55rem; } }

/* Testo degli articoli più grande e leggibile */
html { font-size: 100%; }
body { font-size: 1.125rem; line-height: 1.65; }
.com-content-article__body, .com-content-article .item-content, .blog-item .item-content, .com-contact .contact-miscinfo, .com-content-category-blog .category-desc {
  font-size: 1.2rem; line-height: 1.7;
}
.com-content-article__body p, .blog-item .item-content p { margin-bottom: 1em; }
.com-content-article h1, .page-header h1, .page-header h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); }
.blog-item h2 { font-size: clamp(1.4rem, 2.2vw, 1.9rem); }
.sidebar-right { font-size: 1.05rem; }

/* Rete di sicurezza: testo incollato da Word con caratteri e dimensioni propri */
.com-content-article__body [style*="font-family"], .item-content [style*="font-family"], .category-desc [style*="font-family"] { font-family: inherit !important; }
.com-content-article__body :is(p, span, div, li, font)[style*="font-size"], .item-content :is(p, span, div, li, font)[style*="font-size"] { font-size: inherit !important; line-height: inherit !important; }

/* Riflesso di luce che attraversa la testata ogni tanto */
.container-header::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 18%; z-index: 2; pointer-events: none;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.08) 30%, rgba(255,255,255,.55) 50%, rgba(255,255,255,.08) 70%, rgba(255,255,255,0) 100%);
  mix-blend-mode: soft-light; transform: translateX(-160%) skewX(-18deg);
  animation: am-shine 9s 2.2s ease-in-out infinite;
}
@keyframes am-shine {
  0% { transform: translateX(-160%) skewX(-18deg); }
  18% { transform: translateX(700%) skewX(-18deg); }
  100% { transform: translateX(700%) skewX(-18deg); }
}
@media (prefers-reduced-motion: reduce) { .container-header::after { animation: none; display: none; } }
body.am-sticky .container-header::after { display: none; }

/* ===== Arco a "U": fascia gialla sotto la testata che termina con una curva dolce larga quanto lo schermo;
   il fondo dello slider è lo stesso tratto di curva ===== */
:root { --am-arco: clamp(28px, 5vw, 95px); }   /* profondità della curva */
html, body { overflow-x: clip; }
.site-grid { background: none !important; }
.site-grid > .container-banner, .container-banner.full-width { position: relative; isolation: isolate; margin-top: 0 !important; padding-top: 1.25rem !important; }
.container-banner::before {
  content: ""; position: absolute; z-index: -1; top: 0; bottom: 0;
  left: 50%; width: 100vw; transform: translateX(-50%);
  background: #f6db49;
  border-radius: 0 0 50vw 50vw / 0 0 var(--am-arco) var(--am-arco);
}
.container-banner .am-slider {
  border-radius: .9rem .9rem 0 0;
  -webkit-mask-image: linear-gradient(#000, #000), radial-gradient(50vw var(--am-arco) at 50% calc(100% - var(--am-arco)), #000 99.6%, transparent 100%);
          mask-image: linear-gradient(#000, #000), radial-gradient(50vw var(--am-arco) at 50% calc(100% - var(--am-arco)), #000 99.6%, transparent 100%);
  -webkit-mask-size: 100% calc(100% - var(--am-arco)), 100% 100%;
          mask-size: 100% calc(100% - var(--am-arco)), 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: top, center; mask-position: top, center;
  box-shadow: none;
}
.container-banner .am-progress { top: 0; bottom: auto; }
.container-banner .am-slider-dots { bottom: 1.4rem; }
.container-banner + * { margin-top: 1.5rem; }
/* pagine senza slider: la stessa curva chiude la testata */
body:not(:has(.container-banner)) .container-header { border-radius: 0 0 50vw 50vw / 0 0 calc(var(--am-arco) * .6) calc(var(--am-arco) * .6); padding-bottom: calc(1.25rem + var(--am-arco) * .35); }
body:not(:has(.container-banner)) .site-grid { padding-top: 1.5rem; }

/* le linee di velocità sfumano verso il basso, così non c'è uno stacco con la fascia gialla */
.container-header::before {
  -webkit-mask-image: linear-gradient(90deg, #000 0, rgba(0,0,0,.15) 30%, rgba(0,0,0,.15) 70%, #000 100%), linear-gradient(180deg, #000 55%, transparent 100%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, #000 0, rgba(0,0,0,.15) 30%, rgba(0,0,0,.15) 70%, #000 100%), linear-gradient(180deg, #000 55%, transparent 100%);
          mask-composite: intersect;
}

/* Arco: torna la dissolvenza dal giallo al bianco, con una leggera ombra blu che disegna la curva */
.container-banner::before {
  background: linear-gradient(180deg, #f6db49 0, #f6db49 90px, #f5f6f9 420px);
  box-shadow: 0 6px 12px -2px rgba(48,75,166,.28), 0 2px 0 0 rgba(48,75,166,.10);
}
body:not(:has(.container-banner)) .container-header { box-shadow: 0 6px 12px -2px rgba(48,75,166,.28), 0 2px 0 0 rgba(48,75,166,.10); }

/* Arco: bordo "da pista" nei colori sociali (filo blu, filo giallo, filo blu chiaro) + alone blu morbido */
.container-banner::before, body:not(:has(.container-banner)) .container-header {
  box-shadow:
    0 3px 0 0 #304ba6,
    0 7px 0 0 #f6db49,
    0 10px 0 0 rgba(48,75,166,.45),
    0 22px 34px -8px rgba(48,75,166,.45),
    0 40px 60px -20px rgba(48,75,166,.25);
}

/* ===== Briciole di pane a "segmenti di gara" ===== */
.mod-breadcrumbs__wrapper { margin: 0 0 1.25rem; }
.mod-breadcrumbs.breadcrumb {
  display: flex; flex-wrap: wrap; align-items: stretch; gap: .35rem 0; margin: 0; padding: 0 !important;
  background: none; border: 0; font-family: var(--am-font-titoli); font-weight: 500; text-transform: uppercase; letter-spacing: .05em; font-size: .9rem;
}
.mod-breadcrumbs .breadcrumb-item + .breadcrumb-item { padding-left: 0; }
.mod-breadcrumbs .breadcrumb-item + .breadcrumb-item::before { content: none; display: none; }
.mod-breadcrumbs__here, .mod-breadcrumbs__divider {
  display: flex; align-items: center; float: none !important; margin-right: .5rem; padding: .45rem .85rem;
  border-radius: 999px; background: #fff; color: var(--am-blu); font-size: .8rem; box-shadow: inset 0 0 0 1.5px rgba(48,75,166,.35);
}
.mod-breadcrumbs__here::before {
  content: ""; width: .85em; height: .85em; margin-right: .4em; background: #f6db49; border-radius: 50%; box-shadow: 0 0 0 2px var(--am-blu);
}
.mod-breadcrumbs__item {
  display: flex; align-items: stretch; margin-left: -.55rem; position: relative;
  filter: drop-shadow(0 2px 3px rgba(48,75,166,.18));
}
.mod-breadcrumbs__here + .mod-breadcrumbs__item, .mod-breadcrumbs__divider + .mod-breadcrumbs__item { margin-left: 0; }
.mod-breadcrumbs__item > a, .mod-breadcrumbs__item > span {
  display: flex; align-items: center; gap: .4em; padding: .45rem 1.35rem .45rem 1.45rem; line-height: 1.2;
  background: #e9edf8; color: var(--am-blu); text-decoration: none !important;
  clip-path: polygon(0 0, calc(100% - .7rem) 0, 100% 50%, calc(100% - .7rem) 100%, 0 100%, .7rem 50%);
  transition: background-color .25s, color .25s, transform .25s;
  max-width: 60vw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mod-breadcrumbs__item:first-of-type > a, .mod-breadcrumbs__here + .mod-breadcrumbs__item > a {
  clip-path: polygon(0 0, calc(100% - .7rem) 0, 100% 50%, calc(100% - .7rem) 100%, 0 100%);
  border-radius: .5rem 0 0 .5rem; padding-left: 1rem; background: #f6db49;
}
.mod-breadcrumbs__item:first-of-type > a::before, .mod-breadcrumbs__here + .mod-breadcrumbs__item > a::before {
  content: ""; width: 1em; height: 1em; background: currentColor; flex: 0 0 auto;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.mod-breadcrumbs__item > a:hover, .mod-breadcrumbs__item > a:focus-visible { background: var(--am-blu); color: #fff; }
.mod-breadcrumbs__item.active > span {
  background: var(--am-blu); color: #fff; font-weight: 600;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, .7rem 50%); border-radius: 0 .5rem .5rem 0; padding-right: 1.1rem;
  position: relative; padding-right: 2.3rem;
}
.mod-breadcrumbs__item.active > span::after {
  content: ""; position: absolute; right: .7rem; top: 22%; bottom: 22%; width: .85rem;
  background: linear-gradient(90deg, #f6db49 0 3px, transparent 3px 6px, #f6db49 6px 9px, transparent 9px);
  transform: skewX(-20deg);
}
@media (max-width: 575.98px) {
  .mod-breadcrumbs__here { display: none; }
  .mod-breadcrumbs.breadcrumb { font-size: .8rem; }
  .mod-breadcrumbs__item > a, .mod-breadcrumbs__item > span { max-width: 70vw; padding-top: .4rem; padding-bottom: .4rem; }
}

/* Atleta al rallentatore che corre dentro le briciole di pane */
.mod-breadcrumbs.has-runner { position: relative; }
.am-runner { position: absolute; top: 0; left: 0; width: 30px; height: 40px; margin: 0; padding: 0; list-style: none;
  pointer-events: none; opacity: 0; z-index: 3; transform: translateX(var(--am-start, 0)); }
.am-runner svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.am-runner line { stroke: var(--am-blu-scuro, #233a85); stroke-width: 7.5; stroke-linecap: round; stroke-linejoin: round; }
.am-runner .am-r-torso { stroke-width: 11; }
.am-runner circle { fill: var(--am-blu-scuro, #233a85); }
.am-runner .am-r-b line { stroke: #4f68bd; }
.am-runner .am-r-main { filter: drop-shadow(0 0 1.2px #fff) drop-shadow(0 0 1.2px #fff) drop-shadow(0 2px 2px rgba(35,58,133,.3)); }
.am-runner .am-r-ghost { opacity: .22; }
.am-runner .am-r-ghost1 { transform: translateX(-9px); }
.am-runner .am-r-ghost2 { transform: translateX(-18px); opacity: .1; }
.am-runner g { transform-box: view-box; }
.am-runner .am-r-body { transform-origin: 30px 76px; transform: rotate(7deg); }
.am-runner .am-r-fore { transform: rotate(-95deg); }
.am-runner.is-running { opacity: 1; animation: am-run-x var(--am-dur, 6s) linear forwards; }
.am-runner.is-done { opacity: 0; transform: translateX(var(--am-end, 0)); transition: opacity 1.2s .6s; }
/* falcata lenta: ciclo 1.6s, movimenti ampi e morbidi */
.am-runner.is-running .am-r-body { animation: am-r-bob .8s ease-in-out infinite alternate; }
.am-runner.is-running .am-r-leg { animation: am-r-thigh 1.6s ease-in-out infinite; }
.am-runner.is-running .am-r-leg .am-r-shin { animation: am-r-shin 1.6s ease-in-out infinite; }
.am-runner.is-running .am-r-arm { animation: am-r-arm 1.6s ease-in-out infinite; }
.am-runner.is-running .am-r-arm .am-r-fore { animation: am-r-fore 1.6s ease-in-out infinite; }
.am-runner.is-running .am-r-b, .am-runner.is-running .am-r-b .am-r-shin, .am-runner.is-running .am-r-b .am-r-fore { animation-delay: -.8s; }
/* le scie partono leggermente in ritardo, come una foto a lunga esposizione */
.am-runner.is-running .am-r-ghost1 .am-r-limb, .am-runner.is-running .am-r-ghost1 .am-r-shin, .am-runner.is-running .am-r-ghost1 .am-r-fore { animation-delay: -1.5s; }
.am-runner.is-running .am-r-ghost1 .am-r-b, .am-runner.is-running .am-r-ghost1 .am-r-b .am-r-shin, .am-runner.is-running .am-r-ghost1 .am-r-b .am-r-fore { animation-delay: -.7s; }
.am-runner.is-running .am-r-ghost2 .am-r-limb, .am-runner.is-running .am-r-ghost2 .am-r-shin, .am-runner.is-running .am-r-ghost2 .am-r-fore { animation-delay: -1.4s; }
.am-runner.is-running .am-r-ghost2 .am-r-b, .am-runner.is-running .am-r-ghost2 .am-r-b .am-r-shin, .am-runner.is-running .am-r-ghost2 .am-r-b .am-r-fore { animation-delay: -.6s; }
.am-runner.is-done .am-r-leg.am-r-a { transform: rotate(-8deg); } .am-runner.is-done .am-r-leg.am-r-b { transform: rotate(8deg); }
@keyframes am-run-x {
  0% { transform: translateX(var(--am-start)); opacity: 0; }
  6% { opacity: 1; }
  100% { transform: translateX(var(--am-end)); opacity: 1; }
}
@keyframes am-r-bob { from { transform: rotate(7deg) translateY(1px); } to { transform: rotate(7deg) translateY(-4px); } }
@keyframes am-r-thigh { 0% { transform: rotate(-58deg); } 50% { transform: rotate(38deg); } 100% { transform: rotate(-58deg); } }
@keyframes am-r-shin { 0% { transform: rotate(20deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(30deg); } 70% { transform: rotate(120deg); } 85% { transform: rotate(95deg); } 100% { transform: rotate(20deg); } }
@keyframes am-r-arm { 0% { transform: rotate(55deg); } 50% { transform: rotate(-65deg); } 100% { transform: rotate(55deg); } }
@keyframes am-r-fore { 0% { transform: rotate(-70deg); } 50% { transform: rotate(-110deg); } 100% { transform: rotate(-70deg); } }
/* sul segmento blu: atleta bianco con contorno blu */
.am-runner line, .am-runner circle { transition: stroke .35s, fill .35s; }
.am-runner.on-dark line { stroke: #fff; } .am-runner.on-dark circle { fill: #fff; }
.am-runner.on-dark .am-r-b line { stroke: #f6db49; }
.am-runner.on-dark .am-r-main { filter: drop-shadow(0 0 1.2px #1b2c66) drop-shadow(0 2px 2px rgba(0,0,0,.3)); }
.am-runner.on-dark .am-r-ghost { opacity: .3; }

/* ===== Hover sulle immagini: zoom lento + cornice "pista" ===== */
:root { --am-pista: 0 0 0 3px var(--am-blu), 0 0 0 7px #f6db49, 0 0 0 10px rgba(48,75,166,.22), 0 16px 30px -6px rgba(48,75,166,.35); }
.blog-item .item-image, .com-content-article .item-image { overflow: hidden; position: relative; }
.blog-item .item-image img, .com-content-article .item-image img, .am-img-fx img {
  display: block; transition: transform 1.8s cubic-bezier(.2,.65,.25,1), filter .6s;
}
/* elenco notizie: si solleva tutta la scheda, la foto zooma */
.blog-item { border-radius: .75rem; transition: transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s; }
.blog-item:hover { transform: translateY(-5px); box-shadow: var(--am-pista); }
.blog-item:hover .item-image img { transform: scale(1.08); filter: saturate(1.12); }
/* foto principale dell'articolo e foto nel testo */
.com-content-article .item-image, .am-img-fx {
  border-radius: .75rem; transition: transform .45s cubic-bezier(.2,.7,.3,1), box-shadow .45s;
}
.com-content-article .item-image img { border-radius: .75rem; }
.com-content-article .item-image:hover, .am-img-fx:hover { transform: translateY(-4px); box-shadow: var(--am-pista); }
.com-content-article .item-image:hover img, .am-img-fx:hover img { transform: scale(1.06); filter: saturate(1.12); }
.am-img-fx { display: inline-block; overflow: hidden; max-width: 100%; vertical-align: top; line-height: 0; }
.am-img-fx img { max-width: 100%; height: auto; margin: 0 !important; float: none !important; border-radius: 0; }
.am-img-fx.am-left { float: left; margin: .3rem 1.4rem 1rem 0; }
.am-img-fx.am-right { float: right; margin: .3rem 0 1rem 1.4rem; }
@media (prefers-reduced-motion: reduce) {
  .blog-item, .blog-item .item-image img, .com-content-article .item-image, .com-content-article .item-image img, .am-img-fx, .am-img-fx img { transition: none; }
  .blog-item:hover, .com-content-article .item-image:hover, .am-img-fx:hover { transform: none; }
  .blog-item:hover .item-image img, .com-content-article .item-image:hover img, .am-img-fx:hover img { transform: none; }
}

/* Didascalia sempre sopra la foto (anche durante lo zoom) e con più respiro */
.item-image figcaption, .am-img-fx + figcaption, figure figcaption {
  position: relative; z-index: 2; margin: 0; padding: .8rem 1.25rem .85rem; background: #fff;
  font-size: .95rem; line-height: 1.45; color: #4a5568; border-left: 4px solid #f6db49;
}
.com-content-article .item-image img:not(:last-child), .blog-item .item-image img:not(:last-child) { border-radius: .75rem .75rem 0 0; }
.com-content-article .item-image:has(figcaption) { background: #fff; }

/* ===== Barra laterale "da gara": corsie numerate, testate a pettorale, icone ===== */
.container-sidebar-right { counter-reset: am-corsia; }
.sidebar-right.card, .container-sidebar-right .card {
  border: 0; border-radius: .9rem; overflow: hidden; background: #fff; margin-bottom: 1.5rem;
  box-shadow: 0 0 0 1px rgba(48,75,166,.10), 0 6px 18px -8px rgba(48,75,166,.35);
  transition: transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s;
}
.container-sidebar-right .card:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px rgba(48,75,166,.18), 0 14px 26px -10px rgba(48,75,166,.45); }
/* testata: fascia blu con numero di corsia e tacche gialle del traguardo */
.container-sidebar-right .card-header {
  position: relative; display: flex; align-items: center; gap: .7rem; margin: 0;
  padding: .85rem 3.2rem .85rem 1rem; border: 0; border-radius: 0;
  background: linear-gradient(100deg, var(--am-blu) 0, var(--am-blu) 70%, var(--am-blu-scuro) 100%);
  color: #fff; font-size: 1.35rem; line-height: 1.1; letter-spacing: .06em;
  box-shadow: inset 0 -4px 0 #f6db49;
}
.container-sidebar-right .card-header::before {
  counter-increment: am-corsia; content: counter(am-corsia);
  flex: 0 0 auto; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%;
  background: #f6db49; color: var(--am-blu-scuro); font-size: 1.05rem; font-weight: 700; letter-spacing: 0;
  box-shadow: 0 0 0 3px rgba(255,255,255,.25);
}
.container-sidebar-right .card-header::after {
  content: ""; position: absolute; right: 1rem; top: 28%; bottom: 34%; width: 1.1rem;
  background: linear-gradient(90deg, #f6db49 0 3px, transparent 3px 7px, #f6db49 7px 10px, transparent 10px);
  transform: skewX(-20deg);
}
/* corpo: in fondo tre sottili linee di corsia */
.container-sidebar-right .card-body {
  padding: 1.15rem 1.25rem 1.6rem;
  background: linear-gradient(90deg, rgba(48,75,166,.14), rgba(48,75,166,.03)) left calc(100% - 10px) / 100% 2px no-repeat,
              linear-gradient(90deg, rgba(246,219,73,.9), rgba(246,219,73,.15)) left calc(100% - 5px) / 100% 2px no-repeat,
              linear-gradient(90deg, rgba(48,75,166,.14), rgba(48,75,166,.03)) left 100% / 100% 2px no-repeat, #fff;
}
/* Orari e campo: icone luogo, cronometro, telefono */
.box-orari p { position: relative; padding-left: 2.1rem; margin-bottom: 1rem; }
.box-orari p:last-child { margin-bottom: 0; }
.box-orari p::before {
  content: ""; position: absolute; left: 0; top: .15em; width: 1.4rem; height: 1.4rem; border-radius: 50%;
  background: #f6db49; box-shadow: inset 0 0 0 2px var(--am-blu);
}
.box-orari p::after {
  content: ""; position: absolute; left: .3rem; top: calc(.15em + .3rem); width: .8rem; height: .8rem; background: var(--am-blu);
  -webkit-mask: var(--am-ico) center / contain no-repeat; mask: var(--am-ico) center / contain no-repeat;
}
.box-orari p:first-child { --am-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.box-orari p:not(:first-child):not(:last-child) { --am-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 1h6v2H9zm10.03 6.39 1.42-1.42-1.41-1.41-1.42 1.42A9 9 0 1 0 19.03 7.39zM13 14h-2V8h2z'/%3E%3C/svg%3E"); }
.box-orari p:last-child { --am-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
.box-orari strong { color: var(--am-blu); }
.box-orari a { color: var(--am-blu); font-weight: 600; text-decoration-color: rgba(48,75,166,.35); text-underline-offset: 3px; }
.box-orari a:hover { text-decoration-color: #f6db49; text-decoration-thickness: 3px; }
/* Pulsante Programmi gare: cronometro, linee di velocità e riflesso */
.btn-gare {
  position: relative; overflow: hidden; display: flex !important; align-items: center; justify-content: center; gap: .6rem;
  border: 0 !important; border-radius: .9rem; padding: 1.1rem 1rem !important; font-size: 1.4rem; letter-spacing: .06em;
  background: linear-gradient(100deg, var(--am-blu) 0 60%, var(--am-blu-scuro)) !important;
  box-shadow: 0 0 0 3px #f6db49, 0 0 0 6px rgba(48,75,166,.18), 0 10px 22px -8px rgba(48,75,166,.6);
  transition: transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s;
}
.btn-gare::before {
  content: ""; flex: 0 0 auto; width: 1.3em; height: 1.3em; background: #f6db49;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 1h6v2H9zm10.03 6.39 1.42-1.42-1.41-1.41-1.42 1.42A9 9 0 1 0 19.03 7.39zM13 14h-2V8h2z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 1h6v2H9zm10.03 6.39 1.42-1.42-1.41-1.41-1.42 1.42A9 9 0 1 0 19.03 7.39zM13 14h-2V8h2z'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .5s;
}
.btn-gare::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.35) 48%, transparent 60%) no-repeat;
  background-size: 250% 100%; background-position: 130% 0; transition: background-position .9s ease;
}
.btn-gare:hover { transform: translateY(-3px); box-shadow: 0 0 0 3px #f6db49, 0 0 0 7px rgba(48,75,166,.25), 0 16px 26px -10px rgba(48,75,166,.7); }
.btn-gare:hover::before { transform: rotate(360deg); }
.btn-gare:hover::after { background-position: -30% 0; }
/* Seguici: icone che "scattano" con anello giallo */
.social { gap: 1.1rem; padding: .25rem 0; }
.social a { display: block; border-radius: 50%; transition: transform .3s cubic-bezier(.3,1.6,.5,1), box-shadow .3s; }
.social a:hover, .social a:focus-visible { transform: translateY(-4px) rotate(-6deg); box-shadow: 0 0 0 3px #f6db49, 0 8px 14px -4px rgba(48,75,166,.5); }
.social img:hover { transform: none; }
@media (prefers-reduced-motion: reduce) {
  .container-sidebar-right .card, .btn-gare, .btn-gare::before, .btn-gare::after, .social a { transition: none; }
}

/* ===== Riquadro sponsor: "squadra" di tessere con traguardo giallo ===== */
.container-bottom-a .card { border: 0; border-radius: .9rem; overflow: hidden; background: #fff;
  box-shadow: 0 0 0 1px rgba(48,75,166,.10), 0 8px 22px -10px rgba(48,75,166,.4); }
.container-bottom-a .card-header {
  position: relative; display: flex; align-items: center; justify-content: center; gap: .8rem; margin: 0; padding: .95rem 1rem;
  border: 0; border-radius: 0; background: linear-gradient(100deg, var(--am-blu-scuro), var(--am-blu) 30%, var(--am-blu) 70%, var(--am-blu-scuro));
  color: #fff; font-family: var(--am-font-titoli); font-size: 1.45rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  box-shadow: inset 0 -4px 0 #f6db49;
}
.container-bottom-a .card-header::before, .container-bottom-a .card-header::after {
  content: ""; width: 1.1rem; height: .9em; flex: 0 0 auto;
  background: linear-gradient(90deg, #f6db49 0 3px, transparent 3px 7px, #f6db49 7px 10px, transparent 10px); transform: skewX(-20deg);
}
.container-bottom-a .card-header::after { transform: skewX(-20deg) scaleX(-1); }
.container-bottom-a .card-body {
  padding: 1.6rem 1.25rem 1.9rem;
  background:
    linear-gradient(90deg, transparent, rgba(48,75,166,.12) 20%, rgba(48,75,166,.12) 80%, transparent) center calc(100% - 12px) / 100% 2px no-repeat,
    linear-gradient(90deg, transparent, rgba(246,219,73,.9) 20%, rgba(246,219,73,.9) 80%, transparent) center calc(100% - 7px) / 100% 2px no-repeat,
    radial-gradient(ellipse at 50% 0, rgba(48,75,166,.07), transparent 70%), #fff;
}
.sponsor { gap: 1.25rem 1.5rem; }
.sponsor > a, .sponsor > img {
  position: relative; display: grid; place-items: center; box-sizing: border-box;
  width: 220px; max-width: 100%; height: 120px; padding: .9rem 1.1rem 1.1rem; border-radius: .8rem; background: #fff;
  box-shadow: 0 0 0 1px rgba(48,75,166,.12), 0 6px 14px -8px rgba(48,75,166,.45);
  transition: transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s;
}
.sponsor > img { object-fit: contain; max-height: none; }
.sponsor > a img { max-height: 86px; max-width: 100%; width: auto; object-fit: contain; }
.sponsor > a::after {
  content: ""; position: absolute; left: 50%; right: 50%; bottom: 0; height: 4px; border-radius: 4px 4px 0 0;
  background: linear-gradient(90deg, var(--am-blu), #f6db49, var(--am-blu)); transition: left .4s, right .4s;
}
.sponsor > a:hover, .sponsor > a:focus-visible, .sponsor > img:hover {
  transform: translateY(-5px); box-shadow: 0 0 0 2px #f6db49, 0 14px 24px -10px rgba(48,75,166,.55);
}
.sponsor > a:hover::after, .sponsor > a:focus-visible::after { left: 12%; right: 12%; }
@media (max-width: 575.98px) { .sponsor > a, .sponsor > img { width: calc(50% - .75rem); height: 96px; } }
@media (prefers-reduced-motion: reduce) { .sponsor > a, .sponsor > img, .sponsor > a::after { transition: none; } }

/* Firma nel piè di pagina */
.am-powered {
  margin: 1rem 0 0; padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.18);
  font-size: .85rem; letter-spacing: .04em; color: rgba(255,255,255,.75); text-align: center;
}
.am-powered strong { color: #f6db49; font-weight: 600; letter-spacing: .06em; }
.am-powered a { text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .25s; }
.am-powered a:hover, .am-powered a:focus-visible { border-bottom-color: #f6db49; }

/* ===== Allenatori: schede con foto e nome su "pettorale" ===== */
.am-coaches {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 2rem 1.5rem;
  margin: 1.5rem 0 .5rem; padding: 0; text-align: center;
}
.am-coach {
  position: relative; margin: 0; padding: .7rem .7rem 0; border-radius: 1rem; background: #fff;
  box-shadow: 0 0 0 1px rgba(48,75,166,.12), 0 10px 22px -12px rgba(48,75,166,.55);
  transition: transform .4s cubic-bezier(.2,.7,.3,1), box-shadow .4s;
}
.am-coach::before { /* fascia blu-gialla in alto, come una maglia sociale */
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; border-radius: 1rem 1rem 0 0;
  background: linear-gradient(90deg, var(--am-blu) 0 40%, #f6db49 40% 60%, var(--am-blu) 60%);
}
.am-coach img {
  display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; object-position: center 20%;
  border-radius: .7rem; transition: transform 1.4s cubic-bezier(.2,.65,.25,1), filter .5s;
}
.am-coach > img { box-shadow: inset 0 0 0 1px rgba(0,0,0,.05); }
.am-coach figcaption { /* il nome su un pettorale da gara */
  position: relative; z-index: 2; display: inline-block; margin: -1.4rem auto .9rem; padding: .45rem 1rem .4rem;
  min-width: 70%; border-radius: .35rem; background: #fff; border: 0; border-top: 6px solid var(--am-blu);
  font-family: var(--am-font-titoli); font-size: 1.15rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase;
  color: var(--am-blu-scuro); line-height: 1.15;
  box-shadow: 0 0 0 1px rgba(48,75,166,.18), 0 6px 12px -6px rgba(48,75,166,.5);
}
.am-coach figcaption::before, .am-coach figcaption::after { /* le spille del pettorale */
  content: ""; position: absolute; top: .35rem; width: 5px; height: 5px; border-radius: 50%; background: #b9c2dc;
}
.am-coach figcaption::before { left: .4rem; } .am-coach figcaption::after { right: .4rem; }
.am-coach { overflow: hidden; }
.am-coach .am-coach-img { overflow: hidden; border-radius: .7rem; }
.am-coach:hover { transform: translateY(-6px) rotate(-.6deg); box-shadow: 0 0 0 3px var(--am-blu), 0 0 0 7px #f6db49, 0 18px 30px -12px rgba(48,75,166,.6); }
.am-coach:nth-child(even):hover { transform: translateY(-6px) rotate(.6deg); }
.am-coach:hover img { filter: saturate(1.15) contrast(1.03); }
@media (max-width: 575.98px) { .am-coaches { grid-template-columns: repeat(2, 1fr); gap: 1.25rem .9rem; } .am-coach figcaption { font-size: .95rem; padding: .4rem .6rem; } }
@media (prefers-reduced-motion: reduce) { .am-coach, .am-coach img { transition: none; } .am-coach:hover, .am-coach:nth-child(even):hover { transform: none; } }
/* righe centrate: l'ultima scheda non resta sola a sinistra */
.am-coaches { display: flex; flex-wrap: wrap; justify-content: center; }
.am-coach { flex: 0 1 200px; }
@media (max-width: 575.98px) { .am-coach { flex-basis: calc(50% - .5rem); } }
/* al massimo 3 schede per riga */
.am-coaches { max-width: 760px; margin-left: auto; margin-right: auto; gap: 2rem 1.5rem; }
.am-coach { flex: 0 1 calc((100% - 3rem) / 3); max-width: 240px; }
@media (max-width: 575.98px) { .am-coach { flex-basis: calc(50% - .5rem); } }

/* ===== Pagina Contatti: campo + mappa sulla stessa riga, poi il modulo ===== */
.am-contatti { display: block; }
.am-contatti > h1 { margin-bottom: 1.25rem; }
.am-contatti__campo {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 0 2rem; align-items: start;
  padding: 1.5rem; border-radius: .9rem; background: #fff;
  box-shadow: 0 0 0 1px rgba(48,75,166,.10), 0 8px 22px -12px rgba(48,75,166,.45);
}
.am-contatti__campo > p { grid-column: 1; position: relative; margin: 0 0 1.1rem; padding-left: 2.3rem; }
.am-contatti__campo > p:last-of-type { margin-bottom: 0; }
.am-contatti__campo > p::before {
  content: ""; position: absolute; left: 0; top: .1em; width: 1.55rem; height: 1.55rem; border-radius: 50%;
  background: #f6db49; box-shadow: inset 0 0 0 2px var(--am-blu);
}
.am-contatti__campo > p::after {
  content: ""; position: absolute; left: .35rem; top: calc(.1em + .35rem); width: .85rem; height: .85rem; background: var(--am-blu);
  -webkit-mask: var(--am-ico) center / contain no-repeat; mask: var(--am-ico) center / contain no-repeat;
}
.am-contatti__campo > p:nth-of-type(1) { --am-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.am-contatti__campo > p:nth-of-type(2) { --am-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 1h6v2H9zm10.03 6.39 1.42-1.42-1.41-1.41-1.42 1.42A9 9 0 1 0 19.03 7.39zM13 14h-2V8h2z'/%3E%3C/svg%3E"); }
.am-contatti__campo > p:nth-of-type(n+3) { --am-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E"); }
.am-contatti__campo strong { color: var(--am-blu); }
.am-contatti__campo .mappa { grid-column: 2; grid-row: 1 / span 20; align-self: stretch; min-height: 320px;
  border-radius: .8rem; overflow: hidden; box-shadow: 0 0 0 3px var(--am-blu), 0 0 0 7px #f6db49, 0 10px 22px -10px rgba(48,75,166,.5); margin: 7px; }
.am-contatti__campo .mappa iframe { display: block; width: 100%; height: 100%; min-height: 320px; border: 0; }
.am-contatti__modulo {
  margin-top: 2rem; padding: 1.5rem; border-radius: .9rem; background: #fff;
  box-shadow: 0 0 0 1px rgba(48,75,166,.10), 0 8px 22px -12px rgba(48,75,166,.45);
}
.am-contatti__modulo > h2 {
  display: flex; align-items: center; gap: .7rem; margin: -1.5rem -1.5rem 1.4rem; padding: .85rem 1.5rem;
  border-radius: .9rem .9rem 0 0; background: linear-gradient(100deg, var(--am-blu) 0 70%, var(--am-blu-scuro));
  color: #fff; font-size: 1.4rem; letter-spacing: .05em; text-transform: uppercase; box-shadow: inset 0 -4px 0 #f6db49;
}
.am-contatti__modulo > h2::after {
  content: ""; margin-left: auto; width: 1.1rem; height: .9em;
  background: linear-gradient(90deg, #f6db49 0 3px, transparent 3px 7px, #f6db49 7px 10px, transparent 10px); transform: skewX(-20deg);
}
.am-contatti__modulo .control-group { margin-bottom: 1rem; }
.am-contatti__modulo .form-control { border-radius: .6rem; border: 1.5px solid rgba(48,75,166,.25); padding: .65rem .85rem; }
.am-contatti__modulo .form-control:focus { border-color: var(--am-blu); box-shadow: 0 0 0 .2rem rgba(246,219,73,.6); }
.am-contatti__modulo .btn-primary { padding: .7rem 1.8rem; border-radius: .7rem; font-family: var(--am-font-titoli); text-transform: uppercase; letter-spacing: .06em;
  box-shadow: 0 0 0 3px #f6db49; }
@media (max-width: 767.98px) {
  .am-contatti__campo { grid-template-columns: 1fr; }
  .am-contatti__campo .mappa { grid-column: 1; grid-row: auto; margin: 1.5rem 7px 7px; }
}
.com-contact .am-contatti, .am-contatti { background: none !important; box-shadow: none !important; padding: 0 !important; }
.am-contatti__modulo fieldset { border: 0; padding: 0; }
.am-contatti__modulo .form-control { width: 100%; max-width: 640px; }
