/* Villanova — sun-drenched French Riviera lifestyle editorial */
:root{
  --clay:#c8623d;        /* terracotta accent */
  --clay-deep:#a44a2c;
  --sea:#2f6f86;         /* mediterranean blue */
  --sea-deep:#1f4e60;
  --cream:#fbf4e9;       /* chalk cream / limestone */
  --cream-2:#f4e9d8;
  --ink:#33271d;         /* warm near-black */
  --muted:#7a6b5c;
  --line:#e6d8c4;
  --white:#fffdf9;
  --r:18px;
  --maxw:1200px;
  --serif:'Italiana', Georgia, 'Times New Roman', serif;
  --sans:'Jost', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:.01em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.eyebrow{
  font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--clay);font-weight:500;display:inline-block;margin-bottom:18px;
}
em{font-style:italic;color:var(--clay)}

/* Buttons */
.btn{
  display:inline-block;padding:15px 30px;border-radius:40px;
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400;
  cursor:pointer;transition:.25s ease;border:1px solid transparent;
}
.btn-primary{background:var(--clay);color:var(--white)}
.btn-primary:hover{background:var(--clay-deep)}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.7);color:var(--white)}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
.btn-line{background:transparent;border-color:var(--clay);color:var(--clay)}
.btn-line:hover{background:var(--clay);color:var(--white)}

/* Header */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,244,233,.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand{display:flex;align-items:center;gap:12px}
.brand svg{width:38px;height:38px}
.brand-name{font-family:var(--serif);font-size:1.55rem;letter-spacing:.04em;color:var(--ink)}
.brand-name span{color:var(--clay)}
.nav{display:flex;align-items:center;gap:34px}
.nav-links{display:flex;gap:30px;list-style:none}
.nav-links a{font-size:.82rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);transition:.2s}
.nav-links a:hover{color:var(--clay)}

/* Language switch */
.lang-switch{position:relative}
.lang-btn{
  background:transparent;border:1px solid var(--line);border-radius:30px;
  padding:8px 16px;font-family:var(--sans);font-size:.78rem;letter-spacing:.12em;
  color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:7px;
}
.lang-btn:after{content:"";width:5px;height:5px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);margin-top:-3px}
.lang-menu{
  position:absolute;right:0;top:calc(100% + 8px);background:var(--white);
  border:1px solid var(--line);border-radius:14px;padding:6px;min-width:158px;
  box-shadow:0 18px 44px rgba(51,39,29,.14);
  display:none;flex-direction:column;
}
.lang-menu.open{display:flex}
.lang-menu button{
  background:transparent;border:0;text-align:left;padding:10px 14px;border-radius:9px;
  font-family:var(--sans);font-size:.86rem;color:var(--ink);cursor:pointer;transition:.15s;
}
.lang-menu button:hover{background:var(--cream-2)}
.lang-menu button.active{color:var(--clay)}
.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.menu-toggle span{width:24px;height:2px;background:var(--ink);display:block;transition:.25s}

/* Hero — full bleed lifestyle */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(31,42,48,.62) 0%,rgba(31,42,48,.12) 45%,rgba(31,42,48,.18) 100%)}
.hero-inner{position:relative;z-index:1;padding-bottom:78px;color:var(--white);max-width:760px}
.hero .eyebrow{color:var(--cream-2);text-shadow:0 1px 8px rgba(0,0,0,.3)}
.hero-wordmark{font-size:clamp(3.4rem,9vw,7rem);line-height:.96;color:var(--white);text-shadow:0 2px 28px rgba(0,0,0,.32);margin-bottom:22px}
.hero-wordmark em{color:var(--cream-2)}
.hero-lead{font-size:1.15rem;font-weight:300;max-width:540px;margin-bottom:32px;color:#f5ecdf;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}

/* Arched intro band */
.intro{padding:110px 0}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.arch{
  border-radius:260px 260px 18px 18px;overflow:hidden;
  box-shadow:0 30px 70px rgba(51,39,29,.16);
}
.arch img{width:100%;height:560px;object-fit:cover}
.intro-copy h2{font-size:clamp(2.1rem,4vw,3.2rem);margin-bottom:24px}
.intro-copy p{color:var(--muted);margin-bottom:18px;font-size:1.04rem}
.signoff{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--sea);margin-top:8px!important}

/* Stats strip */
.stats{background:var(--sea);color:var(--cream)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:62px 28px}
.stat{text-align:center}
.stat .num{font-family:var(--serif);font-size:2.9rem;color:var(--white);line-height:1}
.stat .lbl{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-top:12px;color:#cfe0e6}

/* Horizontal scroll showcase */
.showcase{padding:104px 0}
.section-head{max-width:640px;margin:0 auto 52px;text-align:center}
.section-head h2{font-size:clamp(2.2rem,4.5vw,3.4rem);margin-bottom:18px}
.section-head p{color:var(--muted);font-size:1.05rem}
.scroller{
  display:flex;gap:28px;overflow-x:auto;padding:6px 28px 30px;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
}
.scroller::-webkit-scrollbar{height:6px}
.scroller::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px}
.villa{flex:0 0 360px;scroll-snap-align:start}
.villa-img{border-radius:200px 200px 16px 16px;overflow:hidden;box-shadow:0 22px 50px rgba(51,39,29,.14)}
.villa-img img{width:100%;height:440px;object-fit:cover;transition:.5s}
.villa:hover .villa-img img{transform:scale(1.05)}
.villa-meta{padding:22px 8px 0}
.villa-place{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--clay);margin-bottom:8px}
.villa-name{font-family:var(--serif);font-size:1.5rem;margin-bottom:6px}
.villa-detail{color:var(--muted);font-size:.95rem}

