/*
Theme Name: Podere La Svolta
Theme URI: https://poderelasvolta.com
Author: Podere La Svolta
Description: Custom theme for Podere La Svolta — matched to the client's original design template. B&B, Explore Tuscany guide and the Parole e Profumi language school.
Version: 2.3.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: podere-la-svolta
*/

/* ── Podere La Svolta — matched to client template ── */
@font-face{font-family:"Fraunces";font-weight:300;font-display:swap;
  src:url(assets/fonts/fraunces-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-weight:400;font-display:swap;
  src:url(assets/fonts/fraunces-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Italianno";font-weight:400;font-display:swap;
  src:url(assets/fonts/italianno-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-weight:300;font-display:swap;
  src:url(assets/fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-weight:400;font-display:swap;
  src:url(assets/fonts/jost-latin-400-normal.woff2) format("woff2")}
:root{
  --bg:#272622;
  --cream:#EDE4D3;
  --cream-dim:#d8cdb9;
  --tan:#c9ac83;
  --tan-dim:#8d7454;
  --green:#2d371d;
  --light:#e6d0b8;
  --brown:#623e2a;
  --brown-deep:#4a2f1f;
  --serif:"Fraunces",serif;
  --script:"Italianno",cursive;
  --sans:"Jost",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--cream);font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.65;letter-spacing:.01em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:.02em}

/* nav */
.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:.7rem 5vw;background:rgba(32,30,27,.93);backdrop-filter:blur(8px);border-bottom:1px solid rgba(201,172,131,.25)}
.nav .brand{display:flex;align-items:center;gap:.65rem}
.nav .brand img{height:44px}
.nav .brand span{font-family:var(--script);font-size:1.9rem;line-height:1;color:var(--cream)}
.nav ul{display:flex;gap:2.2rem;list-style:none}
.nav ul a{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cream-dim);transition:color .2s}
.nav ul a:hover,.nav ul a.active{color:var(--tan)}
.nav .burger{display:none;background:none;border:none;color:var(--cream);font-size:1.6rem;cursor:pointer}
@media(max-width:920px){
  .nav .burger{display:block}
  .nav ul{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(32,30,27,.97);
    max-height:0;overflow:hidden;transition:max-height .3s}
  .nav ul.open{max-height:420px;border-bottom:1px solid rgba(201,172,131,.25)}
  .nav ul li{padding:.9rem 5vw;border-top:1px solid rgba(201,172,131,.12)}
}

/* hero */
.hero{position:relative;min-height:92vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:4rem 6vw;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:var(--hero-img) center/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;background:rgba(24,19,17,.25)}
.hero>*{position:relative;z-index:2}
.hero .kicker{font-size:.8rem;letter-spacing:.55em;text-transform:uppercase;margin-bottom:1.6rem;font-weight:400}
.hero h1{font-size:clamp(2.6rem,6.5vw,5rem);font-weight:300}
.hero .logo-mark{height:100px;margin:1.6rem auto .6rem}
.hero .script{font-family:var(--script);font-size:clamp(3.2rem,7.5vw,5.6rem);line-height:1;margin-bottom:1.6rem}
.hero .sub{font-family:var(--serif);font-size:clamp(1.4rem,2.8vw,2.1rem);margin-bottom:2.6rem}

/* buttons — template uses SOLID cream buttons */
.btn{display:inline-block;padding:.9rem 3rem;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;
  background:#f4eee1;color:#4a3a2c;border:1px solid #f4eee1;transition:.25s;font-weight:400}
.btn:hover{background:transparent;color:#f4eee1}
.btn.line{background:transparent;color:var(--cream);border-color:var(--cream)}
.btn.line:hover{background:var(--cream);color:#4a3a2c}
.btn.dark{background:transparent;color:var(--brown);border-color:var(--brown)}
.btn.dark:hover{background:var(--brown);color:var(--light)}
.btn.pill{background:transparent;color:#fff;border:1px solid #fff;border-radius:999px;
  font-style:italic;text-transform:none;letter-spacing:.05em;font-size:.9rem;padding:.7rem 2.4rem}
.btn.pill:hover{background:#fff;color:#4a3a2c}

/* sections */
.section{padding:5.5rem 6vw}
.section-title{text-align:center;font-size:clamp(2.2rem,5vw,3.4rem);margin-bottom:1.2rem}
.section-title.left{text-align:left}
.section-sub{text-align:center;max-width:860px;margin:0 auto 3rem;color:var(--cream-dim)}
.center{text-align:center}
.wrap{max-width:1280px;margin:0 auto}

/* full-bleed photo band with overlay text */
.band{position:relative;padding:7rem 6vw;text-align:center;overflow:hidden}
.band::before{content:"";position:absolute;inset:0;background:var(--band-img) center/cover no-repeat}
.band::after{content:"";position:absolute;inset:0;background:rgba(24,19,17,.28)}
.band.dim::after{background:rgba(24,19,17,.45)}
.band>*{position:relative;z-index:2}
.band h2{font-size:clamp(2.2rem,5vw,3.4rem);margin-bottom:1.6rem}
.band p{max-width:980px;margin:0 auto 1rem}
.band.photo-only{padding:16rem 6vw}
.band.photo-only::after{background:none}

/* light band (explore hero) — dark text over bright photo */
.band.light-txt h2,.band.light-txt p{color:#4a3a2c}
.band.light-txt::after{background:rgba(255,244,224,.12)}

/* accommodation / explore cards: image + separate bordered box */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.8rem}
@media(max-width:920px){.grid3{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.grid3,.grid2{grid-template-columns:1fr}}
.tcard{display:flex;flex-direction:column;gap:1rem}
.tcard .ph{position:relative}
.tcard img,.tcard .placeholder{width:100%;aspect-ratio:4/3;object-fit:cover}
.tcard .overlay{position:absolute;inset:0;background:rgba(24,19,17,.55);display:flex;align-items:center;justify-content:center;padding:1.5rem;text-align:center}
.tcard .overlay h3{font-size:1.7rem}
.tcard .box{border:1px solid var(--tan);padding:1.2rem 1.4rem 1.5rem;flex:1}
.tcard .meta{font-size:.82rem;letter-spacing:.05em;color:var(--cream-dim);margin-bottom:1.2rem}
.tcard h3{font-size:1.5rem;font-weight:300;font-family:var(--sans);letter-spacing:.03em}
.tcard .price{font-size:.9rem;color:var(--cream-dim);margin-top:.8rem}

/* explore cards: title above image, bordered text, distance below */
.xcard{display:flex;flex-direction:column;gap:1.1rem;text-align:center}
.xcard h3{font-family:var(--sans);font-weight:400;font-size:1.35rem;letter-spacing:.02em}
.xcard img{width:100%;aspect-ratio:4/3;object-fit:cover}
.xcard .box{border:1px solid var(--tan);padding:1.2rem 1.3rem;font-size:.92rem;color:var(--cream-dim);text-align:justify;flex:1}
.xcard .dist{font-size:.95rem;color:var(--cream-dim)}

/* room sections */
.room{padding:5rem 6vw}
.room h2{font-size:clamp(2.2rem,4.5vw,3rem);margin-bottom:2.4rem}
.rgrid{display:grid;gap:1.6rem;margin-bottom:1.6rem}
.rg-12{grid-template-columns:1fr 2fr}
.rg-21{grid-template-columns:2fr 1fr}
.rg-3{grid-template-columns:repeat(3,1fr)}
.rg-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:720px){.rg-12,.rg-21,.rg-3,.rg-4{grid-template-columns:1fr}}
.rgrid img,.rgrid .placeholder{width:100%;height:100%;object-fit:cover}
.rgrid .portrait,{aspect-ratio:3/4}
.notebox{border:1px solid var(--tan);padding:1.5rem 2rem;text-align:center;color:var(--cream)}
.notebox p+p{margin-top:1rem}
.notebox.empty{min-height:76px}
.push-right{max-width:56%;margin-left:auto}
@media(max-width:720px){.push-right{max-width:100%}}

/* placeholder graphic (rooms photographed in 2027) */
.placeholder{background:linear-gradient(#eaf4fb 0%,#dceefa 55%,#dceefa 55%),#dceefa;position:relative;overflow:hidden;border:0}
.placeholder::before{content:"";position:absolute;left:-10%;right:-10%;bottom:-12%;height:55%;
  background:#8faf1d;border-radius:45% 55% 0 0/100% 90% 0 0;opacity:.85}
.placeholder::after{content:"";position:absolute;left:-15%;right:-15%;bottom:-20%;height:45%;
  background:#7da313;border-radius:55% 45% 0 0/95% 100% 0 0}

/* outside areas */
.oa-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.6rem;align-items:stretch}
.oa-top .oa-right{display:flex;flex-direction:column;gap:1.6rem}
.oa-title{font-size:clamp(2.4rem,4.5vw,3.4rem);text-align:center}
.oa-box{border:1px solid var(--tan);padding:1.6rem;text-align:center;color:var(--cream)}
@media(max-width:920px){.oa-top{grid-template-columns:1fr}}
.oa-top img{width:100%;height:100%;object-fit:cover;min-height:280px}
.oa-note{margin:1.6rem 0;max-width:66%}
@media(max-width:720px){.oa-note{max-width:100%}}

/* circles */
.circles{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;max-width:1050px;margin:0 auto 2.5rem}
.circles img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%}
@media(max-width:720px){.circles{grid-template-columns:1fr;max-width:340px}}

/* recommendations — overlay reviews on photo band */
.rec-band{position:relative;padding:6rem 6vw 7rem;overflow:hidden}
.rec-band::before{content:"";position:absolute;inset:0;background:url(assets/img/reviews-bg.jpg) center/cover no-repeat}
.rec-band::after{content:"";position:absolute;inset:0;background:rgba(24,19,17,.22)}
.rec-band>*{position:relative;z-index:2}
.rec-band h2{font-size:clamp(2.4rem,5.5vw,3.6rem);text-align:center;margin-bottom:4rem}
.rec-band .duo{display:grid;grid-template-columns:1fr 1fr;gap:5rem;max-width:1150px;margin:0 auto}
@media(max-width:820px){.rec-band .duo{grid-template-columns:1fr;gap:2.5rem}}
.rec-band .rv{font-size:1rem;color:#fff}
.rec-band .who{margin-top:1.4rem;font-weight:400;letter-spacing:.04em}

/* recommendations — green section, staggered */
.rec-green{background:var(--green);padding:6rem 6vw;color:var(--light)}
.rec-green .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4rem;max-width:1280px;margin:0 auto}
@media(max-width:920px){.rec-green .grid{grid-template-columns:1fr;gap:2.5rem}}
.rec-green .rv{font-size:.98rem}
.rec-green .rv::before{content:"\201C\201C";font-family:var(--serif);font-size:2.4rem;letter-spacing:-.12em;
  line-height:1;display:block;color:var(--light);margin-bottom:1rem}
.rec-green .who{margin-top:1.4rem;font-weight:400;letter-spacing:.04em}
.rec-green .col{display:flex;flex-direction:column;gap:4rem}
.rec-green .push1{margin-top:5rem}
.rec-green .push2{margin-top:2.5rem}
@media(max-width:920px){.rec-green .push1,.rec-green .push2{margin-top:0}}

/* contact hero */
.contact-hero{position:relative;min-height:88vh;padding:4rem 6vw;overflow:hidden}
.contact-hero::before{content:"";position:absolute;inset:0;background:url(assets/img/contact-bg.jpg) center/cover no-repeat}
.contact-hero::after{content:"";position:absolute;inset:0;background:rgba(24,19,17,.18)}
.contact-hero>*{position:relative;z-index:2}
.contact-hero .logo-mark{height:90px;margin:0 auto 2rem}
.contact-hero h2{font-size:clamp(2.2rem,4.5vw,3.2rem);margin-bottom:3rem}
.contact-hero .cols{display:grid;grid-template-columns:1fr 1fr;gap:3rem;max-width:1280px;margin:0 auto}
@media(max-width:820px){.contact-hero .cols{grid-template-columns:1fr}}
.contact-hero .box{border:1px solid rgba(255,255,255,.85);padding:2rem;max-width:430px}
.contact-hero .box.right{margin-left:auto}
@media(max-width:820px){.contact-hero .box.right{margin-left:0}}
.contact-hero .box h3{font-family:var(--sans);font-weight:400;font-size:1.35rem;margin-bottom:1.4rem}
.contact-hero .box p{font-size:.95rem;margin-bottom:.7rem;display:flex;gap:.7rem;align-items:flex-start}
.contact-hero .box .ic{opacity:.9}

/* language school */
.light{background:var(--light);color:var(--brown-deep)}
.light .section-title,.light h1,.light h2,.light h3{color:var(--brown)}
.light .section-sub{color:var(--brown-deep)}
.arch{border-radius:999px 999px 12px 12px;overflow:hidden}
.arch img{width:100%;aspect-ratio:3/4;object-fit:cover}
.school-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2.5rem;align-items:center;max-width:1100px;margin:0 auto}
@media(max-width:720px){.school-cols{grid-template-columns:1fr}}
.brownbox{background:var(--brown);color:var(--light);padding:5.5rem 6vw}
.brownbox .label{font-size:.8rem;letter-spacing:.35em;text-transform:uppercase;text-align:center;margin:1.6rem 0;font-weight:400}
.brownbox .txt{border:1px solid rgba(230,208,184,.6);padding:2rem 1.6rem;font-size:.95rem;text-align:center}
.brownbox .circles{margin-bottom:0}
.brownbox .cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;max-width:1150px;margin:0 auto}
@media(max-width:720px){.brownbox .cols3{grid-template-columns:1fr}}
.brownbox .cols3 img{width:78%;aspect-ratio:1;object-fit:cover;border-radius:50%;margin:0 auto}

/* footer (compact site-wide) */
footer{position:relative;padding:4rem 6vw 2rem;overflow:hidden;text-align:center}
footer::before{content:"";position:absolute;inset:0;background:url(assets/img/contact-bg.jpg) center/cover no-repeat}
footer::after{content:"";position:absolute;inset:0;background:rgba(24,19,17,.72)}
footer>*{position:relative;z-index:2}
footer .logo-mark{height:64px;margin:0 auto 1.4rem}
footer .fine{font-size:.8rem;letter-spacing:.12em;color:var(--cream-dim)}
footer .fline{margin-bottom:1rem;font-size:.95rem}
footer .fline a{color:var(--tan)}

/* ── Elementor image helpers (used by the bundled Elementor layouts) ── */
.el-43 img{width:100%;aspect-ratio:4/3;object-fit:cover}
.el-34 img{width:100%;aspect-ratio:3/4;object-fit:cover}
.el-fill img{width:100%;height:100%;object-fit:cover}
.el-circle img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%}
.el-arch img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:999px 999px 12px 12px}

/* ── welcome band: no overlay, brown heading (per template) ── */
.band.no-ovl::after{background:none}
.band.no-ovl h2{color:#623e2a}
.band.no-ovl p{text-shadow:0 1px 12px rgba(24,19,17,.35)}

/* ── Meet the Owners / Our Story ── */
.octs{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;max-width:1180px;margin:0 auto}
.octs img{width:100%;aspect-ratio:1/1.06;object-fit:cover}
@media(max-width:720px){.octs{grid-template-columns:1fr;max-width:360px}}
.signature{font-family:var(--script);font-size:2.2rem;color:var(--cream);text-align:center;margin-top:2.5rem}
.story p{max-width:1150px;margin:0 auto 1.4rem;text-align:center}

/* ── contact form ── */
.cform{max-width:680px;margin:0 auto;display:grid;gap:1.1rem;text-align:left}
.cform input,.cform textarea{background:rgba(24,19,17,.35);border:1px solid var(--tan);color:var(--cream);
  padding:.95rem 1.1rem;font-family:var(--sans);font-weight:300;font-size:1rem;width:100%;resize:vertical}
.cform input::placeholder,.cform textarea::placeholder{color:var(--cream-dim)}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--cream)}
.cform .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.cform button{cursor:pointer;font-family:var(--sans)}
.form-note{max-width:680px;margin:0 auto 1.5rem;text-align:center;color:var(--tan)}

/* ── outside areas masonry (template layout) ── */
.oa-masonry{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:1.6rem}
.oa-masonry .col{display:flex;flex-direction:column;gap:1.6rem}
.oa-masonry img{width:100%;object-fit:cover}
@media(max-width:720px){.oa-masonry{grid-template-columns:1fr}}
/* Elementor variants */
.el-oa-a img{width:100%;aspect-ratio:396/565;object-fit:cover}
.el-oa-b img{width:100%;aspect-ratio:396/277;object-fit:cover}
.el-oa-c img{width:100%;aspect-ratio:396/1010;object-fit:cover}
.el-oa-d img{width:100%;aspect-ratio:396/266;object-fit:cover}
.el-oa-e img{width:100%;aspect-ratio:396/515;object-fit:cover}
