/* ============ Reset & vars ============ */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  color:#06111e; background:#ffffff; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:#102a43; text-decoration:none}
a:hover{text-decoration:underline}

:root{
  /* Palette REALE europeangymnastics.com (verificata su .category-background e link) */
  --deep:#00219b;        /* navy brand EG (categoria "blue") */
  --deep-2:#043c9a;      /* variante dark SVG */
  --violet:#054295;      /* blu royal primary */
  --magenta:#0199f9;     /* ciano accent */
  --pink:#054295;        /* alias legacy: primary brand blu royal */
  --pink-2:#0199f9;      /* alias legacy: ciano hover */
  --gold:#0199f9;        /* alias legacy: ciano */
  --gold-2:#18b6d2;      /* turchese secondario */
  --navy:#00219b;
  --navy-2:#054295;
  --bg:#ffffff;          /* body bianco come EG */
  --line:#e3eaf3;
  --muted:#4a5568;
  --text:#06111e;
  --warn:#ffac29;
  --ok:#39df7b;
  --danger:#ee0d47;
}

.container{max-width:1180px; margin:0 auto; padding:0 22px}
.container--flash{margin-top:14px}
.muted{color:var(--muted)}
.small{font-size:13px}
.center{text-align:center}
.right{text-align:right}

.muted-light{color:#c3b4dc; font-size:13px}

/* ============ Test mode banner ============ */
.test-banner{
  background:repeating-linear-gradient(45deg, #fff3cd, #fff3cd 12px, #fde9a8 12px, #fde9a8 24px);
  color:#7a4910; padding:10px 18px; text-align:center;
  font-size:14px; border-bottom:2px solid var(--gold); position:sticky; top:0; z-index:20;
}
.test-banner code{background:rgba(122,73,16,.12); padding:2px 7px; border-radius:4px; font-size:13px; color:#7a1818}
.test-banner + .topbar{top:42px}

/* ============ Topbar ============ */
.topbar{
  background:linear-gradient(90deg, var(--deep) 0%, var(--violet) 70%, var(--magenta) 100%);
  color:#fff; position:sticky; top:0; z-index:10;
  box-shadow:0 2px 16px rgba(28,18,100,.25);
}
.topbar__inner{display:flex; align-items:center; justify-content:space-between; padding:12px 0}
.brand{display:flex; align-items:center; gap:12px; color:#fff}
.brand:hover{text-decoration:none}
.brand__logo{height:52px; width:auto; background:#fff; padding:4px 10px; border-radius:6px}
@media(max-width:540px){.brand__logo{height:40px; padding:3px 7px}}
.topbar__nav{display:flex; align-items:center; gap:18px}
.topbar__nav a{color:#fff; font-size:14px}
.topbar__nav a:hover{color:var(--gold); text-decoration:none}
.lang-switch{display:flex; gap:6px; padding-left:14px; border-left:1px solid rgba(255,255,255,.25)}
.lang-switch a{font-size:18px; opacity:.5; padding:2px 4px; border-radius:4px; line-height:1}
.lang-switch a:hover{opacity:.9}
.lang-switch a.is-active{opacity:1; background:rgba(255,255,255,.18)}

/* ============ Hero ispirato al banner ufficiale ============ */
.hero{
  position:relative;
  background:
    radial-gradient(ellipse at 85% 110%, rgba(1,153,249,.38), transparent 55%),
    radial-gradient(ellipse at 8% 10%, rgba(5,66,149,.55), transparent 55%),
    linear-gradient(135deg, #04101f 0%, #06234f 35%, #002d9c 70%, #004ab8 100%);
  color:#fff; padding:72px 0 80px;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.hero::before{
  /* Watermark gigante "2027" dietro il contenuto - editoriale */
  content:"2027"; position:absolute;
  right:-6%; top:50%; transform:translateY(-50%);
  font-size:min(42vw, 540px); font-weight:900; line-height:.85;
  color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.07);
  letter-spacing:-.08em;
  pointer-events:none;
  user-select:none;
}
.hero::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px;
  height:2px;
  background:linear-gradient(90deg, transparent 0%, #0199f9 20%, #ee0d47 65%, transparent 100%);
  opacity:.55;
  pointer-events:none;
}
.hero .container{position:relative; z-index:3}
.hero__grid{display:grid; grid-template-columns:1fr; gap:36px; align-items:center}
@media(min-width:920px){.hero__grid{grid-template-columns:1.25fr .85fr}}

.hero__eyebrow{display:flex; align-items:center; gap:10px; margin-bottom:18px}
.hero__eyebrow-line{width:32px; height:2px; background:#0199f9}
.hero__eyebrow-text{font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,.85); font-weight:700}

.hero h1{
  font-size:clamp(52px, 8.5vw, 96px); line-height:.92;
  margin:0 0 14px; font-weight:800; letter-spacing:-2.5px;
  text-shadow:0 2px 40px rgba(0,0,0,.3);
  position:relative; z-index:2;
}
.hero h1 .pink{color:#fff}
.hero h1 .stroke{color:#0199f9; margin-left:.18em}

.hero__venue{
  font-size:clamp(18px, 2.4vw, 24px); font-weight:600;
  color:rgba(255,255,255,.85); margin:4px 0 20px; letter-spacing:-.2px;
}
.hero__venue::before{
  content:"·"; color:#0199f9; margin-right:10px; font-weight:900;
}

.hero__lead{font-size:17px; max-width:540px; color:rgba(255,255,255,.78); line-height:1.6; font-weight:400}

.hero__dates{display:grid; grid-template-columns:auto 1fr; gap:8px 18px; margin:24px 0; max-width:560px}
.hero__date-tag{
  font-size:14px; font-weight:900; color:var(--pink);
  background:rgba(236,68,134,.12); border:1px solid rgba(236,68,134,.3);
  padding:6px 12px; border-radius:6px; align-self:start; white-space:nowrap;
}
.hero__date-text{font-size:15px; color:#f0e8fa; padding-top:5px; line-height:1.4}
.hero__date-text strong{color:#fff}

.hero__cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:28px}
.hero__visual{position:relative; min-height:300px; display:flex; align-items:center; justify-content:center}
.hero__visual-card{
  background:#fff;
  padding:26px 30px;
  border-radius:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.1);
  max-width:380px; width:100%;
  transform:rotate(-2deg);
  transition:transform .4s;
}
.hero__visual-card:hover{transform:rotate(0deg) scale(1.02)}
.hero__visual-card img{width:100%; height:auto}
.hero__visual-badge{display:none}
@media(max-width:920px){
  .hero__visual-card{transform:rotate(0)}
}

/* ============ Sections ============ */
.section{padding:64px 0}
.section--alt{background:#fff}
.section--narrow{padding:48px 0}
.section--cta{
  background:linear-gradient(135deg, #04101f 0%, #002d9c 55%, #054295 100%);
  color:#fff; padding:60px 0;
}
.section--cta::after{content:""; position:absolute; right:-100px; top:-50px; width:300px; height:300px; background:radial-gradient(circle, rgba(255,111,163,.3), transparent 70%); pointer-events:none}
.section__head{text-align:center; margin-bottom:36px}
.section__head h2{font-size:32px; margin:0 0 8px; color:var(--navy)}
.section__head p{margin:0; color:var(--muted)}

/* ============ Pack cards ============ */
.pack-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:20px}
.pack{background:#fff; border:1px solid var(--line); border-radius:12px; padding:24px; display:flex; flex-direction:column; transition:transform .15s, box-shadow .15s; position:relative; overflow:hidden}
.pack:hover{transform:translateY(-4px); box-shadow:0 16px 36px -16px rgba(16,42,67,.3)}
.pack::before{content:""; position:absolute; top:0; left:0; right:0; height:5px}
.pack--junior::before{background:linear-gradient(90deg, var(--violet), var(--magenta))}
.pack--senior::before{background:linear-gradient(90deg, var(--pink), var(--magenta))}
.pack--youth::before{background:linear-gradient(90deg, #18b6d2, #0199f9)}
.pack--srjr::before{background:linear-gradient(90deg, #00219b, #0199f9)}
.pack__head{display:flex; justify-content:space-between; align-items:center; font-size:12px; letter-spacing:.6px; text-transform:uppercase; color:var(--muted); margin-bottom:10px}
.pack__cat{font-weight:700; color:var(--navy)}
.pack__nights{background:#f6f7fb; padding:3px 10px; border-radius:99px}
.pack h3{margin:6px 0 4px; font-size:19px; color:var(--navy)}
.pack__dates{margin:0 0 14px; color:var(--muted); font-size:14px}
.pack__price{display:flex; align-items:baseline; gap:8px; margin:6px 0 14px}
.pack__amount{font-size:36px; font-weight:800; color:var(--navy)}
.pack__unit{color:var(--muted); font-size:14px}
.pack__feat{list-style:none; padding:0; margin:0 0 18px; font-size:14px; color:var(--text)}
.pack__feat li{padding:6px 0 6px 22px; position:relative; border-bottom:1px dashed #eef1f6}
.pack__feat li:last-child{border-bottom:none}
.pack__feat li::before{content:"✓"; position:absolute; left:0; color:var(--gold); font-weight:700}

/* ============ Sold-out stamp ============ */
.pack--soldout{filter:grayscale(1); opacity:.78}
.pack--soldout:hover{transform:none; box-shadow:none}
.pack--soldout .pack__amount,
.pack--soldout .pack__unit,
.pack--soldout .pack__dates,
.pack--soldout .pack__feat{color:#94a3b8}
.pack--soldout h3{color:#64748b}
.pack--soldout .btn[disabled]{cursor:not-allowed; opacity:.55; pointer-events:none}
.pack__stamp{
  position:absolute; top:38px; right:-52px;
  transform:rotate(18deg);
  background:transparent; color:#c02b2b;
  border:4px double #c02b2b; border-radius:8px;
  padding:6px 60px;
  font-family:"Impact","Arial Black",sans-serif;
  font-size:26px; font-weight:900; letter-spacing:4px;
  text-transform:uppercase;
  opacity:.85; z-index:2; pointer-events:none;
  text-shadow:0 1px 0 rgba(255,255,255,.5);
  box-shadow:inset 0 0 0 2px #fff;
}

/* ============ Info grid ============ */
.info-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:32px}
.info-grid h2{color:var(--navy); font-size:22px; margin:0 0 14px}
.info-grid ul{list-style:none; padding:0; margin:0}
.info-grid li{padding:8px 0 8px 28px; position:relative; border-bottom:1px solid var(--line); font-size:14.5px}
.info-grid li:last-child{border-bottom:none}
.check li::before{content:"✓"; position:absolute; left:0; color:var(--ok); font-weight:700}
.cross li::before{content:"✕"; position:absolute; left:0; color:#c75050; font-weight:700}
.plus li::before{content:"+"; position:absolute; left:0; color:var(--gold); font-weight:700; font-size:18px; top:5px}

.cta-box{display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap}
.cta-box h2{margin:0 0 6px; font-size:26px}
.cta-box p{margin:0; color:#cbd5e0}

/* ============ Forms / buttons ============ */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 22px; border-radius:6px; font-size:14px; font-weight:600; border:1px solid transparent; cursor:pointer; transition:background .15s, transform .05s; text-decoration:none}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn--accent{background:var(--pink); color:#fff; border-color:var(--pink); box-shadow:0 4px 12px rgba(236,68,134,.3)}
.btn--accent:hover{background:var(--gold-2); color:#fff; box-shadow:0 6px 18px rgba(236,68,134,.45)}
.btn--ghost{background:transparent; border-color:rgba(255,255,255,.4); color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.08); color:#fff}
.topbar__nav .btn--ghost{border-color:rgba(255,255,255,.5)}
.section .btn--ghost, .form-card .btn--ghost, .filters .btn--ghost, .admin-top .btn--ghost, .admin .btn--ghost{border-color:var(--line); color:var(--navy)}
.section .btn--ghost:hover, .admin-top .btn--ghost:hover, .admin .btn--ghost:hover{background:#f0f3f8; color:var(--navy)}
.btn--sm{padding:6px 12px; font-size:13px}
.btn--lg{padding:13px 28px; font-size:15px}
.btn--block{width:100%; display:flex}
.btn--danger{background:var(--danger); color:#fff; border-color:var(--danger)}
.btn--danger:hover{background:#991b1b}
.btn[disabled]{opacity:.5; cursor:not-allowed}
.btn-icon{background:transparent; border:none; color:#888; font-size:18px; cursor:pointer; padding:4px 10px; border-radius:4px}
.btn-icon:hover{background:#fbeaea; color:var(--danger)}

/* ============ Flash messages ============ */
.flash{padding:12px 16px; border-radius:6px; margin-bottom:12px; font-size:14.5px; border-left:4px solid}
.flash--success{background:#e6f4ea; border-color:var(--ok); color:#0c5828}
.flash--danger{background:#fde7e7; border-color:var(--danger); color:#7a1818}
.flash--warning{background:#fff7e0; border-color:var(--warn); color:#7a4910}
.flash--info{background:#e7f1fc; border-color:#3b82f6; color:#1e40af}

/* ============ Form card layout ============ */
.form{display:flex; flex-direction:column; gap:22px}
.form-card{background:#fff; border:1px solid var(--line); border-radius:12px; padding:24px; box-shadow:0 1px 2px rgba(16,42,67,.04)}
.form-card h2{margin:0 0 10px; font-size:20px; color:var(--navy)}
.form-card--summary{background:linear-gradient(180deg, #fff, #fafbfd)}
.form-card--danger{border-color:#fbb}
.grid{display:grid; gap:14px}
.grid--2{grid-template-columns:1fr 1fr}
@media(max-width:680px){.grid--2{grid-template-columns:1fr}}
.grid__full{grid-column:1 / -1}
label{display:flex; flex-direction:column; gap:4px; font-size:13px; color:var(--muted); font-weight:600}
input[type=text], input[type=email], input[type=tel], input[type=password], select, textarea, input:not([type]){
  padding:10px 12px; border:1px solid var(--line); border-radius:6px; font-size:15px; font-family:inherit; background:#fff; color:var(--text);
}
input:focus, select:focus, textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(201,162,39,.15)}
textarea{resize:vertical; min-height:80px}
.form-extra{margin-top:14px; padding-top:14px; border-top:1px dashed var(--line)}
.form-extra summary{cursor:pointer; color:var(--navy); font-weight:600; font-size:14px}
.form-extra[open] summary{margin-bottom:10px}
.form-block{display:flex; flex-direction:column; gap:6px; margin:12px 0}
.form-disclaimer{display:flex; gap:10px; padding:14px; background:#fff8e1; border:1px solid #ffe9a0; border-radius:6px; margin:10px 0; font-size:13.5px}
.form-disclaimer input{margin-top:3px}
.form-disclaimer label{font-weight:400; color:var(--text); font-size:13.5px}

.page-head{margin-bottom:24px}
.page-head h1{margin:6px 0 6px; color:var(--navy); font-size:30px}
.back-link{color:var(--muted); font-size:13px}

/* ============ Rooms (form) ============ */
.rooms{display:flex; flex-direction:column; gap:14px}
.rooms__actions{margin-top:14px}
.room-card{border:1.5px dashed #cbd5e0; border-radius:10px; padding:18px; background:#fafbfd; transition:border-color .15s}
.room-card.is-valid{border-style:solid; border-color:#9fd3ad; background:#f3faf5}
.room-card__head{display:flex; justify-content:space-between; align-items:center; margin-bottom:10px}
.room-card__head h3{margin:0; font-size:16px; color:var(--navy)}
.participants{display:flex; flex-direction:column; gap:12px; margin-top:14px}
.participant{display:flex; flex-direction:column; gap:6px}
.participant__row{display:grid; grid-template-columns:24px 1fr 1fr auto; gap:8px; align-items:center}
.participant__num{color:var(--muted); font-size:13px; font-weight:700; text-align:center}
.participant__minor-toggle{display:flex; align-items:center; gap:6px; padding:7px 12px; background:#fff; border:1px solid var(--line); border-radius:6px; cursor:pointer; font-size:13px; color:var(--muted); font-weight:600; user-select:none; transition:all .15s}
.participant__minor-toggle:hover{border-color:var(--pink); color:var(--pink)}
.participant__minor-toggle input{width:14px; height:14px; margin:0; cursor:pointer; accent-color:var(--pink)}
.participant__minor-toggle:has(input:checked){background:#ffeaf2; border-color:var(--pink); color:var(--pink)}
.participant__dob{display:flex; flex-direction:column; gap:4px; margin-left:32px; padding:10px 14px; background:#ffeaf2; border-left:3px solid var(--pink); border-radius:0 6px 6px 0; animation:fadeIn .2s}
.participant__dob[hidden]{display:none}
[data-page-info]{display:block; font-weight:600; margin-top:3px}
.participant__dob label{flex-direction:row; align-items:center; gap:8px; font-weight:600; color:var(--pink)}
.participant__dob input[type=date]{padding:6px 10px}
@keyframes fadeIn{from{opacity:0; transform:translateY(-3px)}to{opacity:1; transform:translateY(0)}}
@media(max-width:600px){
  .participant__row{grid-template-columns:24px 1fr 1fr; grid-template-rows:auto auto; gap:8px}
  .participant__minor-toggle{grid-column:1 / -1; justify-self:start}
}
.room-card__totals{margin-top:14px; padding-top:14px; border-top:1px solid var(--line)}
.totals-row{display:flex; justify-content:space-between; padding:4px 0; color:var(--muted); font-size:14px}
.totals-row--big{font-size:16px; color:var(--navy); font-weight:700; margin-top:6px; padding-top:10px; border-top:1px solid var(--line)}

/* ============ Capacity / Discount / Upgrade ============ */
.capacity-info{background:#eef4ff; border-left:4px solid #3b82f6; padding:12px 16px; margin-bottom:14px; border-radius:6px; font-size:13.5px}
.capacity-info ul{margin:6px 0 0; padding-left:18px; list-style:none}
.capacity-info ul li{padding:2px 0}
.capacity-info .ok{color:#0d8a3f}
.capacity-info .ko{color:#b91c1c}

.discount-row{display:flex; gap:8px}
.discount-row input{flex:1; text-transform:uppercase}
.discount-feedback{margin-top:8px; padding:8px 12px; border-radius:6px; font-size:13.5px}
.discount-feedback.is-ok{background:#e6f4ea; color:#0c5828; border:1px solid #9fd3ad}
.discount-feedback.is-ko{background:#fde7e7; color:#7a1818; border:1px solid #fbb}

.upgrade-block{background:linear-gradient(135deg, rgba(195,52,133,.04), rgba(236,68,134,.08)); border:1.5px solid rgba(236,68,134,.3); padding:18px; border-radius:8px}
.upgrade-toggle{display:flex; gap:14px; align-items:flex-start; cursor:pointer; font-weight:normal !important; color:var(--text)}
.upgrade-toggle input{width:22px; height:22px; flex-shrink:0; margin-top:3px; cursor:pointer; accent-color:var(--pink)}
.upgrade-toggle strong{color:var(--deep); font-size:15px}
.upgrade-note{margin-top:12px; padding:12px 14px; background:#fff; border-left:3px solid var(--pink); border-radius:0 6px 6px 0; font-size:13.5px; color:var(--text)}

/* Trasporti */
.transport-block{background:#f5f3fb; border:1.5px solid var(--violet); padding:16px; border-radius:8px}
.transport-toggle{display:flex; gap:14px; align-items:flex-start; cursor:pointer; font-weight:normal !important; color:var(--text)}
.transport-toggle input{width:20px; height:20px; flex-shrink:0; margin-top:3px; cursor:pointer; accent-color:var(--violet)}
.transport-toggle strong{color:var(--deep); font-size:15px}
.transport-note{margin-top:12px; padding:10px 14px; background:#fff; border-left:3px solid var(--violet); border-radius:0 6px 6px 0; font-size:13.5px}

.transfers-list{display:flex; flex-direction:column; gap:10px; margin:10px 0}
.transfer-row{background:#fff; border:1px solid var(--line); border-radius:8px; padding:12px; display:flex; flex-direction:column; gap:10px}
.transfer-row__head{display:grid; grid-template-columns:auto auto auto 1fr auto; gap:8px; align-items:center}
@media(max-width:680px){.transfer-row__head{grid-template-columns:1fr 1fr; grid-template-areas:"tipo del" "data ora" "treno treno" "del del"}}
.transfer-row__head select, .transfer-row__head input{padding:7px 10px; font-size:13.5px}
.transfer-row__parts{font-size:13px; color:var(--muted); padding:6px 0; border-top:1px dashed var(--line); border-bottom:1px dashed var(--line)}
.transfer-row__chips{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px}
.transfer-chip{display:inline-flex; align-items:center; gap:5px; background:#f5f3fb; padding:4px 10px; border-radius:99px; font-size:12.5px; cursor:pointer; border:1px solid var(--line); transition:all .15s}
.transfer-chip:has(input:checked){background:#ffeaf2; border-color:var(--pink); color:var(--pink); font-weight:600}
.transfer-chip input{width:13px; height:13px; margin:0; accent-color:var(--pink); cursor:pointer}
.transfer-row__quote{display:flex; gap:8px; align-items:flex-start; padding:8px 12px; background:#fff8e1; border:1px solid #ffe9a0; border-radius:6px; cursor:pointer; font-size:13px}
.transfer-row__quote input{width:16px; height:16px; flex-shrink:0; margin-top:2px; accent-color:var(--pink)}
.transfer-row__quote strong{color:var(--deep)}

/* Notte extra */
.extra-night-block{background:#fff8e1; border:1.5px solid #ffd966; padding:14px 16px; border-radius:8px}
.extra-night-toggle{display:flex; gap:12px; align-items:flex-start; cursor:pointer; font-weight:normal !important; color:var(--text)}
.extra-night-toggle input{width:20px; height:20px; flex-shrink:0; margin-top:3px; cursor:pointer; accent-color:#ec4486}
.extra-night-toggle strong{color:var(--deep); font-size:15px}
#extra-night-note-wrap input{width:100%; padding:8px 10px; font-size:13.5px}

.summary__upgrade-note{background:#ffeaf2; border-left:3px solid var(--pink); padding:10px 12px; margin:8px 0; font-size:13px; color:var(--deep); border-radius:0 4px 4px 0}

.upgrade-compare{width:100%; border-collapse:collapse; margin:14px 0}
.upgrade-compare td{padding:14px 16px; border-bottom:1px solid var(--line)}
.upgrade-compare .upgrade-row{background:linear-gradient(90deg, rgba(195,52,133,.05), rgba(236,68,134,.1)); border-radius:6px}
.upgrade-compare .upgrade-row td{border-color:var(--pink)}
.upgrade-note-box{background:#f5f3fb; padding:16px 18px; border-radius:6px; margin:14px 0; border-left:4px solid var(--violet)}
.upgrade-note-box p{margin:6px 0 0; font-size:14px; line-height:1.6}
.upgrade-actions{display:flex; gap:12px; margin-top:20px; flex-wrap:wrap}
.upgrade-actions button{flex:1; min-width:200px}

/* Statistiche per pacchetto */
.pkg-stats{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:16px}
.pkg-stat{background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px; box-shadow:0 1px 2px rgba(28,18,100,.04); position:relative}
.pkg-stat--junior{border-top:4px solid var(--violet)}
.pkg-stat--senior{border-top:4px solid var(--pink)}
.pkg-stat h3{margin:0 0 4px; color:var(--deep); font-size:16px}
.pkg-stat__nums{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:14px 0}
.pkg-stat__nums div{background:#f5f3fb; padding:8px 12px; border-radius:6px; text-align:center}
.pkg-stat__nums strong{display:block; font-size:20px; color:var(--deep)}
.pkg-stat__nums span{display:block; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.3px; margin-top:2px}
.pkg-stat__bar{height:10px; background:#e6e2f0; border-radius:5px; overflow:hidden; margin:10px 0 6px}
.pkg-stat__bar-fill{height:100%; transition:width .4s}
.pkg-stat__capacity{margin:0 0 10px; font-size:13px}
.pkg-stat__types{display:flex; justify-content:space-around; padding-top:10px; border-top:1px dashed var(--line); font-size:13px; color:var(--muted)}

/* Edit partecipanti admin */
.part-edit{padding:12px; background:#fafbfd; border:1px solid var(--line); border-radius:6px; margin-bottom:10px; display:flex; flex-direction:column; gap:8px}
.part-edit__row{display:grid; grid-template-columns:1fr 1fr auto; gap:8px; align-items:end}
.part-edit__minor{display:flex; align-items:center; gap:6px; padding:8px 12px; background:#fff; border:1px solid var(--line); border-radius:6px; cursor:pointer; font-weight:600; color:var(--muted); user-select:none; flex-direction:row}
.part-edit__minor input{margin:0; accent-color:var(--pink); cursor:pointer}
.part-edit__minor:has(input:checked){background:#ffeaf2; border-color:var(--pink); color:var(--pink)}
.part-edit__dob{padding:10px 14px; background:#ffeaf2; border-left:3px solid var(--pink); border-radius:0 6px 6px 0; color:var(--pink); font-weight:600}
.part-edit__dob[hidden]{display:none}
.part-edit__note input{font-size:13.5px}

.participant__notes-toggle{margin-left:32px; margin-top:4px}
.participant__notes-toggle summary{font-size:12.5px; color:var(--muted); cursor:pointer; padding:4px 0}
.participant__notes-toggle summary:hover{color:var(--pink)}
.participant__notes-toggle input{margin-top:4px; padding:6px 10px; font-size:13px; width:100%}

/* ============ Summary ============ */
.summary{background:#f6f7fb; border:1px solid var(--line); border-radius:8px; padding:18px; margin-bottom:14px}
.summary__line{display:flex; justify-content:space-between; padding:6px 0; font-size:14.5px; border-bottom:1px dashed #d6dde7}
.summary__line:last-child{border-bottom:none}
.summary__totale{display:flex; justify-content:space-between; padding-top:14px; margin-top:8px; border-top:2px solid var(--navy); font-size:20px; font-weight:800; color:var(--navy)}
.summary__totale .amount{color:var(--gold)}

/* ============ Conferma / Riepilogo ============ */
.conferma{max-width:760px; margin:0 auto; text-align:center}
.conferma__check{width:72px; height:72px; line-height:72px; margin:0 auto 14px; background:var(--ok); color:#fff; font-size:36px; border-radius:50%; font-weight:700}
.conferma h1{color:var(--navy); margin:6px 0}
.conferma .lead{font-size:18px}
.iban-card{background:#fff; border:2px solid var(--gold); border-radius:12px; padding:24px; margin:24px 0; text-align:left}
.iban-card h2{margin:0 0 8px; color:var(--navy)}
.iban-card__amount{color:var(--gold); font-size:24px}
.iban-card__list{display:grid; grid-template-columns:140px 1fr; gap:8px 14px; margin:14px 0 0}
.iban-card__list dt{font-weight:700; color:var(--muted); font-size:13px; padding:4px 0}
.iban-card__list dd{margin:0; padding:4px 0; font-size:14.5px}
.iban{font-family:ui-monospace, SFMono-Regular, Menlo, monospace; background:#f6f7fb; padding:3px 8px; border-radius:4px; letter-spacing:.5px}
.conferma__cta{background:linear-gradient(135deg, var(--deep), var(--violet) 70%, var(--magenta)); color:#fff; padding:28px; border-radius:12px; margin:24px 0; box-shadow:0 12px 30px rgba(28,18,100,.25)}
.conferma__cta h3{margin:0 0 6px; color:#fff; font-size:20px}
.conferma__cta p{color:#f0e8fa; margin:8px 0}
.conferma__cta-savelink{font-size:13px; color:#d0c4ec !important; margin-top:16px !important; padding-top:14px; border-top:1px solid rgba(255,255,255,.15); line-height:1.5}
.conferma__cta-savelink a{color:#ffb3d4; word-break:break-all; text-decoration:underline}
.conferma__cta-savelink a:hover{color:#fff}
.riepilogo{background:#fff; border:1px solid var(--line); border-radius:12px; padding:24px; text-align:left; margin-top:18px}
.riepilogo h2{color:var(--navy); margin:0 0 12px}
.riepilogo__ref, .riepilogo__room{padding:12px 0; border-bottom:1px dashed var(--line)}
.riepilogo__tot{margin:8px 0 0; color:var(--muted); font-size:14px}
.riepilogo__totale{display:flex; justify-content:space-between; padding:18px 0 0; margin-top:14px; border-top:2px solid var(--navy); font-size:22px; font-weight:800; color:var(--navy)}

.info-card{background:#fff; border:1px solid var(--line); border-radius:8px; padding:18px; margin:16px 0}
.info-card--ok{background:#e6f4ea; border-color:#9fd3ad}
.upload{display:block; padding:24px; border:2px dashed var(--gold); border-radius:8px; text-align:center; cursor:pointer; background:#fffbeb; margin-bottom:14px}
.upload input{display:none}
.upload span{display:block; color:var(--navy); font-weight:600; font-size:15px}

/* ============ Footer ============ */
.footer{background:linear-gradient(180deg, var(--deep) 0%, #0e0833 100%); color:#cbd5e0; margin-top:60px}
.footer__inner{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:36px; padding:44px 0}
.footer__col h4{color:#fff; margin:0 0 12px; font-size:12px; text-transform:uppercase; letter-spacing:.8px; opacity:.7}
.footer__col p{font-size:13.5px; margin:8px 0; line-height:1.6}
.footer__col a{color:var(--gold)}
.footer__col a:hover{color:#fff}
.footer__logo{margin-bottom:10px; height:auto; width:auto}
.footer__logo--esatour{max-height:38px; max-width:200px}
.footer__logo--tae{max-height:74px; max-width:120px; background:#fff; padding:6px; border-radius:6px}
.footer__meta{font-size:13px}
.footer__bar{background:rgba(0,0,0,.25); padding:14px 0; font-size:12.5px; color:#9aa5b1}
.footer__bar-inner{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap}
.footer__credit a{color:#fff; opacity:.85; transition:opacity .15s}
.footer__credit a:hover{opacity:1; text-decoration:none}
.footer__links{display:flex; gap:10px; align-items:center; font-size:12.5px}
.footer__links a{color:#d0c4ec}
.footer__links a:hover{color:#fff}
.footer__links span{color:rgba(255,255,255,.3)}

/* Cookie banner */
.cookie-banner{position:fixed; bottom:0; left:0; right:0; background:var(--deep); color:#fff; border-top:3px solid var(--pink); padding:14px; z-index:100; box-shadow:0 -8px 20px rgba(0,0,0,.25)}
.cookie-banner__inner{display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap}
.cookie-banner p{margin:0; font-size:13.5px; flex:1; min-width:240px; line-height:1.5}
.cookie-banner a{color:var(--pink-2); text-decoration:underline}
.cookie-banner a:hover{color:#fff}

/* Static policy pages */
.policy-content{max-width:780px; margin:0 auto; padding:40px 0}
.policy-content h1{color:var(--deep); margin:0 0 8px}
.policy-content .updated{color:var(--muted); font-size:13px; margin-bottom:30px}
.policy-content h2{color:var(--deep); margin:30px 0 10px; padding-top:10px; border-top:1px solid var(--line); font-size:20px}
.policy-content h3{color:var(--violet); margin:18px 0 8px; font-size:16px}
.policy-content p, .policy-content li{font-size:14.5px; line-height:1.65}
.policy-content ul, .policy-content ol{padding-left:22px}
.policy-content table{width:100%; border-collapse:collapse; margin:14px 0; font-size:13.5px}
.policy-content th, .policy-content td{padding:8px 12px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top}
.policy-content th{background:#f5f3fb; color:var(--deep); font-weight:700}
.policy-content code{background:#f5f3fb; padding:2px 6px; border-radius:3px; font-size:13px}

/* ============ Admin ============ */
.admin-login{background:linear-gradient(135deg, var(--navy), var(--navy-2)); min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px}
.login-box{background:#fff; padding:32px; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.3); width:100%; max-width:400px; text-align:center}
.login-box__logo{max-width:240px; max-height:80px; width:auto; height:auto; margin:0 auto 16px; display:block}
.login-box h1{color:var(--deep); margin:6px 0 4px; font-size:22px}
.login-box form{display:flex; flex-direction:column; gap:14px; margin-top:18px; text-align:left}

.admin{background:#f4f6fa}
.admin-top{background:#fff; border-bottom:2px solid var(--pink); padding:10px 0}
.admin-top__inner{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap}
.admin-top .brand{color:var(--deep); gap:14px}
.admin-top__logo{max-height:42px; max-width:180px; width:auto; height:auto}
.admin-top__sep{font-size:13px; font-weight:700; color:var(--pink); text-transform:uppercase; letter-spacing:2px; padding-left:14px; border-left:1px solid var(--line)}
.admin-top nav{display:flex; gap:8px; flex-wrap:wrap}
.admin main{padding:24px 0}
.admin h1{color:var(--navy); margin:0 0 18px}

.stats{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:14px; margin-bottom:24px}
.stat{background:#fff; border:1px solid var(--line); border-radius:8px; padding:14px}
.stat span{display:block; font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px}
.stat strong{display:block; font-size:24px; color:var(--navy); margin-top:4px}
.stat--warn{border-left:4px solid var(--warn)}
.stat--info{border-left:4px solid #3b82f6}
.stat--ok{border-left:4px solid var(--ok)}

.filters{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; background:#fff; padding:14px; border:1px solid var(--line); border-radius:8px}
.filters input, .filters select{padding:8px 10px; font-size:14px}
.filters input[name=q]{flex:1; min-width:220px}

.table-wrap{overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:8px}
.table{width:100%; border-collapse:collapse; font-size:14px}
.table th{background:#f6f7fb; padding:10px 12px; text-align:left; color:var(--muted); font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.5px; border-bottom:1px solid var(--line)}
.table td{padding:12px; border-bottom:1px solid #eef1f6}
.table tr:last-child td{border-bottom:none}
.table tr:hover{background:#fafbfd}

.badge{display:inline-block; padding:3px 10px; border-radius:99px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.4px}
.badge--warning{background:#fff7e0; color:var(--warn)}
.badge--info{background:#e7f1fc; color:#1e40af}
.badge--success{background:#e6f4ea; color:#0c5828}
.badge--secondary{background:#f0f2f5; color:#52606d}
.badge--upgrade{background:linear-gradient(90deg, #c33485, #ec4486); color:#fff; border:1px solid #c33485}
.badge--test{background:linear-gradient(90deg, #fff3cd, #ffe9a0); color:#7a4910; border:1px solid #ec4486}
.badge--minor{background:#ffeaf2; color:var(--pink); border:1px solid var(--pink); font-size:11px; padding:2px 8px}
.row--test{background:#fffaeb !important}
.row--test:hover{background:#fff5d8 !important}

.detail-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px}
@media(max-width:800px){.detail-grid{grid-template-columns:1fr}}
.kv{display:grid; grid-template-columns:140px 1fr; gap:6px 12px; margin:0}
.kv dt{color:var(--muted); font-size:13px; font-weight:600}
.kv dd{margin:0; font-size:14px}
.stato-form{display:flex; gap:8px; align-items:flex-end}
.stato-form select{flex:1; padding:8px 10px}
.room-detail{padding:10px 0; border-bottom:1px dashed var(--line)}
.room-detail h3{margin:0 0 4px; color:var(--navy); font-size:15px}
.room-detail ul{margin:6px 0}
hr{border:none; border-top:1px solid var(--line); margin:14px 0}
code{font-family:ui-monospace, SFMono-Regular, Menlo, monospace; background:#f6f7fb; padding:2px 6px; border-radius:4px; font-size:12.5px}

/* ============ Countdown eventi ============ */
.countdowns{
  display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:28px;
}
@media (max-width: 760px){ .countdowns{ grid-template-columns:1fr } }
.countdown{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.11);
  border-left:3px solid #0199f9;
  border-radius:2px; padding:20px 18px 16px;
  position:relative;
}
.countdown--srjr{ border-left-color:#ee0d47 }
/* niente barra decorativa sopra: il countdown parla da solo */
.countdown__head{ display:flex; flex-direction:column; gap:4px; margin-bottom:14px }
.countdown__tag{
  display:inline-block; color:rgba(255,255,255,.55);
  font-size:12px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase;
  align-self:flex-start; margin-bottom:2px;
}
.countdown__head strong{ color:#fff; font-size:16px; font-weight:600; line-height:1.3 }
.countdown__clock{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:8px;
}
.countdown__unit{
  padding:4px 2px; text-align:center; min-width:0;
}
.countdown__num{
  display:block; font-size:30px; font-weight:700; color:#fff;
  font-variant-numeric:tabular-nums; line-height:1; letter-spacing:-.5px;
}
@media (max-width: 420px){ .countdown__num{ font-size:22px } }
.countdown__label{
  display:block; margin-top:6px; font-size:10.5px; letter-spacing:1px;
  text-transform:uppercase; color:rgba(255,255,255,.45); font-weight:500;
}
.countdown__live{
  margin:10px 0 0; padding:10px; text-align:center;
  background:rgba(57,223,123,.14); color:#39df7b;
  border-radius:10px; font-weight:700; letter-spacing:.3px;
}

/* ============ Clock + Weather widget (topbar) ============ */
.clock-weather{
  display:flex; align-items:center; gap:12px;
  padding:6px 12px;
  margin-right:4px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  font-size:13px; font-weight:600;
  color:rgba(255,255,255,.9);
  font-variant-numeric:tabular-nums;
  min-height:30px;
}
.clock-weather .cw__location{
  display:inline-flex; align-items:center; gap:4px;
  color:#ee0d47;              /* rosso pin stile Google Maps */
  font-size:12px; font-weight:700; letter-spacing:.2px;
  padding-right:10px;
  border-right:1px solid rgba(255,255,255,.14);
}
.clock-weather .cw__location svg{ display:block; flex:0 0 auto }
.clock-weather .cw__location span{ color:#fff }
.admin .clock-weather .cw__location{ border-right-color:#dde3ec }
.admin .clock-weather .cw__location span{ color:#06111e }
.clock-weather .cw__weather{
  display:inline-flex; align-items:center; gap:7px;
}
/* L'icona meteo è un emoji nativo: forziamo il font-color apple/segoe emoji
   così resta colorato anche se il container ha color:white */
.clock-weather .cw__icon{
  font-size:16px; line-height:1;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  text-shadow:0 0 1px rgba(0,0,0,.2);
}
.clock-weather .cw__temp{ color:#fff; font-weight:700 }
.clock-weather .cw__time{
  padding-left:10px;
  border-left:1px solid rgba(255,255,255,.14);
  color:#fff;
}
@media (max-width: 760px){
  .clock-weather .cw__time{ display:none }
}
@media (max-width: 540px){
  .clock-weather{ display:none }
}
/* Variante admin: colore scuro invece di bianco */
.admin .clock-weather{
  border-color:#dde3ec; color:#334155; background:#fff;
}
.admin .clock-weather .cw__temp,
.admin .clock-weather .cw__time{ color:#06111e }
.admin .clock-weather .cw__time{ border-left-color:#dde3ec }
.admin .clock-weather .cw__location{
  display:inline-flex; align-items:center; gap:4px;
  color:#ee0d47;              /* rosso pin stile Google Maps */
  font-size:12px; font-weight:700; letter-spacing:.2px;
  padding-right:10px;
  border-right:1px solid rgba(255,255,255,.14);
}
.clock-weather .cw__location svg{ display:block; flex:0 0 auto }
.clock-weather .cw__location span{ color:#fff }
.admin .clock-weather .cw__location{ border-right-color:#dde3ec }
.admin .clock-weather .cw__location span{ color:#06111e }
.clock-weather .cw__weather{ color:#054295 }
