/* ═══════════════════════════════════════════════════════════════════
   BEB CASE IMMOBILIARE — Theme CSS v1.0
   Palette: Giallo #F7AE4E · Nero #231F20 · Bianco #ffffff
   Typography: Cormorant Garamond (display) + Barlow (UI/body)
═══════════════════════════════════════════════════════════════════ */

/* ── CUSTOM PROPERTIES ─────────────────────────────────────────── */
:root {
  --y:  #F7AE4E;   /* giallo brand */
  --yd: #c8841a;   /* giallo scuro */
  --yl: #fde8c2;   /* giallo chiaro */
  --k:  #231F20;   /* nero brand */
  --kl: #3d3839;   /* nero chiaro */
  --w:  #ffffff;   /* bianco */
  --g0: #f8f7f5;   /* off-white */
  --g1: #f0eeeb;   /* grigio chiarissimo */
  --mu: #7a7374;   /* grigio testo */
  --bd: rgba(35,31,32,.1); /* bordo */
  --H:  72px;      /* altezza header */
  --radius: 1px;
  --transition: .22s ease;
}

/* ── RESET & BASE ───────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }

html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body {
  font-family:'Barlow',sans-serif;
  font-size:16px; font-weight:300;
  color:var(--k);
  background:var(--w);
  line-height:1.6;
  overflow-x:hidden;
}

img, video { max-width:100%; height:auto; display:block; }
a { color:inherit; }
ul, ol { list-style:none; }
button { cursor:pointer; font-family:inherit; }

/* ── TIPOGRAFIA ─────────────────────────────────────────────────── */
h1,h2,h3,h4,h5,h6 {
  font-family:'Cormorant Garamond',serif;
  font-weight:600;
  line-height:1.12;
  color:var(--k);
}

h1 { font-size:clamp(2.4rem,4vw,3.8rem); font-weight:600; }
h2 { font-size:clamp(1.9rem,3vw,2.8rem); }
h3 { font-size:clamp(1.4rem,2vw,2rem); }
h4 { font-size:1.3rem; }
h5 { font-size:1.1rem; }
h6 { font-size:.95rem; font-family:'Barlow',sans-serif; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }

em { font-style:italic; }
strong { font-weight:600; }

p { line-height:1.85; margin-bottom:1rem; }
p:last-child { margin-bottom:0; }

/* Entry content — WordPress tipico */
.entry-content h2,
.entry-content h3,
.entry-content h4 { margin-top:2.5rem; margin-bottom:1rem; }
.entry-content ul,
.entry-content ol { padding-left:1.5rem; margin-bottom:1.2rem; }
.entry-content li { margin-bottom:.4rem; line-height:1.7; }
.entry-content ul li { list-style:disc; }
.entry-content ol li { list-style:decimal; }
.entry-content a { color:var(--yd); text-decoration:underline; text-underline-offset:3px; }
.entry-content a:hover { color:var(--k); }
.entry-content blockquote {
  border-left:3px solid var(--y);
  padding-left:1.5rem;
  margin:2rem 0;
  font-family:'Cormorant Garamond',serif;
  font-size:1.25rem;
  font-style:italic;
  color:var(--mu);
}
.entry-content hr { border:none; border-top:2px solid var(--y); margin:2.5rem 0; }
.entry-content img { border-radius:var(--radius); }
.entry-content figure { margin-bottom:1.5rem; }
.entry-content figcaption { font-size:.78rem; color:var(--mu); margin-top:.5rem; font-style:italic; }
.entry-content table { width:100%; border-collapse:collapse; margin-bottom:1.5rem; font-size:.9rem; }
.entry-content th { background:var(--k); color:var(--w); padding:.6rem 1rem; text-align:left; font-weight:600; font-size:.78rem; letter-spacing:.08em; }
.entry-content td { padding:.6rem 1rem; border-bottom:1px solid var(--bd); }
.entry-content tr:hover td { background:var(--g0); }

/* ── LABEL / EYEBROW ────────────────────────────────────────────── */
.s-label {
  display:inline-flex; align-items:center; gap:.7rem;
  font-size:.65rem; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--yd);
  margin-bottom:1.2rem;
}
.s-label::before {
  content:''; display:block;
  width:24px; height:1.5px; background:var(--yd); flex-shrink:0;
}
.s-body {
  font-size:.96rem; font-weight:300; line-height:1.9; color:var(--mu);
}

/* ── BOTTONI ────────────────────────────────────────────────────── */
.btn-y, a.btn-y {
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--y); color:var(--k);
  font-family:'Barlow',sans-serif;
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:.85rem 2rem;
  text-decoration:none;
  transition:background var(--transition), color var(--transition);
  border:none; border-radius:var(--radius);
}
.btn-y:hover { background:var(--yd); color:var(--w); }

