/* ============================================================
   Common Reset & Utilities  —  Lad Group (shared)
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:16px;line-height:1.8;color:#222;background:#fff;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
ul,ol{list-style:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}

:root{
  --serif:"Shippori Mincho B1","Yu Mincho","Noto Serif JP",serif;
  --latin:"Cormorant Garamond",serif;
  --sans:"Noto Sans JP",sans-serif;
  --round:"Baloo 2","Fredoka","Noto Sans JP",sans-serif;
}

.container{width:min(1180px,92%);margin-inline:auto}
.section{padding:96px 0}

/* eyebrow label */
.eyebrow{
  font-family:var(--latin);font-weight:600;letter-spacing:.42em;
  text-transform:uppercase;font-size:13px;
}
.script{font-family:"Pinyon Script","Cormorant Garamond",cursive;font-style:italic}

h1,h2,h3{font-weight:600;line-height:1.35}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}
.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}
.reveal.d5{transition-delay:.5s}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- generic arrow link ---------- */
.arrow-link{display:inline-flex;align-items:center;gap:10px;transition:gap .3s}
.arrow-link svg{transition:transform .3s}
.arrow-link:hover{gap:16px}
.arrow-link:hover svg{transform:translateX(3px)}

/* ---------- header mobile toggle (shared) ---------- */
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.nav-toggle span{width:24px;height:2px;border-radius:2px;background:currentColor;transition:.3s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:900px){
  .nav-toggle{display:flex}
}

/* ---------- section heading flourish ---------- */
.flourish{display:flex;align-items:center;justify-content:center;gap:22px}
.flourish::before,.flourish::after{content:"";height:1px;width:70px;background:currentColor;opacity:.35}
