.workshop-page { background: #fffdf8; }
.workshop-page .about-hero > img { object-position:50% 56%; }
.ws-section { padding:clamp(64px,7vw,96px) 0; }
.ws-section h2 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(1.9rem,3vw,3rem); font-weight:600; line-height:1.6; letter-spacing:.05em; margin:18px 0 25px; }
.ws-intro { text-align:center; padding-top:60px; }
.ws-intro > .container > p:not(.section-kicker) { line-height:2.15; font-size:.96rem; margin:22px auto; }
.ws-intro-photo { width:52.9%; margin:36px auto 0; }
.ws-intro-photo figcaption { color:#526257; font-size:.76rem; line-height:1.8; padding-top:10px; }
.ws-intro-photo + .ws-jump { margin-top:26px; }
.ws-jump { display:flex; justify-content:center; flex-wrap:wrap; gap:12px 34px; margin-top:42px; }
.ws-jump a { font-size:.82rem; border-bottom:1px solid #bdcbbf; padding:12px 0; display:flex; gap:16px; align-items:center; }
.ws-jump a:hover { color:var(--green-2); }
.ws-jump a span { display:inline-block; transition:transform .2s ease; }

.ws-mobile-break { display:none; }
.ws-process { background:#f2f4ed; }
.ws-section-head { margin-bottom:40px; }
.ws-section-head > p:not(.section-kicker) { font-size:.9rem; line-height:1.9; }
.ws-story { border-top:1px solid #d2dbce; padding:44px 0; scroll-margin-top:110px; }
.ws-story:last-child { padding-bottom:0; }
.ws-story-main { display:grid; grid-template-columns:.85fr 1.15fr; gap:8%; align-items:center; }
.ws-story:nth-of-type(even) .ws-story-main { grid-template-columns:1.15fr .85fr; }
.ws-story:nth-of-type(even) .ws-story-copy { order:2; }
.ws-story:nth-of-type(even) .ws-story-feature { order:1; }
.ws-story-copy h3 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(1.75rem,2.5vw,2.6rem); font-weight:600; line-height:1.65; letter-spacing:.035em; margin:20px 0 24px; }
.ws-story-copy p:not(.section-kicker) { font-size:.93rem; line-height:2.1; margin:16px 0; }
.ws-story figure { margin:0; }
.ws-photo-link { position:relative; display:block; overflow:hidden; }
.ws-photo-link img { transition:transform .45s; width:100%; height:auto; }
.ws-story .ws-photo-link { aspect-ratio:3 / 2; }
.ws-story .ws-photo-link img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ws-story img[src*="pizza-cool"], .ws-story img[src*="pudding-pour"] { object-position:50% 72%; }
.ws-story img[src*="chocolate-mix"] { object-position:50% 82%; }
.ws-photo-link:hover img { transform:scale(1.025); }
.ws-photo-link:focus-visible { outline-offset:5px; }
.ws-zoom { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:32px; height:32px; border:1px solid #dbe7d8; border-radius:50%; color:#dbe7d8; background:rgba(23,78,60,.9); pointer-events:none; }
.ws-zoom svg { width:19px; height:19px; }
.ws-story figcaption { font-size:.76rem; line-height:1.8; color:#526257; padding-top:8px; }
.ws-story-details { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:24px; margin-top:24px; width:64%; margin-left:auto; }
.ws-link { display:inline-flex; gap:24px; border-bottom:1px solid #90a992; color:var(--green); font-size:.82rem; font-weight:600; padding:8px 0; margin-top:12px; align-items:center; }
.ws-link span,.ws-button span { display:inline-block; transition:transform .2s; flex-shrink:0; }


.ws-products { background:#fffdf8; }
.ws-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:50px 30px; }
.ws-product figure { margin:0; }
.ws-product figure > img { width:100%; height:auto; }
.ws-product figcaption { display:none; }
.ws-product h3 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:1.07rem; line-height:1.7; margin:19px 0 12px; font-weight:600; }
.ws-product p { font-size:.83rem; line-height:1.95; color:#58665b; }
.ws-products-action { text-align:center; margin-top:50px; }
.ws-button { display:inline-flex; justify-content:space-between; align-items:center; gap:28px; padding:22px 25px; border:1px solid #a9bba7; color:var(--green); font-size:.86rem; font-weight:600; }
.ws-button:hover { background:#e8eee2; }
.ws-quality { background:#dbe7d8; }
.ws-quality-grid,.ws-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:8%; }
.ws-quality h2 { font-size:clamp(1.8rem,2.6vw,2.6rem); }
.ws-quality-copy { padding-top:8px; }
.ws-quality-copy h3 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:600; font-size:1.1rem; line-height:1.7; margin-bottom:22px; }
.ws-quality-copy p { line-height:2.1; font-size:.9rem; margin:16px 0; }
.ws-profile dl { margin:0; }
.ws-profile dl > div { display:grid; grid-template-columns:100px 1fr; padding:23px 0; border-bottom:1px solid #d9dfd4; font-size:.88rem; line-height:1.95; }
.ws-profile dl > div:first-child { border-top:1px solid #d9dfd4; }
.ws-profile dt { font-weight:600; }
.ws-profile dd { margin:0; }
.ws-profile a[href^="tel:"]:hover { text-decoration:underline; }
.ws-related { background:#f2f4ed; padding:70px 0; }
.ws-related h2 { font-size:clamp(1.6rem,2.3vw,2.3rem); }
.ws-related-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:30px; }
.ws-related-links .ws-button { font-size:.82rem; padding:21px 18px; gap:12px; }
.ws-lightbox { border:0; background:#14281d; color:white; width:95vw; max-width:1350px; max-height:94vh; padding:52px 70px 28px; }
.ws-lightbox::backdrop { background:rgba(0,0,0,.8); }
.ws-lightbox figure { margin:0; }
.ws-lightbox figure img { width:100%; height:calc(85vh - 110px); object-fit:contain; }
.ws-lightbox figcaption { display:flex; justify-content:space-between; gap:20px; font-size:.82rem; line-height:1.8; margin-top:15px; }
.ws-lightbox button { position:absolute; border:0; background:transparent; color:white; cursor:pointer; min-width:44px; min-height:44px; font-size:1.5rem; }
.ws-lightbox-close { top:5px; right:8px; }.ws-lightbox-prev { top:45%; left:10px; }.ws-lightbox-next { top:45%; right:10px; }
@media(max-width:1000px) {
 .ws-intro-photo { width:54.625%; }
 .workshop-page .container:not(.about-hero-content) { width:calc(100% - 48px); max-width:820px; }
 .ws-story-main { gap:5%; }.ws-story-copy h3 { font-size:1.9rem; }
 .ws-story-details { width:80%; }.ws-related-links { grid-template-columns:1fr; }
}
@media(max-width:700px) {
 .ws-section { padding:60px 0; }.ws-intro { padding-top:30px; }
 .ws-intro > .container > p:not(.section-kicker) { font-size:.87rem; text-align:left; }
 .ws-intro-photo { width:100%; margin-top:28px; }
 .ws-intro-photo figcaption { font-size:.69rem; }
 .ws-desktop-break { display:none; }.ws-mobile-break { display:initial; }
 .ws-jump { display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; margin-top:28px; }.ws-jump a { font-size:.73rem; justify-content:space-between; gap:8px; }
 .ws-section-head { margin-bottom:35px; }.ws-section h2 { font-size:1.95rem; }
 .ws-story { padding:38px 0; }.ws-story-main { display:flex; flex-direction:column; gap:25px; }
 .ws-story:nth-of-type(even) .ws-story-copy,.ws-story:nth-of-type(even) .ws-story-feature { order:initial; }
 .ws-story-copy,.ws-story-feature { width:100%; }.ws-story-copy h3 { margin:17px 0 20px; font-size:1.85rem; }
 .ws-story-copy p:not(.section-kicker) { font-size:.87rem; }.ws-story-details { width:100%; gap:14px; margin-top:18px; margin-left:0; margin-right:0; }
 .ws-story figcaption { font-size:.69rem; }
 .ws-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 18px; }
 .ws-product h3 { font-size:.9rem; margin-top:13px; }.ws-product p { font-size:.76rem; }
 .ws-button { font-size:.8rem; padding:19px 18px; gap:15px; max-width:100%; }
 .ws-quality-grid,.ws-profile-grid { grid-template-columns:1fr; gap:20px; }.ws-quality h2 { font-size:1.85rem; }
 .ws-profile dl>div { grid-template-columns:76px minmax(0,1fr); font-size:.82rem; }.ws-profile .ws-link { font-size:.76rem; }
 .ws-related h2 { font-size:1.75rem; }.ws-related-links { margin-top:25px; }
 .ws-lightbox { padding:50px 35px 25px; }.ws-lightbox figure img { height:calc(75vh - 90px); }.ws-lightbox figcaption { font-size:.72rem; gap:12px; }.ws-lightbox-prev { left:0; }.ws-lightbox-next { right:0; }
}
@media(prefers-reduced-motion:reduce) { .ws-photo-link img,.ws-link span,.ws-button span,.ws-jump a span { transition:none; } .ws-photo-link:hover img { transform:none; } }