.btn-outline, a.btn-outline {
  display:inline-flex; align-items:center; gap:.6rem;
  background:transparent;
  border:1.5px solid var(--k); color:var(--k);
  font-family:'Barlow',sans-serif;
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:.85rem 2rem;
  text-decoration:none;
  transition:background var(--transition), color var(--transition), border-color var(--transition);
  border-radius:var(--radius);
}
.btn-outline:hover { background:var(--k); color:var(--w); }

.btn-outline-w, a.btn-outline-w {
  display:inline-flex; align-items:center; gap:.6rem;
  background:transparent;
  border:1.5px solid rgba(255,255,255,.4); color:rgba(255,255,255,.75);
  font-family:'Barlow',sans-serif;
  font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  padding:.85rem 2rem;
  text-decoration:none;
  transition:border-color var(--transition), color var(--transition);
  border-radius:var(--radius);
}
.btn-outline-w:hover { border-color:var(--y); color:var(--y); }

/* ── HEADER ─────────────────────────────────────────────────────── */
#header {
  position:fixed; top:0; left:0; right:0; z-index:500;
  height:var(--H); background:var(--k);
  border-bottom:2.5px solid var(--y);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 5vw;
  transition:background .3s;
  overflow:visible;
}
#header.scrolled {
  background:rgba(35,31,32,.97);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
#header.scrolled .header-logo img { height:57px; margin-top:28px; }

.header-logo {
  display:flex; align-items:flex-start; gap:1.2rem;
  text-decoration:none;
  position:relative; z-index:501;
}
.header-logo img {
  height:115px; width:auto; display:block;
  filter:brightness(1.05) drop-shadow(0 4px 14px rgba(0,0,0,.5));
  margin-top:56px;
  transition:transform .25s, height .25s, margin-top .25s;
}
.header-logo:hover img { transform:translateY(2px); }

.header-claim {
  font-family:'Cormorant Garamond',serif;
  font-size:1.5rem; font-weight:300; font-style:italic;
  color:rgba(255,255,255,.5);
  border-left:1px solid rgba(247,174,78,.3);
  padding-left:1rem;
  align-self:center;
}
.header-claim em { color:var(--y); font-style:normal; }

#header nav { display:flex; align-items:center; gap:.25rem; }
#header nav a {
  font-size:.7rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.6);
  text-decoration:none;
  padding:.5rem .9rem;
  transition:color .2s;
  position:relative;
}
#header nav a::after {
  content:''; position:absolute; bottom:0; left:.9rem; right:.9rem;
  height:1.5px; background:var(--y);
  transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
#header nav a:hover,
#header nav a.active { color:var(--w); }
#header nav a:hover::after,
#header nav a.active::after { transform:scaleX(1); }

#header nav a.nav-cta {
  background:var(--y); color:var(--k);
  padding:.5rem 1.2rem; margin-left:.5rem;
  font-weight:600;
}
#header nav a.nav-cta::after { display:none; }
#header nav a.nav-cta:hover { background:var(--yd); color:var(--w); }

/* Burger */
.burger {
  display:none;
  flex-direction:column; gap:5px;
  background:none; border:none;
  padding:.4rem; cursor:pointer; z-index:502;
}
.burger span {
  display:block; width:22px; height:1.5px;
  background:var(--w); transition:transform .3s, opacity .3s;
}

/* Mobile nav */
#mobileNav {
  display:none; position:fixed;
  top:var(--H); left:0; right:0;
  background:rgba(35,31,32,.98);
  border-top:2px solid var(--y);
  flex-direction:column; z-index:499;
  padding:2rem 5vw;
}
#mobileNav.open { display:flex; }
#mobileNav a {
  font-size:.9rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.7);
  text-decoration:none;
  padding:.9rem 0;
  border-bottom:1px solid rgba(247,174,78,.1);
  transition:color .2s;
}
#mobileNav a:hover { color:var(--y); }
#mobileNav a.nav-cta {
  background:var(--y); color:var(--k);
  padding:.8rem 1.5rem; margin-top:1rem;
  text-align:center;
}

/* ── LAYOUT WRAPPER ─────────────────────────────────────────────── */
.site-main { min-height:60vh; }

.container {
  max-width:1280px; margin:0 auto; padding:0 5vw;
  width:100%;
}

/* Nota: il padding-top per header fisso + logo è gestito da ogni template */

