/* SG Contatti + Modulo — Farmacia San Giorgio · prefix sgc- */
.sgc{--sg-ink:#0B2B22;--sg-body:#2F443C;--sg-muted:#51645B;--sg-paper:#F2F6F3;--sg-green:#007A4C;--sg-night:#0A3327;--sg-glow:#3BF29A;--sg-sage:#D5E8DD;--sg-sage2:#E6F1EA;--sg-wa:#25D366;--sg-err:#B42318;--sgc-ease:cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden;overflow:clip;padding:84px 0;background:var(--sg-paper);color:var(--sg-body);font-family:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
.sgc *,.sgc *::before,.sgc *::after{box-sizing:border-box;margin:0;padding:0}
.sgc ul{list-style:none}
.sgc a{text-decoration:none}
.sgc button{font:inherit;cursor:pointer;border:0}
.sgc .sgc-ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sgc .sgc-ic.is-fill{fill:currentColor;stroke:none}
.sgc :focus-visible{outline:2px solid var(--sg-green);outline-offset:3px}

.sgc-bg{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(11,43,34,.07) 1px,transparent 1px);background-size:26px 26px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 70%);mask-image:linear-gradient(180deg,#000,transparent 70%)}
.sgc-blob{position:absolute;border-radius:50%;filter:blur(10px)}
.sgc-blob--a{width:520px;height:520px;right:-180px;top:-160px;background:radial-gradient(circle,rgba(59,242,154,.24),rgba(59,242,154,0) 68%);animation:sgcFloat 14s ease-in-out infinite}
.sgc-blob--b{width:420px;height:420px;left:-160px;bottom:-120px;background:radial-gradient(circle,rgba(0,122,76,.14),rgba(0,122,76,0) 68%);animation:sgcFloat 18s ease-in-out infinite reverse}
@keyframes sgcFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(-30px,26px)}}

.sgc-wrap{position:relative;max-width:1250px;margin:0 auto;padding:0 18px;display:grid;gap:44px}

/* ------------------------------------------------ title */
.sgc-title{font-family:'Bricolage Grotesque','Figtree',sans-serif;font-size:clamp(2.3rem,8.4vw,3.9rem);font-weight:700;line-height:1.02;letter-spacing:-.042em;color:var(--sg-ink);margin-bottom:28px}
.sgc-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.sgc-w > span{display:inline-block}
.sgc-js .sgc-w > span{transform:translateY(105%);transition:transform .9s var(--sgc-ease);transition-delay:calc(var(--w) * 60ms)}
.sgc-js .sgc-title.is-in .sgc-w > span{transform:none}

/* ------------------------------------------------ reveal */
.sgc-js .sgc-rv{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .9s var(--sgc-ease);transition-delay:calc(var(--d,0) * 80ms + 120ms)}
.sgc-js .sgc-rv.is-in{opacity:1;transform:none}

