/* Final contact, privacy and release refinements. */
.service-row a[href='/progetto-lifequest'] img { object-fit:contain; background:#091a3d; }

.case-launch { padding-bottom:38px; }
.dialog-launch { margin:25px 40px 16px; }
.direct-contacts { display:grid; gap:18px; margin-top:30px; }
.contact-form { display:grid; gap:22px; }
.contact-form h2 { font-size:34px; }
.contact-form fieldset { min-width:0; margin:0; padding:0; border:0; }
.contact-form legend { font-weight:700; font-size:19px; margin-bottom:16px; }
.contact-form .field { display:block; font-weight:600; font-size:15px; margin-top:20px; }
.contact-form .field>span { display:block; margin-bottom:8px; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; min-height:48px; padding:12px; border:1px solid #8d9cae; border-radius:2px; background:#fff; color:var(--ink); font:inherit; }
.contact-form textarea { min-height:160px; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.service-choices { display:flex; flex-wrap:wrap; gap:8px; }
.contact-form .service-choice { position:relative; margin:0; font-size:13px; font-weight:500; cursor:pointer; }
.service-choice input { position:absolute; width:1px; height:1px; min-height:0; opacity:0; }
.service-choice span { display:block; padding:11px 13px; border:1px solid var(--line); background:#fff; }
.service-choice input:checked+span { background:var(--blue); color:#fff; border-color:var(--blue); }
.service-choice input:focus-visible+span { outline:3px solid var(--blue); outline-offset:3px; }
.contact-form [aria-invalid='true'] { border-color:#b12424; }
.field-error { display:block; color:#a21b1b; font-size:13px; margin-top:7px; }
.form-alert { padding:20px; margin-bottom:24px; border:1px solid #a21b1b; background:#fff4f2; overflow-wrap:anywhere; }
.form-alert.success { border-color:#247243; background:#f0faf4; }
.form-alert ul { padding-left:20px; margin-top:12px; }
.form-alert:focus { outline:3px solid var(--blue); outline-offset:3px; }
.optional-quote { margin-top:22px; font-size:14px; }
.optional-quote summary { cursor:pointer; padding-block:10px; text-underline-offset:4px; text-decoration:none; }
.form-intro,.form-privacy-note,.field-help,.message-counter,.quote-summary small { font-size:13px; color:var(--muted); }
.form-privacy-note a { color:var(--blue); }
.hp-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden; }
.quote-summary { padding:20px; border:1px solid var(--blue); margin-bottom:22px; }
.quote-summary strong,.quote-summary small { display:block; margin-bottom:8px; }
.contact-form .button { width:100%; font-size:16px; }
.contact-form .button:disabled { opacity:.65; cursor:wait; }
.contact-alternative { text-decoration:none; text-underline-offset:5px; display:block; width:fit-content; }
.policy-hero { padding-block:60px 35px; }
.policy-hero p { margin-top:24px; font-size:20px; }
.policy-content { display:grid; grid-template-columns:240px minmax(0,1fr); gap:55px; padding-bottom:80px; }
.policy-toc { display:flex; flex-direction:column; gap:14px; align-items:start; font-size:14px; }
.policy-toc h2 { font-size:22px; margin-bottom:10px; }
.policy-meta { display:grid; gap:8px; color:var(--muted); font-size:13px; padding-bottom:30px; }
.policy-section { padding-block:28px; border-top:1px solid var(--line); }
.policy-section h2 { font-size:31px; margin-bottom:20px; scroll-margin-top:110px; }
.policy-section p+p,.policy-section ul { margin-top:18px; }
.policy-section ul { padding-left:22px; }
.policy-section a { overflow-wrap:anywhere; }
@media(max-width:760px) { .field-grid,.policy-content { grid-template-columns:1fr; } .field-grid { gap:0; } .policy-content { gap:40px; } .dialog-launch { margin:25px 22px 16px; } .case-launch .button { width:100%; } .policy-hero { padding-top:40px; } }