/* ── CTA BLOCK (riusabile) ──────────────────────────────────────── */
.cta-box {
  background:var(--k); padding:2.8rem 2rem;
  border-top:3px solid var(--y);
}
.cta-box-ey {
  font-size:.62rem; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--y); margin-bottom:1.4rem; display:block;
}
.cta-phone {
  font-family:'Cormorant Garamond',serif;
  font-size:2rem; font-weight:700; color:var(--w);
  text-decoration:none; display:block; margin-bottom:.3rem;
  transition:color .2s;
}
.cta-phone:hover { color:var(--y); }
.cta-addr {
  font-size:.78rem; color:rgba(255,255,255,.4); display:block; margin-bottom:1rem;
}
.cta-hr { border:none; border-top:1px solid rgba(247,174,78,.15); margin:1.2rem 0; }
.cta-mail {
  font-size:.82rem; color:rgba(255,255,255,.5); text-decoration:none; display:block;
  margin-bottom:.3rem; transition:color .2s;
}
.cta-mail:hover { color:var(--y); }
.cta-note { font-size:.68rem; color:rgba(255,255,255,.25); }

/* ── CARD IMMOBILE (CPT) ────────────────────────────────────────── */
.imm-card-wp {
  background:var(--w);
  border:1px solid var(--bd);
  overflow:hidden;
  transition:box-shadow .25s;
  display:flex; flex-direction:column;
}
.imm-card-wp:hover { box-shadow:0 4px 24px rgba(35,31,32,.1); }
.imm-card-wp .card-thumb {
  height:220px; overflow:hidden; position:relative;
}
.imm-card-wp .card-thumb img {
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.88) brightness(.95);
  transition:transform .5s ease, filter .4s ease;
}
.imm-card-wp:hover .card-thumb img {
  transform:scale(1.04); filter:saturate(1) brightness(1);
}
.imm-card-wp .card-badge {
  position:absolute; top:.8rem; left:.8rem;
  background:var(--k); color:var(--y);
  font-size:.56rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  padding:.22rem .6rem;
}
.imm-card-wp .card-body { padding:1.5rem 1.6rem; flex:1; display:flex; flex-direction:column; }
.imm-card-wp .card-zona {
  font-size:.6rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--yd); margin-bottom:.4rem;
}
.imm-card-wp .card-title {
  font-family:'Cormorant Garamond',serif;
  font-size:1.2rem; font-weight:600; color:var(--k);
  margin-bottom:.5rem; line-height:1.25;
  text-decoration:none; display:block;
}
.imm-card-wp .card-title:hover { color:var(--yd); }
.imm-card-wp .card-price {
  font-family:'Cormorant Garamond',serif;
  font-size:1.5rem; font-weight:700; color:var(--k);
  margin-top:auto; padding-top:1rem;
  border-top:1px solid var(--bd);
}

