/* ==========================================================================
   Vallese Servizi Immobiliari: foglio di stile unico (v2)
   Stessa identità (logo, rosso #bf1e36, grigi caldi), codice riscritto da zero:
   nessun !important, un solo sistema di griglia, mobile first dove serve.
   I nomi delle classi sono quelli già usati dalle pagine esistenti.
   ========================================================================== */

/* ---------- 1. Variabili ---------- */
:root{
  --red:#bf1e36;
  --red-dark:#9c1829;
  --dark:#1e2528;
  --ink:#1f2326;
  --muted:#586269;
  --warm:#f7f4ef;
  --warm-2:#efe9df;
  --line:#e4ded4;
  --white:#fff;

  --grid:1240px;                 /* larghezza massima del contenuto */
  --gutter:24px;                 /* margine minimo laterale */
  --w:min(var(--grid),calc(100% - 2 * var(--gutter)));
  --pad:max(var(--gutter),calc((100% - var(--grid)) / 2));  /* per fasce a tutta larghezza */

  --radius:8px;
  --radius-sm:4px;
  --shadow-sm:0 1px 2px rgba(30,37,40,.06),0 6px 16px -6px rgba(30,37,40,.12);
  --shadow:0 24px 48px -20px rgba(30,37,40,.35);

  --serif:Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --header-h:80px;
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);background:var(--white);font-family:var(--sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.12;margin:0;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:clamp(2.25rem,4.6vw,3.75rem)}
h2{font-size:clamp(1.75rem,3vw,2.5rem)}
h3{font-size:1.375rem}
p{margin:0 0 1em}
a{color:var(--red)}
a:hover{color:var(--red-dark)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:2px}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--dark);color:#fff;padding:12px 18px;border-radius:var(--radius-sm)}
.skip-link:focus{left:8px;color:#fff}
.eyebrow{margin:0 0 .9rem;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:700}
.red{color:var(--red)}
.lead{font-size:1.125rem;line-height:1.75;color:var(--muted)}
.muted,.form-note{color:var(--muted);font-size:.875rem;line-height:1.6}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 3. Bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:0 26px;background:var(--red);color:#fff;border:2px solid var(--red);border-radius:var(--radius-sm);font:700 .8125rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,transform .2s}
.btn:hover{background:var(--red-dark);border-color:var(--red-dark);color:#fff}
.btn:active{transform:translateY(1px)}
.btn.small{min-height:44px;padding:0 20px}
.btn.outline{background:transparent;border-color:#fff}
.btn.outline:hover{background:#fff;border-color:#fff;color:var(--red)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn[disabled]:hover{background:var(--red);border-color:var(--red)}

/* ---------- 4. Intestazione ----------
   Funziona sia con il contenitore .header-inner sia senza: il contenitore è "trasparente" al layout. */
.site-header{position:sticky;top:0;z-index:50;display:flex;flex-wrap:wrap;align-items:center;gap:0 28px;min-height:var(--header-h);padding:0 max(var(--gutter),calc((100% - 1480px) / 2));background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.4) blur(10px)}
.header-inner{display:contents}
.brand{flex:none;display:block;line-height:0;margin:0}
.brand img{display:block;width:200px;height:auto}
#main-nav{display:flex;align-items:center;gap:clamp(14px,1.7vw,30px);margin-left:auto}
#main-nav a{position:relative;padding:8px 0;font-size:.9375rem;font-weight:500;color:var(--ink);text-decoration:none;white-space:nowrap}
#main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s}
#main-nav a:hover{color:var(--red)}
#main-nav a:hover::after,#main-nav a.active::after,#main-nav a[aria-current="page"]::after{transform:scaleX(1)}
#main-nav a.active,#main-nav a[aria-current="page"]{color:var(--red)}
.site-header .btn.small{flex:none;white-space:nowrap}
.menu{display:none;margin-left:auto;width:48px;height:48px;padding:0;background:none;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer}
.menu-bars,.menu-bars::before,.menu-bars::after{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s,opacity .2s}
.menu-bars{position:relative;margin:auto}
.menu-bars::before,.menu-bars::after{content:"";position:absolute;left:0}
.menu-bars::before{top:-6px}
.menu-bars::after{top:6px}
.is-open .menu-bars{background:transparent}
.is-open .menu-bars::before{top:0;transform:rotate(45deg)}
.is-open .menu-bars::after{top:0;transform:rotate(-45deg)}

@media (max-width:1480px){
  .site-header{gap:0 16px;padding-block:12px}
  .brand img{width:170px}
  #main-nav{display:none;order:5;flex:0 0 100%;flex-direction:column;align-items:stretch;gap:0;margin:12px 0 0;border-top:1px solid var(--line)}
  #main-nav a{padding:15px 0;border-bottom:1px solid var(--line);font-size:1rem}
  #main-nav a::after{display:none}
  .site-header .btn.small{margin-left:auto}
  .menu{display:block;margin-left:0}
  .is-open #main-nav{display:flex}
}
@media (max-width:640px){
  .site-header .btn.small{display:none}
  .menu{margin-left:auto}
  .is-open .btn.small{display:flex;order:6;flex:0 0 100%;margin:16px 0 4px}
}

/* ---------- 5. Home: hero e ricerca ---------- */
.hero{position:relative;display:flex;align-items:flex-start;min-height:clamp(500px,40vw,580px);color:var(--dark);background:#dde5ee}
.hero-torino{background-image:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.1) 38%,rgba(255,255,255,.8) 64%,rgba(255,255,255,.92) 100%),url("../img/torino-hero.png");background-size:cover;background-position:center top;background-repeat:no-repeat}
.hero-overlay{width:min(620px,calc(100% - 2 * var(--gutter)));margin-left:auto;margin-right:var(--pad);padding:clamp(56px,7vw,104px) 0 clamp(130px,12vw,170px)}
.hero .eyebrow{color:var(--red)}
.hero h1{margin-bottom:1.1rem;color:#171c1f}
.hero p:not(.eyebrow){max-width:34em;font-size:clamp(1.0625rem,1.4vw,1.1875rem);line-height:1.65;color:#2a3236}

.search-card{position:relative;z-index:2;width:var(--w);margin:-96px auto 0;padding:0 clamp(18px,2.2vw,32px) clamp(20px,2.2vw,32px);background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow)}
.tabs{display:flex;flex-wrap:wrap;gap:8px 36px;padding:20px 0 0;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.06em;font-size:.8125rem;font-weight:600}
.tabs strong,.tabs a,.tabs span{display:inline-block;padding-bottom:16px;margin-bottom:-1px;color:var(--muted);text-decoration:none;border-bottom:3px solid transparent}
.tabs strong{color:var(--red);border-bottom-color:var(--red)}
.tabs a:hover{color:var(--red)}
.search-card form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:16px;align-items:end;padding-top:24px}

/* ---------- 6. Campi dei moduli ---------- */
label{display:block;font-size:.75rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
input,select,textarea{display:block;width:100%;min-height:48px;margin-top:8px;padding:12px 14px;border:1px solid #cdc6bb;border-radius:var(--radius-sm);background:var(--white);color:var(--ink);font:inherit;font-size:1rem;letter-spacing:normal;text-transform:none}
select,input{height:48px}
textarea{min-height:140px;resize:vertical}
input::placeholder,textarea::placeholder{color:#6b7479}
input:focus,select:focus,textarea:focus{border-color:var(--red);outline:3px solid rgba(191,30,54,.22);outline-offset:0}

/* ---------- 7. Sezioni della home ---------- */
.section{width:var(--w);margin:0 auto;padding:clamp(64px,8vw,112px) 0}
.section-title{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 24px;margin-bottom:clamp(24px,3vw,40px)}
.section-title h2{margin:0}
.section-title a{font-weight:600;text-decoration:none}
.section-title a:hover{text-decoration:underline}
.section>.eyebrow+.section-title{margin-top:0}

.quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;width:100%;margin:0}
.quick>a{display:block;color:inherit;text-decoration:none}
.quick article{display:flex;gap:20px;align-items:flex-start;height:100%;padding:28px;background:var(--warm);border:1px solid transparent;border-radius:var(--radius);transition:transform .25s,box-shadow .25s,border-color .25s,background-color .25s}
.quick>a:hover article{transform:translateY(-3px);background:var(--white);border-color:var(--line);box-shadow:var(--shadow-sm)}
.quick .icon,.quick article>span{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--white);color:var(--red);font-size:1.5rem}
.quick .icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.quick h3{margin:2px 0 8px;color:var(--red)}
.quick p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--muted)}

.agency{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr);gap:clamp(28px,4vw,56px);align-items:center;padding:clamp(56px,8vw,104px) var(--pad);background:var(--warm)}
.agency-photo{min-height:clamp(280px,30vw,420px);height:100%;border-radius:var(--radius);background:url("../img/agenzia-vallese.jpg") 22% center/cover no-repeat,linear-gradient(135deg,#dccfb9,#a8b4b9)}
.agency h2{margin-bottom:1.2rem}
.agency-copy p{max-width:34em;color:var(--muted)}
.agency-copy .btn{margin-top:.5rem}
.agency aside{padding:28px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.agency aside h3{margin-bottom:.6rem}
.agency aside ul{margin:0;padding:0;list-style:none}
.agency aside li{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:.9375rem}
.agency aside li:last-child{border-bottom:0}
.agency aside li::before{content:"";flex:none;width:8px;height:8px;background:var(--red);border-radius:1px}

.valuation{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;padding:clamp(44px,6vw,72px) var(--pad);background:var(--red);color:#fff}
.valuation .eyebrow{color:rgba(255,255,255,.92)}
.valuation h2{margin:0 0 .4rem;font-size:clamp(1.75rem,3vw,2.25rem)}
.valuation p{margin:0;color:rgba(255,255,255,.95)}

/* ---------- 8. Pagine istituzionali ---------- */
.page-hero,.listing-hero{padding:clamp(56px,8vw,104px) var(--pad);background:var(--warm)}
.page-hero h1,.listing-hero h1{max-width:18em;margin:0 0 1.2rem}
.page-hero>p:last-child,.listing-hero>p:last-child{max-width:44rem;margin-bottom:0;font-size:1.125rem;line-height:1.75;color:var(--muted)}
.listing-hero.commerciale{background:linear-gradient(110deg,var(--warm),var(--warm-2))}
.editorial-section{width:var(--w);margin:0 auto;padding:clamp(20px,6vw,8px) 0 clamp(64px,88vw,104px)}
.editorial-copy{max-width:46rem}
.editorial-copy .lead{margin:0 0 2rem}

.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:clamp(40px,5vw,64px)}
.service-card{display:flex;gap:24px;align-items:flex-start;padding:clamp(24px,3vw,36px);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s}
.service-card:hover{transform:translateY(-3px);border-color:transparent;box-shadow:var(--shadow-sm);color:var(--ink)}
.service-icon{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#fbeff1;color:var(--red)}
.service-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.service-card>div{min-width:0}
.service-card>div>span{display:block;margin-bottom:.4rem;color:var(--red);text-transform:uppercase;letter-spacing:.14em;font-size:.6875rem;font-weight:700}
.service-card h2{margin:0 0 .5rem;font-size:1.625rem}
.service-card p{margin:0;color:var(--muted);line-height:1.65}
.service-card strong{display:inline-block;margin-top:1rem;color:var(--red);font-size:.9375rem}

/* Pagine di dettaglio dei servizi */

.contact-page{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:clamp(32px,6vw,80px);width:var(--w);margin:0 auto;padding:clamp(48px,6vw,88px) 0 clamp(64px,8vw,104px)}
.contact-page h2{margin-bottom:1rem;font-size:1.75rem}
.contact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:clamp(20px,3vw,36px);background:var(--warm);border-radius:var(--radius)}
.contact-form .wide{grid-column:1/-1}
.contact-form .form-note{margin:0}


/* ---------- Pagine di dettaglio servizio ---------- */
.service-detail{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(32px,6vw,80px);align-items:start;width:var(--w);margin:0 auto;padding:clamp(48px,6vw,88px) 0 clamp(64px,8vw,104px)}
.service-detail h2{margin:2.25rem 0 1rem;font-size:1.75rem}
.service-detail h2:first-child{margin-top:0}
.back-link{display:inline-block;margin-bottom:1.5rem;font-weight:600;text-decoration:none}
.back-link:hover{text-decoration:underline}
.check-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.check-list li{position:relative;padding-left:34px;line-height:1.6}
.check-list li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat}
.process{counter-reset:step;display:grid;gap:20px;margin:0;padding:0;list-style:none}
.process li{counter-increment:step;display:grid;grid-template-columns:40px 1fr;gap:16px}
.process li::before{content:counter(step);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--warm);color:var(--red);font:600 1.125rem var(--serif)}
.process strong{display:block;margin-bottom:.15rem}
.process span{color:var(--muted)}
.draft-note{margin-top:2.5rem;font-size:.8125rem;color:var(--muted)}
@media (max-width:900px){.service-detail{grid-template-columns:1fr}}

/* ---------- 9. Elenchi immobili ---------- */
.listing-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(28px,4vw,48px);align-items:start;width:var(--w);margin:clamp(40px,5vw,64px) auto clamp(64px,8vw,96px)}
.filters{position:sticky;top:calc(var(--header-h) + 16px);padding:24px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.filters h2{margin:0 0 1rem;font-size:1.5rem}
.filter-form{display:grid;gap:16px}
.filter-form .btn{width:100%}
.filter-form .reset{justify-self:center;font-size:.875rem}
.results-head{margin-bottom:24px}
.results-head .eyebrow{margin-bottom:.3rem}
.results-head h2{margin:0}

.properties{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.listing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.property{overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);transition:transform .25s,box-shadow .25s}
.property:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.property a{color:inherit;text-decoration:none}
.photo{position:relative;display:block;aspect-ratio:4/3;background:linear-gradient(135deg,#eee8df,#d6d0c7) center/cover no-repeat}
.photo span{position:absolute;top:12px;left:12px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--red);color:#fff;font-size:.6875rem;font-weight:700;letter-spacing:.08em}
.real-photo:not([style])::after{content:"Foto in arrivo";position:absolute;inset:0;display:grid;place-items:center;color:#6d665c;font-size:.875rem;letter-spacing:.06em}
.property-body{padding:18px 18px 20px}
.property-body h3{margin:0 0 10px;font:600 1.0625rem/1.35 var(--sans)}
.property-body h3 a:hover{color:var(--red)}
.property-body p{margin:0 0 6px;font-size:.875rem;color:var(--muted)}
.property-body strong{display:block;margin-top:10px;font-size:1.125rem;color:var(--red)}
.no-results{grid-column:1/-1;padding:clamp(32px,5vw,56px);background:var(--warm);border-radius:var(--radius);text-align:center}
.no-results h3{margin-bottom:.5rem}
.no-results p{margin:0;color:var(--muted)}

/* ---------- 10. Scheda immobile ---------- */
.property-top{width:var(--w);margin:clamp(32px,4vw,48px) auto 24px}
.property-top>a{font-weight:600;text-decoration:none}
.property-title{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 32px}
.property-title h1{margin:8px 0;font-size:clamp(2rem,4vw,3rem)}
.property-title>strong{font:500 1.75rem var(--serif);color:var(--red);white-space:nowrap}
.prop-gallery{width:var(--w);margin:0 auto}
.prop-gallery-main{margin:0;aspect-ratio:16/9;max-height:650px;overflow:hidden;background:var(--warm);border-radius:var(--radius)}
.prop-gallery-main img{display:block;width:100%;height:100%;object-fit:cover}
.prop-gallery-thumbs{display:flex;gap:10px;margin:10px 0 0;padding:0 0 6px;list-style:none;overflow-x:auto}
.prop-gallery-thumbs a{display:block;width:140px;border:3px solid transparent;border-radius:var(--radius-sm);overflow:hidden;line-height:0;opacity:.8;transition:opacity .2s,border-color .2s}
.prop-gallery-thumbs a:hover,.prop-gallery-thumbs a[aria-current="true"]{opacity:1}
.prop-gallery-thumbs a[aria-current="true"]{border-color:var(--red)}
.prop-gallery-thumbs img{display:block;width:100%;height:90px;object-fit:cover}
.gallery-help{margin:.5rem 0 0;font-size:.8125rem;color:var(--muted)}
.gallery-placeholder{width:var(--w);margin:0 auto;display:grid;place-items:center;height:clamp(260px,40vw,460px);background:var(--warm);border-radius:var(--radius);color:#6d665c;font:1.5rem var(--serif)}
.property-content{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(32px,5vw,72px);width:var(--w);margin:clamp(40px,5vw,64px) auto clamp(64px,8vw,96px)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:32px;padding:20px 0;border-block:1px solid var(--line)}
.facts span{padding:0 8px;border-right:1px solid var(--line);text-align:center;color:var(--muted)}
.facts span:last-child{border:0}
.facts strong{display:block;font-size:1.375rem;color:var(--ink)}
.property-content h2{margin:2rem 0 1rem;font-size:1.75rem}
.description{line-height:1.8;color:var(--muted)}
.details{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--line)}
.details div{display:flex;justify-content:space-between;gap:16px;padding:13px 8px;border-bottom:1px solid var(--line)}
.details dt{color:var(--muted)}
.details dd{margin:0;font-weight:700}
.contact-box{position:sticky;top:calc(var(--header-h) + 16px);height:max-content;padding:28px;background:var(--warm);border-radius:var(--radius)}
.contact-box h2{margin-top:0}
.contact-note{font-size:.8125rem;color:var(--muted)}
.not-found{display:grid;place-content:center;gap:16px;min-height:60vh;padding:0 var(--gutter);text-align:center}
.not-found h1{margin:0}

/* ---------- 11. Piè di pagina ---------- */
footer{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px 48px;padding:clamp(44px,6vw,72px) var(--pad) 28px;background:var(--dark);color:#d6dbde}
footer img{display:block;width:200px;height:auto;margin-bottom:1rem;filter:grayscale(1) brightness(4)}
footer p{max-width:30em;margin:0 0 .8em;line-height:1.65}
footer strong{color:#fff}
footer a{color:#fff;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}
footer a:hover{color:#fff;text-decoration-color:#fff}
footer :focus-visible{outline-color:#fff}
footer small{grid-column:1/-1;margin-top:8px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);color:#aeb6ba;font-size:.8125rem}

/* ---------- 12. Adattamento ---------- */
@media (max-width:1200px){
  .properties{grid-template-columns:repeat(2,minmax(0,1fr))}
  .listing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .hero{min-height:560px}
  .hero-torino{background-image:linear-gradient(180deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.72) 38%,rgba(255,255,255,.94) 100%),url("../img/torino-hero.jpg");background-position:38% top}
  .hero-overlay{width:calc(100% - 2 * var(--gutter));margin:0 auto;padding-top:clamp(160px,38vw,260px);padding-bottom:120px}
  .search-card{margin-top:-72px}
  .search-card form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .search-card form .btn{grid-column:1/-1}
  .quick{grid-template-columns:1fr}
  .agency{grid-template-columns:1fr}
  .agency-photo{height:auto}
  .service-grid{grid-template-columns:1fr}
  .contact-page{grid-template-columns:1fr}
  .info-grid{grid-template-columns:1fr}
  .listing-layout{grid-template-columns:1fr}
  .filters{position:static}
  .filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-form .btn,.filter-form .reset{grid-column:1/-1}
  .property-content{grid-template-columns:1fr}
  .contact-box{position:static}
  footer{grid-template-columns:1fr}
}
@media (max-width:600px){
  :root{--gutter:20px}
  .tabs{gap:6px 24px;font-size:.75rem}
  .search-card form,.filter-form,.contact-form,.properties,.listing-grid{grid-template-columns:1fr}
  .quick article{padding:22px}
  .service-card{gap:16px}
  .service-icon{width:48px;height:48px}
  .property-title{flex-direction:column;align-items:flex-start}
  .prop-gallery{width:100%}
  .prop-gallery-main{border-radius:0;aspect-ratio:4/3}
  .prop-gallery-thumbs{padding-inline:var(--gutter)}
  .prop-gallery-thumbs a{width:112px}
  .prop-gallery-thumbs img{height:72px}
  .gallery-help{padding-inline:var(--gutter)}
  .facts{grid-template-columns:1fr 1fr;gap:16px}
  .facts span{border:0}
  .details{grid-template-columns:1fr}
  .valuation .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media print{
  .site-header,.search-card,.valuation,footer,.menu{display:none}
}

/* ===== Contenuti gestiti dal CMS (agenzia, servizi, approfondimenti, recensioni) ===== */
.cms-body>p:first-child{font-size:1.125rem;line-height:1.75;color:var(--muted)}
.cms-body h2{margin:2.25rem 0 1rem;font-size:1.75rem}
.cms-body h3{margin:1.75rem 0 .75rem;font-size:1.3rem}
.cms-body p,.cms-body li{line-height:1.75}
.cms-body ul,.cms-body ol{padding-left:1.4rem;margin:0 0 1.2rem}
.cms-body blockquote{margin:1.5rem 0;padding:.2rem 0 .2rem 1.25rem;border-left:4px solid var(--red);color:var(--muted)}
.cms-body a:not(.btn){color:var(--red)}
.cms-body .btn{margin-top:.5rem}
.cms-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:24px}
.cms-card{margin:0;padding:28px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.cms-card time{display:block;margin-bottom:.6rem;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cms-card h2{margin:0 0 .75rem;font-size:1.35rem}
.cms-card h2 a{color:inherit;text-decoration:none}.cms-card h2 a:hover{color:var(--red)}
.cms-card p{margin:0 0 1rem;color:var(--muted);line-height:1.65}
.cms-card .more{font-weight:700;color:var(--red);text-decoration:none}
.cms-card.review blockquote{margin:0 0 1.25rem;padding:0;border:0}
.cms-card.review blockquote p{color:var(--ink);font-size:1.0625rem;font-family:var(--serif)}
.cms-card .stars{margin:0 0 .75rem;color:var(--red);letter-spacing:.15em;font-size:1.1rem}
.cms-card figcaption{font-size:.9375rem;color:var(--muted)}
.cms-card figcaption strong{color:var(--ink)}

/* Tabelle nei testi del CMS: scorrono in orizzontale su schermi stretti */
.cms-body table{display:block;max-width:100%;overflow-x:auto;margin:0 0 1.5rem;border-collapse:collapse;font-size:.9375rem;line-height:1.5}
.cms-body th,.cms-body td{padding:12px 16px;border:1px solid var(--line);text-align:left;vertical-align:top}
.cms-body th{background:var(--warm);font-weight:700;color:var(--ink)}
.cms-body tbody tr:nth-child(even) td{background:#fcfbf9}
.cms-body table.cms-fixed{display:table;width:100%;table-layout:fixed}
.cms-body table.cms-fixed th,.cms-body table.cms-fixed td{overflow-wrap:anywhere}

/* Pagina Servizi: blocchi nella fascia beige, sotto l'introduzione */
.page-hero>p.hero-intro{max-width:44rem;margin-bottom:0;font-size:1.125rem;line-height:1.75;color:var(--muted)}
.editorial-section>.service-grid:first-child{margin-top:0}

/* Argomenti a fisarmonica (pagina Approfondimenti) */
.accordion{display:grid;gap:14px;max-width:62rem;margin:2rem auto 0}
.editorial-copy+.accordion{margin-top:2.5rem}
.acc-item{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}
.acc-item[open]{border-color:var(--red)}
.acc-item summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;cursor:pointer;list-style:none;font-family:var(--serif);font-size:1.25rem;line-height:1.35;color:var(--ink)}
.acc-item summary::-webkit-details-marker{display:none}
.acc-item summary::after{content:"";flex:none;width:11px;height:11px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(45deg);transition:transform .2s;margin-top:-4px}
.acc-item[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.acc-item summary:hover{background:var(--warm)}
.acc-item summary:focus-visible{outline:3px solid #f0a5b0;outline-offset:-3px}
.acc-body{padding:4px 24px 26px;border-top:1px solid var(--line)}
.acc-body>p:first-child{font-size:1.0625rem;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.acc-item summary::after{transition:none}}
