.tfg{--v:#16342a;--v2:#0e231c;--c:#f6f1e7;--a:#e0883c;--a2:#c46f2b;position:relative;isolation:isolate;overflow:hidden;border-radius:28px;margin:56px 0;color:var(--c);font-family:Manrope,system-ui,sans-serif;background:var(--v2)}
.tfg::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--tfg-bg) center 40%/cover no-repeat;transform:scale(1.04);animation:tfg-zoom 24s ease-in-out infinite alternate}
.tfg::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(14,35,28,.97) 0%,rgba(14,35,28,.88) 36%,rgba(14,35,28,.4) 66%,rgba(14,35,28,.12) 100%),radial-gradient(120% 80% at 90% 110%,rgba(224,136,60,.28),transparent 60%)}
@keyframes tfg-zoom{to{transform:scale(1.12) translate(-1.5%,-1%)}}
.tfg-neve{position:absolute;inset:-20% 0 0;z-index:-1;pointer-events:none;opacity:.55;background-image:radial-gradient(2px 2px at 20px 30px,#fff,transparent),radial-gradient(1.5px 1.5px at 90px 120px,#fff,transparent),radial-gradient(2.5px 2.5px at 160px 60px,#fff,transparent),radial-gradient(1.5px 1.5px at 230px 180px,#fff,transparent),radial-gradient(2px 2px at 300px 90px,#fff,transparent);background-size:320px 240px;animation:tfg-neve 18s linear infinite}
@keyframes tfg-neve{to{background-position:60px 240px}}
.tfg-in{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:72px 64px 64px;max-width:1180px;margin:0 auto}
.tfg-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--a)}
.tfg-eyebrow i{width:28px;height:1.5px;background:var(--a);display:block}
.tfg-titolo{font-family:Fraunces,Georgia,serif!important;font-weight:400!important;font-size:clamp(34px,4.4vw,58px)!important;line-height:1.02!important;letter-spacing:-.02em;color:var(--c)!important;margin:18px 0 18px!important;padding:0!important}
.tfg-titolo em{font-style:italic;color:var(--a)}
.tfg-sotto{font-size:17px;line-height:1.6;color:rgba(246,241,231,.82);max-width:470px;margin:0 0 28px!important;padding:0!important}
.tfg-lista{list-style:none!important;margin:0 0 32px!important;padding:0!important;display:grid;gap:14px}
.tfg-lista li{position:relative;padding:0 0 0 34px!important;font-size:15px;line-height:1.45;color:rgba(246,241,231,.75)}
.tfg-lista li::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;background:rgba(224,136,60,.18) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23e0883c' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}
.tfg-lista b{display:block;color:var(--c);font-weight:700;font-size:16px}
.tfg-firma{display:flex;align-items:center;gap:14px}
.tfg-firma img{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--a);flex:none}
.tfg-firma p{margin:0!important;padding:0!important;font-size:14px;line-height:1.35;color:rgba(246,241,231,.75)}
.tfg-mano{display:block;font-family:Caveat,cursive;font-size:26px;line-height:1;color:var(--c);margin-bottom:2px}
.tfg-carta{position:relative;padding-top:160px}
.tfg-cover{position:absolute;top:-14px;right:34px;width:156px;transform:rotate(5deg);z-index:2;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.tfg:hover .tfg-cover{transform:rotate(2deg) translateY(-8px)}
.tfg-badge{position:absolute;right:-30px;top:38%;z-index:3;width:64px;height:64px;border-radius:50%;background:var(--a2);color:#fff;font:800 12px/1.05 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(-14deg);box-shadow:0 10px 24px -6px rgba(0,0,0,.45)}
.tfg-form{position:relative;z-index:1;background:var(--c);color:var(--v);border-radius:22px;padding:34px 30px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 40px 80px -30px rgba(0,0,0,.7)}
.tfg-form-tit{font-family:Fraunces,Georgia,serif;font-size:26px;line-height:1.1;margin:0 0 6px!important;padding:0 200px 0 0!important;color:var(--v)}
.tfg-riga{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tfg-campo{position:relative;display:block;margin:0}
.tfg-campo input{width:100%;box-sizing:border-box;height:56px;padding:22px 16px 6px!important;border:1.5px solid rgba(22,52,42,.16)!important;border-radius:12px!important;background:#fff!important;color:var(--v)!important;font:500 16px Manrope,sans-serif!important;transition:border-color .2s,box-shadow .2s;margin:0!important}
.tfg-campo span{position:absolute;left:17px;top:18px;font-size:15px;color:rgba(22,52,42,.55);pointer-events:none;transition:all .18s ease}
.tfg-campo input:focus{outline:0;border-color:var(--a2)!important;box-shadow:0 0 0 4px rgba(196,111,43,.14)}
.tfg-campo input:focus+span,.tfg-campo input:not(:placeholder-shown)+span{top:8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--a2)}
.tfg-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45;color:rgba(22,52,42,.75);cursor:pointer;margin:2px 0 0}
.tfg-check input{flex:none;width:18px;height:18px;margin:1px 0 0;accent-color:var(--a2)}
.tfg-check a{color:var(--a2);text-decoration:underline}
.tfg-btn{margin-top:6px;display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--v);color:var(--c)!important;border:0;border-radius:999px;padding:18px 26px;font:700 16px Manrope,sans-serif;letter-spacing:.01em;cursor:pointer;text-decoration:none!important;transition:background .25s,transform .25s}
.tfg-btn svg{transition:transform .25s}
.tfg-btn:hover{background:var(--a2);transform:translateY(-1px)}.tfg-btn:hover svg{transform:translateX(4px)}
.tfg-btn:disabled{opacity:.6;cursor:wait}
.tfg-msg{min-height:0;font-size:14px;margin:0!important;padding:0!important}.tfg-msg:empty{display:none}.tfg-err{color:#b3402a}
.tfg-nota{margin:0!important;padding:0!important;font-size:12px;text-align:center;color:rgba(22,52,42,.5)}
.tfg-ok{font-family:Fraunces,Georgia,serif;font-size:26px;line-height:1.2;margin:0 0 10px!important;padding:0 150px 0 0!important}
.tfg-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:900px){.tfg{border-radius:20px}.tfg-in{grid-template-columns:1fr;gap:36px;padding:230px 22px 22px}.tfg::before{background-position:center 30%;background-size:auto 520px;background-position-y:0}.tfg::after{background:linear-gradient(180deg,rgba(14,35,28,.05) 0,rgba(14,35,28,.35) 140px,rgba(14,35,28,.96) 330px,#0e231c 520px)}.tfg-carta{padding-top:96px}.tfg-cover{width:128px;right:18px}.tfg-form{padding:28px 20px 20px}.tfg-form-tit{font-size:22px;padding-right:130px!important}.tfg-ok{padding-right:120px!important}}
@media(max-width:480px){.tfg-riga{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.tfg::before,.tfg-neve{animation:none}}
.tfg-libro{position:relative;display:flex;flex-direction:column;aspect-ratio:3/4;border-radius:4px 10px 10px 4px;padding:14px 14px 14px 20px;box-sizing:border-box;background:linear-gradient(180deg,rgba(14,35,28,.55) 0%,rgba(14,35,28,0) 34%,rgba(14,35,28,0) 52%,rgba(14,35,28,.85) 100%),var(--tfg-cov) center/cover;color:#f6f1e7;box-shadow:0 30px 50px -16px rgba(0,0,0,.65),0 6px 14px rgba(0,0,0,.3),6px 6px 0 -1px #efe7d6,6px 6px 0 0 rgba(22,52,42,.2),11px 11px 0 -1px #e6dcc7,11px 11px 0 0 rgba(22,52,42,.2)}
.tfg-libro::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;border-radius:4px 0 0 4px;background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(255,255,255,.18) 60%,rgba(0,0,0,.08))}
.tfg-libro::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 35%);pointer-events:none}
.tfg-libro-top{font:700 8.5px/1.25 Manrope,sans-serif;letter-spacing:.2em;text-transform:uppercase;opacity:.95}
.tfg-libro-tit{margin-top:auto;font:400 29px/1 Fraunces,Georgia,serif;letter-spacing:-.01em}
.tfg-libro-sub{margin-top:7px;padding-top:7px;border-top:1px solid rgba(224,136,60,.9);font:600 7px/1.3 Manrope,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#f3c9a2}
@media(max-width:900px){.tfg-badge{display:none}.tfg-libro-tit{font-size:24px}.tfg-libro{padding:11px 11px 11px 16px}}