/* ── FOOTER ─────────────────────────────────────────────────────── */
#site-footer {
  background:var(--k);
  border-top:3px solid var(--y);
  position:relative; overflow:hidden;
}
.footer-house-bg {
  position:absolute; right:-2%; top:50%; transform:translateY(-50%);
  opacity:.05; pointer-events:none;
  width:clamp(280px,35vw,460px);
}
.footer-house-bg svg { width:100%; height:auto; display:block; }
.footer-house-bg path { fill:#F7AE4E; }
.footer-top {
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:4rem;
  padding:4.5rem 5vw 3.5rem;
  border-bottom:1px solid rgba(247,174,78,.12);
  position:relative; z-index:1;
}
.ft-brand { display:flex; flex-direction:column; }
.ft-logo { margin-bottom:1.5rem; }
.ft-logo img { height:70px; width:auto; display:block; }
.ft-claim {
  font-family:'Cormorant Garamond',serif;
  font-size:1.15rem; font-weight:300; font-style:italic;
  color:rgba(255,255,255,.55); margin-bottom:1.4rem; letter-spacing:.02em;
}
.ft-claim em { color:var(--y); font-style:normal; font-weight:400; }
.ft-desc {
  font-size:.82rem; font-weight:300; line-height:1.85;
  color:rgba(255,255,255,.32); max-width:280px;
}
.ft-divider { width:40px; height:2px; background:var(--y); margin:1.8rem 0; flex-shrink:0; }
.ft-contacts-inline { display:flex; flex-direction:column; gap:.35rem; }
.ft-contacts-inline a {
  font-size:.82rem; font-weight:300;
  color:rgba(255,255,255,.5); text-decoration:none;
  transition:color .2s; display:flex; align-items:center; gap:.55rem;
}
.ft-contacts-inline a:hover { color:var(--y); }
.ft-contact-icon { width:16px; height:16px; flex-shrink:0; opacity:.6; }
.ft-col-title {
  font-size:.6rem; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:rgba(247,174,78,.55);
  margin-bottom:1.4rem; display:block;
  padding-bottom:.6rem; border-bottom:1px solid rgba(247,174,78,.15);
}
.ft-col a, .ft-col p {
  display:block; font-size:.82rem; font-weight:300;
  color:rgba(255,255,255,.45); text-decoration:none;
  line-height:2; transition:color .2s;
}
.ft-col a:hover { color:var(--y); }
.ft-contact-row {
  display:flex; align-items:flex-start; gap:.6rem; margin-bottom:.7rem;
}
.ft-contact-row svg { flex-shrink:0; margin-top:2px; opacity:.5; }
.ft-contact-row p, .ft-contact-row a {
  font-size:.82rem; font-weight:300;
  color:rgba(255,255,255,.45); text-decoration:none; line-height:1.6; transition:color .2s;
}
.ft-contact-row a:hover { color:var(--y); }
.ft-hours {
  margin-top:1.5rem;
  background:rgba(247,174,78,.07);
  border:1px solid rgba(247,174,78,.15);
  padding:.9rem 1rem;
}
.ft-hours-title {
  font-size:.58rem; font-weight:600; letter-spacing:.18em;
  text-transform:uppercase; color:var(--y);
  display:block; margin-bottom:.6rem;
}
.ft-hours p { font-size:.78rem; font-weight:300; color:rgba(255,255,255,.4); line-height:1.8; }
.footer-bottom {
  padding:1.4rem 5vw;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:1rem;
  position:relative; z-index:1;
  background:rgba(0,0,0,.2);
}
.footer-bottom p { font-size:.68rem; color:rgba(255,255,255,.22); font-weight:300; }
.footer-links { display:flex; gap:2rem; }
.footer-links a {
  font-size:.68rem; color:rgba(255,255,255,.25);
  text-decoration:none; letter-spacing:.08em; text-transform:uppercase; transition:color .2s;
}
.footer-links a:hover { color:var(--y); }
.footer-cert-badge {
  font-size:.6rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  border:1px solid rgba(247,174,78,.25); color:rgba(247,174,78,.45);
  padding:.2rem .6rem;
}

/* ── BREADCRUMB ─────────────────────────────────────────────────── */
.beb-breadcrumb {
  background:var(--k);
  padding:.9rem 5vw;
  display:flex; align-items:center; gap:.5rem;
  font-size:.68rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  border-bottom:1px solid rgba(247,174,78,.15);
}
.beb-breadcrumb a { color:rgba(255,255,255,.4); text-decoration:none; transition:color .2s; }
.beb-breadcrumb a:hover { color:var(--y); }
.beb-breadcrumb span { color:rgba(255,255,255,.18); }
.beb-breadcrumb .bc-cur { color:var(--y); }
.beb-breadcrumb .bc-zona { color:rgba(255,255,255,.4); }

/* ── PAGE BAND ──────────────────────────────────────────────────── */
.page-band {
  background:var(--k);
  border-bottom:2.5px solid var(--y);
  position:relative; overflow:hidden;
}
.page-band-inner {
  padding:3rem 5vw 3.5rem;
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:2rem; flex-wrap:wrap;
  position:relative; z-index:1;
}
.page-band-deco {
  position:absolute; right:-2%; top:50%; transform:translateY(-50%);
  width:clamp(200px,28vw,380px); opacity:.06; pointer-events:none;
}
.page-band-deco svg { width:100%; height:auto; display:block; }
.page-band-deco path { fill:#F7AE4E; }
.page-band h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,4vw,3.4rem);
  font-weight:600; line-height:1.1; color:var(--w);
}
.page-band h1 em { font-style:italic; font-weight:300; color:var(--y); }

/* ── ZONE LIST (usata in chi-siamo / territorio) ─────────────────── */
.zone-list { list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.zone-item {
  display:flex; align-items:center; gap:.7rem;
  font-size:.88rem; font-weight:300; color:var(--mu);
}
.zone-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--y); flex-shrink:0;
}

/* ── UTILITY ────────────────────────────────────────────────────── */
.sr-only {
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border-width:0;
}
.text-center { text-align:center; }
.mt-0 { margin-top:0 !important; }
.mb-0 { margin-bottom:0 !important; }

/* ── RESPONSIVE ─────────────────────────────────────────────────── */
@media (max-width:1024px) {
  .footer-top { grid-template-columns:1fr 1fr; gap:3rem; }
}
@media (max-width:768px) {
  :root { --H:60px; }
  .header-claim { font-size:1rem; padding-left:.7rem; }
  .header-logo img { height:72px; margin-top:4px; }
  #header nav a:not(.nav-cta) { display:none; }
  .burger { display:flex; }
  .footer-top { grid-template-columns:1fr 1fr; gap:2rem; }
  .footer-house-bg { display:none; }
}
@media (max-width:480px) {
  .footer-top { grid-template-columns:1fr; gap:2rem; padding:3rem 4vw 2.5rem; }
  .footer-links { flex-direction:column; gap:.8rem; }
}

/* ── PRINT ──────────────────────────────────────────────────────── */
@media print {
  #header, #site-footer, .burger, #mobileNav { display:none !important; }
  .site-main { padding-top:0 !important; }
  a { color:var(--k) !important; text-decoration:underline; }
}
