 :root{
  --pv-text:#2f2923;
  --pv-muted:#6c655c;
  --pv-accent:#8d9270;
  --pv-inner:min(1220px,calc(100vw - 64px));
  --pv-serif:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  --pv-sans:"Inter","Hiragino Sans","Yu Gothic",sans-serif;
}
.happou-private-villa,.happou-private-villa *,.happou-private-villa *::before,.happou-private-villa *::after{box-sizing:border-box}
.happou-private-villa{position:relative;width:100%;min-height:1120px;isolation:isolate;overflow:hidden;color:var(--pv-text);background:#efede7}
.happou-private-villa__background{position:absolute;top:-160px;right:0;bottom:-160px;left:0;z-index:0;background:url("../images/private-villa-main.webp") center center/cover no-repeat;transform:translate3d(0,0,0) scale(1.08);transform-origin:center center;will-change:transform;pointer-events:none;backface-visibility:hidden}
.happou-private-villa__overlay{position:absolute;inset:0;z-index:1;background:
linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 28%,rgba(255,255,255,.68) 48%,rgba(255,255,255,.12) 75%,rgba(255,255,255,.02) 100%),
linear-gradient(180deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.02) 58%,rgba(255,255,255,.92) 88%,rgba(255,255,255,.98) 100%)}
.happou-private-villa__inner{position:relative;z-index:2;width:var(--pv-inner);margin:0 auto;padding:clamp(120px,12vw,180px) 0 clamp(96px,10vw,150px)}
.happou-private-villa__content{max-width:560px}
.happou-private-villa__section{margin:0;color:var(--pv-accent);font:600 .78rem/1.5 var(--pv-sans);letter-spacing:.28em}
.happou-private-villa__title{margin:42px 0 0;font:500 clamp(2.8rem,5vw,5.2rem)/1.42 var(--pv-serif);letter-spacing:.06em}
.happou-private-villa__accent{width:58px;height:1px;margin-top:34px;background:var(--pv-accent)}
.happou-private-villa__lead{margin:34px 0 0;color:var(--pv-accent);font:500 clamp(1.25rem,1.9vw,1.75rem)/1.85 var(--pv-serif);letter-spacing:.08em}
.happou-private-villa__text{margin-top:34px;color:var(--pv-muted);font:400 1rem/2.08 var(--pv-serif);letter-spacing:.035em}
.happou-private-villa__text p{margin:0}
.happou-private-villa__features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:clamp(150px,20vw,280px)}
.happou-private-villa__feature{padding:40px 32px;background:rgba(255,255,255,.88);border:1px solid rgba(94,88,75,.12);box-shadow:0 18px 55px rgba(32,28,22,.08);backdrop-filter:blur(10px)}
.happou-private-villa__feature h3{margin:0;font:500 clamp(1.2rem,1.6vw,1.5rem)/1.6 var(--pv-serif);letter-spacing:.07em}
.happou-private-villa__feature p{margin:18px 0 0;color:var(--pv-muted);font:400 .88rem/1.95 var(--pv-serif);letter-spacing:.025em}

@media(max-width:1023px){
  .happou-private-villa{min-height:auto}
  .happou-private-villa__background{background-position:60% center}
  .happou-private-villa__features{margin-top:140px;grid-template-columns:1fr;gap:24px}
}
@media(max-width:767px){
  :root{--pv-inner:min(100vw - 24px,720px)}
  .happou-private-villa__background{background-position:66% center}
  .happou-private-villa__overlay{background:linear-gradient(180deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.90) 40%,rgba(255,255,255,.62) 66%,rgba(255,255,255,.97) 90%,#fff 100%)}
  .happou-private-villa__inner{padding:82px 0 86px}
  .happou-private-villa__title{margin-top:28px;font-size:clamp(2.25rem,11vw,3.5rem);line-height:1.45}
  .happou-private-villa__text{font-size:.94rem;line-height:1.95}
  .happou-private-villa__features{margin-top:100px}
}



/* =========================================================
   True parallax enhancement
========================================================= */
.happou-private-villa.is-parallax-ready .happou-private-villa__background {
  transition: none;
}

@media (max-width: 767px) {
  .happou-private-villa__background {
    inset: -4% 0;
    transform: translate3d(0,0,0) scale(1.04);
  }
}


/* =========================================================
   Parallax final safeguard
========================================================= */
.happou-private-villa__background {
  transition: none !important;
}

@media (max-width: 767px) {
  .happou-private-villa__background {
    top: -80px;
    bottom: -80px;
  }
}
