/* /centro/css/campo_estivo_2026.css */
/* Tema pre-iscrizione Campo Estivo / Giga Campo 2026 */

:root{
  --campo-teal:#2f7f86;
  --campo-teal-dark:#246872;
  --campo-mint:#45c2b3;
  --campo-navy:#183a56;
  --campo-navy-2:#102d44;
  --campo-yellow:#f2d33b;
  --campo-ochre:#d0a04c;
  --campo-coral:#ff615c;
  --campo-paper:#f7efe0;
  --campo-cream:#fffaf0;
  --campo-white:#ffffff;
  --campo-border:rgba(24,58,86,.16);
  --campo-shadow:0 18px 42px rgba(14,43,59,.18);
}

body{
  background:
    radial-gradient(circle at 14% 8%, rgba(242,211,59,.22) 0 0, transparent 150px),
    radial-gradient(circle at 92% 16%, rgba(69,194,179,.25) 0 0, transparent 190px),
    linear-gradient(180deg, #e9f4f2 0%, #f9f4e9 100%);
}

.campo-page{
  min-height:100vh;
  padding:22px 12px 44px;
  color:var(--campo-navy);
}

.campo-wrap{
  width:min(1040px, 100%);
  margin:0 auto;
}

.campo-hero{
  position:relative;
  overflow:hidden;
  color:var(--campo-white);
  border-radius:28px;
  padding:28px 28px 24px;
  margin:0 0 18px;
  background:
    radial-gradient(circle at 86% 16%, var(--campo-yellow) 0 42px, transparent 44px),
    linear-gradient(135deg, var(--campo-navy-2) 0%, var(--campo-teal-dark) 48%, var(--campo-teal) 100%);
  box-shadow:var(--campo-shadow);
  border:1px solid rgba(255,255,255,.18);
}

.campo-hero::before,
.campo-hero::after{
  content:"";
  position:absolute;
  pointer-events:none;
  opacity:.16;
}

.campo-hero::before{
  width:340px;
  height:340px;
  right:-130px;
  bottom:-210px;
  border-radius:50%;
  background:var(--campo-mint);
}

.campo-hero::after{
  width:140px;
  height:140px;
  left:-60px;
  top:-58px;
  border-radius:36px;
  transform:rotate(15deg);
  background:var(--campo-coral);
}

.campo-kicker{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.2);
  font-size:.88rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.campo-hero h1{
  position:relative;
  z-index:1;
  margin:0;
  color:#fff;
  font-size:clamp(2rem, 5vw, 4.2rem);
  line-height:.92;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.02em;
  text-shadow:0 5px 0 rgba(0,0,0,.08);
}

.campo-hero h1 span{
  color:var(--campo-yellow);
}

.campo-hero p{
  position:relative;
  z-index:1;
  max-width:780px;
  margin:14px 0 0;
  color:rgba(255,255,255,.94);
  line-height:1.55;
  font-size:1.02rem;
}

.campo-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}

.campo-panel{
  background:rgba(255,255,255,.94);
  border:1px solid var(--campo-border);
  border-radius:24px;
  padding:22px;
  box-shadow:0 16px 38px rgba(24,58,86,.10);
}

.campo-panel.is-info{
  background:linear-gradient(180deg, rgba(255,250,240,.98), rgba(255,255,255,.94));
}

.campo-panel h2{
  margin:0 0 14px;
  color:var(--campo-navy);
  font-size:1.28rem;
  font-weight:950;
}

.campo-section-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  color:var(--campo-navy);
  font-size:1.15rem;
  font-weight:950;
}

.campo-section-title::before{
  content:"";
  display:inline-block;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--campo-yellow);
  box-shadow:18px 0 0 var(--campo-coral), 36px 0 0 var(--campo-mint);
  margin-right:36px;
}

.campo-list{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

.campo-list li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  background:#f5fbfa;
  border:1px solid rgba(47,127,134,.18);
  border-radius:16px;
  padding:12px 14px;
  color:#25485e;
  line-height:1.45;
}

.campo-list li::before{
  content:"";
  flex:0 0 10px;
  width:10px;
  height:10px;
  margin-top:.42em;
  border-radius:50%;
  background:var(--campo-coral);
  box-shadow:0 0 0 4px rgba(255,97,92,.13);
}

.campo-list b,
.campo-note b{
  color:var(--campo-navy);
}

.campo-note{
  margin-top:12px;
  padding:14px 16px;
  border-radius:18px;
  color:#294f64;
  line-height:1.55;
  background:linear-gradient(135deg, rgba(242,211,59,.22), rgba(69,194,179,.12));
  border:1px solid rgba(208,160,76,.26);
}

