/* Mockup master: 1024 x 1536. Public styles only; admin keeps style.css.
   All desktop dimensions scale together from the measured reference. */
:root {
  --s: .09765625cqw;
  --f-body: 'Roboto', Arial, sans-serif;
  --f-head: 'Roboto Condensed', Arial, sans-serif;
  --f-hand: 'Kalam', cursive;
  --navy: #12192e; --viola: #61248c; --viola-deep: #542b70;
  --badge: #5b1699; --rosa: #f28eb6; --rosso: #ee0750; --wa: #00a82b;
}
body { container-type: inline-size; line-height: 1.35; }
.wrap { width: 90.625%; max-width: none; padding: 0; }
.site-header { position: relative; box-shadow: none; }
.header-in { width: 93.4%; min-height: calc(60 * var(--s)); gap: calc(18 * var(--s)); }
.logo { gap: 0; flex-shrink: 0; }
.logo-mark { width: calc(48 * var(--s)); height: calc(48 * var(--s)); object-fit: cover; clip-path: inset(0 40% 0 0); margin-right: calc(-12 * var(--s)); }
.logo-word { font-family: var(--f-head); font-size: calc(35 * var(--s)); font-weight: 800; line-height: 1; letter-spacing: calc(.3 * var(--s)); gap: calc(7 * var(--s)); }
.logo-claim { font-family: var(--f-body); font-size: calc(10 * var(--s)); color: #fff; margin: 0; }
.main-nav ul { gap: calc(16 * var(--s)); }
.main-nav a { font-family: var(--f-body); color: #fff; font-size: calc(11 * var(--s)); font-weight: 400; padding: calc(7 * var(--s)) 0; border-radius: 0; white-space: nowrap; }
.main-nav a.cur { color: #ff3275; background: none; border-bottom: calc(2 * var(--s)) solid #ee76a1; }
.head-wa { width: calc(170 * var(--s)); min-height: calc(44 * var(--s)); padding: calc(4 * var(--s)) calc(8 * var(--s)); gap: calc(8 * var(--s)); border-radius: calc(5 * var(--s)); box-shadow: none; background: linear-gradient(#11b828, #079a21); flex-shrink: 0; }
.head-wa .ic { width: calc(32 * var(--s)); height: calc(32 * var(--s)); }
.head-wa span { display: flex; text-align: center; }
.head-wa b { font-family: var(--f-head); font-size: calc(20 * var(--s)); font-weight: 700; white-space: nowrap; }
.head-wa i { font-family: var(--f-head); font-size: calc(10 * var(--s)); font-weight: 500; letter-spacing: 0; opacity: 1; }

/* Hero photograph and HTML lettering, no mockup pixels. */
.hero { aspect-ratio: 1024 / 398; }
.hero-written { left: 2.7%; top: 60%; max-width: 9.6%; font-size: calc(21 * var(--s)); font-weight: 400; line-height: 1.02; transform: rotate(-8deg); text-shadow: 0 1px 4px #0005; }
.hero-written .ic { display: block; width: calc(25 * var(--s)); height: calc(29 * var(--s)); margin: calc(4 * var(--s)) 0 0 auto; }
.hero-written.rv, .hero-written.rv.on { transform: rotate(-8deg); }
.hero-panel { left: 47.1%; top: 0; width: 38.6%; height: 65.5%; padding: calc(20 * var(--s)) 0 0 calc(48 * var(--s)); background: none; border-radius: 0; box-shadow: none; }
.hero-panel::before, .hero-panel::after, .hero-panel .brush { content: ''; display: block; position: absolute; inset: auto; border-radius: 0; background: linear-gradient(105deg, #633184, #542179); mask: url('../img/brush-stroke.svg') center / 100% 100% no-repeat; z-index: -1; }
.hero-panel::before { left: -1%; top: -2%; width: 96%; height: 30%; transform: rotate(-4deg); }
.hero-panel .b1 { left: 1%; top: 17%; width: 100%; height: 30%; transform: rotate(-4.5deg); }
.hero-panel .b2 { left: 3%; top: 37%; width: 99%; height: 30%; transform: rotate(-4deg); }
.hero-panel .b3 { left: 7%; top: 58%; width: 97%; height: 29%; transform: rotate(-3.5deg); }
.hero-panel::after { left: 10%; top: 77%; width: 91%; height: 27%; transform: rotate(-2.6deg); }
.drip { display: none; }
.hero-slogan { font-family: var(--f-body); font-size: calc(36 * var(--s)); font-weight: 800; line-height: 1.025; letter-spacing: calc(-.65 * var(--s)); transform: rotate(-5deg); text-shadow: none; width: calc(350 * var(--s)); }
.hero-slogan > span { white-space: nowrap; }
.hero-cta { display: block; font-family: var(--f-hand); font-size: calc(40 * var(--s)); line-height: .94; font-weight: 700; letter-spacing: calc(-1 * var(--s)); max-width: calc(330 * var(--s)); margin: calc(4 * var(--s)) 0 0 calc(-8 * var(--s)); transform: rotate(-3deg); text-align: center; text-shadow: none; }
.hero-cta { position: relative; }
.hero-cta .ic { position: absolute; right: calc(8 * var(--s)); top: calc(2 * var(--s)); width: .64em; height: .64em; fill: none; color: #f9c4e8; stroke-width: 1.7; margin: 0; }
.hero-strip { left: 52.3%; top: 64.5%; width: 37%; height: 14.2%; padding: 0 calc(22 * var(--s)); background: none; border-radius: 0; box-shadow: none; }
.hero-strip::before { content: ''; position: absolute; inset: 0 -2%; background: #fff; mask: url('../img/brush-mask.svg') center / 100% 100% no-repeat; z-index: -1; transform: rotate(-1deg); }
.hero-strip p { font-family: var(--f-body); font-size: calc(16 * var(--s)); font-weight: 700; line-height: 1.12; letter-spacing: calc(-.3 * var(--s)); }
.hero-checklist { left: 85.9%; top: 12%; width: 14.1%; transform: rotate(-8deg); }
.hero-checklist li { font-family: var(--f-hand); font-size: calc(19 * var(--s)); font-weight: 400; line-height: 1.1; gap: calc(7 * var(--s)); margin-bottom: calc(10 * var(--s)); }
.hero-checklist .ch-row { font-weight: 400; }
.hero-checklist .ic { width: calc(24 * var(--s)); height: calc(24 * var(--s)); padding: 0; background: none; color: #fff; stroke-width: 2.6; }
.hero-btns { left: 50.9%; top: 80.8%; width: 41.2%; height: 15.1%; gap: calc(12 * var(--s)); padding: 0; }
.hero-btn { gap: calc(12 * var(--s)); padding: calc(4 * var(--s)) calc(14 * var(--s)); box-shadow: none; border: calc(1 * var(--s)) solid #ffffff80; }
.hero-btns .btn-wa { flex: 227 1 0; background: linear-gradient(105deg, #00b92d, #009b28); }
.hero-btns .btn-quote { flex: 182 1 0; background: linear-gradient(100deg, #ee0954, #f70049); }
.hero-btn .ic { width: calc(36 * var(--s)); height: calc(36 * var(--s)); }
.hero-btn b { font-family: var(--f-head); font-size: calc(27 * var(--s)); font-weight: 700; white-space: nowrap; }
.hero-btn i { font-family: var(--f-head); font-size: calc(12 * var(--s)); font-weight: 500; letter-spacing: 0; opacity: 1; }
.hero-btns .btn-quote b { font-size: calc(17 * var(--s)); line-height: .98; max-width: calc(115 * var(--s)); white-space: normal; text-align: left; }
.hero-btns .btn-quote .ic { width: calc(27 * var(--s)); }
.head-wa .wa-label, .hero-btn .wa-label { display: block; max-width: calc(140 * var(--s)); font-family: var(--f-head); font-size: calc(23 * var(--s)); font-weight: 700; line-height: 1.02; text-align: center; white-space: normal; }
.head-wa .wa-label { max-width: calc(108 * var(--s)); font-size: calc(19 * var(--s)); }

/* Services: measured 220 x 335 cards, photographs 220 x 167. */
.servizi, .vantaggi, .preventivo, .page-head { background: #f8f9fb url('../img/paper.svg') center / cover; }
.servizi { padding: calc(6 * var(--s)) 0 0; }
.sec-head { margin: 0 0 calc(4 * var(--s)); }
.sec-title { font-family: var(--f-body); font-size: calc(24 * var(--s)); font-weight: 900; line-height: 1.1; gap: calc(16 * var(--s)); }
.sec-title .line { height: calc(1 * var(--s)); width: calc(39 * var(--s)); background: var(--badge); }
.sec-title .line:last-child { background: var(--badge); }
.sec-hand { font-family: var(--f-hand); color: var(--rosso); font-size: calc(16 * var(--s)); line-height: 1.2; margin: 0; }
.cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(14 * var(--s)); }
.card { height: calc(335 * var(--s)); background: #fff9; border: 0; border-radius: calc(6 * var(--s)); box-shadow: none; }
.card-link { display: flex; flex-direction: column; align-items: center; padding: 0 0 calc(10 * var(--s)); }
.card-media { width: 100%; overflow: visible; border-radius: calc(6 * var(--s)) calc(6 * var(--s)) 0 0; flex-shrink: 0; }
.card-photo { aspect-ratio: 220 / 167; overflow: hidden; border-radius: inherit; }
.card-media img { aspect-ratio: 220 / 167; border-radius: inherit; object-fit: cover; transform: scale(1.16); transform-origin: 50% 38%; }
.card:hover .card-media img { transform: scale(1.2); }
.card-badge { bottom: 7%; width: calc(53 * var(--s)); height: calc(53 * var(--s)); border: calc(2 * var(--s)) solid #fff; box-shadow: none; background: linear-gradient(#7b2eb2, #4d128a); }
.card-badge .ic { width: calc(30 * var(--s)); height: calc(30 * var(--s)); }
.card-title { font-family: var(--f-head); font-size: calc(16 * var(--s)); font-weight: 800; line-height: 1.12; margin: calc(15 * var(--s)) calc(4 * var(--s)) 0; flex-shrink: 0; }
.card-slogan { font-family: var(--f-hand); font-weight: 400; font-size: calc(16 * var(--s)); line-height: 1.04; color: var(--rosso); min-height: calc(34 * var(--s)); margin: calc(3 * var(--s)) calc(12 * var(--s)) 0; flex-shrink: 0; }
.card-desc { font-family: var(--f-body); font-variation-settings: 'wdth' 95; color: #303341; font-size: calc(12.8 * var(--s)); line-height: 1.17; text-align: left; margin: calc(7 * var(--s)) calc(22 * var(--s)) calc(6 * var(--s)); flex: 1; min-height: 0; }
.card:nth-child(2) .card-desc { margin-inline: calc(17 * var(--s)); }
.card .btn-more { font-family: var(--f-body); background: linear-gradient(#6924a5, #4b0d8d); color: #fff; font-size: calc(11 * var(--s)); font-weight: 500; width: calc(132 * var(--s)); min-height: calc(28 * var(--s)); padding: calc(5 * var(--s)) calc(12 * var(--s)); gap: calc(10 * var(--s)); flex-shrink: 0; }
.card .btn-more .ic { width: calc(12 * var(--s)); height: calc(12 * var(--s)); }
.card-feature { grid-column: 1 / -1; height: calc(210 * var(--s)); margin-top: calc(5 * var(--s)); }
.card-feature .card-link { display: grid; grid-template-columns: 35% 1fr; grid-template-rows: auto auto 1fr auto; padding: 0 calc(25 * var(--s)) 0 0; column-gap: calc(30 * var(--s)); }
.card-feature .card-media { grid-row: 1 / 5; height: 100%; border-radius: calc(6 * var(--s)) 0 0 calc(6 * var(--s)); }
.card-feature .card-photo, .card-feature .card-photo img { height: 100%; aspect-ratio: auto; }
.card-feature .card-photo img { transform: none; }
.card-feature .card-badge { left: auto; right: calc(-20 * var(--s)); bottom: calc(18 * var(--s)); transform: none; }
.card-feature .card-title { font-size: calc(24 * var(--s)); margin-top: calc(18 * var(--s)); }
.card-feature .card-slogan { font-size: calc(21 * var(--s)); min-height: 0; }
.card-feature .card-desc { font-size: calc(15 * var(--s)); line-height: 1.35; margin: calc(10 * var(--s)) calc(22 * var(--s)); text-align: center; }
.card-feature .btn-more { justify-self: center; margin-bottom: calc(16 * var(--s)); }
.service-local { padding: calc(20 * var(--s)) calc(8 * var(--s)); }
.service-local h2 { font-family: var(--f-head); font-size: calc(24 * var(--s)); line-height: 1.15; margin-bottom: calc(8 * var(--s)); }
.service-local p { font-size: calc(14 * var(--s)); line-height: 1.5; margin-top: calc(8 * var(--s)); }
.service-local a { color: #5a168d; text-decoration: underline; }

/* Six advantages, light band and fine dividers as in the reference. */
.vantaggi { color: var(--navy); padding: calc(12 * var(--s)) 0; }
.v-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; }
.v-item { position: relative; flex-direction: column; justify-content: start; gap: calc(5 * var(--s)); text-align: center; }
.v-item + .v-item::before { content: ''; position: absolute; left: 0; top: calc(15 * var(--s)); height: calc(33 * var(--s)); width: 1px; background: #cfd3e0; }
.v-ic { width: calc(45 * var(--s)); height: calc(45 * var(--s)); background: #eaeaf3; color: #4f1288; }
.v-ic .ic { width: calc(29 * var(--s)); height: calc(29 * var(--s)); }
.v-item p { text-transform: uppercase; font-family: var(--f-head); font-size: calc(12 * var(--s)); font-weight: 600; line-height: 1.06; max-width: calc(94 * var(--s)); min-height: calc(26 * var(--s)); }

/* Two equal panels, 278 px high on the reference canvas. */
.ironica { grid-template-columns: 50.2% 49.8%; background: var(--viola-deep); }
.ir-media { height: calc(278 * var(--s)); min-height: 0; }
.ir-media img { min-height: 0; height: 100%; object-fit: cover; }
.ir-written { left: auto; right: 4%; top: 17%; bottom: auto; width: 23%; max-width: none; color: #4c137b; font-size: calc(22 * var(--s)); font-weight: 400; line-height: 1.02; text-shadow: none; transform: rotate(-9deg); }
.ir-heart { display: block; fill: none; width: calc(30 * var(--s)); height: calc(30 * var(--s)); margin: calc(6 * var(--s)) auto 0; color: #ec3980; }
.ir-panel { height: calc(278 * var(--s)); padding: calc(12 * var(--s)) calc(30 * var(--s)) calc(12 * var(--s)) calc(38 * var(--s)); background: linear-gradient(115deg, #5b3175, #502279); }
.ir-title { font-family: var(--f-body); font-size: calc(35 * var(--s)); line-height: .96; font-weight: 750; letter-spacing: calc(-.7 * var(--s)); }
.ir-title-accent, .ir-title em { color: var(--rosa); }
.ir-title em { font-family: inherit; font-size: 1em; line-height: 1.02; font-weight: inherit; transform: none; }
.ir-text { font-family: var(--f-body); font-size: calc(15 * var(--s)); line-height: 1.22; font-weight: 400; margin: calc(8 * var(--s)) 0 calc(7 * var(--s)); max-width: calc(370 * var(--s)); color: #fff; }
.ir-punch { display: block; color: var(--rosa); font-weight: 400; }
.ir-items { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(11 * var(--s)); margin-left: calc(-12 * var(--s)); margin-right: calc(-12 * var(--s)); }
.ir-item { flex-direction: column; align-items: center; text-align: center; gap: calc(5 * var(--s)); }
.ir-ic { background: none; color: #fff; width: calc(34 * var(--s)); height: calc(34 * var(--s)); }
.ir-ic .ic { width: calc(34 * var(--s)); height: calc(34 * var(--s)); stroke-width: 1.6; }
.ir-item p { font-family: var(--f-hand); font-size: calc(14 * var(--s)); line-height: 1.08; font-weight: 400; }

/* Quote composition: title 177, form 324, photograph 244, contacts 150. */
.preventivo { padding: calc(12 * var(--s)) 0 calc(4 * var(--s)); }
.pv-wrap { grid-template-columns: 55.8% 1fr; gap: calc(19 * var(--s)); align-items: stretch; }
.pv-left { display: grid; grid-template-columns: 34.2% 1fr; column-gap: calc(18 * var(--s)); position: relative; align-items: start; }
.pv-head { margin: 0; text-align: left; }
.pv-title { display: block; font-family: var(--f-body); font-size: calc(21 * var(--s)); line-height: .99; font-weight: 900; text-transform: uppercase; letter-spacing: calc(-.3 * var(--s)); }
.pv-title b { display: block; color: var(--rosso); font-size: calc(25 * var(--s)); }
.pv-title::after { display: none; }
.pv-sub { font-family: var(--f-body); color: var(--navy); font-size: calc(11 * var(--s)); line-height: 1.2; margin-top: calc(5 * var(--s)); white-space: nowrap; }
.qform { grid-template-columns: 1fr; gap: calc(7 * var(--s)); padding: calc(5 * var(--s)) 0 0; margin: 0; background: transparent; border: 0; box-shadow: none; border-radius: 0; min-width: 0; }
.qgrid, .qextra-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(7 * var(--s)) calc(13 * var(--s)); grid-column: 1 / -1; }
.qf { position: relative; gap: 0; min-width: 0; }
.qf > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.qf input, .qf select, .qf textarea { font-family: var(--f-head); font-size: calc(10 * var(--s)); padding: calc(4 * var(--s)) calc(8 * var(--s)); min-height: calc(26 * var(--s)); height: calc(26 * var(--s)); border: 1px solid #d9dbe2; border-radius: calc(2 * var(--s)); background: #ffffffb0; line-height: 1.2; }
.qf input::placeholder, .qf textarea::placeholder { color: #444650; opacity: 1; }
.qf textarea { height: calc(40 * var(--s)); min-height: calc(40 * var(--s)); resize: vertical; }
.qextras { grid-column: 1 / -1; position: relative; margin-top: calc(-7 * var(--s)); height: 0; }
.qextras > summary { position: absolute; top: calc(10 * var(--s)); right: calc(6 * var(--s)); z-index: 1; font-size: calc(9 * var(--s)); color: #5c347a; cursor: pointer; list-style: none; }
.qextras > summary::-webkit-details-marker { display: none; }
.qextras[open] { height: auto; margin-top: 0; }
.qextras[open] > summary { position: static; text-align: right; margin-bottom: calc(5 * var(--s)); }
.qprivacy { font-family: var(--f-body); font-size: calc(9 * var(--s)); line-height: 1.1; color: var(--navy); gap: calc(5 * var(--s)); }
.qprivacy a { color: var(--navy); font-weight: 500; }
.qprivacy input { width: calc(10 * var(--s)); height: calc(10 * var(--s)); flex-shrink: 0; }
.qform .btn-cta { justify-self: end; width: 84%; min-height: calc(44 * var(--s)); padding: calc(6 * var(--s)) calc(16 * var(--s)); background: linear-gradient(105deg, #eb0752, #f0084a); border: 1px solid #d60d49; box-shadow: none; gap: calc(12 * var(--s)); }
.qform .btn-cta > .ic { width: calc(30 * var(--s)); height: calc(30 * var(--s)); fill: #fff; stroke-width: 1; }
.qform .btn-cta > span { display: block; text-align: left; }
.qform .btn-cta b { display: block; font-family: var(--f-head); font-size: calc(15 * var(--s)); line-height: 1.03; font-weight: 700; text-transform: uppercase; }
.qform .btn-cta small { display: block; font-family: var(--f-head); font-size: calc(9 * var(--s)); font-weight: 500; line-height: 1.1; text-transform: uppercase; }
.qerr { font-size: calc(11 * var(--s)); }
.pv-written { position: absolute; left: 15.5%; bottom: calc(22 * var(--s)); width: 21%; margin: 0; font-family: var(--f-hand); font-size: calc(16 * var(--s)); line-height: 1; display: block; transform: rotate(-10deg); }
.pv-arrow { width: calc(80 * var(--s)); height: calc(40 * var(--s)); display: block; margin-left: calc(30 * var(--s)); transform: rotate(-10deg); }
.pv-right { display: grid; grid-template-columns: 61% 1fr; align-items: end; gap: 0; min-width: 0; }
.pv-photo { max-width: none; width: 100%; align-self: stretch; }
.pv-photo img { width: 100%; height: calc(226 * var(--s)); aspect-ratio: auto; object-fit: cover; object-position: center 30%; border-radius: calc(5 * var(--s)); }
.balloon { position: absolute; top: calc(3 * var(--s)); right: calc(-11 * var(--s)); width: calc(113 * var(--s)); max-width: none; margin: 0; padding: calc(12 * var(--s)) calc(14 * var(--s)) calc(10 * var(--s)); border: calc(2 * var(--s)) solid #431077; border-radius: 50%; background: #fffffff5; color: #220f3e; font-family: var(--f-hand); font-size: calc(15 * var(--s)); line-height: .98; font-weight: 400; box-shadow: none; transform: rotate(-8deg); }
.balloon::after { content: ''; position: absolute; left: calc(13 * var(--s)); bottom: calc(-9 * var(--s)); width: calc(15 * var(--s)); height: calc(17 * var(--s)); border-left: calc(2 * var(--s)) solid #431077; border-bottom: calc(2 * var(--s)) solid #431077; background: #fff; transform: skewY(-32deg); }
.balloon-heart { display: block; color: #ee2468; fill: none; width: calc(17 * var(--s)); height: calc(17 * var(--s)); margin: calc(2 * var(--s)) auto 0; }
.pv-contacts { gap: calc(17 * var(--s)); padding: 0 0 calc(10 * var(--s)); color: var(--navy); }
.pv-contacts li { background: none; border: 0; border-radius: 0; box-shadow: none; padding: 0; gap: calc(7 * var(--s)); }
.pv-contacts a { color: var(--navy); font-family: var(--f-body); font-size: calc(16 * var(--s)); font-weight: 800; white-space: nowrap; }
.pv-contacts b { font-family: var(--f-body); font-size: calc(21 * var(--s)); font-weight: 900; letter-spacing: calc(-.5 * var(--s)); }
.pv-contacts i { display: block; color: var(--navy); font-size: calc(12 * var(--s)); font-weight: 400; letter-spacing: 0; white-space: nowrap; }
.pc-ic { width: calc(26 * var(--s)); height: calc(26 * var(--s)); background: var(--navy); }
.pc-ic .ic { width: calc(18 * var(--s)); height: calc(18 * var(--s)); }
.pv-note { font-family: var(--f-hand); font-size: calc(18 * var(--s)); font-weight: 400; line-height: 1.05; color: #4c177b; margin-left: calc(33 * var(--s)); transform: rotate(-7deg); text-align: left; }
.note-heart { fill: none; stroke: currentColor; }

.site-footer { margin: 0; }
.foot-in { width: 93.4%; grid-template-columns: auto 1fr auto; gap: calc(26 * var(--s)); padding: calc(6 * var(--s)) 0 0; }
.foot-logo .logo-word { font-size: calc(26 * var(--s)); }
.foot-logo .logo-claim { font-size: calc(8 * var(--s)); }
.foot-logo .l-casa { background-image: linear-gradient(#ff78b1, #ee1153); }
.foot-nav ul { display: flex; justify-content: center; flex-wrap: wrap; gap: calc(4 * var(--s)) 0; }
.foot-nav li + li { border-left: 1px solid #ffffff50; }
.foot-nav a { font-family: var(--f-body); color: #fff; font-size: calc(9 * var(--s)); font-weight: 400; display: block; padding: 0 calc(10 * var(--s)); }
.foot-social { gap: calc(8 * var(--s)); }
.soc { width: calc(24 * var(--s)); height: calc(24 * var(--s)); }
.soc .ic { width: calc(17 * var(--s)); height: calc(17 * var(--s)); }
.soc-facebook { background: #1877f2; color: #fff; box-shadow: inset 0 0 0 1px #ffffff40; }
.soc-facebook .ic { width: 100%; height: 100%; }
.soc-instagram { border-radius: 27%; background: radial-gradient(circle at 30% 105%, #ffdc80 0%, #fcaf45 18%, #f77737 30%, #e1306c 52%, #c13584 66%, #833ab4 84%, #5851db 100%); color: #fff; }
.soc-instagram .ic { width: 88%; height: 88%; }
.soc-tiktok { background: #080912; color: #fff; }
.soc-tiktok .ic { width: 76%; height: 76%; filter: drop-shadow(calc(-.7 * var(--s)) calc(-.3 * var(--s)) 0 #25f4ee) drop-shadow(calc(.7 * var(--s)) calc(.5 * var(--s)) 0 #fe2c55); }
.foot-base { border: 0; padding: 0 0 calc(3 * var(--s)); font-size: calc(8 * var(--s)); color: #c6c5d0; }
.foot-legal { padding: calc(5 * var(--s)) 0 calc(8 * var(--s)); font-size: max(10px, calc(9 * var(--s))); line-height: 1.45; }
.foot-legal a { color: #f4d2e7; white-space: nowrap; }
.ct-company { margin-top: 24px; padding: 18px 20px; background: #f5f0fa; border-radius: 8px; }
.ct-company h2 { font: 700 22px/1.2 var(--f-head); margin: 0 0 8px; }
.ct-company p { font-size: 14px; margin: 6px 0; }
.wa-float { display: none; }
.page-head { padding: 36px 0; }
.page-head .sec-title { font-size: clamp(24px, 2.34375cqw, 36px); }
:focus-visible { outline: 3px solid #eb5d97; outline-offset: 3px; }
.servizi.single { padding-bottom: 35px; }
.ab-portrait { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; margin-bottom: 24px; }
.ab-cols { grid-template-columns: 1.4fr 1fr; }
.ab-side { position: sticky; top: 24px; align-self: start; }
.zone-layout { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 32px; padding-bottom: 30px; }
.zone-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; }
.zone-empty { width: 100%; }
.ct-photo img { border-radius: 8px; }
.ct-photo .balloon { width: 145px; font-size: 18px; padding: 15px; right: -35px; }
.page-preventivo .pv-wrap { grid-template-columns: 60% 1fr; }
.page-preventivo .pv-left { grid-template-columns: 1fr; gap: 20px; }
.page-preventivo .qf > label { position: static; width: auto; height: auto; clip-path: none; overflow: visible; font-size: 13px; margin-bottom: 5px; }
.page-preventivo .qf input, .page-preventivo .qf select { min-height: 42px; height: 42px; font-size: 16px; }
.page-preventivo .qf textarea { min-height: 90px; font-size: 16px; }
.page-preventivo .qprivacy { font-size: 13px; }
.page-preventivo .qform .btn-cta { width: 100%; min-height: 50px; }
.page-preventivo .pv-written { position: static; width: auto; display: flex; font-size: 20px; transform: none; }
.page-preventivo .pv-photo { align-self: center; }
.page-preventivo .pv-photo img { height: auto; aspect-ratio: 193 / 226; }
.page-preventivo .pv-right { grid-template-columns: 1fr; gap: 30px; align-content: center; max-width: 300px; margin: auto; }
.page-preventivo .pv-contacts { padding: 0; gap: 20px; }
.page-preventivo .balloon { right: -15px; }

@media (max-width: 860px) {
  .header-in { width: 93%; min-height: 60px; gap: 14px; }
  .logo-word { font-size: 30px; }
  .logo-mark { width: 48px; height: 48px; margin-right: -12px; }
  .logo-claim { font-size: 9px; }
  .head-wa { width: 42px; min-height: 40px; padding: 7px; }
  .head-wa .ic { width: 28px; height: 28px; }
  .head-wa .wa-label { display: none; }
  .main-nav ul { top: 60px; gap: 3px; }
  .main-nav a { font-size: 16px; padding: 10px 14px; }
  .foot-in { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 12px; padding: 18px 0; }
  .foot-logo .logo-word { font-size: 26px; }
  .foot-logo .logo-claim { font-size: 8px; }
  .foot-nav a { font-size: 11px; padding: 3px 10px; }
  .foot-base { font-size: 10px; padding: 0 12px 12px; }
  .ab-cols, .zone-layout { grid-template-columns: 1fr; }
  .page-preventivo .pv-wrap { grid-template-columns: 1fr; }
  .ab-side { position: static; }
  .ct-cols { gap: 30px; }
}
@media (min-width: 641px) and (max-width: 860px) {
  .card-desc { font-size: calc(13 * var(--s)); margin-inline: calc(18 * var(--s)); }
  .hero-slogan { font-size: calc(36 * var(--s)); }
}
@media (max-width: 640px) {
  :root { --s: 1px; }
  .wrap { width: 92%; }
  .hero { aspect-ratio: auto; padding-bottom: 22px; }
  .hero-bg-m { width: 100%; aspect-ratio: 460 / 398; height: auto; object-fit: cover; object-position: left center; }
  .hero-written, .hero-written.rv, .hero-written.rv.on { position: relative; inset: auto; max-width: none; width: auto; font-size: clamp(19px,5.5vw,23px); line-height: 1.4; margin: 0; padding: 17px 12px 13px; text-align: center; transform: none; text-shadow: none; }
  .hero-written .ic { display: inline-block; width: 19px; height: 19px; vertical-align: middle; margin: 0 0 0 6px; }
  .hero-panel { position: relative; inset: auto; width: auto; height: auto; padding: 32px 27px 34px; margin: 0 8px 16px; background: none; border-radius: 0; isolation: isolate; }
  .hero-panel::before, .hero-panel::after, .hero-panel .brush { display: none; }
  .hero-panel::before { display: block; inset: 0; width: 100%; height: 100%; transform: none; background: linear-gradient(115deg,#633184,#542179); mask: url('../img/brush-panel-mobile.svg') center / 100% 100% no-repeat; }
  .hero-slogan { width: auto; font-size: clamp(24px,6.9vw,36px); line-height: 1.12; transform: none; letter-spacing: -.5px; }
  .hero-cta { max-width: 350px; font-size: clamp(27px,7.6vw,38px); line-height: 1.05; margin: 18px auto 0; letter-spacing: -.5px; transform: none; }
  .hero-strip { position: relative; inset: auto; width: auto; height: auto; margin: 16px 12px; padding: 18px 20px; background: none; border-radius: 0; isolation: isolate; }
  .hero-strip::before { display: block; inset: 0; transform: none; mask: url('../img/brush-panel-mobile.svg') center / 100% 100% no-repeat; }
  .hero-strip p { font-size: 15px; }
  .hero-checklist { position: static; transform: none; width: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 5px 18px; }
  .hero-checklist li { font-size: 17px; margin: 0; gap: 5px; }
  .hero-checklist .ic { width: 22px; height: 22px; }
  .hero-btns { position: static; width: auto; height: auto; margin: 16px 14px 0; gap: 8px; }
  .hero-btn { min-height: 56px; padding: 7px; gap: 7px; }
  .hero-btn b { font-size: 21px; }
  .hero-btn .wa-label { font-size: 19px; max-width: 125px; }
  .hero-btn i { font-size: 10px; }
  .hero-btn .ic { width: 28px; height: 28px; }
  .hero-btns .btn-quote b { font-size: 14px; }
  .servizi { padding: 18px 0 0; }
  .sec-title { font-size: 24px; gap: 12px; }
  .sec-title .line { width: 28px; }
  .sec-head { margin-bottom: 14px; }
  .sec-hand { font-size: 16px; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
  .card { height: auto; min-height: 330px; }
  .card-title { font-size: 15px; margin-top: 19px; }
  .card-slogan { font-size: 15px; min-height: 34px; margin-inline: 5px; }
  .card-desc { font-size: 12px; margin: 8px 12px 12px; }
  .card .btn-more { width: 125px; font-size: 10px; min-height: 30px; }
  .card-badge { width: 45px; height: 45px; }
  .card-badge .ic { width: 26px; height: 26px; }
  .card-feature { height: auto; min-height: 0; }
  .card-feature .card-link { display: flex; padding: 0 0 18px; gap: 0; }
  .card-feature .card-media { height: auto; border-radius: 6px 6px 0 0; }
  .card-feature .card-photo { aspect-ratio: 4 / 3; height: auto; }
  .card-feature .card-photo img { aspect-ratio: 4 / 3; height: auto; }
  .card-feature .card-badge { left: 50%; right: auto; bottom: -16px; transform: translateX(-50%); }
  .card-feature .card-title { font-size: 22px; margin-top: 25px; }
  .card-feature .card-slogan { font-size: 20px; }
  .card-feature .card-desc { font-size: 14px; margin: 12px 20px; }
  .card-feature .btn-more { margin-bottom: 0; }
  .service-local { padding: 24px 4px; }
  .service-local h2 { font-size: 24px; }
  .service-local p { font-size: 15px; }
  .vantaggi { padding: 22px 0; }
  .v-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 5px; }
  .v-item + .v-item::before { display: none; }
  .v-item p { font-size: 12px; }
  .ironica { grid-template-columns: 1fr; }
  .ir-media { height: auto; }
  .ir-media img { aspect-ratio: 514 / 278; height: auto; }
  .ir-written { font-size: 20px; right: 4%; }
  .ir-panel { height: auto; padding: 22px; }
  .ir-title { font-size: 32px; }
  .ir-text { max-width: none; font-size: 15px; margin: 12px 0 18px; }
  .ir-items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; }
  .ir-item p { font-size: 16px; }
  .preventivo { padding: 22px 0; }
  .pv-wrap, .pv-left { grid-template-columns: 1fr; gap: 18px; }
  .page-preventivo .pv-wrap { grid-template-columns: 1fr; }
  .pv-title { font-size: 25px; }
  .pv-title b { font-size: 30px; }
  .pv-sub { font-size: 13px; }
  .qgrid, .qextra-grid { gap: 10px; }
  .qform { padding: 0; gap: 10px; }
  .qf input, .qf select, .qf textarea { font-size: 16px; padding: 9px 7px; height: 44px; min-height: 44px; }
  .qf textarea { height: 80px; }
  .qextras { height: auto; margin: 0; }
  .qextras > summary { position: static; font-size: 13px; text-align: right; }
  .qextras[open] > summary { margin-bottom: 10px; }
  .qprivacy { font-size: 12px; gap: 7px; }
  .qprivacy input { width: 16px; height: 16px; }
  .qform .btn-cta { width: 100%; min-height: 50px; }
  .qform .btn-cta b { font-size: 18px; }
  .qform .btn-cta small { font-size: 11px; }
  .qerr { font-size: 14px; }
  .pv-written { position: static; width: auto; font-size: 18px; display: flex; justify-content: center; margin: 0; transform: none; }
  .pv-arrow { margin: 0; width: 60px; }
  .pv-right { grid-template-columns: 55% 1fr; gap: 7px; }
  .pv-photo img { height: 245px; }
  .balloon { width: 102px; font-size: 14px; padding: 11px 12px; right: -5px; }
  .pv-contacts { gap: 18px; padding-bottom: 8px; }
  .pv-contacts b { font-size: 17px; }
  .pv-contacts a { font-size: 13px; white-space: normal; overflow-wrap: anywhere; }
  .pv-contacts i { font-size: 10px; white-space: normal; }
  .pv-contacts li { gap: 5px; }
  .pc-ic { width: 23px; height: 23px; }
  .pc-ic .ic { width: 16px; height: 16px; }
  .pv-note { font-size: 16px; margin-left: 25px; }
}
@media (max-width: 380px) {
  .logo-word { font-size: 27px; }
  .logo-claim { font-size: 8px; }
  .cards, .qgrid, .qextra-grid { grid-template-columns: 1fr; }
  .card { max-width: 290px; margin-inline: auto; }
  .card-desc { min-height: 44px; }
  .pv-right { grid-template-columns: 1fr; gap: 20px; }
  .pv-photo { max-width: 240px; margin: auto; }
  .pv-contacts { max-width: 250px; margin: auto; }
}

/* App: sezione autonoma chiara, dopo il preventivo. */
.app-banner{padding:36px 0;background:#fff}.app-banner-inner{width:90.625%;display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:38px;padding:30px 34px;border:1px solid #e7d9ef;border-radius:18px;background:linear-gradient(115deg,#fcf7ff 0%,#f1e5fa 65%,#fce8ef 100%);box-shadow:0 8px 28px #61248c0a;color:var(--navy)}.app-banner-eyebrow{color:var(--viola);font-size:10px;letter-spacing:1.4px;margin:0 0 12px}.app-banner h2{font-size:34px;line-height:1.08;color:var(--navy);margin:0 0 14px}.app-banner-intro{color:#655b72;font-size:14px;max-width:720px;line-height:1.5;margin:0 0 20px}.app-banner-audiences{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.app-banner-audiences>a{min-width:0;padding:14px;background:#ffffffb8;border:1px solid #e5d5ed;border-radius:11px;color:var(--navy)}.app-banner-audiences>a:hover{background:#fff;border-color:#b990d1;transform:translateY(-2px)}.app-banner-audiences strong{font-size:18px}.app-banner-audiences span{display:block;font-size:12px;line-height:1.5;color:#70647d;margin:9px 0 12px}.app-banner-audiences b{font-size:10px;color:var(--viola);line-height:1.4}.app-banner-bottom{margin:20px 0 10px;gap:15px}.app-banner-bottom .btn{font-size:13px;padding:11px 18px}.app-stores>span{background:#fff;border-color:#d9c5e5;color:var(--navy);font-size:12px;padding:7px 12px}.app-stores small{color:var(--viola);font-size:7px}.app-banner-note{color:#776984;font-size:10px}.app-banner-phone{display:flex;width:165px;height:310px;justify-self:center;background:#12192e;border:6px solid #080c18;border-radius:29px;box-shadow:9px 13px 0 #c79bdf42,0 14px 30px #542b701c;transform:rotate(5deg)}.app-phone-notch{width:68px;height:11px}.app-phone-logo{width:100%;height:auto;object-fit:contain}
@media(max-width:900px){.app-banner-inner{grid-template-columns:minmax(0,1fr) 140px;padding:26px;gap:22px}.app-banner-phone{width:130px;height:250px}.app-banner h2{font-size:30px}.app-banner-audiences{grid-template-columns:1fr}.app-banner-audiences>a{padding:10px 14px}.app-banner-audiences span{margin:5px 0 7px}}
@media(max-width:560px){.app-banner{padding:24px 0}.app-banner-inner{grid-template-columns:minmax(0,1fr);padding:22px 18px;gap:20px}.app-banner h2{font-size:29px}.app-banner-intro{font-size:13px}.app-banner-audiences>a{display:flex;flex-direction:column;align-items:flex-start}.app-banner-audiences strong{font-size:18px}.app-banner-audiences span{font-size:12px}.app-banner-audiences b{text-align:left}.app-banner-phone{display:flex;width:110px;height:200px;grid-row:2;transform:rotate(4deg)}.app-banner-bottom{gap:10px}.app-banner-bottom .btn{width:auto;font-size:12px}.app-stores{width:auto}.app-stores>span{font-size:11px;padding:6px 10px}}

/* Anteprima delle tre aree nello schermo del telefono. */
.app-banner-phone{flex-direction:column;gap:9px;padding:20px 9px 14px;justify-content:center}.app-banner-phone .app-phone-logo{width:112px;height:112px;flex:none;object-fit:contain}.app-phone-sections{width:100%;display:grid;gap:7px}.app-phone-section{display:flex;align-items:center;gap:6px;padding:9px 6px;background:#fff;border-radius:7px;color:#12192e;text-align:left}.app-phone-section>.ic{width:15px;height:15px;flex:none;color:#7c2cb8}.app-phone-section>.ic:last-child{width:9px;height:9px;margin-left:auto}.app-phone-section span{min-width:0}.app-phone-section b{display:block;font:700 10px/1.25 var(--f-head)}.app-phone-section small{display:block;font:400 7px/1.4 var(--f-body);color:#73627f;margin-top:2px}
@media(min-width:561px) and (max-width:900px){.app-banner-phone{width:145px;height:285px;padding:18px 7px 12px}.app-banner-phone .app-phone-logo{width:98px;height:98px}.app-phone-section{padding:8px 5px;gap:4px}.app-phone-section b{font-size:9px}.app-phone-section small{font-size:6px}}
@media(max-width:560px){.app-banner-phone{width:165px;height:310px;padding:20px 9px 14px}.app-banner-phone .app-phone-logo{width:112px;height:112px}}

/* Experience seal stays visible at every breakpoint. */
.experience-badge{position:absolute;top:12px;left:12px;z-index:2;display:flex;align-items:center;gap:7px;padding:10px 12px;color:#fff;background:linear-gradient(115deg,#633184,#542179);border:2px solid #fff;border-radius:50px;box-shadow:0 3px 10px #12192e35;font-family:var(--f-head);line-height:1.05}
.experience-badge b{font-size:30px}.experience-badge span{font-size:10px;font-weight:800;letter-spacing:.4px}.experience-inline{position:static;display:inline-flex;margin-top:14px}
@media(max-width:640px){.hero{background:var(--navy)}.hero-checklist{color:#fff}.hero-panel .hero-slogan{width:100%;font-family:var(--f-body)}.hero-panel .hero-cta{max-width:100%}.experience-badge{top:10px;left:10px}.experience-inline{margin-top:12px}}


/* Seal matching the supplied ironing campaign. */
img.experience-badge{display:block;position:absolute;top:auto;left:auto;right:8px;bottom:8px;width:clamp(92px,11vw,155px);height:auto;padding:0;border:0;border-radius:0;background:none;box-shadow:none;filter:drop-shadow(0 3px 5px #10182d33)}
img.experience-inline{position:static;width:130px;margin:14px 0}
.card-feature img.experience-badge{top:10px;right:10px;bottom:auto;width:clamp(82px,8vw,112px);max-width:29%;}
@media(max-width:640px){img.experience-badge{width:120px;top:auto;left:auto;right:10px;bottom:10px}img.experience-inline{width:125px;margin:14px 0}}
.card-feature .card-media{overflow:hidden;}
@media(max-width:640px){.card-feature img.experience-badge{top:12px;right:12px;bottom:auto;width:100px;max-width:29%;}.card-feature .card-title{margin-top:18px;}}


.card-feature img.experience-badge{aspect-ratio:1;object-fit:contain;transform:none;height:auto;}

