@charset "UTF-8";
:root{--ink:#292c28;--body:#41473f;--muted:#687064;--cream:#f7f5ef;--paper:#fff;--line:#dedfd6;--green:#e8eddf;--sage:#697b58;--accent:#a85138;--yellow:#e9c96e;--ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:125px}body{background:#fff;font-size:15px}img{height:auto}[hidden]{display:none!important}:focus-visible{outline-color:var(--accent)}::selection{background:#e6cc83;color:var(--ink)}
.wrap{width:min(1200px,calc(100% - 100px))}.section{padding-block:112px}h2{font-size:clamp(27px,3vw,40px);font-weight:600;line-height:1.7;letter-spacing:.035em}.eyebrow{font-size:10px;letter-spacing:.16em;color:var(--sage);margin-bottom:24px}.section-top{gap:40px;margin-bottom:50px}.section-top>p{font-size:13px;line-height:2.1}.button{border-radius:40px;background:var(--ink);border-color:var(--ink);padding:17px 28px;font-size:13px;gap:32px;transition:background .3s,transform .4s var(--ease),box-shadow .4s}.button>span{transition:transform .4s var(--ease)}.button:hover{background:var(--sage);border-color:var(--sage);transform:translateY(-3px);box-shadow:0 6px 18px #25331b12}.button:hover>span{transform:translate(2px,-2px)}.button.small{padding:12px 22px;font-size:11px;gap:22px}.button.light{background:white;color:var(--ink);border-color:white}.button.light:hover{background:#eee8d8}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;font-size:12px;padding-bottom:6px;transition:color .25s,gap .35s var(--ease)}.text-link:hover{color:var(--accent);gap:34px}
.header{position:sticky;top:0;z-index:30;min-height:108px;padding:11px 40px 12px;background:#ffffffed;border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s;gap:26px}body.is-scrolled .header{border-color:#e7e7df;box-shadow:0 2px 15px #292c2805}.brand{align-items:center;width:116px;line-height:1}.brand-logo{width:95px;height:73px;object-fit:contain}.brand-jp{font-size:8px;letter-spacing:.04em;margin-top:1px;white-space:nowrap}.header .desktop-nav{gap:30px;margin-left:auto}.desktop-nav a{font-size:11px;position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.desktop-nav a:hover:after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:16px}.menu-toggle{display:flex;position:relative;z-index:45;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:white;cursor:pointer}.menu-toggle span{width:16px;height:1px;background:var(--ink);transition:transform .35s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.menu-backdrop{position:fixed;inset:108px 0 0;z-index:32;background:#262b2540}.site-menu{position:fixed;z-index:35;right:0;top:108px;bottom:0;width:min(480px,100%);overflow-y:auto;padding:44px 55px;background:var(--cream);box-shadow:-16px 20px 60px #242b2410}.site-menu>a:not(.button){display:flex;gap:24px;padding:16px 0;border-bottom:1px solid var(--line);font-size:19px;font-family:var(--serif);text-decoration:none}.site-menu>a>span{font-family:Georgia,serif;font-size:12px;color:var(--sage)}.site-menu .button{width:100%;margin-top:28px}body.menu-open{overflow:hidden}
/* Exact supplied lettering; white paper, warm ink and gently floating photos. */
.hero{display:block;position:relative;overflow:hidden;isolation:isolate;padding:0;min-height:0}.hero-layout{position:relative;display:grid;grid-template-columns:1.02fr 1fr;align-items:center;gap:30px;min-height:680px;padding-block:55px 45px}.hero-copy{position:relative;z-index:3}.hero .eyebrow{font-size:10px;letter-spacing:.19em;margin-bottom:32px}.hero h1{font-size:clamp(32px,4vw,56px);font-weight:600;line-height:1.65;letter-spacing:-.035em;margin:0 0 28px}.hero-line{display:block;overflow:hidden;padding-bottom:.08em}.hero-line>span{display:block}.hero-accent{color:var(--accent)}.hero-desc{font-size:13px;line-height:2.25;letter-spacing:.03em;margin-bottom:29px}.hero-actions{gap:30px}.hero-note{font-size:10px;color:var(--muted);margin:24px 0 0;line-height:2}.hero-visual{position:relative;min-height:545px}.floating-photo{position:absolute;margin:0}.floating-photo img{width:100%;height:100%;object-fit:cover}.photo-main{width:91%;aspect-ratio:1.04;right:-2%;top:16px;border-radius:47% 53% 46% 54% / 53% 42% 58% 47%;overflow:hidden;transform:rotate(-7deg);background:var(--cream)}.photo-main img{transform:scale(1.08) rotate(7deg)}.photo-main:after{content:"";position:absolute;inset:0;border:1px solid #292c2809;border-radius:inherit;pointer-events:none}.photo-main figcaption{position:absolute;left:21%;bottom:9%;font-size:12px;background:#fffef5ed;border-radius:30px;padding:8px 18px;transform:rotate(7deg);letter-spacing:.05em}.photo-small{width:37%;aspect-ratio:.93;left:-8%;top:300px;padding:9px 9px 33px;background:white;box-shadow:0 9px 30px #292c2814;transform:rotate(-12deg)}.photo-small figcaption{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.06em}.heart-stamp{position:absolute;z-index:2;top:367px;right:-1%;width:148px;height:148px;border-radius:50%;background:var(--yellow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;transform:rotate(13deg)}.heart-stamp span{font-size:7px;letter-spacing:.12em}.heart-stamp strong{font-family:var(--serif);font-size:18px;line-height:1.65;font-weight:500;text-align:center}.visual-caption{position:absolute;font-size:9px;letter-spacing:.13em;right:14%;bottom:2px;margin:0;color:var(--muted)}.visual-orbit{position:absolute;width:100%;aspect-ratio:1;top:0;left:4%;border:1px solid #d2d7c7;border-radius:50%;transform:rotate(-24deg) scale(1.04,.93)}.hero-ornaments{position:absolute;inset:0;z-index:-1;pointer-events:none}.ribbon{display:block;position:absolute;border:24px solid;border-radius:50%}.ribbon-one{width:340px;height:240px;border-color:#e9eddf;left:-150px;top:-165px;rotate:-25deg}.ribbon-two{width:300px;height:480px;border-width:19px;border-color:#f1e6dc;right:-245px;top:60px;rotate:26deg}.little-dot{position:absolute;width:13px;height:13px;border-radius:50%;background:var(--sage)}.dot-one{right:6%;top:13%}.dot-two{right:36%;top:78%;width:8px;height:8px;background:var(--accent)}.hero-spark{position:absolute;right:36.5%;top:7%;font-size:44px;color:var(--accent);line-height:1}.hero-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-block:20px 32px}.scroll-cue{display:inline-flex;align-items:center;gap:15px;font-size:8px;letter-spacing:.14em;text-decoration:none}.scroll-line{position:relative;width:1px;height:36px;background:#d5d8cd;overflow:hidden}.scroll-line:after{content:"";position:absolute;left:0;top:-100%;width:1px;height:100%;background:var(--ink)}.hero-index{font-size:8px;letter-spacing:.12em;color:var(--muted)}.motion-toggle{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;font-size:10px;color:var(--muted);padding:10px;cursor:pointer}.motion-icon{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);width:25px;height:25px;border-radius:50%;font-size:9px}
.introduction{text-align:center;position:relative;padding-block:105px 110px}.introduction:before{content:"";display:block;height:50px;width:1px;background:var(--accent);margin:0 auto 38px}.introduction h2{font-size:clamp(28px,3vw,42px);line-height:1.9}.introduction h2 span{color:var(--sage)}.introduction>p:not(.eyebrow){font-size:13px;line-height:2.3;margin:30px 0}.gift-marquee{overflow:hidden;padding:18px 0 30px}.marquee-track{display:flex;width:max-content}.marquee-track>span{flex-shrink:0;white-space:nowrap;font-family:Georgia,serif;font-size:clamp(45px,6.5vw,94px);font-style:italic;color:#d2d7c7;line-height:1.3;letter-spacing:-.03em}.marquee-track i{font-style:normal;color:var(--accent);font-size:.6em;vertical-align:.13em;margin-inline:16px}.trust-strip{background:var(--cream)}.trust-strip>.wrap{padding-block:22px}.trust-strip span{font-size:10px;border-color:#bec6b3;padding:5px 14px;border-radius:25px}.trust-strip p,.trust-strip a{font-size:11px}
.products-section{background:var(--cream)}.product-grid{gap:36px}.product:nth-child(2){margin-top:70px}.product-image{border-radius:48% 48% 10px 10px}.product:nth-child(2) .product-image{border-radius:10px 10px 48% 48%}.product:nth-child(3) .product-image{border-radius:48% 48% 48% 10px}.product-image img{height:320px;transition:transform .9s var(--ease)}.product-image:hover img{transform:scale(1.07)}.maker{font-size:10px;letter-spacing:.12em;margin:25px 0 8px;color:var(--sage)}.product h3{font-size:22px;font-weight:600}.product>p:not(.maker){font-size:12px;min-height:78px;line-height:2}.product small{font-size:9px}.product-foot{margin-top:52px;padding-top:24px;border-color:var(--line)}.product-foot p{font-size:10px}
.occasion-grid{gap:32px}.occasion-grid article,.occasion-grid article+article{padding:10px 30px 20px 0;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent}.occasion-grid article:last-child{border:0}.occasion-grid article:nth-child(n){background:transparent}.occasion-icon{width:62px;height:62px;border-radius:50%;background:var(--green);text-align:center;font-size:33px;color:var(--sage);line-height:62px;margin-bottom:24px}.occasion-grid article:nth-child(2) .occasion-icon{color:#9c5c3e;background:#f2e7dc}.occasion-grid article:nth-child(3) .occasion-icon{color:#876e27;background:#f5edcd}.number{font-family:Georgia,serif;font-size:10px;letter-spacing:.12em;color:var(--muted)}.occasion-grid h3{font-size:21px;font-weight:600;margin:18px 0 15px}.occasion-grid p{font-size:12px;margin-bottom:24px}.occasion-grid a{font-size:11px;padding-bottom:7px}.adoption{margin-top:65px;padding:35px 40px;background:var(--cream);border-radius:4px}.adoption .eyebrow{margin-bottom:12px}.adoption>h3{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 26px}.adoption-grid{gap:30px}.adoption-grid article>span{font-size:8px;letter-spacing:.1em;color:var(--sage)}.adoption h4{font-size:13px;margin:9px 0}.adoption-grid p{font-size:11px}
.packaging{padding-top:25px}.pack-grid{gap:30px}.pack-grid article{padding:35px 38px;background:#f3f1e9;border:0;border-radius:6px}.pack-grid article+article{background:#edf0e7}.pack-grid h3{font-size:25px;margin:24px 0 15px}.pack-grid p{font-size:12px}.pack-tag{display:inline-block;padding:5px 12px;font-size:10px;border:1px solid #c6cbbd;background:transparent}.gift-art span{font-family:Georgia,serif;font-style:italic}.budget-note{margin-top:30px;border:1px solid var(--line);border-radius:6px;padding:34px 38px;background:transparent}.budget-note>strong{font-size:23px}.budget-note p{font-size:12px;margin:15px 0 22px}.budget-note small{font-size:10px}
.about{gap:90px;border-top:1px solid var(--line)}.about-mark{width:250px;text-align:center;margin:50px 0 0;transform:none;font-size:inherit;font-style:normal;letter-spacing:normal;line-height:normal}.about-mark img{width:195px;margin-inline:auto}.about-mark span{font-family:var(--sans);font-size:8px;letter-spacing:.17em;margin:12px 0 0}.about-copy>p{font-size:13px;margin-bottom:25px}.about-copy>p.lead{font-size:21px}.guide-section{background:var(--green);border-radius:80px 0 0 0}.steps{margin:45px 0}.steps li{border-color:#acb6a2;padding-top:22px}.steps span{font-style:italic;font-size:46px;color:var(--sage);line-height:1.3}.steps h3{font-weight:600;margin:16px 0}.steps p{font-size:12px}.note-box{grid-template-columns:140px 1fr;gap:25px;padding:23px 28px;background:transparent;border-color:#b9c2b0;border-radius:0}.note-box p{font-size:11px}.faq{grid-template-columns:1fr 1.65fr;gap:75px}summary{font-size:13px;padding:24px 34px 24px 0}summary:after{content:"+";right:4px;top:22px;font-size:18px;transition:transform .3s}.faq details[open] summary:after{content:"+";transform:rotate(45deg)}.faq details p{font-size:12px;margin-bottom:26px}
.cta{position:relative;overflow:hidden;background:var(--sage);padding-block:85px 90px;border-radius:0 80px 0 0}.cta:before,.cta:after{content:"";position:absolute;width:380px;height:380px;border:25px solid #ffffff0d;border-radius:50%;pointer-events:none}.cta:before{left:-230px;top:-80px}.cta:after{right:-220px;bottom:-170px}.cta .wrap{position:relative}.cta h2{font-size:44px;line-height:1.6}.cta p{font-size:13px;margin-top:25px}.cta .button{margin-top:7px}.cta .fine{color:white;font-size:11px}.shop{gap:60px}.shop h2{font-size:26px;margin-bottom:25px}.shop-contact>span{font-size:11px}.shop-contact>a:not(.text-link){font-size:33px;white-space:nowrap}.footer{align-items:flex-end;padding-block:35px 75px}.footer-logo{display:block;width:106px}.footer p{font-size:10px;margin:14px 0 0}.footer>div+div{font-size:10px}.footer small{font-size:9px}.floating-contact{position:fixed;z-index:20;right:28px;bottom:28px;display:inline-flex;align-items:center;gap:17px;border:1px solid #e2e3d8;border-radius:40px;padding:17px 24px;background:white;color:var(--ink);text-decoration:none;font-size:12px;box-shadow:0 6px 25px #292c2812;opacity:0;visibility:hidden;transform:translateY(20px);transition:opacity .4s,transform .4s var(--ease),visibility .4s}body.is-scrolled .floating-contact{opacity:1;visibility:visible;transform:none}.floating-contact:hover{background:var(--cream)}.contact-dot{width:7px;height:7px;background:var(--sage);border-radius:50%}.back-top{display:flex;align-items:center;justify-content:center;position:fixed;z-index:20;bottom:29px;left:28px;width:45px;height:45px;background:#fffffff2;border:1px solid var(--line);border-radius:50%;text-decoration:none;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}body.is-scrolled .back-top{opacity:1;visibility:visible}.skip{z-index:60}
/* Content remains visible when scripts are unavailable. */
html[data-motion=on] .reveal{transition:opacity .9s var(--ease),transform 1s var(--ease)}html[data-motion=on] .reveal.is-pending{opacity:0;transform:translateY(32px)}html[data-motion=on] .hero-line>span{animation:enter-line 1.25s var(--ease) both}html[data-motion=on] .hero-line:nth-child(2)>span{animation-delay:.14s}html[data-motion=on] .hero-enter{animation:enter-soft 1.3s var(--ease) .25s both}html[data-motion=on] .photo-main{animation:float-main 9s ease-in-out infinite,soft-shape 15s ease-in-out infinite}html[data-motion=on] .photo-small{animation:float-small 7s ease-in-out infinite}html[data-motion=on] .heart-stamp{animation:stamp-sway 10s ease-in-out infinite}html[data-motion=on] .hero-spark{animation:spark-turn 26s linear infinite}html[data-motion=on] .little-dot{animation:dot-float 6s ease-in-out infinite}html[data-motion=on] .marquee-track{animation:marquee 34s linear infinite}html[data-motion=on] .scroll-line:after{animation:scroll-line 2.2s ease-in-out infinite}html[data-motion=on] .site-menu{animation:menu-enter .45s var(--ease)}.gift-marquee:hover .marquee-track{animation-play-state:paused}html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}
@keyframes enter-line{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}@keyframes enter-soft{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}@keyframes float-main{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-14px) rotate(-4deg)}}@keyframes soft-shape{0%,100%{border-radius:47% 53% 46% 54% / 53% 42% 58% 47%}50%{border-radius:52% 48% 54% 46% / 44% 54% 46% 56%}}@keyframes float-small{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(11px) rotate(-8deg)}}@keyframes stamp-sway{0%,100%{transform:rotate(13deg)}50%{transform:rotate(-2deg)}}@keyframes spark-turn{to{transform:rotate(360deg)}}@keyframes dot-float{50%{transform:translateY(-12px)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes scroll-line{to{transform:translateY(200%)}}@keyframes menu-enter{from{transform:translateX(100%);opacity:0}to{transform:none;opacity:1}}
.form-panel{border-radius:8px;background:var(--cream)}.form-steps li.current{border-color:var(--accent)}.field input,.field select,.field textarea{font-size:16px;border-radius:4px;background:white;max-width:100%;min-width:0}.form-panel fieldset{min-width:0}.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.field{min-width:0}.req{color:var(--accent)}
@media(min-width:1600px){.header{padding-inline:max(40px,calc((100vw - 1360px)/2))}.hero-layout{min-height:740px}}
@media(max-width:1150px){.header{padding-inline:26px;gap:20px}.header .desktop-nav{gap:19px}.desktop-nav a{font-size:10px}.header-actions{gap:10px}.header .button.small{padding-inline:17px;gap:15px}.wrap{width:calc(100% - 70px)}.hero-layout{min-height:600px;gap:24px}.hero h1{font-size:4.1vw}.hero-visual{min-height:490px}.photo-main{top:35px}.photo-small{top:270px}.heart-stamp{width:125px;height:125px;top:330px;right:-3%}.heart-stamp strong{font-size:16px}.visual-caption{bottom:10px;right:6%}.hero-actions{gap:22px}.hero-actions .button{padding-inline:22px;gap:23px;font-size:12px}.hero-spark{right:38%}.product-grid{gap:25px}.product-image img{height:270px}.product h3{font-size:20px}.occasion-grid{gap:25px}.occasion-grid h3{font-size:18px}.about{gap:50px}.shop-contact{padding-left:40px}}
@media(max-width:1000px){.header .desktop-nav>a:not(.button){display:block}}
@media(max-width:900px){.header .desktop-nav{display:none}.header-actions{margin-left:auto;gap:16px}.hero-layout{grid-template-columns:1fr 1fr;min-height:560px}.hero h1{font-size:4.05vw}.hero-visual{min-height:420px}.hero-desc{font-size:12px}.hero-actions{gap:20px}.hero-actions .button{gap:15px;padding:15px 20px}.hero-actions .text-link{font-size:11px;gap:13px}.photo-main{top:30px}.photo-small{top:210px}.heart-stamp{top:260px;width:106px;height:106px;gap:5px}.heart-stamp span{font-size:6px}.heart-stamp strong{font-size:14px}.visual-caption{font-size:8px;bottom:0;right:3%}.section-top{align-items:flex-start;gap:28px}.section-top>p{max-width:260px;padding-top:45px}.product-grid{gap:20px}.product-image img{height:230px}.product h3{font-size:17px}.occasion-grid{gap:18px}.occasion-grid article,.occasion-grid article+article{padding-right:18px}.occasion-grid h3{font-size:17px}.occasion-grid a{font-size:10px}.pack-grid article{padding:28px}.pack-grid h3{font-size:23px}.adoption{padding:30px}.adoption-grid{gap:22px}.adoption h4{font-size:12px}.faq{gap:40px}.shop{gap:30px}.shop-contact{padding-left:30px}.shop-contact>a:not(.text-link){font-size:26px}}
@media(max-width:700px){
html{scroll-padding-top:100px}body{font-size:14px}.wrap{width:calc(100% - 44px)}.header{min-height:86px;padding:8px 18px;gap:15px}.brand{width:86px}.brand-logo{width:75px;height:58px}.brand-jp{font-size:6px;margin-top:2px}.header-actions{gap:11px}.header .button.small{font-size:10px;padding:10px 15px;gap:12px}.menu-toggle{width:36px;height:36px;flex-shrink:0}.site-menu{top:86px;padding:30px 28px 45px}.site-menu>a:not(.button){font-size:18px;padding-block:14px}.menu-backdrop{top:86px}
.hero-layout{display:flex;flex-direction:column;align-items:stretch;min-height:0;gap:14px;padding-block:43px 0}.hero-copy{z-index:3}.hero .eyebrow{font-size:8px;margin-bottom:20px;letter-spacing:.15em}.hero h1{font-size:clamp(27px,7.7vw,44px);line-height:1.65;margin-bottom:20px}.hero-desc{font-size:11px;line-height:2.2;margin-bottom:22px}.hero-actions{gap:23px}.hero-actions .button{font-size:11px;padding:14px 20px;gap:24px}.hero-actions .text-link{font-size:10px;gap:15px}.hero-note{font-size:9px;margin-top:18px}.hero-visual{width:92%;align-self:center;min-height:0;height:395px;margin-top:8px}.photo-main{width:84%;top:0;right:0}.photo-main figcaption{font-size:9px;padding:6px 12px}.photo-small{width:36%;left:-2%;top:183px;padding:7px 7px 27px}.photo-small figcaption{font-size:7px;bottom:4px}.heart-stamp{top:227px;right:-1%;width:108px;height:108px}.heart-stamp strong{font-size:14px}.heart-stamp span{font-size:6px}.visual-orbit{width:90%;top:0;left:8%}.visual-caption{font-size:7px;bottom:22px;right:2%;letter-spacing:.06em}.hero-spark{right:8%;top:41%;font-size:32px}.dot-one{top:52%;right:88%;width:9px;height:9px}.dot-two{top:87%;right:39%;width:6px;height:6px}.ribbon-one{border-width:13px;width:210px;height:130px;top:-90px;left:-130px}.ribbon-two{width:190px;height:360px;right:-170px;top:41%;border-width:14px}.hero-bottom{padding-block:0 25px}.scroll-cue{font-size:7px;gap:10px}.scroll-line{height:29px}.hero-index{display:none}.motion-toggle{font-size:9px;padding-inline:0}.motion-icon{width:23px;height:23px}
.introduction{padding-block:65px 68px}.introduction:before{height:35px;margin-bottom:28px}.introduction h2{font-size:clamp(24px,6.2vw,34px);line-height:1.9}.introduction .eyebrow{font-size:8px;letter-spacing:.1em}.introduction>p:not(.eyebrow){font-size:11px;line-height:2.3;margin:23px 0}.gift-marquee{padding:12px 0 25px}.marquee-track>span{font-size:46px}.trust-strip>.wrap{gap:12px;padding-block:20px}.trust-strip span{font-size:9px}.trust-strip>.wrap>p{font-size:10px}.trust-strip a{font-size:10px}
.section{padding-block:70px}h2{font-size:27px;line-height:1.75}.eyebrow{font-size:8px;margin-bottom:20px}.section-top{display:block;margin-bottom:34px}.section-top>p{max-width:none;font-size:11px;margin-top:21px;padding:0}.product-grid{grid-template-columns:1fr;gap:43px}.product{width:94%}.product:nth-child(2){margin-top:0;margin-left:auto}.product-image img{height:auto;aspect-ratio:1.08}.product:nth-child(3) .product-image img{aspect-ratio:1.12}.product h3{font-size:23px}.product>p:not(.maker){min-height:0;font-size:12px}.product-foot{display:block;margin-top:35px}.product-foot>.text-link{margin-top:20px}.product-foot p{font-size:10px}.occasion-grid{grid-template-columns:1fr;gap:25px}.occasion-grid article,.occasion-grid article+article{position:relative;padding:0 0 25px 75px;border:0;border-bottom:1px solid var(--line);border-radius:0}.occasion-grid article:last-child{padding-bottom:0}.occasion-icon{position:absolute;left:0;top:0;width:52px;height:52px;line-height:52px;font-size:28px}.occasion-grid h3{font-size:19px;margin:10px 0 13px}.occasion-grid p{font-size:11px;margin-bottom:17px}.occasion-grid a{font-size:10px}.adoption{margin-top:40px;padding:28px 24px}.adoption>h3{font-size:22px;margin-bottom:23px}.adoption-grid{grid-template-columns:1fr;gap:22px}.adoption h4{font-size:13px}.packaging{padding-top:8px}.pack-grid{grid-template-columns:1fr;gap:20px}.pack-grid article{padding:27px 24px}.pack-grid h3{font-size:23px}.pack-grid p{font-size:11px}.budget-note{padding:27px 24px}.budget-note>strong{font-size:20px}.budget-note p{font-size:11px}.budget-note .button{font-size:11px;padding-inline:18px;gap:10px}.budget-note small{font-size:9px}.about{grid-template-columns:1fr;gap:30px}.about-mark{display:block;width:170px;margin:27px auto 0}.about-mark img{width:130px}.about-mark span{font-size:6px;margin-top:8px}.about-copy>p{font-size:12px}.about-copy>p.lead{font-size:19px}.source-links{gap:15px}.source-links a{font-size:10px}.guide-section{border-radius:45px 0 0 0}.steps{grid-template-columns:1fr;gap:27px;margin-block:32px}.steps li{grid-template-columns:45px 1fr;column-gap:18px;padding-top:20px}.steps span{grid-row:1 / 3;font-size:34px}.steps h3{margin:0 0 10px;font-size:15px}.steps p{font-size:11px}.note-box{display:block;padding:22px}.note-box p{margin-top:12px;font-size:10px}.faq{grid-template-columns:1fr;gap:30px}summary{font-size:12px;padding-block:22px}.faq details p{font-size:11px}.cta{border-radius:0 45px 0 0;padding-block:65px}.cta h2{font-size:33px}.cta p{font-size:11px;margin-top:20px}.cta .button{font-size:12px;padding-inline:21px}.cta .fine{font-size:9px}.shop{display:block}.shop h2{font-size:23px}.shop p{font-size:11px}.shop-contact{border:0;border-top:1px solid var(--line);padding:28px 0 0;margin-top:30px}.shop-contact>a:not(.text-link){font-size:31px}.footer{display:block;padding-block:30px 100px}.floating-contact{bottom:18px;right:18px;padding:14px 20px;gap:14px;font-size:11px}.back-top{width:40px;height:40px;bottom:22px;left:18px}.form-grid{grid-template-columns:1fr}.form-page h1{font-size:27px}.form-panel{padding:25px 20px}.form-steps{gap:16px;font-size:10px}.actions form{width:100%}
}
@media(min-width:470px) and (max-width:700px){.hero-visual{width:80%;height:460px}.photo-small{top:240px}.heart-stamp{top:280px;width:125px;height:125px}}
@media(max-width:360px){.header{padding-inline:12px}.header-actions{gap:8px}.header .button.small{padding-inline:11px;gap:7px;font-size:9px}.hero-actions{gap:15px}.hero-actions .button{gap:15px;padding-inline:17px}.hero-visual{height:350px}.photo-small{top:155px}.heart-stamp{top:198px;width:98px;height:98px}.heart-stamp strong{font-size:13px}.occasion-grid article,.occasion-grid article+article{padding-left:65px}.occasion-grid h3{font-size:17px}.package-art{left:-10px}.form-steps{gap:10px;font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}html[data-motion=on] .reveal.is-pending{opacity:1;transform:none}}

/* Editorial gift imagery and a clear explanation of purchasing as support. */
.hero-impact {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: -6px 0 24px;
  padding-bottom: 5px;
  color: #526345;
  border-bottom: 1px solid #c5ceb9;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.9;
  text-decoration: none;
}
.hero-impact:hover { color: var(--accent); }
.floating-photo picture { display: block; height: 100%; }
.photo-main {
  width: 95%;
  aspect-ratio: 1.08;
  top: 12px;
  right: -2%;
  border-radius: 44% 44% 10px 10px;
  transform: rotate(-3deg);
}
.photo-main img {
  transform: none;
  object-position: 58% center;
}
.photo-main figcaption { transform: rotate(3deg); left: 33%; bottom: 9%; }
.photo-small { aspect-ratio: .85; width: 34%; left: -6%; top: 310px; }
.photo-small img { object-position: center 58%; }
.photo-small figcaption { font-family: Georgia, serif; font-size: 7px; letter-spacing: .07em; }
.visual-caption { right: 1%; bottom: -11px; max-width: 77%; font-size: 9px; letter-spacing: .02em; text-align: right; }
.heart-stamp { right: -3%; top: 375px; }
html[data-motion=on] .photo-main { animation: float-editorial 10s ease-in-out infinite; }
@keyframes float-editorial {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-12px) rotate(-1deg); }
}
.introduction { padding-bottom: 90px; }
.support-section { padding-block: 90px; background: #f2f3eb; }
.support-layout { display: grid; grid-template-columns: .84fr 1.16fr; gap: 95px; align-items: center; }
.support-photo { margin: 0; }
.support-photo picture { display: block; }
.support-photo img { width: 100%; max-height: 565px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 130px 130px 10px 10px; }
.support-photo figcaption { font-size: 9px; text-align: center; color: var(--muted); margin-top: 16px; }
.support-copy h2 { font-size: 36px; line-height: 1.75; }
.support-copy h2 > span { color: var(--sage); }
.support-copy > p:not(.eyebrow) { font-size: 12px; line-height: 2.2; margin: 21px 0 0; }
.support-copy > p.support-lead { font-family: var(--serif); font-size: 18px; line-height: 1.9; }
.support-flow { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 27px 0; padding: 0; }
.support-flow li { padding-top: 13px; border-top: 1px solid #bbc4ae; }
.support-flow span { display: block; font-size: 8px; letter-spacing: .1em; color: #5b6b4e; }
.support-flow strong { display: block; font-size: 13px; font-weight: 600; margin: 10px 0; }
.support-flow p { font-size: 11px; line-height: 1.9; margin: 0; }
.gift-marquee { padding-top: 30px; }
/* Real catalogue photos retain their full packaging and product proportions. */
.product-image,
.product:nth-child(2) .product-image,
.product:nth-child(3) .product-image { border-radius: 10px; }
.product-image img { object-fit: contain; padding: 13px; background: #fff; }
.product-image:hover img { transform: scale(1.03); }
.product:nth-child(2) { margin-top: 36px; }
@media(max-width:1150px) {
  .photo-main { top: 30px; }
  .photo-small { top: 275px; }
  .heart-stamp { top: 345px; }
  .hero-impact { font-size: 11px; }
  .support-layout { gap: 55px; }
  .support-copy h2 { font-size: 32px; }
  .support-flow { gap: 15px; }
  .support-flow strong { font-size: 12px; }
  .support-flow p { font-size: 10px; }
}
@media(max-width:900px) {
  .hero-impact { font-size: 10px; gap: 8px; max-width: 100%; }
  .hero-layout { min-height: 590px; }
  .photo-small { top: 220px; }
  .heart-stamp { top: 275px; }
  .visual-caption { max-width: 82%; font-size: 7px; bottom: 0; }
  .support-layout { gap: 35px; grid-template-columns: .9fr 1.1fr; }
  .support-copy h2 { font-size: 27px; }
  .support-copy > p.support-lead { font-size: 16px; }
  .support-copy > p:not(.eyebrow) { font-size: 11px; }
  .support-flow { gap: 10px; }
  .support-flow strong { font-size: 11px; }
  .support-flow span { font-size: 7px; }
  .support-flow p { font-size: 9px; }
}
@media(max-width:700px) {
  .hero-layout { min-height: 0; }
  .hero-desc { margin-bottom: 18px; }
  .hero-impact { font-size: 11px; line-height: 1.9; gap: 7px; margin: -2px 0 23px; }
  .hero-note { font-size: 8px; }
  .photo-main { top: 0; right: 0; width: 88%; }
  .photo-main figcaption { font-size: 9px; left: 33%; }
  .photo-small { width: 34%; left: -2%; top: 191px; }
  .photo-small figcaption { font-size: 7px; letter-spacing: .025em; }
  .heart-stamp { right: -1%; top: 235px; }
  .visual-caption { left: 0; right: 0; bottom: 0; max-width: 100%; font-size: 9px; line-height: 1.8; text-align: center; }
  .introduction { padding-bottom: 60px; }
  .support-section { padding-block: 60px; }
  .support-layout { display: flex; flex-direction: column-reverse; align-items: stretch; gap: 35px; }
  .support-copy h2 { font-size: 30px; line-height: 1.75; }
  .support-copy > p.support-lead { font-size: 18px; }
  .support-copy > p:not(.eyebrow) { font-size: 12px; }
  .support-flow { gap: 13px; margin-block: 28px; }
  .support-flow span { font-size: 7px; }
  .support-flow strong { font-size: 11px; }
  .support-flow p { font-size: 10px; }
  .support-copy .text-link { font-size: 11px; gap: 18px; }
  .support-photo { width: 86%; margin-inline: auto; }
  .support-photo img { max-height: 440px; border-radius: 110px 110px 8px 8px; }
  .support-photo figcaption { font-size: 9px; line-height: 1.8; }
  .product:nth-child(2) { margin-top: 0; }
  .product-image img,.product:nth-child(3) .product-image img { aspect-ratio: 1.08; }
}
@media(min-width:470px) and (max-width:700px) {
  .photo-small { top: 245px; }
  .heart-stamp { top: 300px; }
}
@media(max-width:360px) {
  .hero-impact { font-size: 10px; gap: 5px; }
  .hero-note { max-width: 250px; font-size: 8px; }
  .photo-small { top: 160px; }
  .heart-stamp { top: 200px; }
  .support-copy h2 { font-size: 27px; }
  .support-flow { gap: 9px; }
  .support-flow strong { font-size: 10px; }
  .support-flow p { font-size: 9px; }
}

/* Shop story, official product photographs and an enquiry form on this page. */
.shop-introduction { padding-block:100px; align-items:start; gap:85px; border:0; }
.about-visual figure { margin:34px 0 0; width:84%; }
.about-visual figure img { width:100%; max-height:400px; object-fit:cover; border-radius:12px 100px 12px 12px; }
.about-visual figcaption { font-size:10px; color:var(--muted); margin-top:12px; }
.about-copy { padding-top:15px; }
.about-copy .lead { font-size:25px; }
.about-services { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:32px 0; padding-block:24px; border-block:1px solid var(--line); }
.about-services span { color:var(--sage); font-size:9px; letter-spacing:.1em; }
.about-services h3 { font-size:15px; font-family:var(--serif); margin:12px 0; }
.about-services p { font-size:12px; margin:0; }
.about-copy .about-operation { font-size:11px; color:var(--muted); }
.support-photo>img { width:100%; height:auto; max-height:580px; object-fit:cover; border-radius:130px 130px 8px 8px; }
.support-photo a { color:inherit; }
.contact-section { background:#edf0e7; border-radius:0 70px 0 0; }
.contact-heading { display:grid; grid-template-columns:.78fr 1.22fr; align-items:start; gap:65px; }
.contact-heading h2 { margin-bottom:24px; }
.contact-heading>div>p:not(.eyebrow,.fine) { font-size:13px; line-height:2.1; }
.phone-pair { display:grid; gap:24px; margin-block:32px; }
.phone-pair>div>span { display:block; font-size:11px; color:var(--muted); }
.phone-pair a { font-family:Georgia,serif; font-size:29px; line-height:1.5; color:var(--ink); text-decoration:none; }
.phone-pair a:hover { color:var(--accent); }
.phone-pair p { font-size:11px; margin:8px 0 0; line-height:1.9; }
.contact-form-shell { min-width:0; }
body.is-contact-visible .floating-contact { opacity:0; visibility:hidden; pointer-events:none; }
.contact-section { overflow-anchor:none; }
#contact-form { display:block; border:0; width:100%; background:transparent; scroll-margin-top:125px; }
.form-fallback { margin-top:18px; font-size:10px; text-align:right; color:var(--muted); }
:is(.embedded-form,.inline-form) { background:#edf0e7; }
:is(.embedded-form,.inline-form) .header,:is(.embedded-form,.inline-form) .footer,:is(.embedded-form,.inline-form) .skip,:is(.embedded-form,.inline-form) .form-page>.eyebrow,:is(.embedded-form,.inline-form) .form-page>h1 { display:none; }
:is(.embedded-form,.inline-form) .form-page { width:100%; max-width:none; padding:0; margin:0; }
:is(.embedded-form,.inline-form) .form-steps { margin:0 0 20px; gap:18px; font-size:11px; }
:is(.embedded-form,.inline-form) .form-panel { background:#fff; padding:30px; }
:is(.embedded-form,.inline-form) .form-page>.form-intro { font-size:12px; margin:0 0 20px; }
:is(.embedded-form,.inline-form) .form-page>.form-intro br { display:none; }
:is(.embedded-form,.inline-form) .field { margin-bottom:18px; }
:is(.embedded-form,.inline-form) .field>span { font-size:12px; }
:is(.embedded-form,.inline-form) .form-panel fieldset { margin-bottom:20px; }
:is(.embedded-form,.inline-form) .form-panel legend { font-size:19px; margin-bottom:18px; }
:is(.embedded-form,.inline-form) .field input,:is(.embedded-form,.inline-form) .field select,:is(.embedded-form,.inline-form) .field textarea { padding:11px; }
:is(.embedded-form,.inline-form) .form-panel .button { width:100%; }
:is(.embedded-form,.inline-form) .actions form { flex:1 1 100%; }
:is(.embedded-form,.inline-form) .confirmation div { grid-template-columns:155px minmax(0,1fr); padding-block:12px; gap:16px; }
.form-options { border-block:1px solid var(--line); margin:0 0 24px; }
.form-options summary { font-size:12px; padding:20px 25px 20px 0; }
.form-options summary span { font-size:10px; color:var(--muted); margin-left:8px; }
.form-options-body { padding-top:8px; }
.shop-contact .phone-pair { margin-block:24px; }
.shop-contact .phone-pair a { font-size:31px; }
@media(max-width:1000px) {
  .shop-introduction { gap:45px; }
  .contact-heading { grid-template-columns:.7fr 1.3fr; gap:30px; }
  .contact-heading h2 { font-size:29px; }
  .phone-pair a { font-size:26px; }
  :is(.embedded-form,.inline-form) .form-panel { padding:25px; }
}
@media(max-width:700px) {
  .shop-introduction { padding-block:65px; gap:32px; }
  .about-visual figure { width:100%; margin-top:25px; }
  .about-visual figure img { max-height:340px; border-radius:8px 75px 8px 8px; object-position:center 40%; }
  .about-copy { padding-top:0; }
  .about-copy .lead { font-size:22px; }
  .about-services { gap:20px; margin-block:25px; padding-block:20px; }
  .about-services h3 { font-size:14px; }
  .about-services p { font-size:11px; }
  .support-photo>img { max-height:440px; }
  .contact-section { border-radius:0 45px 0 0; }
  .contact-heading { grid-template-columns:1fr; gap:30px; }
  .contact-heading h2 { font-size:31px; }
  .contact-heading>div>p:not(.eyebrow,.fine) { font-size:12px; }
  .contact-heading .phone-pair { grid-template-columns:1fr 1fr; gap:20px; margin-bottom:0; }
  .contact-heading .phone-pair a { font-size:22px; white-space:nowrap; }
  .contact-heading .phone-pair p { font-size:10px; }
  :is(.embedded-form,.inline-form) .form-panel { padding:24px 20px; }
  :is(.embedded-form,.inline-form) .form-steps { font-size:10px; gap:13px; }
  #contact-form { scroll-margin-top:95px; }
  .shop-contact .phone-pair a { font-size:29px; }
}
@media(max-width:360px) {
  .contact-heading .phone-pair { grid-template-columns:1fr; }
  :is(.embedded-form,.inline-form) .form-panel { padding:22px 15px; }
}
@media(min-width:560px) {
  :is(.embedded-form,.inline-form) .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:18px; }
}
@media(max-width:559px) {
  :is(.embedded-form,.inline-form) .confirmation div { grid-template-columns:1fr; gap:5px; }
}

.inline-form>.eyebrow{display:none}.inline-form-title{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 20px}.inline-form>.form-intro{font-size:12px;margin:0 0 20px}.inline-form>.form-intro br{display:none}

/* A compact shelf: one square image per card, with the full photographs in a dialog. */
.products-section { background:#f5f1e8; }
body.is-catalog-visible .floating-contact { opacity:0; visibility:hidden; pointer-events:none; }
.products-section>.section { padding-top:85px; }
.catalog-toolbar { position:sticky; top:107px; z-index:19; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 18px; background:#f5f1e8f5; padding:16px 0; border-block:1px solid #ddd4c3; margin-bottom:28px; backdrop-filter:blur(12px); }
.catalog-filters { display:flex; flex-wrap:wrap; gap:7px; }
.catalog-filters button { display:inline-flex; align-items:center; justify-content:center; gap:7px; white-space:nowrap; padding:9px 14px; min-height:42px; border:1px solid #d4cbb9; border-radius:30px; background:#fffcf5; color:var(--body); font-size:11px; cursor:pointer; }
.catalog-filters button[aria-pressed=true] { color:#fff; background:var(--ink); border-color:var(--ink); }
.catalog-filters button:hover { border-color:var(--sage); }
.filter-count { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 5px; font-size:10px; border-radius:50%; background:#e7e9df; color:#526248; }
[aria-pressed=true]>.filter-count { background:#ffffff24; color:white; }
.catalog-count { font-size:10px; margin:0; color:var(--muted); white-space:nowrap; }
.catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:23px 18px; align-items:stretch; }
.catalog-card { min-width:0; background:#fffdf7; border:1px solid #e3dac9; border-bottom:3px solid #d4c3a7; border-radius:8px; padding:10px; box-shadow:0 4px 9px #7d62460a; scroll-margin-top:220px; }
.catalog-card:target { outline:2px solid var(--sage); outline-offset:5px; }
.catalog-card:focus { outline:2px solid var(--sage); outline-offset:5px; }
.catalog-gallery { position:relative; min-width:0; aspect-ratio:1; overflow:hidden; border-radius:5px; background:#eee7d9; }
.catalog-viewport { display:flex; width:100%; height:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
.catalog-viewport::-webkit-scrollbar { display:none; }
.catalog-photo { flex:0 0 100%; display:block; width:100%; height:100%; min-width:0; scroll-snap-align:start; scroll-snap-stop:always; }
.catalog-photo img { width:100%; height:100%; object-fit:cover; object-position:center; transition:filter .25s; }
.catalog-photo:hover img { filter:brightness(.96); }
.photo-counter { position:absolute; pointer-events:none; right:9px; top:9px; display:inline-flex; gap:5px; align-items:center; color:#fff; background:#252d26b8; border-radius:20px; font-size:10px; padding:4px 9px; }
.photo-prev,.photo-next { position:absolute; top:calc(50% - 18px); display:flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid #ffffffb3; border-radius:50%; color:#30362e; background:#fffffff0; font:25px/1 Georgia,serif; cursor:pointer; box-shadow:0 2px 9px #242b2517; }
.photo-prev { left:7px; }.photo-next { right:7px; }
.catalog-body { padding:13px 3px 2px; }
.catalog-maker { display:flex; align-items:center; gap:6px; min-width:0; width:fit-content; max-width:100%; margin:0 0 10px; border-radius:20px; background:#edf0e4; color:#536149; padding:4px 9px; font-size:10px; line-height:1.6; }
.catalog-maker>span:last-child { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.catalog-maker>span:first-child { font-size:14px; line-height:1; }
.catalog-maker small { font-size:8px; margin-right:4px; }
.catalog-card h3 { margin:0 0 7px; font:600 17px/1.7 var(--serif); letter-spacing:0; height:1.7em; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
.catalog-craft { margin:0 0 8px; color:#7b623e; border-left:2px solid #d7c39e; padding-left:7px; font-size:10px; line-height:1.7; height:1.7em; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.catalog-description { margin:0 0 12px; font-size:11px; line-height:1.9; height:3.8em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.catalog-actions { display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid #e4ddce; padding-top:6px; }
.catalog-consult { display:inline-flex; align-items:center; justify-content:space-between; gap:10px; min-height:40px; font-size:11px; color:#4c6042; font-weight:bold; text-decoration:none; }
.catalog-consult:hover { color:var(--accent); }
.catalog-source { display:inline-flex; align-items:center; min-height:36px; font-size:9px; color:var(--muted); text-decoration:none; white-space:nowrap; }
.catalog-meta { display:flex; align-items:center; justify-content:space-between; gap:6px; font-size:8px; color:#7b8174; margin-top:4px; }
.catalog-meta>span { color:var(--sage); }
.catalog-more { display:flex; justify-content:center; margin-top:38px; }.catalog-more .button { min-width:265px; }
.catalog-story { display:flex; flex-direction:column; justify-content:center; padding:26px 22px; background:#e3e9d9; border:1px solid #cbd4bb; border-bottom:3px solid #bbc8a6; border-radius:8px; }
.catalog-story[data-after="18"],.catalog-story[data-after="36"] { background:#f0dfc5; border-color:#dec5a3; border-bottom-color:#ceb18d; }
.story-flower { font-size:42px; line-height:1; color:#7b8c63; margin-bottom:27px; }
.catalog-story .eyebrow { font-size:8px; letter-spacing:.08em; margin:0 0 15px; }
.catalog-story h3 { font:500 24px/1.8 var(--serif); margin:0 0 20px; }
.catalog-story>p:not(.eyebrow) { font-size:12px; line-height:2; margin:0 0 24px; }
.catalog-story>a { display:flex; justify-content:space-between; gap:10px; font-size:10px; text-decoration:none; padding-bottom:6px; border-bottom:1px solid #8c9a7866; }
.product-dialog { width:min(1020px,calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 48px); padding:0; border:1px solid #e2decf; border-radius:12px; color:var(--body); background:#fffdf7; box-shadow:0 20px 100px #1520123b; }
.product-dialog::backdrop { background:#202820bd; backdrop-filter:blur(5px); }
body:has(.product-dialog[open]) { overflow:hidden; }
.product-dialog-layout { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; position:relative; }
.dialog-close { position:absolute; top:12px; right:12px; width:42px; height:42px; z-index:2; border:1px solid var(--line); border-radius:50%; background:#fffffff0; color:var(--ink); font-size:25px; cursor:pointer; }
.dialog-photo-area { min-width:0; background:#f1eee6; padding:28px 20px 18px; }
.dialog-photo { display:block; width:100%; height:min(66dvh,550px); object-fit:contain; }
.dialog-photo-nav { display:flex; justify-content:center; align-items:center; gap:22px; padding-top:14px; min-height:50px; }
.dialog-photo-nav button { width:38px; height:38px; border:1px solid #c6cdbb; border-radius:50%; color:var(--ink); background:white; font-size:25px; cursor:pointer; }
.dialog-counter { font-size:12px; color:var(--muted); }
.dialog-copy { padding:55px 34px 35px; }
.dialog-maker { font-size:11px; color:var(--sage); margin:0 0 17px; }
.dialog-copy h2 { font-size:28px; line-height:1.7; margin-bottom:20px; }
.dialog-craft { color:#8a6e43; font-size:12px; }.dialog-description { font-size:13px; line-height:2.1; }
.dialog-copy .button { width:100%; font-size:12px; padding:15px; margin-block:16px 18px; }
.dialog-source { font-size:11px; }
.product-selection-note { font-size:12px; border-left:3px solid var(--sage); padding:14px 18px; background:#fffdf5; color:#4d6041; margin:0 0 22px; }
@media(max-width:1099px) and (min-width:701px) {
  .catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 16px; }
}
@media(max-width:700px) {
  .products-section>.section { padding-top:60px; }
  .catalog-toolbar { top:85px; gap:8px; padding-block:11px; margin-bottom:20px; }
  .catalog-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:6px; padding-bottom:3px; }
  .catalog-filters::-webkit-scrollbar { display:none; }
  .catalog-filters button { gap:4px; padding:8px; font-size:10px; min-height:40px; }
  .filter-count { height:19px; min-width:19px; font-size:9px; }
  .catalog-count { font-size:9px; }
  .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 10px; }
  .catalog-card { padding:7px; border-radius:6px; }
  .catalog-body { padding:10px 2px 1px; }
  .catalog-maker { font-size:9px; padding:3px 6px; gap:4px; margin-bottom:8px; }
  .catalog-maker small { display:none; }.catalog-maker>span:first-child { font-size:12px; }
  .catalog-card h3 { font-size:15px; line-height:1.7; height:3.4em; -webkit-line-clamp:2; }
  .catalog-craft { font-size:9px; margin-bottom:7px; padding-left:5px; }
  .catalog-description { font-size:10px; line-height:1.9; margin-bottom:8px; }
  .catalog-actions { display:block; padding-top:4px; }
  .catalog-consult { display:flex; font-size:10px; min-height:38px; gap:4px; }
  .catalog-source { font-size:8px; min-height:24px; }
  .catalog-meta { font-size:7px; gap:3px; margin-top:3px; }
  .photo-counter { top:6px; right:6px; font-size:8px; padding:3px 7px; }
  .photo-prev,.photo-next { width:30px; height:32px; top:calc(50% - 16px); font-size:22px; }
  .photo-prev { left:4px; }.photo-next { right:4px; }
  .catalog-story { padding:19px 14px; }
  .story-flower { font-size:32px; margin-bottom:22px; }
  .catalog-story .eyebrow { font-size:6px; margin-bottom:14px; }
  .catalog-story h3 { font-size:19px; line-height:1.8; margin-bottom:17px; }
  .catalog-story>p:not(.eyebrow) { font-size:10px; line-height:2; margin-bottom:20px; }
  .catalog-story>a { font-size:9px; }
  .product-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); border-radius:9px; }
  .product-dialog-layout { grid-template-columns:1fr; }
  .dialog-photo-area { padding:40px 14px 10px; }
  .dialog-photo { height:38dvh; }
  .dialog-copy { padding:22px 22px 28px; }
  .dialog-copy h2 { font-size:24px; margin-bottom:15px; }
  .dialog-copy .fine { font-size:10px; }
}
@media(max-width:360px) {
  .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 9px; }
  .catalog-card { padding:6px; }
  .catalog-card h3 { font-size:13px; }
  .catalog-maker { font-size:8px; }.catalog-meta { font-size:6px; }
  .catalog-story { padding:16px 11px; }.catalog-story h3 { font-size:17px; }
}

/* The hero shows the real assortment: sweets and everyday handmade goods. */
.hero-assortment { width:100%; height:auto; min-height:0; margin:0; padding:12px 0; }
.assortment-item figcaption { pointer-events:none; }
.assortment-photo:focus-visible { outline:3px solid var(--sage); outline-offset:5px; }
.assortment-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.assortment-heading>span { font-size:9px; letter-spacing:.15em; color:var(--sage); }
.assortment-heading>strong { font-family:var(--serif); font-size:23px; font-weight:500; color:var(--ink); }
.assortment-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.assortment-item { position:relative; min-width:0; margin:0; }
.assortment-photo { display:block; aspect-ratio:1.12; overflow:hidden; background:#f2eee3; border-radius:9px; }
.assortment-sweets .assortment-photo { border-top-left-radius:90px; }
.assortment-textiles .assortment-photo { border-top-right-radius:70px; }
.assortment-cake .assortment-photo { border-bottom-left-radius:70px; }
.assortment-pottery .assortment-photo { border-bottom-right-radius:90px; }
.assortment-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.assortment-photo:hover img { transform:scale(1.025); }
.assortment-cake img { object-position:center 60%; }
.assortment-pottery img { object-position:46% 66%; }
.assortment-item figcaption { position:absolute; pointer-events:none; left:11px; bottom:11px; display:flex; flex-direction:column; gap:2px; max-width:calc(100% - 22px); padding:7px 13px; border:1px solid #fff; border-radius:5px; background:#fffffff2; box-shadow:0 2px 12px #2935250a; color:var(--ink); }
.assortment-item figcaption>span { font-size:12px; font-weight:600; letter-spacing:.03em; }
.assortment-item figcaption>small { font-size:8px; color:#5c6852; }
.assortment-cake figcaption { left:auto; right:11px; }
.assortment-source { margin:15px 0 0; font-size:9px; line-height:1.9; text-align:right; color:var(--muted); }
@media(min-width:701px) and (max-width:1000px) {
  .assortment-heading { align-items:flex-start; flex-direction:column; gap:7px; margin-bottom:14px; }
  .assortment-heading>strong { font-size:22px; }
  .assortment-grid { gap:10px; }
  .assortment-item figcaption { left:7px; bottom:7px; padding:5px 8px; max-width:calc(100% - 14px); }
  .assortment-item figcaption>span { font-size:10px; }.assortment-item figcaption>small { font-size:7px; }
  .assortment-cake figcaption { left:auto; right:7px; }
}
@media(max-width:700px) {
  .hero-assortment { width:100%; height:auto; min-height:0; margin:15px 0 0; padding:0; }
  .assortment-heading { gap:10px; margin-bottom:14px; }
  .assortment-heading>span { font-size:7px; letter-spacing:.08em; }
  .assortment-heading>strong { font-size:20px; }
  .assortment-grid { gap:10px; }
  .assortment-photo { aspect-ratio:1; }
  .assortment-sweets .assortment-photo { border-top-left-radius:60px; }
  .assortment-textiles .assortment-photo { border-top-right-radius:45px; }
  .assortment-cake .assortment-photo { border-bottom-left-radius:45px; }
  .assortment-pottery .assortment-photo { border-bottom-right-radius:60px; }
  .assortment-item figcaption { left:7px; bottom:7px; padding:5px 8px; max-width:calc(100% - 14px); }
  .assortment-item figcaption>span { font-size:10px; }.assortment-item figcaption>small { font-size:7px; }
  .assortment-cake figcaption { left:auto; right:7px; }
  .assortment-source { font-size:8px; margin-top:12px; }
}
@media(max-width:360px) {
  .assortment-heading>span { font-size:6px; }.assortment-heading>strong { font-size:18px; }
  .assortment-grid { gap:8px; }
  .assortment-item figcaption { padding:4px 6px; }
  .assortment-item figcaption>span { font-size:9px; }.assortment-item figcaption>small { font-size:6px; }
}

/* A quiet, original neighbourhood map in the shop's paper and sage palette. */
.shop { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
.shop>div { min-width:0; }
.shop-access { grid-column:1 / -1; margin-top:10px; padding-top:46px; border-top:1px solid var(--line); min-width:0; }
.access-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:28px; }
.access-heading .eyebrow { margin-bottom:13px; }
.access-heading h3 { margin:0; font:500 28px/1.7 var(--serif); }
.access-heading>p { margin:0; font-size:12px; color:var(--muted); }
.access-layout { display:grid; grid-template-columns:minmax(0,1fr) 265px; align-items:center; gap:38px; }
.access-map { margin:0; min-width:0; }
.access-map svg { display:block; width:100%; height:auto; border:1px solid #e5e1d6; border-radius:22px; }
.map-label { font-family:var(--sans, 'Noto Sans JP', sans-serif); font-weight:500; }
.map-shop-name { font-family:var(--serif); font-weight:600; }
.access-map figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 15px; padding-top:12px; color:var(--muted); font-size:9px; line-height:1.9; }
.access-map figcaption a { text-decoration:underline; text-underline-offset:3px; }
.shop .access-address { font-size:13px; line-height:2.1; }
.access-address>span { display:block; margin-bottom:10px; font:600 20px/1.8 var(--serif); }
.access-directions dl { margin:25px 0 30px; }
.access-directions dl>div { padding:13px 0; border-top:1px solid var(--line); }
.access-directions dt { color:var(--sage); font-size:11px; font-weight:600; margin-bottom:5px; }
.access-directions dd { margin:0; font-size:12px; line-height:1.9; }
.access-google { font-size:11px; padding:14px 19px; gap:15px; width:100%; justify-content:space-between; }
@media(max-width:1000px) {
  .access-layout { grid-template-columns:minmax(0,1fr) 210px; gap:24px; }
  .access-heading h3 { font-size:24px; }
  .access-address>span { font-size:18px; }
  .shop .access-address { font-size:12px; }
  .access-google { font-size:10px; padding-inline:13px; }
}
@media(max-width:700px) {
  .shop { display:block; }
  .shop-access { margin-top:38px; padding-top:30px; }
  .access-heading { display:block; margin-bottom:22px; }
  .access-heading h3 { font-size:23px; }
  .access-heading>p { margin-top:12px; font-size:11px; }
  .access-heading>p br { display:none; }
  .access-layout { grid-template-columns:1fr; gap:25px; }
  .access-map svg { border-radius:14px; }
  .access-map figcaption { font-size:9px; padding-top:10px; }
  .access-directions dl { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin:20px 0; }
  .access-directions dd { font-size:11px; }
  .access-google { width:auto; font-size:11px; gap:25px; }
  .catalog-card { scroll-margin-top:235px; }
}
