@charset "UTF-8";

/*
@copyright: CAFFEINAPURA Srls Unipersonale - All right reserved
Version: 2026.01 - 2026-06-06 00:00
Author: Roberto Cheli
*/

/* ── Hero ── */

.hero{background:var(--bg);padding:70px 0 0;overflow:hidden;position:relative;}
.hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 65% 80% at 72% 40%, var(--g100) 0%, transparent 60%);pointer-events:none;z-index:0;}
.hero-in{max-width:1280px;margin:0 auto;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:end;position:relative;z-index:1;}
.hero-copy{padding-bottom:72px;}
.hero-badge{display:inline-flex;align-items:center;gap:7px;background:var(--g100);color:var(--g700);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.35rem 1rem;border-radius:20px;margin-bottom:22px;}
.hero-sub{font-size:1.05rem;color:var(--t500);line-height:1.75;max-width:450px;margin-bottom:32px;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px;}
.hero-trust{display:flex;flex-wrap:wrap;gap:14px;padding-top:16px;border-top:1px solid var(--border);}
.trust-chip{display:flex;align-items:center;gap:6px;font-size:.79rem;color:var(--t500);}
.trust-chip i{color:var(--g400);font-size:.68rem;}
.hero-img-col{position:relative;border-radius:var(--r-xl) var(--r-xl) var(--r-xl) var(--r-xl);overflow:hidden;min-height:400px;top:-90px;}
.hero-img-col img{width:100%;height:100%;object-fit:cover;}
.hero-float{position:absolute;bottom:40px;left:-14px;background:var(--white);border-radius:var(--r-l);padding:14px 18px;box-shadow:var(--sh-l);display:flex;align-items:center;gap:12px;min-width:210px;}
.hf-icon{width:38px;height:38px;border-radius:var(--r);background:var(--g100);color:var(--g600);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;}
.hf-num{font-family: var(--ff-d), sans-serif;font-size:1.5rem;font-weight:600;color:var(--t900);line-height:1;}
.hf-lbl{font-size:.7rem;color:var(--t300);margin-top:2px;}
h1.hero-h{font-size:clamp(2.5rem,5vw,4.2rem);font-weight:600;color:var(--t900);letter-spacing:-.035em;line-height:1.07;margin-bottom:18px;}
h1.hero-h em{font-style:italic;color:var(--g500);}

@media(max-width:840px){
    .hero-in{grid-template-columns:1fr;gap:0;padding:0 14px;}
    .hero-img-col{order:-1;height:52vw;min-height:230px;top:-50px;}
    .hero-badge, h1.hero-h{margin-top:10px;margin-bottom:10px;}
}


