:root{--ink:#24231f;--paper:#f6f3ed;--line:rgba(36,35,31,.18);--soft:#ece7de}
.eyebrow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin:0 0 1.25rem;color:rgba(255,255,255,.78)}
.hero-v8{min-height:82svh;display:flex;align-items:flex-end;background-position:center 47%}.hero-v8:before{background:linear-gradient(90deg,rgba(13,13,12,.72),rgba(13,13,12,.2) 62%,rgba(13,13,12,.06))}.hero-v8 .container{padding-bottom:clamp(4rem,8vw,7rem)}.hero-v8 .hero-copy{max-width:660px}.hero-v8 h1{font-size:clamp(2.6rem,5.2vw,5.4rem);line-height:1.2}.hero-v8 .hero-copy>p:not(.eyebrow){font-size:clamp(1rem,1.5vw,1.18rem);line-height:2}
.statement{padding:clamp(5rem,10vw,9rem) 0;background:#fff}.statement-inner{max-width:780px;text-align:center}.statement h2{font-size:clamp(2rem,4.1vw,4rem);margin:.7rem 0 1.8rem}.statement p:last-child{max-width:650px;margin:auto;line-height:2.15}
.section-cta{text-align:center;margin-top:3rem}.cta.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.alt .cta.secondary,.visit-section .cta.secondary{background:transparent}
.editorial{align-items:start}.price-stack{border-top:1px solid var(--line)}.price-line,.price-total{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}.price-line strong,.price-total strong{font-family:"Noto Serif JP",serif;font-weight:400;font-size:clamp(1.25rem,2vw,1.75rem)}.price-total{padding:1.8rem 0}.price-total small{grid-column:1/-1;opacity:.65}.simple-steps{border-top:1px solid var(--line)}.simple-steps article{display:grid;grid-template-columns:48px 180px 1fr;gap:1.5rem;padding:1.6rem 0;border-bottom:1px solid var(--line);align-items:start}.simple-steps span,.uses-grid span,.course-card>span{font-size:.72rem;letter-spacing:.15em;opacity:.5}.simple-steps h3{margin:0}.simple-steps p{margin:0}
.activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.activity-card{position:relative;min-height:440px;overflow:hidden;color:#fff}.activity-card:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.06) 70%)}.activity-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.activity-card:hover img{transform:scale(1.02)}.activity-card div{position:absolute;z-index:1;left:clamp(1.5rem,3vw,3rem);right:1.5rem;bottom:clamp(1.5rem,3vw,3rem)}.activity-card h3{font-size:clamp(1.45rem,2.5vw,2.3rem);margin:.4rem 0 1rem}.activity-card span{font-size:.86rem}
.visit-v8{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(3rem,8vw,8rem);align-items:start}.shop-data{margin:0;border-top:1px solid var(--line)}.shop-data div{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}.shop-data dt{font-size:.8rem;opacity:.6}.shop-data dd{margin:0}.mobile-contact{display:none}
.page-hero{min-height:78svh;display:flex;align-items:flex-end;position:relative;background-size:cover;background-position:center;color:#fff}.page-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,12,11,.72),rgba(12,12,11,.16) 70%)}.page-hero .container{position:relative;z-index:1;padding-bottom:clamp(4rem,8vw,7rem)}.page-hero-copy{max-width:720px}.page-hero h1{font-size:clamp(2.6rem,5.3vw,5.2rem);line-height:1.22;margin:0 0 1.5rem}.page-hero-copy>p:not(.eyebrow){font-size:clamp(1rem,1.5vw,1.18rem);line-height:2;margin-bottom:2rem}.workshop-hero{background-image:url('../images/story/workshop-hero-babouche.webp');background-position:center 52%}.gallery-hero{background-image:url('../images/story/shop-interior.webp');background-position:center 58%}
.course-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.course-card{padding:clamp(2rem,4vw,4rem);background:var(--paper)}.course-card h3{font-size:clamp(1.6rem,3vw,2.5rem);margin:1rem 0}.course-card strong{display:block;font-family:"Noto Serif JP",serif;font-size:clamp(2rem,4vw,3.5rem);font-weight:400;margin-bottom:1rem}.uses-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}.uses-grid article{background:#fff;padding:2rem}.uses-grid h3{font-size:1.3rem;margin:1rem 0}.price-block{border-top:1px solid var(--line);margin-top:2.2rem;padding-top:1.5rem;display:flex;flex-direction:column;gap:.45rem}.price-block strong{font-family:"Noto Serif JP",serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:400}.price-block small{opacity:.65}.inquiry-points{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.inquiry-points div{padding:1.5rem;border-bottom:1px solid var(--line)}.inquiry-points strong,.inquiry-points span{display:block}.inquiry-points span{margin-top:.6rem;opacity:.7}.note{font-size:.85rem;opacity:.65;max-width:760px;margin-top:1.5rem}
@media(max-width:800px){.hero-v8{min-height:78svh;background-position:58% center}.hero-v8:before,.page-hero:before{background:linear-gradient(to top,rgba(11,11,10,.76),rgba(11,11,10,.12) 70%)}.hero-v8 .container,.page-hero .container{padding-bottom:4rem}.statement{text-align:left}.statement-inner{text-align:left}.activity-grid,.course-grid,.visit-v8{grid-template-columns:1fr}.activity-card{min-height:360px}.simple-steps article{grid-template-columns:36px 1fr}.simple-steps p{grid-column:2}.uses-grid{grid-template-columns:1fr 1fr}.inquiry-points{grid-template-columns:1fr}.mobile-contact{position:fixed;z-index:80;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:1px solid var(--line)}.mobile-contact a{display:flex;min-height:52px;align-items:center;justify-content:center;font-size:.83rem;letter-spacing:.08em}.mobile-contact a+a{border-left:1px solid var(--line)}body{padding-bottom:52px}.page-hero{min-height:72svh}.workshop-hero{background-position:62% center}.gallery-hero{background-position:center}.shop-data div{grid-template-columns:75px 1fr}}
@media(max-width:520px){.uses-grid{grid-template-columns:1fr}.hero-v8 h1,.page-hero h1{font-size:2.45rem}.hero-actions,.visit-actions{align-items:stretch}.hero-actions .cta,.visit-actions .cta{width:100%;justify-content:space-between}.line-card{padding:1.5rem}.activity-card{min-height:320px}}

/* v8.03 implementation fixes */
.skip-link{position:fixed;z-index:2000;top:8px;left:8px;padding:.7rem 1rem;background:#111;color:#fff;transform:translateY(-160%);transition:transform .2s}.skip-link:focus{transform:none}
.insta-intro p:not(.kicker){max-width:30em;margin:1rem 0 1.4rem}.insta-feed{min-width:0;min-height:420px;position:relative}.insta-loading{margin:0;padding:2rem 0;border-top:1px solid var(--line);font-size:.78rem;letter-spacing:.08em;opacity:.55}.insta-feed behold-widget:defined + .insta-loading{display:none}
behold-widget{display:block;min-height:420px}.lightbox-close{font-family:inherit}.gallery-grid a:focus-visible,.activity-card:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
@media(max-width:800px){.insta-feed,behold-widget{min-height:520px}.insta-intro{margin-bottom:1rem}}


/* v8.04 activity section contrast and hierarchy */
#follow-us{background:#fff}
.activities{
  position:relative;
  background:#e9e3d9;
  border-top:1px solid rgba(36,35,31,.12);
}
.activities .section-head{margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.activities .section-head::after{background:rgba(36,35,31,.28)}
.activity-card{
  isolation:isolate;
  background:#24231f;
  box-shadow:0 1px 0 rgba(36,35,31,.08);
}
.activity-card::after{
  z-index:0;
  background:linear-gradient(to top,rgba(8,8,7,.82) 0%,rgba(8,8,7,.52) 38%,rgba(8,8,7,.18) 70%,rgba(8,8,7,.08) 100%);
}
.activity-card img{position:absolute;inset:0}
.activity-card>div{z-index:2}
.activity-card .kicker,
.activity-card h3,
.activity-card span{color:#fff}
.activity-card .kicker{opacity:.78}
.activity-card h3{max-width:15em;text-shadow:0 1px 12px rgba(0,0,0,.24)}
.activity-card span{
  display:inline-block;
  padding-bottom:.25rem;
  border-bottom:1px solid rgba(255,255,255,.68);
  letter-spacing:.06em;
}
.activity-card:focus-visible{outline:3px solid #fff;outline-offset:-7px}
@media (hover:hover){
  .activity-card:hover::after{background:linear-gradient(to top,rgba(8,8,7,.86) 0%,rgba(8,8,7,.54) 40%,rgba(8,8,7,.2) 72%,rgba(8,8,7,.09) 100%)}
}
@media(max-width:800px){
  .activities{padding-top:clamp(4.5rem,12vw,6rem)}
  .activity-grid{gap:1rem}
  .activity-card>div{left:1.5rem;right:1.5rem;bottom:1.5rem}
}
@media(prefers-reduced-motion:reduce){.activity-card img{transition:none}.activity-card:hover img{transform:none}}

/* v8.05: workshop hero image and contrast correction */
.page-hero .eyebrow,
.page-hero h1,
.page-hero .page-hero-copy > p:not(.eyebrow),
.page-hero .cta {
  color: #fff;
}
.workshop-hero::before {
  background: linear-gradient(90deg, rgba(12,12,11,.76) 0%, rgba(12,12,11,.48) 42%, rgba(12,12,11,.12) 78%);
}
@media (max-width:800px) {
  .workshop-hero { background-position: center 48%; }
  .workshop-hero::before {
    background: linear-gradient(to top, rgba(11,11,10,.82) 0%, rgba(11,11,10,.48) 48%, rgba(11,11,10,.08) 82%);
  }
}


/* v8.06 — TWO WAYS detail integration */
.line-grid-detailed{align-items:stretch}
.line-card-detailed{display:flex;flex-direction:column;gap:2rem;padding:clamp(1.6rem,3vw,2.6rem)}
.line-card-detailed .line-card-copy{flex:1}
.line-card-detailed .line-card-copy>p:not(.kicker){max-width:38rem}
.line-price-detail{margin:0;border-top:1px solid var(--line)}
.line-price-detail>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.25rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--line)}
.line-price-detail dt{font-size:.82rem;line-height:1.6;letter-spacing:.04em}
.line-price-detail dd{margin:0;font-family:"Noto Serif JP",serif;font-size:clamp(1.05rem,1.8vw,1.45rem);font-weight:400;white-space:nowrap}
.line-price-detail .line-price-total{padding:1.25rem 0}
.line-price-detail .line-price-total dt{font-weight:500}
.line-price-detail .line-price-total dd{font-size:clamp(1.35rem,2.2vw,1.8rem)}
.line-price-detail .line-price-note dd{font-family:"Noto Sans JP",sans-serif;font-size:.9rem}
.line-card-note{margin:-1rem 0 0!important;font-size:.75rem!important;line-height:1.7;opacity:.62}
@media(max-width:700px){.line-card-detailed{gap:1.5rem}.line-price-detail>div{grid-template-columns:1fr;gap:.2rem}.line-price-detail dd{white-space:normal}.line-card-note{margin:-.6rem 0 0!important}}

/* v8.07 — section title scale and optical centering */
:root{
  --section-title-size:clamp(2rem,2.8vw,2.75rem);
  --section-title-line:1.48;
}

/* Use one typographic scale for every level-two section title. */
main .section h2,
main .statement h2{
  font-size:var(--section-title-size);
  line-height:var(--section-title-line);
  letter-spacing:.035em;
  text-wrap:balance;
}

/* Centered section introductions share the exact same axis and width. */
.section-head,
.statement-inner{
  width:min(820px,100%);
  max-width:none;
  margin-inline:auto;
  padding-inline:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.section-head > *,
.statement-inner > *{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.section-head h2,
.statement-inner h2{
  width:100%;
}
.section-head .kicker,
.statement-inner .kicker{
  width:100%;
}

/* Keep editorial two-column headings left-aligned while matching their size. */
.story-copy h2,
.order-layout > div:first-child h2,
.insta-intro h2,
.visit-v8 > div:first-child h2{
  text-align:left;
}

@media(max-width:800px){
  :root{--section-title-size:clamp(1.8rem,8vw,2.25rem)}
  .section-head,
  .statement-inner{width:100%}
}

.hero-copy h1 {
  font-size: clamp(40px, 4.2vw, 52px);
  line-height: 1.35;
  letter-spacing: 0.04em;
}

@media (max-width: 767px) {
  .hero-copy h1 {
    font-size: clamp(36px, 11vw, 36px);
    line-height: 1.4;
  }
}