.campo-form{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

.campo-boxdiv{
  border:1px solid rgba(47,127,134,.18);
  padding:16px;
  border-radius:20px;
  background:linear-gradient(180deg, #ffffff 0%, #fbfffe 100%);
}

.campo-subtitle{
  margin:0 0 12px;
  font-weight:950;
  color:var(--campo-navy);
  font-size:1.03rem;
}

.campo-help{
  margin:0 0 14px;
  font-size:.94rem;
  color:#577080;
  line-height:1.5;
}

.campo-field{
  display:grid;
  grid-template-columns:1fr;
  gap:7px;
  margin-bottom:13px;
}

.campo-field:last-child{
  margin-bottom:0;
}

.campo-field > label,
.campo-health-title{
  color:var(--campo-navy);
  font-weight:900;
  font-size:.94rem;
}

.campo-required{
  color:#cf2525;
  font-weight:1000;
}

.campo-page .fldAR,
.campo-page .campo-control,
.campo-page input[type="text"],
.campo-page input[type="date"],
.campo-page input[type="email"],
.campo-page textarea,
.campo-page select{
  width:100% !important;
  max-width:none !important;
  min-height:50px;
  border:1px solid rgba(24,58,86,.18) !important;
  border-radius:14px !important;
  background:#fff8dc !important;
  color:var(--campo-navy) !important;
  padding:11px 13px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}

.campo-page textarea{
  min-height:104px;
  resize:vertical;
}

.campo-page .select2-container{
  width:100% !important;
}

.campo-page .select2-container--bootstrap4 .select2-selection{
  min-height:50px !important;
  border:1px solid rgba(24,58,86,.18) !important;
  border-radius:14px !important;
  background:#fff8dc !important;
}

.campo-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered{
  line-height:48px !important;
  color:var(--campo-navy) !important;
  padding-left:12px !important;
}

.campo-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow{
  height:48px !important;
}

.campo-page .select2-container--bootstrap4.select2-container--disabled .select2-selection{
  background:#eef0ee !important;
}

.campo-health-question{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-bottom:16px;
  padding:14px;
  border-radius:18px;
  background:#f7fbfb;
  border:1px solid rgba(47,127,134,.16);
}

.campo-health-options{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.campo-health-option{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:9px 14px;
  margin:0;
  border-radius:999px;
  background:#ffffff;
  border:1px solid rgba(24,58,86,.16);
  color:var(--campo-navy);
  font-weight:900;
  cursor:pointer;
}

.campo-health-option input{
  width:auto !important;
  min-height:auto !important;
  margin:0;
  accent-color:var(--campo-teal);
}

.campo-health-detail{
  display:none;
}

.campo-health-detail.is-visible{
  display:grid;
  gap:7px;
}

.campo-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:4px;
}

.campo-page .btnSave,
.campo-page .btnCancel{
  min-height:48px;
  border-radius:14px;
  padding:10px 17px;
  font-weight:950;
  border:0;
  box-shadow:0 10px 24px rgba(24,58,86,.16);
}

.campo-page .btnSave{
  background:linear-gradient(135deg, var(--campo-yellow), #f5c44f);
  color:var(--campo-navy);
}

.campo-page .btnCancel{
  background:var(--campo-navy);
  color:#fff;
}

.campo-msg,
.campo-action-feedback{
  display:none;
  margin-bottom:14px;
  border-radius:16px;
  padding:13px 15px;
  font-weight:850;
  line-height:1.45;
}

.campo-msg.error,
.campo-action-feedback.error{
  background:#fff2ef;
  border:1px solid rgba(255,97,92,.42);
  color:#9e251d;
}

.campo-msg.success,
.campo-action-feedback.success{
  background:#ecfbf6;
  border:1px solid rgba(47,127,134,.28);
  color:#176454;
}

.campo-msg.is-visible,
.campo-action-feedback.is-visible{
  display:block;
}

.campo-mini-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  text-decoration:none;
  border:1px solid rgba(47,127,134,.28);
  background:#fff;
  color:#176454;
  border-radius:12px;
  padding:9px 13px;
  font-weight:900;
}

.campo-footer{
  margin-top:4px;
  color:#5d7482;
  font-size:.9rem;
  line-height:1.5;
}

@media (max-width: 720px){
  .campo-page{padding:12px 8px 34px;}
  .campo-hero{border-radius:22px;padding:22px 18px;}
  .campo-panel{border-radius:20px;padding:16px;}
  .campo-boxdiv{padding:14px;}
  .campo-actions{display:grid;grid-template-columns:1fr;}
  .campo-page .btnSave,
  .campo-page .btnCancel{width:100%;}
}