/* ── Mood search ──

.mood-outer{background:var(--white);padding:28px 0 28px;position:relative;z-index:20;}
.mood-card{max-width:1200px;margin:0 auto;background:var(--white);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--sh-xl);}
.mood-hat{display:inline-flex;align-items:center;gap:8px;background:var(--g500);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:.28rem .9rem;margin:0 0 0 0;}
.mood-body{padding:18px 28px 0;}
.mood-sentence{display:flex;flex-wrap:wrap;align-items:center;margin-top:8px;gap:5px 8px;line-height:1.9;font-family:var(--ff-d);font-size:clamp(.95rem,2.1vw,1.3rem);font-weight:300;color:var(--t500);}
.mw{color:var(--t700);font-weight:300;}
.tok-w{position:relative;display:inline-block;}
.tok{display:inline-flex;align-items:center;gap:4px;background:var(--g50);color:var(--g700);font-family:var(--ff-d);font-size:inherit;font-weight:600;padding:.08em .65em .08em .8em;border-radius:var(--r-s);border:1.5px solid var(--g200);cursor:pointer;transition:all var(--ease);}
.tok:hover,.tok[aria-expanded="true"]{background:var(--g100);border-color:var(--g400);box-shadow:var(--sh-s);}
.tok-ch{font-size:.48em;opacity:.5;margin-left:2px;transition:transform var(--ease);}
.tok[aria-expanded="true"] .tok-ch{transform:rotate(180deg);}
.tok-dd{position:absolute;top:calc(100% + 6px);left:0;background:var(--white);border:1px solid var(--border);border-radius:var(--r-l);box-shadow:var(--sh-xl);padding:4px;min-width:210px;z-index:400;display:none;flex-direction:column;gap:1px;}
@keyframes ddIn{from{opacity:0;transform:translateY(-5px);}to{opacity:1;transform:none;}}
.tok-dd.open{display:flex;animation:ddIn .14s ease both;}
.tok-opt{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--r-s);font-family:var(--ff-b);font-size:.875rem;color:var(--t700);cursor:pointer;border:none;background:transparent;text-align:left;width:100%;transition:background var(--ease);}
.tok-opt:hover{background:var(--g50);}
.tok-opt.sel{background:var(--g100);color:var(--g700);font-weight:600;}
.te{font-size:.9rem;width:22px;text-align:center;flex-shrink:0;}
.mood-foot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:14px 28px 20px;border-top:1px solid var(--border);margin-top:16px;}
.mf-g{display:flex;align-items:center;gap:8px;}
.mf-lbl{font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t300);}
.gb{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border-2);background:var(--white);cursor:pointer;font-size:.85rem;color:var(--t700);display:flex;align-items:center;justify-content:center;transition:all var(--ease);line-height:1;}
.gb:hover{background:var(--g100);border-color:var(--g400);color:var(--g700);}
#gn{font-weight:700;font-size:.9rem;color:var(--t900);min-width:18px;text-align:center;}
input[type="date"]{font-family:var(--ff-b);font-size:.85rem;color:var(--t700);border:none;background:transparent;cursor:pointer;outline:none;}

/* ── Pills ──

.pills-bar{background:var(--white);padding:10px var(--gutter) 28px;}
.pills-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.pills-lbl{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t300);padding-right:12px;border-right:1px solid var(--border);margin-right:3px;white-space:nowrap;}
.pill{display:inline-flex;align-items:center;gap:5px;padding:.4rem .95rem;border-radius:20px;border:1.5px solid var(--border);background:var(--white);font-size:.81rem;font-weight:500;color:var(--t700);cursor:pointer;box-shadow:var(--sh-xs);transition:all var(--ease);}
.pill:hover{border-color:var(--g300);background:var(--g50);color:var(--g700);transform:translateY(-1px);box-shadow:var(--sh-s);}
.pill.on{background:var(--g500);border-color:var(--g500);color:#fff;box-shadow:var(--sh-s);}

/* ── Stats ──

.stats-bar{background:var(--g800);padding:22px var(--gutter);}
.stats-in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);}
@media(max-width:540px){.stats-in{grid-template-columns:repeat(2,1fr);}}
.sitem{text-align:center;padding:14px 8px;border-right:1px solid rgba(255,255,255,.07);}
.sitem:last-child{border-right:none;}
.snum{font-family:var(--ff-d);font-size:1.8rem;font-weight:600;color:#fff;display:block;letter-spacing:-.02em;line-height:1;}
.slbl{font-size:.68rem;color:var(--g200);letter-spacing:.09em;text-transform:uppercase;margin-top:4px;display:block;}

/* ── Map ──

.map-shell{border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-m);display:grid;grid-template-columns:340px 1fr;height:560px;}
@media(max-width:840px){.map-shell{grid-template-columns:1fr;height:auto;}.map-list{max-height:320px;}.map-pane{height:280px;}}
.map-list{display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--white);}
.map-list-hd{padding:15px 17px;border-bottom:1px solid var(--border);flex-shrink:0;}
.map-cnt{font-family:var(--ff-d);font-size:1.35rem;font-weight:600;color:var(--t900);line-height:1;}
.map-sub{font-size:.72rem;color:var(--t300);margin-top:2px;}
.map-scroll{overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--border) transparent;}
.map-item{display:flex;gap:11px;padding:12px 15px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--ease);background:var(--white);}
.map-item:hover,.map-item.on{background:var(--g50);}
.map-item.on{border-left:3px solid var(--g500);padding-left:12px;}
.mi-thumb{width:64px;height:58px;border-radius:var(--r-s);overflow:hidden;flex-shrink:0;}
.mi-thumb img{width:100%;height:100%;object-fit:cover;}
.mi-name{font-family:var(--ff-d);font-size:.9rem;font-weight:600;color:var(--t900);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:195px;}
.mi-loc{font-size:.7rem;color:var(--t300);display:flex;align-items:center;gap:3px;margin-bottom:4px;}
.mi-loc i{color:var(--g400);font-size:.58rem;}
.mi-chips{display:flex;flex-wrap:wrap;gap:3px;}
.mi-chip{font-size:.57rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.17rem .48rem;border-radius:var(--r-s);background:var(--g100);color:var(--g700);}
.mi-price{font-size:.74rem;font-weight:700;color:var(--a400);margin-top:3px;}
.map-pane{position:relative;}
#the-map{width:100%;height:100%;}
.leaflet-popup-content-wrapper{border-radius:var(--r-l)!important;box-shadow:var(--sh-l)!important;border:1px solid var(--border)!important;}
.leaflet-popup-content{margin:0!important;padding:0!important;}
.pop-in{padding:12px 15px;}
.pop-name{font-family:var(--ff-d);font-weight:600;font-size:.9rem;color:var(--t900);}
.pop-loc{font-size:.7rem;color:var(--t300);margin:3px 0 4px;}
.pop-price{font-size:.78rem;font-weight:700;color:var(--a400);}
.leaflet-control-attribution{display:none!important;}
.leaflet-tile-pane{filter:saturate(.85) brightness(1.04);}

/* ── Features ──

.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
@media(max-width:900px){.feat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.feat-grid{grid-template-columns:1fr;}}
.fc{background:var(--white);border:1px solid var(--border);border-radius:var(--r-l);padding:26px 22px;transition:transform var(--ease-m),box-shadow var(--ease-m);}
.fc:hover{transform:translateY(-3px);box-shadow:var(--sh-m);}
.fc-icon{width:42px;height:42px;border-radius:var(--r);background:var(--g100);color:var(--g600);display:flex;align-items:center;justify-content:center;font-size:.95rem;margin-bottom:15px;}
.fc-t{font-family:var(--ff-d);font-size:.97rem;font-weight:600;color:var(--t900);margin-bottom:6px;}
.fc-p{font-size:.855rem;color:var(--t500);line-height:1.7;}

/* ── CTA section (homepage, sfondo --g900) ── */

