/* -------------------------------------------------
   PALETTE / VARIABILI
--------------------------------------------------*/
:root{
  --beige:#f3e3c3;
  --gold:#e1ac39;
  --black:#1c1c1c;
  --accent:#c1923e;
  --white:#fff;
}

/* -------------------------------------------------
   BASE TYPO & GLOBAL
--------------------------------------------------*/
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;
  font-family:'Nunito',Arial,sans-serif;
  background:var(--beige);
  color:var(--black);
  line-height:1.45;
}
h1,h2,h3,
.hero-text-bg h1,
nav ul,
.main-btn,
.map-section h3{
  font-family:'Lora',serif!important;
  letter-spacing:.5px;
}

/* -------------------------------------------------
   HEADER & NAV
--------------------------------------------------*/
header{
  text-align:center;
  border-bottom:2px solid var(--accent);
  padding:14px 0 8px;
  position:relative;
  background:var(--beige);
}
.logo{max-width:280px;margin:0 auto 6px;display:block}
nav ul{
  list-style:none;padding:0;margin:0;
  display:flex;justify-content:center;gap:22px;
  font-weight:700;font-size:1.05em;
}
nav a{
  color:var(--black);text-decoration:none;
  padding:4px 10px;border-radius:8px;
  transition:.2s;
}
nav a:hover,nav a.active{background:var(--gold);color:var(--white)}
.lang-switch{
  position:absolute;top:14px;right:18px;font-weight:700;font-size:.95em
}
.lang-switch a{color:var(--accent);margin:0 1px;text-decoration:none}
.lang-switch a:hover{color:var(--gold)}

/* -------------------------------------------------
   HERO (Home)
--------------------------------------------------*/
.hero{
  position:relative;min-height:68vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;overflow:hidden
}
.hero-bg-fade{position:absolute;inset:0;background-size:cover;background-position:center;transition:opacity 1.1s}
.hero::before{content:'';position:absolute;inset:0;background:rgba(243,227,195,.4);z-index:1}
.hero-content{position:relative;z-index:2;width:100%;padding:0 12px}
.hero-text-bg{
  display:inline-block;background:rgba(243,227,195,.88);
  padding:18px 14px;border-radius:20px;box-shadow:0 4px 24px #0002;max-width:95vw;margin-bottom:24px
}
.hero-text-bg h1{margin:0 0 8px;color:var(--gold)}
.hero-text-bg p{margin:0;color:var(--black);font-size:1.12em;font-weight:500}
.main-btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:18px 0}
.main-btn{
  min-width:150px;padding:16px 24px;border:none;border-radius:18px;
  background:var(--gold);color:var(--white);font-weight:700;font-size:1.02em;
  text-decoration:none;transition:.2s;box-shadow:0 2px 12px #0001
}
.main-btn:hover{background:var(--accent);transform:translateY(-2px) scale(1.04)}

/* -------------------------------------------------
   INTRO & QUICK-INFO (Home)
--------------------------------------------------*/
.intro,.quick-info{
  max-width:600px;margin:0 auto;padding:22px 8px 10px;text-align:center
}
.quick-info{
  margin-top:16px;background:var(--white);border-radius:14px;box-shadow:0 3px 12px #e1ac3930
}

/* -------------------------------------------------
   MAP BOX GENERICO
--------------------------------------------------*/
.where-map-box{
  max-width:850px;margin:34px auto;background:var(--white);
  border-radius:20px;box-shadow:0 4px 18px #e1ac3930;
  padding:18px 12px;display:flex;flex-direction:column;align-items:center
}
.where-map-box iframe{
  width:100%;border:0;border-radius:14px;min-height:300px;box-shadow:0 2px 12px #0001
}

/* -------------------------------------------------
   APPARTAMENTO
--------------------------------------------------*/
.apartment-hero{text-align:center;padding:28px 6px}
.apartment-hero h1{color:var(--gold);font-size:1.9em;margin-bottom:8px}
.apartment-desc{
  max-width:840px;margin:0 auto;font-size:1.05em;letter-spacing:.01em
}

