/* Compact TREE journey, with a clear next step and an accessible request form. */
:root { --form-border:#cdd8c8; --focus:#426c2d; }
[hidden] { display:none !important; }
input, select, textarea { font:inherit; }
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline:3px solid #b8ee6280; outline-offset:2px; border-color:var(--focus);
}
button:disabled { cursor:not-allowed; opacity:.58; transform:none; }
.mobile-label { display:none; }
.compact-site .site-header { background:#101713f7; backdrop-filter:blur(14px); }
.compact-site .header-contact { padding:12px 20px; gap:16px; }
.compact-site .main-nav a { transition:color .15s; }
.compact-hero {
  min-height:530px;
  padding:62px 0 56px;
  background-image:linear-gradient(95deg,#0c1913f2 0%,#0c1913dc 38%,#0c191344 80%,#0c191322 100%),
    url('assets/tree-allenamento.webp');
  background-position:center, center 46%;
  border-bottom:5px solid var(--lime);
}
.compact-hero .eyebrow { display:flex; align-items:center; gap:11px; font-size:10px; }
.compact-hero .eyebrow::before { content:""; width:26px; height:2px; background:var(--lime); }
.compact-hero h1 { max-width:800px; font-size:clamp(62px,7vw,90px); line-height:1.02; }
.compact-hero .hero-description { max-width:590px; font-size:18px; line-height:1.7; margin-bottom:0; }
.hero-actions { margin-top:27px; gap:14px; }
.hero-actions .btn { min-height:52px; font-size:14px; }
.hero-actions .secondary { border-color:#ffffff62; background:#12251b48; }
.hero-invitation { margin-top:16px; font-size:12px; color:#dce7d7; }
.compact-activities { padding:61px 0 65px; background:#f5f6f0; }
.compact-sectionhead { align-items:flex-end; margin-bottom:30px; }
.compact-sectionhead h2 { font-size:clamp(30px,3.4vw,42px); max-width:560px; letter-spacing:-.045em; }
.compact-sectionhead p { max-width:260px; line-height:1.6; font-size:13px; text-align:right; }
.compact-cards { gap:22px; }
.compact-card { border:1px solid #dce5d6; border-radius:20px; box-shadow:0 9px 24px #18271608; }
.compact-picture { overflow:hidden; }
.compact-picture img { aspect-ratio:1.62; transition:transform .35s; }
.compact-card:hover .compact-picture img { transform:scale(1.018); }
.compact-picture::before {
  position:absolute; left:16px; top:16px; z-index:1; width:33px; height:33px;
  display:grid; place-items:center; border-radius:50%; background:var(--lime);
  color:#223319; font-size:11px; font-weight:800; box-shadow:0 2px 12px #10201815;
}
#taekwondo .compact-picture::before { content:"01"; }
#forza .compact-picture::before { content:"02"; }
#posturale .compact-picture::before { content:"03"; }
.compact-body { padding:24px; }
.compact-body h3 { font-size:26px; min-height:61px; }
.compact-body .card-kicker { min-height:25px; color:#526b47; }
.compact-body > p:not(.card-kicker) { color:#53634e; line-height:1.75; }
.compact-benefits { margin:18px 0; }
.compact-benefits li { padding-left:22px; font-size:13px; margin:11px 0; }
.compact-benefits li::before { content:"✓"; color:#5d8738; top:0; font-size:12px; }
.activity-cta {
  display:flex; justify-content:space-between; width:100%; min-height:47px;
  padding:11px 15px; background:#e9f2df; border:1px solid #cee0bb;
  border-radius:10px; font-size:12px; color:#29471f; gap:10px; margin-bottom:20px;
}
.activity-cta:hover { background:var(--lime); transform:translateY(-1px); }
.compact-details summary { font-size:11px; }
.compact-method {
  padding:47px 0 36px; background:radial-gradient(ellipse at 95% 30%,#28412c 0%,#122219 60%,#101713 100%);
}
.compact-method-grid { grid-template-columns:.9fr 1.25fr; gap:72px; }
.compact-method h2 { font-size:40px; }
.compact-method .eyebrow { font-size:10px; letter-spacing:.15em; }
.measure-list li { border:1px solid #5c725647; border-radius:30px; padding:5px 10px; font-size:11px; }
.compact-qualification { border-color:#57704e66; max-width:1060px; }

.trial-section { padding:67px 0 69px; background:#e9efdf; }
.trial-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:58px; align-items:start; }
.trial-copy { padding-top:17px; min-width:0; }
.trial-copy .eyebrow { font-size:10px; }
.trial-copy h2 { font-size:clamp(39px,4.3vw,57px); line-height:1.07; letter-spacing:-.055em; margin:19px 0 22px; }
.trial-intro { color:#53664a; font-size:16px; line-height:1.75; max-width:390px; }
.trial-photo { margin:28px 0 33px; position:relative; border-radius:18px; overflow:hidden; }
.trial-photo img { width:100%; aspect-ratio:1.55; object-fit:cover; }
.trial-photo figcaption {
  position:absolute; bottom:12px; right:12px; margin:0; padding:3px 8px;
  border-radius:5px; background:#101713b8; color:white; font-size:10px;
}
.trial-contacts { border-top:1px solid #c7d4ba; padding-top:25px; scroll-margin-top:110px; }
.trial-contacts h3 { font-size:17px; margin-bottom:17px; }
.trial-contacts .direct-contacts { margin-bottom:18px; }
.trial-contacts .direct-contacts a { font-size:19px; max-width:350px; }
.trial-contacts address { font-size:13px; font-style:normal; color:#53634c; line-height:1.8; }
.trial-contacts .text-link { font-size:12px; margin-top:8px; }
.trial-contacts .social-links { font-size:12px; margin-top:18px; }
.request-panel {
  min-width:0; background:#fff; padding:30px; border:1px solid #d8e1d0;
  border-top:4px solid #8cbd53; border-radius:20px; box-shadow:0 18px 45px #2133190a;
}
.request-panel > h3 { font-size:26px; margin-bottom:9px; letter-spacing:-.035em; }
.form-required-note { font-size:11px; line-height:1.6; color:#697762; margin-bottom:23px; }
.form-group { padding:0; margin:0 0 25px; border:0; min-width:0; }
.form-group legend { font-size:13px; line-height:1.5; font-weight:750; padding:0; margin-bottom:10px; }
.form-group legend span, .form-field > label > span[aria-hidden] { color:#526d3d; }
.form-help { font-size:11px; color:#6b7864; line-height:1.6; margin:0 0 10px; }
.request-type-options { display:grid; grid-template-columns:1.2fr 1fr; gap:9px; }
.request-option, .choice-card {
  display:flex; align-items:center; gap:10px; position:relative;
  border:1px solid var(--form-border); border-radius:10px; color:#42543a;
  background:#fbfcf9; font-size:12px; font-weight:600; padding:11px 12px;
  min-height:46px; line-height:1.5; cursor:pointer;
}
.request-option:has(input:checked) { border-color:#294b20; background:#173120; color:#f4f8ed; }
.choice-card:has(input:checked) { border-color:#6e934e; background:#edf6e3; color:#23411b; box-shadow:inset 0 0 0 1px #6e934e; }
.request-option input, .choice-card input, .form-consent input {
  appearance:auto; accent-color:#608e35; width:17px; height:17px; flex-shrink:0; margin:0;
}
.request-option input { accent-color:#b8ee62; }
.choice-grid { display:grid; grid-template-columns:1fr; gap:7px; }
.choice-card { min-height:43px; padding:9px 12px; font-weight:550; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px 13px; min-width:0; }
.form-field { min-width:0; }
.form-field label { display:block; font-size:12px; font-weight:650; color:#35492e; margin-bottom:6px; line-height:1.45; }
.form-field input, .form-field textarea, .form-field select {
  display:block; width:100%; max-width:100%; min-width:0; min-height:45px;
  background:#fff; color:#20331a; border:1px solid var(--form-border); border-radius:8px;
  padding:10px 11px; font-size:15px; line-height:1.5; box-shadow:none;
}
.form-field input:hover, .form-field textarea:hover, .form-field select:hover { border-color:#98ae88; }
.form-field textarea { resize:vertical; min-height:82px; }
.form-field input[type=date] { min-height:46px; }
.form-field > .form-help { margin:7px 0 0; }
.span-2 { grid-column:1 / -1; }
.birth-date-field input { max-width:240px; }
.guardian-fields { padding:18px 16px 4px; background:#f1f5eb; border:1px solid #d8e2cd; border-radius:12px; }
.guardian-fields legend { padding:0 6px; margin-left:-6px; }
.guardian-fields .form-consent { margin-top:2px; margin-bottom:12px; }
.optional-label { font-size:11px; font-weight:400; color:#78836f; }
.message-field { margin-bottom:22px; }
.form-consent { display:flex; align-items:flex-start; gap:10px; color:#5b6c50; font-size:11px; line-height:1.65; cursor:pointer; }
.form-consent input { margin-top:2px; }
.form-consent a { color:#385f24; text-decoration:underline; text-underline-offset:3px; }
.privacy-consent { margin:20px 0 16px; flex-wrap:wrap; }
.privacy-consent > span { flex:1; }
.privacy-consent .form-error { flex-basis:100%; }
.form-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.turnstile-container { min-height:0; margin:14px 0; max-width:100%; }
.turnstile-container:empty { display:none; }
.form-actions { margin-top:16px; }
.form-submit { width:100%; border-radius:10px; min-height:50px; font-size:14px; }
.form-submit-note { text-align:center; color:#728068; font-size:10px; line-height:1.5; margin:10px 0 0; }
.form-status { margin-top:18px; border-radius:9px; font-size:12px; line-height:1.7; padding:13px 15px; }
.form-status:empty { display:none; }
.form-status.info, .form-status.preview { background:#f0f5e9; color:#415c30; }
.form-status.success { border:1px solid #9ac276; background:#edf7e6; color:#29471f; }
.form-status.error, .form-status.unavailable { border:1px solid #e4c8b6; background:#fbf2e9; color:#714b28; }
.form-status a { font-weight:650; text-decoration:underline; text-underline-offset:3px; }
.form-status small { display:block; margin-top:7px; font-size:10px; opacity:.8; }
.form-error { display:block; font-size:11px; line-height:1.5; color:#94372e; margin-top:6px; font-weight:500; }
[aria-invalid=true] { border-color:#b54b3e !important; }
.form-error-summary { background:#fff1ec; border-left:3px solid #b45742; padding:12px; color:#843d2b; font-size:12px; margin-bottom:18px; border-radius:3px; }
.preview-form-notice { font-size:11px; line-height:1.6; padding:12px 14px; color:#516845; background:#f0f5e9; border:1px dashed #bacbaa; border-radius:9px; margin:0 0 21px; }
.form-preview-result { margin-top:22px; padding:20px; border:1px solid #bbcda8; border-radius:12px; background:#f8fbf3; outline-offset:4px; }
.form-preview-result h3 { font-size:18px; margin:0 0 10px; }
.form-preview-result p { font-size:12px; color:#5b7050; }
.form-preview-result dl { margin:15px 0 0; }
.form-preview-result dt { font-size:10px; font-weight:750; text-transform:uppercase; letter-spacing:.06em; color:#6c7b62; margin-top:13px; }
.form-preview-result dd { font-size:13px; margin:2px 0 0; overflow-wrap:anywhere; white-space:pre-wrap; }
.no-script-note { border-left:3px solid #8cac66; padding:12px 15px; background:#f0f5e9; font-size:13px; }
.document-main .document-summary { color:#5e7152; font-size:17px; }
.document-main .privacy-date { font-size:12px; color:#77846b; }
.document-main ul { padding-left:21px; }
.document-main li { margin:9px 0; }
.document-main .contact-list a { display:inline; text-decoration:underline; text-underline-offset:3px; }
.document-main .service-note { background:#edf3e5; padding:19px 22px; border-radius:13px; font-size:14px; }

@media (min-width:761px) and (max-width:1000px) {
  .compact-sectionhead h2 { max-width:450px; }
  .compact-body { padding:21px 18px; }
  .compact-body h3 { font-size:23px; min-height:78px; }
  .activity-cta { font-size:11px; padding:10px 11px; gap:7px; }
  .trial-layout { grid-template-columns:.8fr 1.2fr; gap:30px; }
  .request-panel { padding:25px 22px; }
  .trial-copy h2 { font-size:44px; }
  .trial-contacts .direct-contacts a { font-size:16px; }
  .request-option { padding:10px 8px; font-size:11px; gap:7px; }
}
@media (max-width:760px) {
  .compact-site .nav { min-height:73px; gap:10px; }
  .brand { order:0; }
  .compact-site .header-contact { display:inline-flex; order:1; margin-left:auto; min-height:38px; padding:9px 14px; font-size:12px; gap:9px; }
  .header-contact .desktop-label { display:none; }
  .header-contact .mobile-label { display:inline; }
  .menu-toggle { order:2; font-size:12px; padding:9px 11px; gap:8px; }
  .compact-site .main-nav { order:3; gap:0; }
  .compact-hero { min-height:480px; padding:44px 0 38px; background-position:center, 58% center; }
  .compact-hero h1 { font-size:clamp(48px,11vw,76px); max-width:100%; }
  .compact-hero .hero-description { font-size:16px; line-height:1.75; max-width:470px; }
  .hero-description br { display:none; }
  .hero-actions { gap:11px; margin-top:24px; }
  .hero-actions .btn { font-size:12px; padding:13px 17px; gap:13px; }
  .hero-actions .secondary { min-height:43px; padding:10px 15px; }
  .hero-invitation { font-size:11px; margin-top:14px; }
  .compact-activities { padding:39px 0 44px; }
  .compact-sectionhead { margin-bottom:24px; }
  .compact-sectionhead h2 { font-size:33px; margin-bottom:11px; max-width:340px; }
  .compact-sectionhead p { text-align:left; max-width:none; font-size:12px; }
  .compact-cards { gap:25px; }
  .compact-picture img { aspect-ratio:1.8; }
  .compact-body { padding:22px; }
  .compact-body h3 { min-height:0; font-size:27px; }
  .compact-body .card-kicker { min-height:0; }
  .compact-benefits li { font-size:13px; }
  .activity-cta { font-size:12px; }
  .compact-method { padding:39px 0 34px; }
  .compact-method-grid { grid-template-columns:1fr; gap:22px; }
  .compact-method h2 { font-size:34px; }
  .trial-section { padding:42px 0; }
  .trial-layout { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .trial-copy { display:contents; }
  .trial-copy > .eyebrow { order:0; margin-bottom:0; }
  .trial-copy > h2 { order:1; }
  .trial-copy > .trial-intro { order:2; margin-bottom:25px; }
  .trial-copy h2 { font-size:43px; margin:14px 0 18px; }
  .trial-copy h2 br { display:none; }
  .trial-intro { font-size:15px; max-width:550px; }
  .trial-photo { display:none; }
  .trial-contacts { order:4; padding-top:22px; margin-top:28px; }
  .trial-contacts h3 { font-size:14px; margin-bottom:12px; }
  .trial-contacts .direct-contacts { flex-direction:row; flex-wrap:wrap; gap:5px 22px; margin-bottom:10px; }
  .trial-contacts .direct-contacts a { font-size:15px; max-width:none; gap:10px; }
  .trial-contacts address { font-size:12px; }
  .trial-contacts .social-links { margin-top:12px; font-size:11px; }
  .request-panel { order:3; width:100%; padding:26px 23px; border-radius:17px; }
  .request-panel > h3 { font-size:25px; }
  .form-group { margin-bottom:23px; }
  .form-field input, .form-field select, .form-field textarea { font-size:16px; }
  .form-submit { font-size:13px; }
}
@media (max-width:420px) {
  .brand-type { display:none; }
  .compact-site .nav { gap:8px; }
  .compact-site .header-contact { padding:9px 12px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-actions .btn { min-height:47px; }
  .hero-actions .secondary { min-height:40px; background:transparent; }
  .compact-hero { min-height:515px; }
  .compact-hero h1 { font-size:46px; }
  .compact-sectionhead h2 { font-size:31px; }
  .trial-copy h2 { font-size:39px; max-width:290px; }
  .request-panel { padding:24px 18px; }
  .request-option { font-size:11px; padding:10px 8px; gap:7px; }
  .request-type-options { gap:7px; }
  .choice-card { font-size:11px; }
  .form-grid { grid-template-columns:1fr; gap:13px; }
  .birth-date-field input { max-width:none; }
  .guardian-fields { padding:17px 12px 4px; }
  .form-consent { font-size:11px; }
}
@media (max-width:360px) {
  .compact-hero h1 { font-size:41px; }
  .hero-actions .btn { font-size:11px; padding:12px 13px; gap:10px; }
  .compact-site .header-contact { padding:8px 10px; }
  .compact-body { padding:21px; }
  .request-type-options { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; }
}
@media print {
  .request-panel, .hero-actions, .activity-cta, .hero-invitation { display:none; }
  .trial-layout { display:block; }
  .trial-copy, .trial-intro { max-width:none; }
}