/* Editorial alternating bands */
.band{padding:96px 0}
.band:nth-child(even){background:var(--cream-2)}
.band-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.band:nth-child(even) .band-grid{direction:rtl}
.band:nth-child(even) .band-grid>*{direction:ltr}
.band-media{border-radius:18px;overflow:hidden;box-shadow:0 26px 60px rgba(51,39,29,.15)}
.band-media img{width:100%;height:500px;object-fit:cover}
.band-copy .eyebrow{margin-bottom:14px}
.band-copy h2{font-size:clamp(2rem,3.8vw,2.9rem);margin-bottom:22px}
.band-copy p{color:var(--muted);margin-bottom:18px;font-size:1.04rem}
.band-list{list-style:none;margin-top:24px}
.band-list li{padding:14px 0;border-top:1px solid var(--line);display:flex;gap:14px;align-items:baseline}
.band-list li:before{content:"";flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:var(--clay);transform:translateY(-2px)}

/* Quote */
.quote{background:var(--ink);color:var(--cream);padding:104px 0}
.quote-inner{max-width:840px;margin:0 auto;text-align:center}
.quote blockquote{font-family:var(--serif);font-size:clamp(1.8rem,3.6vw,2.7rem);line-height:1.25;color:var(--white)}
.quote blockquote em{color:var(--clay)}
.quote .attrib{margin-top:30px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#b8c8cf}

/* CTA */
.cta{padding:110px 0}
.cta-box{
  display:grid;grid-template-columns:1.05fr 1fr;border-radius:24px;overflow:hidden;
  box-shadow:0 34px 80px rgba(51,39,29,.18);background:var(--white);
}
.cta-img img{width:100%;height:100%;min-height:460px;object-fit:cover}
.cta-content{padding:62px 56px;display:flex;flex-direction:column;justify-content:center}
.cta-content h2{font-size:clamp(2rem,3.6vw,2.8rem);margin-bottom:20px}
.cta-content p{color:var(--muted);margin-bottom:26px;font-size:1.05rem}
.contact-line{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sea);margin-bottom:14px}

/* Footer */
.site-footer{background:var(--ink);color:#d9cdbf;padding:70px 0 40px}
.footer-top{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.footer-brand svg{width:36px;height:36px}
.footer-brand .brand-name{color:var(--cream)}
.footer-entity{font-size:.9rem;line-height:1.9;color:#b8aa9a;max-width:520px}
.footer-entity .nm{color:var(--cream);font-family:var(--serif);font-size:1.05rem}
.footer-entity a{color:var(--clay)}
.footer-entity a:hover{text-decoration:underline}
.footer-links{display:flex;flex-direction:column;gap:12px}
.footer-links h4{font-family:var(--sans);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:#8a7c6d;font-weight:500;margin-bottom:6px}
.footer-links a{font-size:.92rem;color:#d9cdbf;transition:.2s}
.footer-links a:hover{color:var(--clay)}
.footer-bottom{padding-top:30px;font-size:.84rem;color:#8a7c6d;letter-spacing:.04em}

/* Policy pages */
.policy{padding:80px 0 100px;max-width:840px;margin:0 auto}
.policy .eyebrow{margin-bottom:12px}
.policy h1{font-size:clamp(2.4rem,5vw,3.4rem);margin-bottom:14px}
.policy .updated{color:var(--muted);font-size:.9rem;margin-bottom:48px}
.policy h2{font-size:1.5rem;margin:42px 0 14px;color:var(--sea-deep)}
.policy p,.policy li{color:#5d5044;margin-bottom:14px;font-size:1.02rem}
.policy ul{padding-left:22px;margin-bottom:14px}
.policy a{color:var(--clay);text-decoration:underline}

/* Responsive */
@media(max-width:880px){
  .nav-links{display:none}
  .menu-toggle{display:flex}
  .nav.open .nav-links{
    display:flex;flex-direction:column;position:absolute;top:78px;left:0;right:0;
    background:var(--cream);padding:24px 28px;gap:18px;border-bottom:1px solid var(--line);
  }
  .intro-grid,.band-grid,.cta-box{grid-template-columns:1fr;gap:40px}
  .band:nth-child(even) .band-grid{direction:ltr}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:40px 20px}
  .arch img,.band-media img{height:420px}
  .cta-img img{min-height:300px}
  .cta-content{padding:44px 32px}
  .hero{min-height:84vh}
}
@media(max-width:520px){
  .villa{flex:0 0 280px}
  .villa-img img{height:360px}
  .stats-grid{grid-template-columns:1fr 1fr}
}
