/* 2026 art direction — kokorostore.jp */
.store-v3 { background:#faf9f5; color:#2d2a25; overflow:hidden; }
.store-v3 > :not(.s3-hero):not(.s3-product):not(.s3-notes):not(.s3-brand) { display:none; }
.store-v3 :where(h1,h2,h3,p,figure) { margin:0; }
.store-v3 :where(h1,h2,h3) { font-family:var(--font-serif); font-weight:300; letter-spacing:.03em; }
.s3-eyebrow { color:#927b52; font-size:10px; font-weight:500; letter-spacing:.2em; line-height:1.5; }
.s3-hero { position:relative; height:calc(100svh - 60px); min-height:650px; max-height:960px; padding-top:60px; overflow:hidden; background:#e9e4d9; }
.s3-hero-copy { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:flex-start; box-sizing:border-box; min-height:100%; width:min(47vw,580px); max-width:none; padding:clamp(182px,19vh,248px) clamp(30px,5.2vw,82px) 80px; }
.s3-hero h1 { display:flex; flex-direction:column; align-items:flex-start; font-size:clamp(50px,5.4vw,78px); line-height:1; letter-spacing:.12em; margin:22px 0 24px; white-space:nowrap; text-wrap:nowrap; }
.s3-hero h1 strong { font:inherit; font-weight:400; }
.s3-hero h1 small { margin-top:16px; color:#554f45; font-family:var(--font-sans); font-size:clamp(14px,1.35vw,18px); font-weight:400; letter-spacing:.18em; }
.s3-hero-copy > p:not(.s3-eyebrow) { max-width:410px; color:#5f5a52; font-size:13px; line-height:1.9; letter-spacing:.035em; }
.s3-hero-copy a, .s3-brand a { display:inline-flex; align-items:center; align-self:flex-start; width:auto; max-width:100%; gap:24px; color:#302d27; font-size:12px; text-decoration:none; padding-bottom:10px; margin-top:34px; border-bottom:1px solid #a48d64; transition:gap .25s ease; }
.s3-hero-copy a b { font-size:17px; font-weight:500; letter-spacing:.04em; }
.s3-hero-copy a small { color:#7f735f; font-size:9px; margin-left:-16px; }
.s3-hero-copy a:hover, .s3-brand a:hover { gap:34px; }
.s3-hero-copy a { flex-wrap:wrap; column-gap:14px; row-gap:5px; }
.s3-hero-copy a b, .s3-hero-copy a span { white-space:nowrap; }
.s3-hero-copy a small { order:4; flex-basis:100%; margin-left:0; font-size:10px; line-height:1.45; }
.s3-hero-scene { position:absolute; inset:0; min-height:0; height:100%; margin:0; overflow:hidden; isolation:isolate; display:block; background:#f1eee8; }
.s3-scene-bg { display:block; width:100%; height:100%; object-fit:cover; object-position:center; background:transparent; }
.s3-hero-scene .s3-device { display:none; }
.s3-device { position:absolute; right:5.6%; bottom:12%; z-index:1; display:block; width:clamp(280px,30vw,430px); height:auto; filter:drop-shadow(0 26px 28px rgba(60,45,26,.19)); }
.s3-product { max-width:1220px; margin:0 auto; padding:clamp(95px,13vw,175px) 28px; display:grid; grid-template-columns:1fr .92fr; align-items:center; gap:clamp(48px,10vw,145px); }
.s3-product-visual { aspect-ratio:1/1.08; position:relative; display:grid; place-items:center; background:radial-gradient(circle at 50% 43%,#fff 0 27%,#f7f4ee 58%,#ece7dd 100%); overflow:hidden; }
.s3-product-visual::before { display:none; }
.s3-product-visual img { position:relative; z-index:1; width:94%; height:94%; object-fit:contain; filter:drop-shadow(0 24px 30px rgba(65,52,32,.10)); }
.s3-product-info { max-width:440px; }
.s3-product h2 { font-size:clamp(32px,3.5vw,52px); line-height:1.36; margin:19px 0 24px; text-wrap:balance; }
.s3-price { font-size:20px; letter-spacing:.05em; margin-bottom:23px!important; }
.s3-price small { font-size:10px; color:#81776a; margin-left:4px; }
.s3-soldout { display:inline-flex; align-items:center; min-height:25px; padding:0 11px; margin:0 0 18px!important; color:#fff; background:#302e29; font-size:9px; font-weight:600; letter-spacing:.15em; }
.s3-description { color:#6b655b; font-size:13px; line-height:2.05; }
.s3-actions { display:flex; align-items:center; gap:14px; margin-top:34px; }
.s3-primary, .s3-add { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:48px; padding:0 18px; font:inherit; font-size:12px; text-decoration:none; cursor:pointer; }
.s3-primary { color:#fff; background:#302e29; border:1px solid #302e29; }
.s3-primary span { color:#cdb685; }
.s3-add { color:#302e29; background:transparent; border:1px solid #aaa195; }
.s3-add:hover { background:#ede9df; }
.s3-add:disabled { color:#8f887d; background:#eeebe4; border-color:#d7d1c7; cursor:not-allowed; }
.s3-notes { max-width:1220px; margin:0 auto; padding:0 28px clamp(94px,12vw,155px); display:grid; grid-template-columns:repeat(3,1fr); }
.s3-notes > div { padding:8px 40px; border-left:1px solid #d7d1c7; }
.s3-notes > div:first-child { border-left:0; padding-left:0; }
.s3-notes > div:last-child { padding-right:0; }
.s3-notes span { display:block; color:#a08a61; font-size:10px; letter-spacing:.16em; margin-bottom:20px; }
.s3-notes h3 { font-size:24px; margin-bottom:8px; }
.s3-notes p { color:#746d62; font-size:12px; }
.s3-brand { background:#e8e3d8; text-align:center; padding:clamp(90px,12vw,165px) 28px; }
.s3-brand h2 { font-size:clamp(35px,4vw,58px); line-height:1.45; margin-top:20px; text-wrap:balance; }
.s3-brand a { margin-top:37px; }

/* Prevent English phrases from inheriting a Japanese single-line headline rule. */
html[lang="en"] .s3-hero h1 { max-width:510px; font-size:clamp(36px,3.15vw,50px); white-space:normal; text-wrap:balance; }
html[lang="en"] .s3-product h2 { font-size:clamp(30px,2.7vw,40px); line-height:1.27; text-wrap:normal; letter-spacing:.01em; }
html[lang="en"] .s3-brand h2 { max-width:650px; margin-inline:auto; }

body:has(.store-v3) .k-header { background:rgba(250,248,243,.34); border-bottom-color:rgba(79,64,42,.10); backdrop-filter:blur(14px) saturate(1.12); -webkit-backdrop-filter:blur(14px) saturate(1.12); }
body:has(.store-v3) .k-header-inner { position:relative; max-width:none; height:68px; padding:0 clamp(28px,4vw,64px); }
body:has(.store-v3) .k-nav { position:absolute; left:50%; transform:translateX(-50%); gap:42px; }
body:has(.store-v3) .k-nav a { font-size:11px; letter-spacing:.07em; color:rgba(44,39,32,.72); }
body:has(.store-v3) .k-actions { gap:20px; }

@media (max-width:760px) {
  .s3-hero { display:grid; height:auto; min-height:0; max-height:none; padding-top:60px; background:#f2eee7; }
  .s3-hero-copy { min-height:0; width:100%; max-width:none; padding:68px 24px 48px; justify-content:flex-start; background:#f2eee7; }
  .s3-hero h1 { font-size:clamp(48px,13vw,62px); line-height:1; margin-top:18px; white-space:normal; text-wrap:balance; }
  .s3-hero h1 small { font-size:13px; margin-top:13px; }
  .s3-hero-copy > p:not(.s3-eyebrow) { font-size:12px; line-height:1.95; }
  .s3-hero-copy a { flex-wrap:wrap; column-gap:16px; row-gap:6px; margin-top:28px; }
  .s3-hero-copy a small { margin-left:0; }
  .s3-hero-scene { position:relative; inset:auto; height:78vw; min-height:360px; max-height:560px; }
  .s3-scene-bg { width:100%; height:100%; object-fit:cover; object-position:64% center; }
  body:has(.store-v3) .k-header-inner { height:60px; padding:0 22px; }
  .s3-device { width:61vw; right:6%; bottom:10%; }
  .s3-product { grid-template-columns:1fr; gap:44px; padding:88px 24px; }
  .s3-product-visual { width:100%; }
  .s3-product-info { max-width:none; }
  .s3-product h2 { font-size:39px; }
  html[lang="en"] .s3-product h2 { font-size:34px; }
  .s3-actions { align-items:stretch; flex-direction:column; }
  .s3-primary, .s3-add { width:100%; }
  .s3-notes { grid-template-columns:1fr; padding:0 24px 82px; }
  .s3-notes > div, .s3-notes > div:first-child, .s3-notes > div:last-child { border-left:0; border-top:1px solid #d7d1c7; padding:23px 0; }
  .s3-notes > div:first-child { border-top:0; padding-top:0; }
  .s3-notes span { margin-bottom:13px; }
  .s3-notes h3 { font-size:22px; }
  .s3-brand { padding:88px 24px; text-align:left; }
  .s3-brand h2 { font-size:39px; }
  html[lang="en"] .s3-hero h1 { font-size:clamp(34px,9.3vw,40px); }
}