.apartment-features{
  background:var(--white);border-radius:18px;max-width:1050px;margin:30px auto;padding:14px 18px 26px;
  box-shadow:0 4px 20px #e1ac3930
}
.apartment-features h2{color:var(--gold);margin:0 0 22px;text-align:left;padding-left:14px}
.feature-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:22px 10px;max-width:900px;margin:0 auto
}
.feature{display:flex;flex-direction:column;align-items:center;gap:6px}
.icon{font-size:1.9em;color:var(--gold);filter:drop-shadow(0 1px 6px #e1ac3940)}

.feature-note{
  margin-top:25px;font-size:.80em;color:#332100;text-align:left
}

/* GALLERY */
.apartment-gallery{max-width:980px;margin:22px auto;padding:4px;text-align:center}
.apartment-gallery h2{color:var(--gold);margin:0 0 10px}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.gallery-grid img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;
  box-shadow:0 2px 14px #0001;transition:.2s;cursor:pointer
}
.gallery-grid img:hover{transform:scale(1.04) rotate(-2deg)}

/* -------------------------------------------------
   CONTATTI (page & card)
--------------------------------------------------*/
.contacts-hero{text-align:center;padding:26px 8px 6px}
.contacts-hero h1{color:var(--gold);font-size:1.9em;margin-bottom:6px}
.contacts-desc{font-size:1.05em;margin-bottom:16px}

.contacts-list{display:flex;justify-content:center;margin-bottom:30px}
.contacts-card{
  background:var(--white);border-radius:18px;box-shadow:0 4px 24px #e1ac3930;
  max-width:430px;width:100%;padding:26px 18px;display:flex;flex-direction:column;align-items:center
}
.contacts-table{width:100%;border-collapse:separate;border-spacing:0 10px;font-size:1.05em;margin-top:6px}
.contacts-table td{padding:0 8px}
.contacts-table td:first-child{font-weight:600;color:var(--black)}
.contacts-table td:last-child{font-weight:700;color:var(--gold);letter-spacing:.5px;text-align:right}
.contacts-table i{color:var(--accent);margin-right:6px}

/* -------------------------------------------------
   DOVE SIAMO
--------------------------------------------------*/
.where-hero{text-align:center;padding:30px 6px 0}
.where-hero h1{color:var(--gold);font-size:1.8em;margin-bottom:8px}
.where-desc{max-width:700px;margin:20px auto 10px;font-size:1.05em}
.centered-divider{display:flex;justify-content:center;gap:14px;margin:14px 0}
.divider-line{width:36px;height:2px;background:var(--gold);opacity:.7;border-radius:2px}

.where-list-card{
  background:var(--white);border-radius:18px;max-width:800px;margin:30px auto;padding:28px 20px;
  box-shadow:0 4px 20px #e1ac3930
}
.where-table{width:100%;border-spacing:0 12px}
.where-row{display:table-row}
.where-cell{display:table-cell;font-size:1.02em;padding:4px 6px 4px 0;vertical-align:top}
.where-cell.icon{width:34px;font-size:1.35em;color:var(--gold);text-align:center;padding-left:4px}
.where-cell b{color:var(--gold)}
.where-extra{color:var(--accent);font-size:.95em}

/* -------------------------------------------------
   LIGHTBOX
--------------------------------------------------*/
.lightbox{
  display:none;position:fixed;inset:0;z-index:1000;
  background:rgba(28,28,28,.95);align-items:center;justify-content:center;flex-direction:column;
  transition:.25s
}
.lightbox.active{display:flex}
.lightbox-img{max-width:92vw;max-height:80vh;border-radius:16px;box-shadow:0 8px 50px #0006}
.lightbox-close{
  position:absolute;top:18px;right:18px;font-size:2em;color:#fff;cursor:pointer;font-weight:bold
}
.lightbox-arrow{
  position:absolute;top:50%;font-size:2em;color:#fff;background:rgba(0,0,0,.18);
  width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer
}
.lightbox-arrow.left{left:12px;transform:translateY(-50%)}
.lightbox-arrow.right{right:12px;transform:translateY(-50%)}
.lightbox-arrow:hover,.lightbox-close:hover{color:var(--gold);background:rgba(0,0,0,.32)}

/* -------------------------------------------------
   FOOTER
--------------------------------------------------*/
footer{
  background:var(--beige);text-align:center;padding:14px 0;border-top:2px solid var(--accent);
  color:#555;font-size:.95em
}
.footer-logo{width:46px;margin-right:10px}

/* =================================================
   MEDIA QUERIES ↑ DESKTOP
===================================================*/
@media (min-width:601px){
  .feature-grid{grid-template-columns:repeat(4,1fr)}
  .main-btn{font-size:1.12em;padding:18px 32px;min-width:180px}
  .hero-text-bg{padding:24px 20px}
  .logo{max-width:340px}
}
@media (min-width:900px){
  header{padding:22px 0 12px}
  .logo{max-width:440px}
  nav ul{gap:28px;font-size:1.12em}
  .apartment-features h2{padding-left:24px}
}

.contact-link-box {
  text-align: center;
  margin: 34px 0 0 0;
}

.contact-link {
  display: inline-block;
  font-size: 1.28em;
  font-family: 'Lora', serif;
  color: var(--gold);
  font-weight: bold;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  background: var(--white);
  border-radius: 12px;
  padding: 10px 38px;
  box-shadow: 0 2px 14px #e1ac3930;
  transition: background 0.18s, color 0.18s, transform 0.15s;
  border: 2px solid var(--gold);
}
.contact-link:hover {
  background: var(--gold);
  color: var(--white);
  transform: translateY(-2px) scale(1.04);
}

.contact-link-note {
  text-align: center;
  color: #8a773b;
  font-size: 1.01em;
  margin-top: 7px;
}

/* Mobile responsive */
@media (max-width: 600px) {
  .contact-link {
    font-size: 1em;
    padding: 8px 18px;
  }
}

@media (max-width: 600px) {
  nav ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;  /* aumenta la distanza */
    padding: 0 10px;
    width: 100%;
  }
  nav li {
    width: 100%;
    justify-self: start;
    margin: 0;
  }
  nav a {
    font-size: 1.08em;
    padding: 11px 0;
    width: 100%;
    min-width: 0;
    text-align: left;
    background: none;
    border-radius: 13px;
    transition: background 0.13s;
  }
  nav a:active,
  nav a:focus {
    background: var(--gold);
    color: var(--white);
  }
}

@media (max-width: 600px) {
  .contacts-table,
  .contacts-table tr {
    display: table;
    width: 100%;
  }
  .contacts-table td {
    display: table-cell !important;
    width: auto !important;
    font-size: 1.09em;
    padding: 13px 5px 13px 0 !important;
    text-align: left !important;
    border-bottom: 1px solid #f3e3c3;
    vertical-align: middle;
  }
  .contacts-table td:last-child {
    text-align: right !important;
    padding-right: 0 !important;
    font-weight: bold;
    color: var(--gold);
    font-size: 1.18em;
    border-bottom: 1px solid #f3e3c3;
  }
  .contacts-table i {
    margin-right: 10px;
    font-size: 1.28em;
    vertical-align: middle;
  }
  /* Email: blocco speciale, solo se usi una riga con una sola cella */
  .contacts-table .email-label {
    text-align: center !important;
    font-size: 1.08em;
    color: var(--black);
    font-weight: 700;
    padding-top: 22px;
    padding-bottom: 2px;
    border: none;
  }
  .contacts-table .email-link {
    text-align: center !important;
    padding-bottom: 18px;
    display: block;
    font-size: 1.11em;
    color: var(--gold);
    font-weight: 600;
  }
}
/* Email blocco centrato */
.contacts-table .email-label {
  text-align: center !important;
  font-size: 1.09em;
  color: var(--black);
  font-weight: 700;
  padding: 22px 0 3px 0;
  border: none !important;
  background: none !important;
}
.contacts-table .email-link {
  text-align: center !important;
  font-size: 1.09em;
  color: var(--gold);
  font-weight: 600;
  padding: 2px 0 16px 0;
  border: none !important;
  background: none !important;
}
.contacts-table .email-link a {
  color: var(--gold);
  font-weight: 600;
  font-size: 1.07em;
  word-break: break-all;
}
.contacts-table .email-label i {
  margin-right: 8px;
  color: var(--gold);
}

/* Blocca email centrato */
.contacts-table .email-block {
  text-align: center !important;
  padding-top: 20px;
  padding-bottom: 12px;
  border: none !important;
  background: none !important;
}

.contacts-table .email-label {
  display: inline-block;
  color: var(--gold);
  font-weight: bold;
  font-size: 1.12em;
  margin-bottom: 2px;
}

.contacts-table .email-label i {
  margin-right: 7px;
  color: var(--gold);
}

.contacts-table .email-link {
  display: inline-block;
  color: var(--gold);
  font-size: 1.08em;
  font-weight: 600;
  word-break: break-all;
  margin-top: 4px;
  text-align: center;
  text-decoration: underline;
}

@media (max-width: 600px) {
  .contacts-table .email-label,
  .contacts-table .email-link,
  .contacts-table .email-block {
    font-size: 1em;
    padding: 10px 0 8px 0;
  }
}

.email-block {
  padding-top: 28px;
  padding-bottom: 14px;
  background: none !important;
  border: none !important;
}

.email-center {
  width: 100%;
  text-align: center !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.email-label {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold);
  font-weight: bold;
  font-size: 1.13em;
  margin-bottom: 2px;
  gap: 8px;
}

.email-label i {
  color: var(--gold);
}

.email-link {
  color: var(--gold);
  font-size: 1.11em;
  font-weight: 600;
  word-break: break-all;
  margin-top: 8px;
  text-align: center;
  text-decoration: underline;
  display: inline-block;
}

@media (max-width: 700px) {
  .email-block, .email-center, .email-label, .email-link {
    width: 100% !important;
    text-align: center !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    justify-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex-direction: column !important;
  }
}

@media (max-width: 650px) {
  .feature-grid {
    grid-template-columns: 1fr 1fr;
  }
  .feature {
    min-height: 120px; /* Cambia a seconda del contenuto */
    justify-content: flex-start;
    text-align: center;
    padding: 10px 0;
  }
  .feature span {
    display: block;
    min-height: 3.4em;   /* Fissa altezza della descrizione, così tutto è allineato */
    margin-top: 3px;
    font-size: 1.1em;
    word-break: break-word;
  }
}