.cta-sec{background:var(--g900);padding:80px var(--gutter);position:relative;overflow:hidden;}
.cta-sec::before{content:'';position:absolute;top:-160px;right:-80px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(74,119,64,.2) 0%,transparent 65%);pointer-events:none;}
.cta-in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 400px;gap:60px;align-items:center;position:relative;z-index:1;}
.cta-eye{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--g300);margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.cta-eye::before{content:'';width:16px;height:2px;background:var(--g400);border-radius:2px;}
h2.cta-t{font-family:var(--ff-d);font-size:clamp(1.9rem,3.5vw,2.9rem);font-weight:600;color:#fff;letter-spacing:-.025em;line-height:1.1;margin-bottom:13px;}
h2.cta-t em{font-style:italic;color:var(--g200);}
.cta-sub{font-size:.935rem;color:rgba(255,255,255,.48);line-height:1.75;margin-bottom:28px;max-width:470px;}
.cta-perks{display:flex;flex-direction:column;gap:10px;}
.cta-perk{display:flex;align-items:flex-start;gap:10px;font-size:.875rem;color:rgba(255,255,255,.62);}
.cta-dot{width:17px;height:17px;border-radius:50%;background:var(--g600);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.48rem;flex-shrink:0;margin-top:.18rem;}
.cta-card{background:var(--white);border-radius:var(--r-xl);padding:30px 26px;box-shadow:var(--sh-xl);}
.cc-title{font-family:var(--ff-d);font-size:1.25rem;font-weight:600;color:var(--t900);margin-bottom:5px;}
.cc-sub{font-size:.83rem;color:var(--t500);line-height:1.6;margin-bottom:20px;}
.cc-perks{display:flex;flex-direction:column;gap:8px;margin-bottom:24px;}
.cc-perk{display:flex;align-items:center;gap:8px;font-size:.83rem;color:var(--t700);}
.cc-perk i{color:var(--g500);font-size:.73rem;width:13px;}
.cc-note{text-align:center;font-size:.71rem;color:var(--t300);margin-top:11px;}

@media(max-width:960px){
    .cta-in{grid-template-columns:1fr;gap:40px;}
    .cta-card{padding:30px 16px;}
}
