/* ============ Reset & vars ============ */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:#1f2937; background:#f6f7fb; 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 ispirata al banner ufficiale Acropesaro 2026 */
  --deep:#1c1264;        /* blu profondo Acropesaro */
  --deep-2:#2a1782;
  --violet:#5a2095;
  --magenta:#c33485;
  --pink:#ec4486;        /* pink accent principale */
  --pink-2:#ff6fa3;
  --gold:#ec4486;        /* alias retro-compatibilità: ora pink */
  --gold-2:#d23472;
  --navy:#1c1264;        /* alias retro-compatibilità */
  --navy-2:#2a1782;
  --bg:#f5f3fb;
  --line:#e6e2f0;
  --muted:#5b5070;
  --text:#1f1c2e;
  --warn:#b45309;
  --ok:#0d8a3f;
  --danger:#b91c1c;
}

.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 #ec4486; 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(circle at 80% 110%, rgba(236,68,134,.55), transparent 55%),
    radial-gradient(circle at 0% 0%, rgba(90,32,149,.6), transparent 50%),
    linear-gradient(135deg, #14094a 0%, #2a1782 38%, #5a2095 70%, #a8307d 100%);
  color:#fff; padding:80px 0 90px;
  overflow:hidden;
}
.hero::before{
  /* Pattern "DATES DATES DATES" diagonale come nel banner */
  content:"DATES · DATES · DATES · DATES · DATES · DATES · DATES · DATES · DATES · DATES · DATES · DATES";
  position:absolute; inset:0;
  font:900 90px/1 system-ui,-apple-system,sans-serif;
  letter-spacing:6px;
  color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.05);
  text-stroke:1.5px rgba(255,255,255,.05);
  white-space:nowrap;
  transform:rotate(-12deg) translate(-10%, 5%);
  pointer-events:none;
  overflow:hidden;
}
.hero::after{
  /* Macchia luminosa rosa in basso a destra */
  content:""; position:absolute; right:-12%; bottom:-30%;
  width:600px; height:600px;
  background:radial-gradient(circle, rgba(255,111,163,.35), transparent 65%);
  pointer-events:none;
}
.hero .container{position:relative; z-index:2}
.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:42px; height:3px; background:var(--pink); border-radius:2px}
.hero__eyebrow-text{font-size:13px; letter-spacing:3px; text-transform:uppercase; color:var(--pink-2); font-weight:700}

.hero h1{
  font-size:clamp(40px, 7vw, 76px); line-height:.95;
  margin:0 0 8px; font-weight:900; letter-spacing:-1.5px;
  text-transform:uppercase;
}
.hero h1 .pink{color:var(--pink)}
.hero h1 .stroke{
  -webkit-text-stroke:2px #fff; color:transparent;
  text-stroke:2px #fff;
}

.hero__venue{
  font-size:clamp(20px, 3vw, 32px); font-weight:800;
  color:#fff; margin:6px 0 22px; letter-spacing:-.3px;
  text-transform:uppercase;
}
.hero__venue::before{
  content:"·"; color:var(--pink); margin-right:10px; font-size:1.2em;
}

.hero__lead{font-size:17px; max-width:560px; color:#e8e0f5; line-height:1.55}

.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{
  position:absolute; top:-6px; right:-6px;
  background:var(--pink); color:#fff;
  padding:8px 14px; border-radius:99px; font-size:11px;
  font-weight:900; letter-spacing:1.5px; text-transform:uppercase;
  box-shadow:0 6px 14px rgba(236,68,134,.5);
  transform:rotate(8deg);
  z-index:3;
}
@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{padding:56px 0; background:linear-gradient(135deg, var(--deep), var(--violet) 60%, var(--magenta)); color:#fff; position:relative; overflow:hidden}
.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), #8a4cc5)}
.pack--senior::before{background:linear-gradient(90deg, var(--pink), var(--pink-2))}
.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}

/* ============ 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}