/* ------------------------------------------------ list */
.sgc-list{border-top:1px solid rgba(11,43,34,.1)}
.sgc-list li{border-bottom:1px solid rgba(11,43,34,.1)}
.sgc-row{position:relative;display:flex;align-items:center;gap:16px;padding:15px 4px;color:var(--sg-body)}
.sgc-row__ic{width:48px;height:48px;flex:none;border-radius:15px;display:grid;place-items:center;background:#FFFFFF;border:1px solid rgba(11,43,34,.08);color:var(--sg-green);box-shadow:0 8px 18px -14px rgba(10,51,39,.5);transition:background .4s,color .4s,transform .5s var(--sgc-ease),box-shadow .4s}
.sgc-row__ic .sgc-ic{width:21px;height:21px}
.sgc-row__ic.is-wa{color:#128C4A}
.sgc-row__txt{display:flex;flex-direction:column;min-width:0}
.sgc-row__txt strong{font-size:17px;font-weight:700;line-height:1.3;color:var(--sg-ink);overflow-wrap:anywhere}
.sgc-row__txt small{font-size:14px;line-height:1.45;color:var(--sg-muted)}
.sgc-row__go{margin-left:auto;width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;color:var(--sg-green);background:transparent;transition:background .4s,color .4s,transform .5s var(--sgc-ease)}
.sgc-row__go .sgc-ic{width:17px;height:17px}
a.sgc-row:hover .sgc-row__ic,a.sgc-row:focus-visible .sgc-row__ic{background:var(--sg-night);color:var(--sg-glow);transform:rotate(-6deg) scale(1.04);box-shadow:0 12px 24px -12px rgba(10,51,39,.7)}
a.sgc-row:hover .sgc-row__go,a.sgc-row:focus-visible .sgc-row__go{background:var(--sg-green);color:#FFFFFF;transform:rotate(-45deg)}

/* ------------------------------------------------ buttons */
.sgc-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.sgc-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 24px;border-radius:999px;font-size:15.5px;font-weight:700;isolation:isolate;transition:transform .45s var(--sgc-ease),box-shadow .4s}
.sgc-btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .55s var(--sgc-ease)}
.sgc-btn:hover::before{transform:none}
.sgc-btn .sgc-ic{width:18px;height:18px;transition:transform .45s var(--sgc-ease)}
.sgc-btn--dark{background:var(--sg-night);color:#FFFFFF;box-shadow:0 14px 30px -16px rgba(10,51,39,.9)}
.sgc-btn--dark::before{background:var(--sg-green)}
.sgc-btn--dark:hover .sgc-ic{transform:translateX(5px)}
.sgc-btn--wa{background:var(--sg-wa);color:#0B2B22;box-shadow:0 14px 30px -16px rgba(37,211,102,.9)}
.sgc-btn--wa::before{background:#4BE384}
.sgc-btn--wa:hover .sgc-ic{transform:rotate(-12deg) scale(1.1)}

/* ------------------------------------------------ map */
.sgc-map{position:relative;margin-top:30px;height:320px;border-radius:28px;overflow:hidden;background:#E3EEE7;border:1px solid rgba(11,43,34,.08);box-shadow:0 30px 60px -40px rgba(10,51,39,.55)}
.sgc-map__art{position:absolute;inset:0;width:100%;height:100%;transition:transform 1.4s var(--sgc-ease)}
.sgc-map:hover .sgc-map__art{transform:scale(1.05)}
.sgc-map__route{animation:sgcDash 18s linear infinite}
@keyframes sgcDash{to{stroke-dashoffset:-440}}
.sgc-pin{position:absolute;left:53%;top:40%;width:52px;height:52px;margin:-52px 0 0 -26px}
.sgc-pin__head{position:absolute;inset:0;border-radius:50% 50% 50% 6px;transform:rotate(-45deg);background:var(--sg-green);box-shadow:0 14px 26px -10px rgba(0,122,76,.8);display:grid;place-items:center;animation:sgcBob 3s ease-in-out infinite}
.sgc-pin__head .sgc-ic{transform:rotate(45deg);color:#FFFFFF;fill:#FFFFFF;stroke:none;width:20px;height:20px}
.sgc-pin__pulse{position:absolute;left:50%;top:100%;width:70px;height:26px;margin:-6px 0 0 -35px;border-radius:50%;border:2px solid rgba(0,122,76,.45);animation:sgcPulse 2.2s ease-out infinite}
@keyframes sgcBob{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes sgcPulse{0%{transform:scale(.4);opacity:1}100%{transform:scale(1.6);opacity:0}}
.sgc-map__ui{position:absolute;left:12px;right:12px;bottom:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;border-radius:20px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 16px 36px -22px rgba(10,51,39,.6)}
.sgc-map__load,.sgc-map__dir{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;font-size:14.5px;font-weight:700;transition:background .35s,color .35s}
.sgc-map__load{background:var(--sg-night);color:#FFFFFF}
.sgc-map__load:hover{background:var(--sg-green)}
.sgc-map__load .sgc-ic,.sgc-map__dir .sgc-ic{width:17px;height:17px}
.sgc-map__dir{color:var(--sg-green);background:var(--sg-sage2)}
.sgc-map__dir:hover{background:var(--sg-sage)}
.sgc-map__ui small{flex-basis:100%;font-size:12.5px;line-height:1.45;color:var(--sg-muted);padding:2px 4px 0}
.sgc-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .8s}
.sgc-map.is-loaded iframe{opacity:1}
.sgc-map.is-loaded .sgc-map__ui,.sgc-map.is-loaded .sgc-pin{opacity:0;pointer-events:none;transition:opacity .4s}

/* ------------------------------------------------ card with animated border */
.sgc-card{position:relative;align-self:start;padding:1.5px;border-radius:32px;background:rgba(11,43,34,.1);overflow:hidden;isolation:isolate;box-shadow:0 50px 90px -50px rgba(10,51,39,.55)}
.sgc-card::before{content:"";position:absolute;left:50%;top:50%;width:200%;height:200%;margin:-100% 0 0 -100%;z-index:-1;background:conic-gradient(from 0deg,transparent 0 62%,rgba(59,242,154,.9) 74%,var(--sg-green) 82%,transparent 94%);animation:sgcSpin 7s linear infinite}
@keyframes sgcSpin{to{transform:rotate(360deg)}}
.sgc-card__in{position:relative;overflow:hidden;padding:30px 20px 24px;border-radius:30.5px;background:#FFFFFF}
.sgc-card__in::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,-20%),rgba(59,242,154,.10),transparent 60%);opacity:0;transition:opacity .4s}
.sgc-card:hover .sgc-card__in::after{opacity:1}
.sgc-meter{position:absolute;left:0;top:0;right:0;height:4px;background:var(--sg-sage2)}
.sgc-meter i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--sg-green),var(--sg-glow));transform-origin:0 50%;transform:scaleX(0);transition:transform .6s var(--sgc-ease)}

/* ------------------------------------------------ fields */
.sgc-grid{display:grid;grid-template-columns:1fr;gap:12px}
.sgc-f{position:relative}
.sgc-f input,.sgc-f select,.sgc-f textarea{display:block;width:100%;height:62px;padding:25px 18px 7px;border-radius:16px;border:1.5px solid transparent;background:var(--sg-paper);font-family:inherit;font-size:16px;font-weight:500;line-height:1.3;color:var(--sg-ink);outline:none;-webkit-appearance:none;appearance:none;box-shadow:none;transition:border-color .3s,background .3s,box-shadow .3s}
.sgc-f textarea{height:auto;min-height:140px;padding-top:30px;resize:vertical;line-height:1.55}
.sgc-f select{padding-right:48px;cursor:pointer;text-overflow:ellipsis}
.sgc-f select:invalid{color:var(--sg-muted)}
.sgc-f select option{color:var(--sg-ink)}
.sgc-f label{position:absolute;left:19px;top:20px;font-size:15.5px;font-weight:500;line-height:1.3;color:var(--sg-muted);pointer-events:none;transform-origin:0 0;transition:transform .35s var(--sgc-ease),color .3s,top .35s var(--sgc-ease),font-size .35s var(--sgc-ease)}
.sgc-f input:focus + label,.sgc-f input:not(:placeholder-shown) + label,.sgc-f textarea:focus + label,.sgc-f textarea:not(:placeholder-shown) + label,.sgc-f--sel label{top:9px;font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--sg-green)}
.sgc-f input:hover,.sgc-f select:hover,.sgc-f textarea:hover{background:var(--sg-sage2)}
.sgc-f input:focus,.sgc-f select:focus,.sgc-f textarea:focus{background:#FFFFFF;border-color:var(--sg-green);box-shadow:0 0 0 4px rgba(0,122,76,.12)}
.sgc-f__line{position:absolute;left:18px;right:18px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--sg-green),var(--sg-glow));transform:scaleX(0);transition:transform .5s var(--sgc-ease)}
.sgc-f.is-valid .sgc-f__line{transform:scaleX(1)}
.sgc-f__chev{position:absolute;right:18px;top:21px;width:20px!important;height:20px!important;color:var(--sg-green);pointer-events:none;transition:transform .35s var(--sgc-ease)}
.sgc-f--sel select:focus ~ .sgc-f__chev{transform:rotate(180deg)}
.sgc-f__count{position:absolute;right:16px;top:9px;font-size:11.5px;font-weight:600;color:var(--sg-muted)}
.sgc-f__count b{font-weight:700;color:var(--sg-ink)}
.sgc-f__err{display:block;max-height:0;overflow:hidden;font-size:13px;font-weight:600;line-height:1.4;color:var(--sg-err);transition:max-height .35s,margin .35s}
.sgc-f.is-invalid input,.sgc-f.is-invalid select,.sgc-f.is-invalid textarea{border-color:#D8563F;background:#FDF3F1}
.sgc-f.is-invalid label{color:var(--sg-err)}
.sgc-f.is-invalid .sgc-f__err,.sgc-check.is-invalid .sgc-f__err{max-height:60px;margin-top:6px}
.sgc-f.is-invalid{animation:sgcShake .45s}
@keyframes sgcShake{20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}

.sgc-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* checkbox */
.sgc-check{position:relative;margin-top:18px}
.sgc-check input{position:absolute;opacity:0;width:22px;height:22px;margin:0;left:0;top:1px}
.sgc-check label{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:14px;line-height:1.55;color:var(--sg-body)}
.sgc-check__box{width:22px;height:22px;flex:none;margin-top:1px;border-radius:7px;border:1.5px solid rgba(11,43,34,.3);background:#FFFFFF;display:grid;place-items:center;transition:background .3s,border-color .3s,transform .3s var(--sgc-ease)}
.sgc-check__box svg{width:15px;height:15px;fill:none;stroke:#FFFFFF;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .4s var(--sgc-ease) .05s}
.sgc-check input:checked + label .sgc-check__box{background:var(--sg-green);border-color:var(--sg-green);transform:scale(1.06)}
.sgc-check input:checked + label .sgc-check__box svg{stroke-dashoffset:0}
.sgc-check input:focus-visible + label .sgc-check__box{box-shadow:0 0 0 4px rgba(0,122,76,.2)}
.sgc-check a{color:var(--sg-green);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.sgc-check.is-invalid .sgc-check__box{border-color:#D8563F;background:#FDF3F1}

/* alert */
.sgc-alert{display:flex;gap:12px;margin-top:18px;padding:14px 16px;border-radius:16px;background:#FDF3F1;border:1px solid #F3C7BE;color:#7A2417;font-size:14.5px;line-height:1.5}
.sgc-alert[hidden]{display:none}
.sgc-alert .sgc-ic{color:var(--sg-err);margin-top:1px}
.sgc-alert__links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:4px}
.sgc-alert__links a{color:#7A2417;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* submit */
.sgc-submit{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:60px;margin-top:20px;border-radius:999px;background:var(--sg-green);color:#FFFFFF;font-size:16.5px;font-weight:700;box-shadow:0 18px 34px -18px rgba(0,122,76,.95);transition:transform .45s var(--sgc-ease),box-shadow .4s}
.sgc-submit__fill{position:absolute;inset:0;z-index:-1;background:var(--sg-night);clip-path:circle(0 at var(--bx,50%) var(--by,50%));transition:clip-path .7s var(--sgc-ease)}
.sgc-submit:hover .sgc-submit__fill{clip-path:circle(150% at var(--bx,50%) var(--by,50%))}
.sgc-submit__ic{position:relative;width:22px;height:22px;display:grid;place-items:center}
.sgc-submit__ic .sgc-ic{width:19px;height:19px;transition:transform .6s var(--sgc-ease),opacity .3s}
.sgc-submit:hover .sgc-submit__ic .sgc-ic{transform:translate(3px,-3px)}
.sgc-spin{position:absolute;inset:0;border-radius:50%;border:2.5px solid rgba(255,255,255,.28);border-top-color:#FFFFFF;opacity:0}
.sgc-submit.is-loading{pointer-events:none}
.sgc-submit.is-loading .sgc-submit__fill{clip-path:circle(150% at 50% 50%)}
.sgc-submit.is-loading .sgc-ic{transform:translate(26px,-26px);opacity:0}
.sgc-submit.is-loading .sgc-spin{opacity:1;animation:sgcSpin .8s linear infinite}
.sgc-req{display:flex;align-items:center;gap:7px;margin-top:14px;font-size:13px;color:var(--sg-muted)}
.sgc-req .sgc-ic{width:15px;height:15px;color:var(--sg-green)}

/* success */
.sgc-done{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:34px 26px;text-align:center;background:var(--sg-night);color:#FFFFFF;visibility:hidden;clip-path:circle(0 at var(--bx,50%) var(--by,90%));transition:clip-path .9s var(--sgc-ease),visibility 0s linear .9s}
.sgc-done::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(59,242,154,.2),rgba(59,242,154,0) 65%);pointer-events:none}
.sgc-card.is-sent .sgc-done{visibility:visible;clip-path:circle(160% at var(--bx,50%) var(--by,90%));transition:clip-path .9s var(--sgc-ease),visibility 0s}
.sgc-done__ring{position:relative;width:84px;height:84px;margin-bottom:8px}
.sgc-done__ring svg{width:100%;height:100%;fill:none;stroke:var(--sg-glow);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.sgc-done__ring circle{stroke-dasharray:183;stroke-dashoffset:183;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset 1s var(--sgc-ease) .35s}
.sgc-done__ring path{stroke-width:3.4;stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset .6s var(--sgc-ease) 1.05s}
.sgc-card.is-sent .sgc-done__ring circle,.sgc-card.is-sent .sgc-done__ring path{stroke-dashoffset:0}
.sgc-done__t{position:relative;font-family:'Bricolage Grotesque','Figtree',sans-serif;font-size:clamp(1.8rem,5vw,2.3rem);font-weight:700;letter-spacing:-.03em;line-height:1.1;color:#FFFFFF}
.sgc-done__p{position:relative;max-width:34ch;font-size:16px;line-height:1.6;color:#CFE3D8}
.sgc-done__auto{position:relative;display:inline-flex;align-items:center;gap:8px;margin-top:4px;padding:8px 14px;border-radius:999px;background:rgba(59,242,154,.1);font-size:13.5px;font-weight:600;color:var(--sg-glow)}
.sgc-done__auto[hidden]{display:none}
.sgc-done__auto .sgc-ic{width:16px;height:16px}
.sgc-done__again{position:relative;margin-top:14px;background:transparent;min-height:48px;padding:0 22px;border-radius:999px;border:1px solid rgba(255,255,255,.25)!important;color:#FFFFFF;font-size:14.5px;font-weight:700;transition:background .3s,color .3s}
.sgc-done__again:hover{background:var(--sg-glow);color:var(--sg-night)}
.sgc-done > *{opacity:0;transform:translateY(14px);transition:opacity .5s,transform .7s var(--sgc-ease)}
.sgc-done::before{opacity:1;transform:none}
.sgc-card.is-sent .sgc-done > *{opacity:1;transform:none;transition-delay:.45s}

/* ------------------------------------------------ breakpoints */
@media(min-width:560px){
	.sgc-grid{grid-template-columns:1fr 1fr}
	.sgc-f--full{grid-column:1 / -1}
	.sgc-card__in{padding:38px 32px 30px}
	.sgc-map{height:340px}
	.sgc-map__ui{left:16px;right:auto;bottom:16px;max-width:430px}
}
@media(min-width:1000px){
	.sgc{padding:128px 0}
	.sgc-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:72px;padding:0 24px}
	.sgc-card{position:sticky;top:110px}
	.sgc-card__in{padding:44px 40px 34px}
	.sgc-title{margin-bottom:34px}
}

@media(prefers-reduced-motion:reduce){
	.sgc *,.sgc *::before,.sgc *::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
}
