:root{
  --paper:#fff;
  --ink:#151515;
  --muted:#6d6466;
  --pink:#f5c9c6;
  --pink-soft:#fff1f4;
  --purple:#b7a8cc;
  --orange:#fcbb76;
  --green:#cfe5dc;
  --blue:#cfe0ef;
  --line:#111;
  --shadow:0 12px 32px rgba(45,20,25,.14);
  --phone:400px;
  --serif:"Noto Serif JP",serif;
  --sans:"Noto Sans JP",-apple-system,BlinkMacSystemFont,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f9e8ec;color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.8;letter-spacing:.02em}
body:before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(135deg,rgba(255,255,255,.78) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.78) 50%,rgba(255,255,255,.78) 75%,transparent 75%,transparent);background-size:54px 54px;opacity:.55}
body:after{content:"";position:fixed;inset:0;z-index:-3;background:linear-gradient(120deg,#fff8f9 0%,#fff0f4 42%,#f7dce4 100%)}
img,video{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}.skip-link{position:absolute;left:-999px;top:0;background:#fff;padding:.8rem;z-index:99999}.skip-link:focus{left:0}.pc-only{display:block}.site-canvas{position:relative;min-height:100vh}.phone-site{width:100%;max-width:var(--phone);margin:0 auto;background:#fff;min-height:100vh;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.02)}
.pc-brand__logo{position:fixed;left:30px;bottom:32px;width:min(320px,calc(50vw - 260px));z-index:5}.pc-brand__logo img{width:100%;height:auto;background:#fff;border-radius:8px;padding:8px}.pc-brand__copy{position:fixed;left:calc(25% - 100px);top:50%;transform:translate(-50%,-50%);z-index:5;font-family:var(--serif);font-size:clamp(20px,2.4vw,36px);line-height:1.35;letter-spacing:.12em;writing-mode:vertical-rl;text-orientation:mixed;white-space:pre-line;margin:0;color:#2b2023;text-shadow:0 1px 0 rgba(255,255,255,.8)}
.fixed-cta{position:fixed;right:30px;bottom:30px;z-index:9000;display:flex;gap:20px;list-style:none;margin:0;padding:0}.fixed-cta__item{width:100px;height:100px}.fixed-cta__item a{position:relative;display:block;width:100%;height:100%;border:1px solid #fff;color:#fff;font-family:var(--serif);box-shadow:0 10px 24px rgba(60,20,30,.12)}.fixed-cta__item--reserve a{background:var(--pink)}.fixed-cta__item--catalog a{background:var(--purple)}.fixed-cta__item--phone a{background:var(--orange)}.fixed-cta__item a:before{content:"";position:absolute;top:26px;left:50%;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;border:2px solid #fff}.fixed-cta__item--phone a:before{border-radius:8px}.fixed-cta__item span{position:absolute;left:0;right:0;bottom:16px;text-align:center;font-size:15px;line-height:1.25}.phone-header{position:fixed;top:0;left:0;right:0;margin:0 auto;width:100%;max-width:var(--phone);height:70px;display:flex;align-items:center;padding:10px;z-index:8000;background:rgba(255,255,255,.9);backdrop-filter:blur(12px)}.phone-header__logo{width:160px}.phone-header__logo img{width:100%;height:auto}.menu-toggle{width:46px;height:46px;margin-left:auto;background:transparent;border:0;padding:9px;cursor:pointer}.menu-toggle span{display:block;width:100%;height:2px;background:#111;margin:7px 0;transition:.25s}.menu-open .menu-toggle span:nth-child(1){transform:translateY(9px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.primary-nav{position:fixed;top:70px;left:0;right:0;margin:auto;width:100%;max-width:var(--phone);background:rgba(255,255,255,.98);max-height:0;overflow:hidden;transition:max-height .3s ease;box-shadow:0 18px 30px rgba(0,0,0,.08)}.menu-open .primary-nav{max-height:calc(100vh - 70px);overflow-y:auto}.primary-nav ul,.footer-nav ul{list-style:none;margin:0;padding:0}.primary-nav a{display:block;padding:15px 22px;border-bottom:1px solid #eee;font-weight:700;font-size:14px}.keyvisual{width:100%;position:relative;padding-top:180%;background:#f6dce5}.keyvisual__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.music-button{position:absolute;right:18px;top:86px;width:42px;height:28px;border:0;border-radius:20px;background:rgba(255,255,255,.85);color:#4b3940;box-shadow:0 8px 20px rgba(0,0,0,.08);z-index:3}.section-line{position:relative;text-align:center;padding:34px 0 48px}.section-line:before{content:"";position:absolute;top:53px;left:6%;right:6%;height:1px;background:#111}.section-title{position:relative;z-index:1;display:inline-block;background:#fff;padding:0 8px;text-align:center}.section-title h2{font-family:var(--serif);font-size:22px;line-height:1.3;margin:2px 0 0;font-weight:400}.section-kana{display:block;color:#a06478;text-transform:uppercase;font-size:11px;letter-spacing:.18em;font-weight:700}.section-title--plain{display:block;background:transparent;padding:0;margin:0 auto 22px}.section-title--plain h2{font-size:24px}.section-lead{width:86%;margin:0 auto 24px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7}.event-banners{width:85%;margin:16px auto 0;display:grid;gap:14px}.event-banner{display:block;position:relative;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);background:#fff}.event-banner img{width:100%;aspect-ratio:1000/330;object-fit:cover}.event-banner span{position:absolute;left:12px;bottom:10px;background:rgba(255,255,255,.86);border-radius:99px;padding:3px 12px;font-size:12px;font-weight:700;color:#8a5364}.message{padding:34px 0;background:url('../images/001-2.jpg') center/cover no-repeat}.message__inner{width:90%;margin:auto;background:#fff;border-radius:34px;padding:26px 14px 40px;text-align:center;box-shadow:var(--shadow)}.message__photos{display:grid;gap:10px;margin-bottom:24px}.message__photos img{width:100%;height:150px;object-fit:cover;border-radius:22px}.message h3{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1.45;margin:0 0 16px}.message__concept{font-family:var(--serif);font-size:28px;line-height:1.35;margin:0 0 18px;white-space:normal}.message__text{font-size:13px;line-height:2.05;text-align:left;margin:0 6px;color:#111}.product-section{padding:30px 0}.product-section--pink{background:#fff}.product-box{position:relative;width:100%;margin:0 auto;padding:26px 0 38px;text-align:center}.product-box:before{content:"";position:absolute;inset:0 25px;border:1px solid #111;border-radius:24px;background:#fff;z-index:0}.product-box:after{content:"";position:absolute;top:70px;left:25px;right:25px;height:1px;background:#111;z-index:1}.product-box>*{position:relative;z-index:2}.main-product{position:relative;margin:28px auto 0;width:260px;height:400px;background:#eee;z-index:2}.main-product:before{content:"";position:absolute;left:50%;bottom:100%;transform:translateX(-50%);width:100vw;max-width:var(--phone);height:8px;background:var(--pink)}.main-product img{width:100%;height:100%;object-fit:cover}.thumb-strip{position:relative;display:flex;gap:8px;overflow-x:auto;background:#fff;padding:12px 22px 18px;margin-top:0;scroll-snap-type:x mandatory}.thumb-strip:after{content:"";position:absolute;left:0;right:0;bottom:0;height:8px;background:var(--pink)}.thumb-strip figure{position:relative;flex:0 0 80px;margin:0;scroll-snap-align:center}.thumb-strip img{width:80px;height:122px;object-fit:cover}.thumb-strip figcaption,.horizontal-gallery figcaption{position:absolute;left:4px;bottom:4px;background:rgba(255,255,255,.85);border-radius:9px;padding:1px 5px;font-size:9px;color:#8a5364}.plan-section{background:#fff;padding:96px 0 18px;position:relative}.pill-title{position:absolute;top:22px;left:30px;right:30px;margin:0;height:56px;border-radius:28px;background:var(--pink);color:#fff;text-align:center;line-height:56px;font-family:var(--serif);font-size:22px;font-weight:400}.plan-card{margin:0 0 12px}.plan-card__banner{display:block;width:100%;border:0;background:transparent;padding:0;position:relative;cursor:pointer}.plan-card__banner img{width:100%;height:140px;object-fit:cover}.plan-card__banner span{position:absolute;left:24px;right:24px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.85);border:1px solid #fff;border-radius:99px;padding:8px;color:#4b3940;font-family:var(--serif);font-size:20px}.plan-card__body{background:#f5f3f3;text-align:center;padding:22px 20px 24px}.plan-price{font-family:var(--serif);font-size:30px;margin:0 0 8px}.plan-card__body p{margin:0 0 14px}.plan-card ul{display:grid;grid-template-columns:1fr 1fr;gap:8px;list-style:none;margin:0;padding:0}.plan-card li{background:#fff;border-radius:99px;padding:6px;font-size:12px}.guarantee-section{background:#fff}.feature-list{width:86%;margin:18px auto 0;display:grid;gap:14px}.feature-card{background:#fff;border:1px solid #eee;border-radius:18px;padding:14px;box-shadow:var(--shadow);text-align:center}.feature-card img{width:100%;height:120px;object-fit:cover;border-radius:12px}.feature-card h3{font-family:var(--serif);font-size:18px;margin:12px 0 6px}.feature-card p{margin:0;color:var(--muted);font-size:12px}.flow-section{padding:40px 0;background:#fff}.flow-list{display:flex;overflow-x:auto;gap:14px;padding:0 20px 18px;scroll-snap-type:x mandatory}.flow-card{flex:0 0 310px;background:#fff;border-radius:18px;box-shadow:var(--shadow);overflow:hidden;scroll-snap-align:center}.flow-card figure{position:relative;margin:0;padding-top:65%;overflow:hidden}.flow-card figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.flow-card__text{padding:26px 24px 30px;text-align:center}.flow-card__text span{display:block;font-family:var(--serif);font-size:38px;line-height:1;margin-bottom:8px}.flow-card__text h3{font-family:var(--serif);font-size:19px;line-height:1.45;margin:0 0 12px}.flow-card__text p{font-size:13px;color:#111;margin:0;text-align:left}.related-section{padding:36px 0;background:var(--pink-soft);overflow:hidden}.horizontal-gallery{display:flex;gap:12px;overflow-x:auto;padding:0 16px 20px;scroll-snap-type:x mandatory}.horizontal-gallery figure{position:relative;flex:0 0 135px;margin:0;border-radius:8px;overflow:hidden;box-shadow:var(--shadow);scroll-snap-align:center;background:#fff}.horizontal-gallery img{width:100%;height:180px;object-fit:cover}.news-section{background:#fff;padding-bottom:54px}.news-list{width:82%;margin:18px auto 0;text-align:left}.news-item{display:grid;grid-template-columns:86px 1fr;gap:12px;border-bottom:1px solid #eee;padding:14px 0}.news-item time{font-size:11px;color:#a06478;font-weight:700}.news-item h3{margin:0 0 4px;font-size:13px}.news-item p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.store-section{padding:36px 0 46px;background:var(--pink-soft)}.store-card{width:86%;margin:auto;background:#fff;border-radius:18px;padding:16px;box-shadow:var(--shadow)}.store-images{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.store-images img{height:105px;width:100%;object-fit:cover;border-radius:10px}.store-info h3{font-family:var(--serif);font-size:18px;margin:0 0 8px}.store-info p{margin:0 0 5px}.store-phone{color:#a06478;font-weight:700}.button-row{display:flex;gap:8px;flex-wrap:wrap}.button-row--center{justify-content:center}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:99px;min-height:34px;padding:0 18px;font-size:12px;border:1px solid transparent;font-weight:700}.btn-primary{background:#b45f78;color:#fff}.btn-outline{background:#fff;border-color:#b45f78;color:#b45f78}.page-hero{position:relative;min-height:330px;display:grid;place-items:center;overflow:hidden}.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.page-hero__overlay{position:absolute;inset:0;background:rgba(50,20,30,.45)}.page-hero__text{position:relative;z-index:1;color:#fff;text-align:center;padding:40px 20px}.page-hero__text h1{font-family:var(--serif);font-size:34px;line-height:1.25;margin:4px 0 10px;font-weight:400}.staff-grid{padding:34px 20px;display:grid;gap:18px;background:#fff}.staff-card{background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:14px}.staff-card img{width:100%;height:300px;object-fit:cover;border-radius:14px}.staff-card h2{font-family:var(--serif);font-size:23px;font-weight:400;margin:16px 0 2px}.staff-role{color:#a06478;font-weight:700}.staff-card table{width:100%;border-collapse:collapse;margin:12px 0}.staff-card th,.staff-card td{border-top:1px solid #eee;text-align:left;padding:8px;vertical-align:top;font-size:12px}.staff-card th{width:95px;color:#a06478}.booking-placeholder,.contact-layout,.privacy-content,.page-content,.reserve-lead{width:90%;margin:30px auto;background:#fff;border-radius:18px;padding:18px;box-shadow:var(--shadow)}.reserve-lead{text-align:center}.reserve-lead img{border-radius:14px;margin-bottom:14px}.calendar-mock{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:18px 0}.calendar-mock strong,.calendar-mock span{background:#fff7f9;border:1px solid #eee;border-radius:8px;min-height:38px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:11px}.calendar-mock strong{background:#b45f78;color:#fff}.calendar-mock .is-open small{color:#17844a}.calendar-mock .is-low small{color:#b78220}.calendar-mock .is-closed{opacity:.45}.form-mock{display:grid;gap:12px}.form-mock label{display:grid;gap:5px;font-weight:700;color:#a06478}.form-mock input,.form-mock textarea{width:100%;border:1px solid #eee;border-radius:10px;padding:10px;font:inherit}.form-mock textarea{min-height:130px}.privacy-content h2{font-family:var(--serif);font-size:20px;border-left:4px solid #b45f78;padding-left:10px;margin-top:24px}.footer-cta{position:relative;isolation:isolate;background-size:cover;background-position:center;padding:56px 24px;color:#fff;text-align:center}.footer-cta:before{content:"";position:absolute;inset:0;background:rgba(55,35,42,.65);z-index:-1}.footer-cta__inner{border:1px solid rgba(255,255,255,.75);border-radius:14px;padding:22px 14px;background:rgba(80,50,60,.3)}.footer-cta h2{font-family:var(--serif);font-size:25px;line-height:1.35;font-weight:400;margin:4px 0 8px}.footer-cta .btn-outline{background:#fff}.site-footer{background:#4b3940;color:#fff;padding:32px 24px 94px}.footer-brand img{max-width:160px;background:#fff;border-radius:8px;padding:8px;margin:0 auto 12px}.footer-brand{text-align:center}.footer-brand__name{font-family:var(--serif);font-size:18px}.footer-nav ul{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:24px 0}.footer-nav a{font-size:12px;opacity:.9}.copyright{text-align:center;margin:20px 0 0;font-size:11px;opacity:.7}.page-top{position:fixed;right:16px;bottom:18px;width:42px;height:42px;border:0;border-radius:50%;background:#b45f78;color:#fff;z-index:9999;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s}.page-top.is-visible{opacity:1;pointer-events:auto}.reveal{opacity:0;transform:translateY(26px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:1372px){.pc-brand__copy{left:calc(25% - 100px)}.pc-brand__logo{width:calc(50vw - 260px)}}
@media(max-width:1154px){.pc-brand__logo{display:none}.pc-brand__copy{display:none}}
@media(max-width:760px){body:before,body:after{display:none}body{background:#fff;padding-bottom:80px}.phone-site{max-width:none}.phone-header,.primary-nav{max-width:none}.fixed-cta{width:240px;height:80px;left:0;right:auto;bottom:0;gap:0}.fixed-cta__item{width:80px;height:80px}.fixed-cta__item a{box-shadow:none}.fixed-cta__item a:before{width:28px;height:28px;top:20px}.fixed-cta__item span{bottom:10px;font-size:12px;line-height:1.25}.pc-only{display:none}.page-top{bottom:92px}.message__photos img{height:145px}.event-banners,.feature-list,.store-card,.news-list{width:88%}}
/* Generic WordPress page compatibility */
.section{padding:34px 0;background:#fff}.section-heading{width:88%;margin:0 auto 24px;text-align:center}.section-heading h1,.section-heading h2{font-family:var(--serif);font-size:28px;line-height:1.35;font-weight:400;margin:4px 0 10px}.section-heading p{color:var(--muted);margin:0}.eyebrow{display:block;color:#a06478;text-transform:uppercase;font-size:11px;letter-spacing:.18em;font-weight:700;margin:0 0 4px}.staff-card h3{font-family:var(--serif);font-size:23px;font-weight:400;margin:16px 0 2px}.contact-info h3{font-family:var(--serif);font-size:20px;font-weight:400;margin:0 0 12px}.page-content img{height:auto}.page-content h1,.page-content h2,.page-content h3{font-family:var(--serif);font-weight:400}.admin-bar .phone-header{top:32px}.admin-bar .primary-nav{top:102px}@media(max-width:782px){.admin-bar .phone-header{top:46px}.admin-bar .primary-nav{top:116px}}

/* v3 original-reference slider behavior */
.event-banners.js-event-slider{display:block;max-width:340px;width:85%;overflow:visible}.event-banners .slick-list{overflow:hidden;border-radius:12px}.event-banners .slick-track{display:flex;align-items:stretch}.event-banner-slide{padding:0}.event-banner-slide .event-banner{margin:0}.event-banners .slick-dots{position:static;display:flex!important;justify-content:center;gap:6px;margin:12px 0 0;padding:0;list-style:none}.event-banners .slick-dots li{width:auto;height:auto;margin:0}.event-banners .slick-dots button{width:7px;height:7px;border:0;border-radius:50%;background:#d9b2be;padding:0;font-size:0}.event-banners .slick-dots button:before{display:none}.event-banners .slick-dots .slick-active button{background:#a06478}.event-banners.slick-initialized .reveal{opacity:1;transform:none}.product-section--gold{background:#fff}.product-section--gold .product-box:before,.product-section--gold .product-box:after{border-color:#d8c982}.category-slider{position:relative;z-index:4;width:100%;padding:10px 0 20px}.category-slider .slick-list{overflow:visible}.category-slider__main{width:100%;position:relative;z-index:8}.category-slider__main:before{content:"";position:absolute;left:50%;bottom:100%;transform:translateX(-50%);width:100vw;max-width:var(--phone);height:8px;background:var(--pink)}.category-slider--gold .category-slider__main:before{background:#ece6bd}.category-slider__main ul,.category-slider__pager ul{list-style:none;margin:0;padding:0}.category-slider__main ul{width:260px;margin:0 auto;position:relative;z-index:2}.category-slider__main li{width:260px!important;height:400px;overflow:hidden;background:#eee}.category-slider__main img{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}.category-slider__main li.slick-active img:hover{opacity:.55}.category-slider__pager{position:relative;z-index:8;background:#fff;padding:0 0 8px}.category-slider__pager:after{content:"";position:absolute;top:100%;left:0;right:0;height:8px;background:var(--pink)}.category-slider--gold .category-slider__pager:after{background:#ece6bd}.category-slider__pager ul{overflow:visible}.category-slider__pager li{width:80px!important;height:123px!important;max-height:123px!important;overflow:hidden;cursor:pointer;background:#eee}.category-slider__pager img{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}.category-slider__pager li:hover img,.category-slider__pager li.slick-current img{opacity:.55}.moving-gallery-section{background:#fff;display:flex;justify-content:center;padding:0;overflow:hidden}.gallery-slider{--slider-loop-seconds:40s;--slider-slide-gap:5px;display:grid;grid-template-columns:1fr;grid-template-rows:28fr 16fr 28fr;aspect-ratio:64/80;background:linear-gradient(135deg,#f9e8ec 0,#f9e8ec 18%,#fff 18%,#fff 20%,#f9e8ec 20%,#f9e8ec 38%,#fff 38%,#fff 40%,#f9e8ec 40%,#f9e8ec 58%,#fff 58%,#fff 60%,#f9e8ec 60%,#f9e8ec 78%,#fff 78%,#fff 80%,#f9e8ec 80%);width:100%;max-width:640px}.gallery-slider__text{display:flex;align-items:center;justify-content:center;height:100%;width:100%;font-family:var(--serif);font-size:20px;color:#8a5364;text-align:center;letter-spacing:.05em;background:rgba(255,255,255,.72)}.gallery-slider__text span{padding:.35em 1.2em;border:1px solid rgba(160,100,120,.4);background:rgba(255,255,255,.85);border-radius:999px}.gallery-slider__lane{display:block;overflow:hidden;position:relative;height:100%;width:100%}@keyframes gallery-slider-slide{100%{transform:translateX(-50%)}}.gallery-slider__slider{animation:var(--slider-loop-seconds) linear infinite gallery-slider-slide;display:flex;position:absolute;top:0;left:0;height:100%;width:max-content}.gallery-slider__slider>img{display:block;aspect-ratio:20/28;object-fit:cover;margin:0 var(--slider-slide-gap);height:100%;width:auto}.gallery-slider__slider--reverse{animation:var(--slider-loop-seconds) linear infinite gallery-slider-slide reverse}.flow-list.slick-initialized{display:block;overflow:visible;padding:0 0 48px;gap:0}.flow-list .slick-list{overflow:hidden;margin:0 20px;border-radius:18px}.flow-list .slick-track{display:flex!important;align-items:stretch}.flow-list .slick-slide{height:auto}.flow-list .slick-slide>div,.flow-list .slick-slide article{height:100%}.flow-list .flow-card{margin:0;box-shadow:none;border:1px solid #eee;border-radius:18px}.flow-list .slick-arrow{position:absolute;top:auto;bottom:6px;z-index:5;width:34px;height:34px;border:1px solid #b45f78;border-radius:50%;background:#fff;font-size:0;transform:none}.flow-list .slick-prev{left:118px}.flow-list .slick-next{right:118px}.flow-list .slick-prev:before,.flow-list .slick-next:before{font-family:serif;color:#b45f78;font-size:22px;line-height:1;opacity:1}.flow-list .slick-prev:before{content:"‹"}.flow-list .slick-next:before{content:"›"}.flow-list .slick-dots{bottom:11px;left:0;right:0;display:flex!important;justify-content:center;gap:6px;width:auto;margin:0 155px;padding:0}.flow-list .slick-dots li{width:auto;height:auto;margin:0}.flow-list .slick-dots button{width:6px;height:6px;border-radius:50%;background:#d9b2be;padding:0;font-size:0}.flow-list .slick-dots button:before{display:none}.flow-list .slick-dots .slick-active button{background:#a06478}@media(max-width:760px){.category-slider__main li{width:65vw!important;max-width:260px}.category-slider__main ul{width:min(65vw,260px)}.event-banners.js-event-slider{width:88%;max-width:none}.flow-list .slick-prev{left:92px}.flow-list .slick-next{right:92px}.flow-list .slick-dots{margin:0 130px}.gallery-slider{max-width:none}}

/* v4 heart-shaped hamburger menu, closer to original reference */
.menu-toggle{
  position:relative;
  width:46px;
  height:46px;
  margin-left:auto;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  z-index:10001;
}
.menu-toggle:before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:40px;
  height:36px;
  transform:translate(-50%,-50%);
  background:url('../images/btn-menu-heart-pink.svg') no-repeat center/contain;
  transition:.3s ease;
}
.menu-toggle span{
  position:absolute;
  left:50%;
  width:13px;
  height:2px;
  margin:0;
  border-radius:99px;
  background:#FFAFAF;
  transform:translateX(-50%);
  transition:.3s ease;
}
.menu-toggle span:nth-child(1){top:17px;}
.menu-toggle span:nth-child(2){top:22px;}
.menu-toggle span:nth-child(3){top:27px;}
.menu-open .phone-header{background:rgba(255,175,175,.94);}
.menu-open .menu-toggle:before{background-image:url('../images/btn-menu-heart-white.svg');}
.menu-open .menu-toggle span{background:#fff;}
.menu-open .menu-toggle span:nth-child(1){transform:translate(-50%,5px) rotate(-45deg);}
.menu-open .menu-toggle span:nth-child(2){opacity:0;}
.menu-open .menu-toggle span:nth-child(3){transform:translate(-50%,-5px) rotate(45deg);}
.primary-nav{
  height:calc(100vh - 70px);
  max-height:none;
  overflow:hidden;
  pointer-events:none;
  transform:translateX(100%);
  transition:transform .3s ease;
  background:rgba(255,175,175,.94);
  box-shadow:none;
}
.menu-open .primary-nav{
  max-height:none;
  overflow-y:auto;
  pointer-events:auto;
  transform:translateX(0);
}
.primary-nav a{
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.9);
  font-weight:700;
}
.primary-nav a:after{
  content:">";
  float:right;
  font-weight:700;
}

/* v5 menu correction: original reference behavior */
body.menu-open{overflow-x:hidden;}
.phone-header{
  background:transparent;
  backdrop-filter:none;
  transition:background .3s ease, box-shadow .3s ease;
}
body.is-scrolled .phone-header,
body.menu-open .phone-header{
  background:#FFAFAF;
  box-shadow:none;
}
.phone-header__logo{
  width:160px;
  height:50px;
  position:absolute;
  left:10px;
  top:10px;
  z-index:10000;
}
.phone-header__logo img{
  width:auto;
  max-width:160px;
  max-height:50px;
  height:auto;
}
.menu-toggle{
  position:absolute;
  top:15px;
  right:20px;
  width:40px;
  height:40px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  z-index:10001;
}
.menu-toggle:before{
  width:39.273px;
  height:35.753px;
  background:url('../images/btn-menu-heart-white.svg') no-repeat center/contain;
}
.menu-toggle span{
  width:13px;
  height:2px;
  background:#fff;
  border-radius:0;
}
.menu-toggle span:nth-child(1){top:14px;}
.menu-toggle span:nth-child(2){top:19px;}
.menu-toggle span:nth-child(3){top:24px;}
.menu-open .menu-toggle span:nth-child(1){transform:translate(-50%,5px) rotate(-45deg);}
.menu-open .menu-toggle span:nth-child(2){opacity:0;}
.menu-open .menu-toggle span:nth-child(3){transform:translate(-50%,-5px) rotate(45deg);}

/* Keep the menu wrapper centered on the phone frame. Closed state is hidden inside the wrapper. */
.primary-nav{
  position:fixed;
  top:70px;
  left:0;
  right:0;
  margin:0 auto;
  width:100%;
  max-width:var(--phone);
  height:calc(100vh - 70px);
  max-height:none;
  overflow:hidden;
  z-index:7999;
  pointer-events:none;
  background:transparent;
  box-shadow:none;
  transform:none;
  transition:none;
  visibility:visible;
}
.primary-nav ul{
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  list-style:none;
  overflow-y:auto;
  background:rgba(255,175,175,.9);
  transform:translateX(100%);
  transition:transform .3s ease;
  -webkit-overflow-scrolling:touch;
}
.menu-open .primary-nav{
  pointer-events:auto;
  transform:none;
  overflow:hidden;
  max-height:none;
}
.menu-open .primary-nav ul{transform:translateX(0);}
.primary-nav li{display:block;text-align:left;}
.primary-nav a{
  display:block;
  position:relative;
  padding:15px 5%;
  line-height:1.2;
  color:#fff;
  border-bottom:1px solid #fff;
  font-weight:700;
  font-size:14px;
  background:transparent;
}
.primary-nav li:last-child a{border-bottom:none;}
.primary-nav a:after{
  content:">";
  position:absolute;
  right:5%;
  top:50%;
  transform:translateY(-50%);
  float:none;
  font-weight:700;
  font-size:14px;
}

/* On mobile, the same menu fills the viewport width exactly. */
@media(max-width:760px){
  .phone-header{max-width:none;}
  .primary-nav{max-width:none;}
  .fixed-cta{z-index:7000;}
}

/* v7: Event / Top Banner Area - match the original site slider sizing.
   The original uses 85% of the 400px phone frame (about 340px).
   Images keep their real ratio, so square 1:1 event images such as 300x300
   are displayed as a full square and are not cropped. */
.event-banners.js-event-slider{
  display:block;
  width:85%;
  max-width:340px;
  margin:15px auto 0;
  overflow:visible;
}
.event-banners .slick-list,
.event-banners .slick-track,
.event-banners .slick-slide,
.event-banners .slick-slide > div,
.event-banner-slide,
.event-banner{
  height:auto!important;
}
.event-banners .slick-list{
  overflow:hidden;
  border-radius:0;
}
.event-banner{
  display:block;
  border-radius:0;
  box-shadow:none;
  background:transparent;
}
.event-banner img{
  display:block;
  width:100%;
  height:auto!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}
.event-banner span{
  display:none;
}
.event-banners .slick-dots{
  position:static;
  display:flex!important;
  justify-content:center;
  align-items:center;
  gap:0;
  margin:10px 0 0;
  padding:0;
  list-style:none;
}
.event-banners .slick-dots li{
  width:20px;
  height:20px;
  margin:0 3px;
}
.event-banners .slick-dots li button{
  width:20px;
  height:20px;
  padding:0;
  border:0;
  background:transparent;
}
.event-banners .slick-dots li button:before{
  display:block;
  content:'•';
  width:20px;
  height:20px;
  font-size:20px;
  line-height:20px;
  color:#7B7979;
  opacity:1;
}
.event-banners .slick-dots li.slick-active button:before{
  color:#F5C9C6;
  opacity:1;
}
@media(max-width:760px){
  .event-banners.js-event-slider{
    width:85%;
    max-width:340px;
  }
}


/* v7 Concept Text Update: based on v7 layout, no side pink line */
.message__inner{padding-left:22px;padding-right:22px;}
.message__heading{font-family:var(--sans);font-size:14px;line-height:1.75;font-weight:500;letter-spacing:.08em;color:#8c6d65;margin:0 0 14px;text-align:center;}
.message__french{font-family:var(--serif);font-size:21px;line-height:1.55;font-style:italic;letter-spacing:.08em;color:#c17787;margin:0 0 10px;text-align:center;}
.message__catch{font-family:var(--serif);font-size:13px;line-height:1.9;letter-spacing:.04em;color:#b98591;margin:0 0 28px;text-align:center;}
.message__text{max-width:320px;margin:0 auto;color:#4f322d;text-align:left;border-left:0!important;padding-left:0!important;}
.message__text p{font-family:var(--serif);font-size:13.5px;line-height:2.25;letter-spacing:.03em;margin:0 0 30px;color:#4f322d;}
.message__text p:last-child{margin-bottom:0;}
@media(max-width:760px){.message__inner{padding-left:20px;padding-right:20px}.message__text{max-width:315px}.message__text p{font-size:13px;line-height:2.2;margin-bottom:28px}}

/* v7 concept message fix: squarer message photos, unique second photo, keep JP heading on one line */
.message__photos{display:grid;gap:16px;justify-items:center;margin-bottom:26px;}
.message__photos img{display:block;width:86%;max-width:286px;aspect-ratio:1 / 1;height:auto;object-fit:cover;border-radius:24px;margin:0 auto;}
.message__heading{font-family:var(--sans);font-size:12px;line-height:1.8;font-weight:500;letter-spacing:.12em;color:#8c6d65;margin:0 0 14px;text-align:center;white-space:nowrap;}
@media(max-width:760px){
  .message__photos{gap:14px;}
  .message__photos img{width:88%;max-width:280px;}
  .message__heading{font-size:11.5px;letter-spacing:.1em;}
}

/* v8: remove white frame around main PC side logo so transparent PNG shows cleanly */
.pc-brand__logo img{
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* v9: PC side background photo with soft blur/overlay like the reference site */
@media(min-width:761px){
  body{background:#f7d7df;}
  body:after{
    content:"";
    position:fixed;
    inset:-8px;
    z-index:-3;
    background:url('../images/000-pc-background.jpg') center center / cover no-repeat !important;
    filter:blur(2px);
    transform:scale(1.01);
  }
  body:before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-2;
    background:linear-gradient(90deg,rgba(255,215,226,.72) 0%,rgba(255,231,237,.62) 44%,rgba(255,218,228,.72) 100%) !important;
  }
}

/* v9: real white line icons inside the three fixed CTA bricks */
.fixed-cta__item a:before{
  width:38px !important;
  height:38px !important;
  top:22px !important;
  border:0 !important;
  border-radius:0 !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
}
.fixed-cta__item--reserve a:before{background-image:url('../images/icon-calendar.svg') !important;}
.fixed-cta__item--catalog a:before{background-image:url('../images/icon-catalog.svg') !important;}
.fixed-cta__item--phone a:before{background-image:url('../images/icon-phone.svg') !important;}
@media(max-width:760px){
  .fixed-cta__item a:before{width:30px !important;height:30px !important;top:17px !important;}
}


/* v10: background blur reduced to about 20% strength */
@media(min-width:761px){
  body:after{
    filter:blur(2px) !important;
    inset:-8px !important;
    transform:scale(1.01) !important;
  }
}


/* v11: PC background uses a clear photo with a white/pink filter overlay, not blur */
@media(min-width:761px){
  body{
    background:#fae8ee !important;
  }
  body:after{
    content:"" !important;
    position:fixed !important;
    inset:0 !important;
    z-index:-3 !important;
    background:url('../images/000-pc-background.jpg') center center / cover no-repeat !important;
    filter:none !important;
    transform:none !important;
  }
  body:before{
    content:"" !important;
    position:fixed !important;
    inset:0 !important;
    z-index:-2 !important;
    background:
      linear-gradient(90deg,
        rgba(255,255,255,.68) 0%,
        rgba(255,239,245,.72) 48%,
        rgba(255,255,255,.66) 100%) !important;
  }
}

/* v12: Japanese vertical side catch copy */
.pc-brand__copy{
  font-family: var(--serif);
  font-size: clamp(22px,2.5vw,34px);
  line-height: 1.65;
  letter-spacing: .16em;
}

/* v13: replace stripe-like decorative section backgrounds with uploaded sakura patterns */
.message{
  position:relative;
  background:
    linear-gradient(rgba(255,255,255,.58), rgba(255,255,255,.58)),
    url('../images/bg-sakura-soft.jpg') center center / cover no-repeat !important;
}
.message__inner{
  background:rgba(255,255,255,.95);
  box-shadow:0 12px 30px rgba(130,86,101,.10);
}

/* Use a light petal pattern instead of diagonal stripes in the moving gallery section */
.moving-gallery-section{
  background:
    linear-gradient(rgba(255,248,251,.92), rgba(255,248,251,.92)),
    url('../images/bg-pattern-petal.png') center top / 220px auto repeat !important;
}
.gallery-slider{
  background:
    linear-gradient(rgba(255,255,255,.64), rgba(255,255,255,.64)),
    url('../images/bg-pattern-petal.png') center top / 220px auto repeat !important;
}
.gallery-slider__text{
  background:rgba(255,255,255,.78);
}

/* Soft checked pattern for flow / step area */
.flow-section{
  background:
    linear-gradient(rgba(255,255,255,.88), rgba(255,255,255,.88)),
    url('../images/bg-pattern-check.png') center top / 160px auto repeat !important;
}

/* Subtle dotted lace pattern for the lower related/store blocks */
.related-section{
  background:
    linear-gradient(rgba(252,241,246,.90), rgba(252,241,246,.90)),
    url('../images/bg-pattern-dot.png') center top / 180px auto repeat !important;
}
.store-section{
  background:
    linear-gradient(rgba(251,239,245,.90), rgba(251,239,245,.90)),
    url('../images/bg-pattern-lace.png') center top / 260px auto repeat !important;
}

@media(max-width:760px){
  .message{
    background:
      linear-gradient(rgba(255,255,255,.54), rgba(255,255,255,.54)),
      url('../images/bg-sakura-soft.jpg') center center / cover no-repeat !important;
  }
  .moving-gallery-section,
  .gallery-slider{background-size:170px auto !important;}
  .flow-section{background-size:130px auto !important;}
  .related-section{background-size:150px auto !important;}
  .store-section{background-size:220px auto !important;}
}

/* v14: custom Kirari-style event heading */
.event.section-line{padding:28px 0 46px;background:#fff;}
.event.section-line:before{display:none;}
.event-head{
  width:88%;
  margin:0 auto 18px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px 14px;
  text-align:center;
}
.event-head__rule{
  height:1px;
  background:#222;
  opacity:.9;
}
.event-head__label{
  grid-column:2;
  font-family:var(--sans);
  font-size:14px;
  font-weight:800;
  letter-spacing:.16em;
  line-height:1;
  color:transparent;
  -webkit-text-stroke:1px #7f5d63;
  text-stroke:1px #7f5d63;
  text-shadow:0 1px 0 rgba(255,255,255,.7);
}
.event-head__title{
  grid-column:1 / -1;
  margin:0;
  font-family:var(--serif);
  font-size:16px;
  line-height:1.35;
  font-weight:500;
  color:#222;
  letter-spacing:.06em;
}
.event-head__lead{
  grid-column:1 / -1;
  margin:-2px 0 0;
  font-size:13px;
  line-height:1.6;
  color:#3b2e33;
  letter-spacing:.04em;
}
.event-banners{margin-top:10px;}
@media(max-width:760px){
  .event-head{width:90%;gap:10px 10px;margin-bottom:14px;}
  .event-head__label{font-size:13px;}
  .event-head__title{font-size:15px;}
  .event-head__lead{font-size:12px;}
}

/* v15: style the Message heading area like the new event header */
.message-head{
  width:82%;
  margin:0 auto 24px;
  text-align:center;
}
.message-head__label{
  display:block;
  margin:0 0 8px;
  color:#a06478;
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.4;
}
.message-head__title-row{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:0 14px;
}
.message-head__rule{
  height:1px;
  background:linear-gradient(90deg,rgba(182,133,146,0) 0%, rgba(182,133,146,.85) 35%, rgba(182,133,146,.85) 100%);
}
.message-head__title-row .message-head__rule:last-child{
  background:linear-gradient(90deg,rgba(182,133,146,.85) 0%, rgba(182,133,146,.85) 65%, rgba(182,133,146,0) 100%);
}
.message-head__title{
  margin:0;
  font-family:var(--serif);
  font-size:25px;
  line-height:1.2;
  font-weight:400;
  color:#24181b;
  letter-spacing:.02em;
}
@media(max-width:760px){
  .message-head{width:88%;margin-bottom:22px;}
  .message-head__label{font-size:11.5px;letter-spacing:.16em;}
  .message-head__title-row{gap:0 12px;}
  .message-head__title{font-size:24px;}
}


/* v16: more original-style but improved handwritten Message opening block */
.message-opening{
  position:relative;
  width:88%;
  margin:0 auto 26px;
  min-height:150px;
  padding:28px 16px 24px;
  border-radius:30px;
  background:
    radial-gradient(circle at 10% 12%, rgba(255,224,184,.42) 0 24%, transparent 25%),
    radial-gradient(circle at 84% 8%, rgba(255,199,214,.50) 0 22%, transparent 23%),
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.90) 100%);
  overflow:hidden;
  text-align:center;
}
.message-opening:before,
.message-opening:after{
  content:"♥";
  position:absolute;
  color:#f4b7bd;
  font-size:20px;
  line-height:1;
  opacity:.92;
  transform:rotate(-12deg);
}
.message-opening:before{
  left:14px;
  bottom:34px;
}
.message-opening:after{
  right:18px;
  top:78px;
  font-size:25px;
  transform:rotate(12deg);
}
.message-opening__script{
  position:relative;
  z-index:1;
  margin:0 0 20px;
  text-align:left;
  font-family:"Brush Script MT","Segoe Script","Snell Roundhand",cursive;
  font-size:48px;
  line-height:.9;
  font-weight:400;
  color:#f1a9ad;
  letter-spacing:.02em;
  transform:rotate(-6deg);
}
.message-opening__script:after{
  content:"";
  position:absolute;
  left:112px;
  right:0;
  top:28px;
  height:24px;
  border-top:2px solid rgba(241,169,173,.78);
  border-radius:50%;
  transform:rotate(3deg);
}
.message-opening__copy{
  position:relative;
  z-index:1;
  margin:12px auto 0;
  color:#191416;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.75;
  letter-spacing:.06em;
  font-weight:500;
}
@media(max-width:760px){
  .message-opening{
    width:90%;
    min-height:140px;
    padding:24px 14px 22px;
    margin-bottom:24px;
  }
  .message-opening__script{
    font-size:44px;
  }
  .message-opening__script:after{
    left:102px;
    top:26px;
  }
  .message-opening__copy{
    font-size:19px;
    line-height:1.7;
  }
}

/* v17: Kirari-style intro panel for the first gallery / product line section */
#gallery-main{
  background:
    linear-gradient(rgba(255,244,247,.88), rgba(255,244,247,.88)),
    url('../images/bg-pattern-dot.png') center top / 170px auto repeat;
  padding-top:32px;
}
#gallery-main .product-box{
  padding-top:16px;
}
#gallery-main .product-box:after{
  display:none;
}
.gallery-feature-intro{
  position:relative;
  width:90%;
  margin:0 auto 28px;
  padding-top:18px;
}
.gallery-feature-intro__badge{
  position:absolute;
  top:0;
  left:8px;
  width:92px;
  height:92px;
  border-radius:50%;
  background:#e7b8bd;
  color:#fff;
  font-family:var(--sans);
  font-size:11px;
  line-height:1.45;
  letter-spacing:.04em;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-shadow:0 10px 18px rgba(190,123,138,.18);
  z-index:3;
}
.gallery-feature-intro__panel{
  margin-left:26px;
  padding:26px 18px 24px;
  border:1.5px solid #222;
  border-radius:0 0 28px 28px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 24px rgba(60,20,30,.06);
}
.gallery-feature-intro__label-row{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:0 12px;
  margin-bottom:8px;
}
.gallery-feature-intro__rule{
  height:1px;
  background:#2b1b20;
}
.gallery-feature-intro__label{
  font-family:var(--sans);
  font-size:14px;
  font-weight:800;
  letter-spacing:.14em;
  color:transparent;
  -webkit-text-stroke:1px #7f5d63;
  text-stroke:1px #7f5d63;
}
.gallery-feature-intro__sub{
  margin:0 0 14px;
  font-family:var(--serif);
  font-size:14px;
  line-height:1.6;
  letter-spacing:.22em;
  color:#3b2e33;
  text-align:center;
}
.gallery-feature-intro__copy{
  margin:0;
  text-align:center;
  font-family:var(--sans);
  font-size:15px;
  line-height:1.8;
  font-weight:700;
  color:#111;
}
#gallery-main .category-slider{padding-top:2px;}
@media(max-width:760px){
  #gallery-main{background-size:145px auto;}
  .gallery-feature-intro{width:92%;padding-top:16px;margin-bottom:24px;}
  .gallery-feature-intro__badge{left:0;width:88px;height:88px;font-size:10.5px;}
  .gallery-feature-intro__panel{margin-left:18px;padding:24px 14px 22px;border-radius:0 0 24px 24px;}
  .gallery-feature-intro__label{font-size:13px;}
  .gallery-feature-intro__sub{font-size:13px;letter-spacing:.18em;}
  .gallery-feature-intro__copy{font-size:14px;line-height:1.75;}
}

/* v18: gallery intro made more artistic, lighter, and with clearer pattern backgrounds */
#gallery-main{
  background:
    radial-gradient(circle at 12% 12%, rgba(255,255,255,.30) 0 9%, transparent 10%),
    radial-gradient(circle at 90% 10%, rgba(255,255,255,.22) 0 7%, transparent 8%),
    linear-gradient(rgba(255,240,246,.72), rgba(255,240,246,.72)),
    url('../images/bg-pattern-dot.png') center top / 108px auto repeat !important;
  padding-top:36px;
}
#gallery-main .product-box{
  padding-top:18px;
  background:transparent;
}
#gallery-main .product-box:before{
  display:none !important;
}
#gallery-main .product-box:after{
  display:none !important;
}
.gallery-feature-intro{
  position:relative;
  width:90%;
  margin:0 auto 30px;
  padding-top:20px;
}
.gallery-feature-intro:before{
  content:"";
  position:absolute;
  inset:22px 10px -10px 10px;
  border-radius:34px;
  background:rgba(255,255,255,.28);
  filter:blur(16px);
  z-index:0;
}
.gallery-feature-intro__badge{
  position:absolute;
  top:0;
  left:6px;
  width:96px;
  height:96px;
  border-radius:46% 54% 58% 42% / 45% 43% 57% 55%;
  background:linear-gradient(180deg,#f3c9cf 0%, #e7b0ba 100%);
  color:#fff;
  font-family:var(--sans);
  font-size:11px;
  line-height:1.45;
  letter-spacing:.04em;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-shadow:0 12px 20px rgba(190,123,138,.20);
  z-index:3;
}
.gallery-feature-intro__panel{
  position:relative;
  z-index:1;
  margin-left:24px;
  padding:28px 18px 26px;
  border:none !important;
  border-radius:32px 32px 36px 36px;
  background:
    radial-gradient(circle at 12% 14%, rgba(255,229,186,.52) 0 10%, transparent 11%),
    radial-gradient(circle at 86% 14%, rgba(255,212,225,.50) 0 11%, transparent 12%),
    linear-gradient(rgba(255,255,255,.93), rgba(255,255,255,.95)),
    url('../images/bg-pattern-petal.png') center top / 190px auto repeat;
  box-shadow:0 16px 34px rgba(120,74,89,.12);
  overflow:hidden;
}
.gallery-feature-intro__panel:before{
  content:"";
  position:absolute;
  left:-16px;
  right:-16px;
  top:-20px;
  height:82px;
  background:url('../images/bg-sakura-soft.jpg') center top / cover no-repeat;
  opacity:.26;
  pointer-events:none;
}
.gallery-feature-intro__panel:after{
  content:"♡";
  position:absolute;
  right:18px;
  bottom:16px;
  color:#efb0bb;
  font-size:24px;
  line-height:1;
  opacity:.9;
}
.gallery-feature-intro__label-row{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:0 12px;
  margin-bottom:8px;
}
.gallery-feature-intro__rule{
  height:1px;
  background:linear-gradient(90deg, rgba(226,171,183,0) 0%, rgba(226,171,183,.95) 34%, rgba(214,146,163,.95) 100%);
}
.gallery-feature-intro__label{
  font-family:var(--sans);
  font-size:15px;
  font-weight:800;
  letter-spacing:.14em;
  color:transparent;
  -webkit-text-stroke:1px #b27787;
  text-stroke:1px #b27787;
  text-shadow:0 1px 0 rgba(255,255,255,.9);
}
.gallery-feature-intro__sub,
.gallery-feature-intro__copy{
  position:relative;
  z-index:1;
}
.gallery-feature-intro__sub{
  margin:0 0 14px;
  font-family:var(--serif);
  font-size:14px;
  line-height:1.6;
  letter-spacing:.18em;
  color:#734a56;
  text-align:center;
}
.gallery-feature-intro__copy{
  margin:0;
  text-align:center;
  font-family:var(--sans);
  font-size:15px;
  line-height:1.85;
  font-weight:700;
  color:#2e2025;
}
@media(max-width:760px){
  #gallery-main{background-size:96px auto !important;}
  .gallery-feature-intro{width:92%;padding-top:18px;margin-bottom:26px;}
  .gallery-feature-intro:before{inset:20px 6px -8px 6px;filter:blur(14px);}
  .gallery-feature-intro__badge{left:0;width:90px;height:90px;font-size:10.5px;}
  .gallery-feature-intro__panel{margin-left:18px;padding:26px 14px 24px;border-radius:28px 28px 32px 32px;background-size:160px auto;}
  .gallery-feature-intro__label{font-size:14px;}
  .gallery-feature-intro__sub{font-size:13px;letter-spacing:.14em;}
  .gallery-feature-intro__copy{font-size:14px;line-height:1.8;}
}

/* v19: use uploaded heart background for the first gallery section */
#gallery-main{
  background:
    linear-gradient(rgba(255,244,248,.76), rgba(255,244,248,.76)),
    url('../images/bg-hearts-kirari.jpg') center top / 220px auto repeat !important;
  padding-top:36px;
}
.gallery-feature-intro:before{
  background:rgba(255,255,255,.34) !important;
  filter:blur(12px) !important;
}
.gallery-feature-intro__panel{
  background:
    linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.95)) !important;
  box-shadow:0 16px 34px rgba(120,74,89,.10) !important;
}
.gallery-feature-intro__panel:before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:32px 32px 36px 36px;
  background:
    linear-gradient(rgba(255,255,255,.42), rgba(255,255,255,.42)),
    url('../images/bg-hearts-kirari.jpg') center top / 180px auto repeat;
  opacity:.38;
  pointer-events:none;
}
.gallery-feature-intro__panel > *{
  position:relative;
  z-index:2;
}
.gallery-feature-intro__badge{
  background:linear-gradient(180deg,#ee9fcc 0%, #e88bbe 100%) !important;
}
.gallery-feature-intro__rule{
  background:linear-gradient(90deg, rgba(232,139,190,0) 0%, rgba(232,139,190,.92) 36%, rgba(232,139,190,.92) 100%) !important;
}
.gallery-feature-intro__label{
  -webkit-text-stroke:1px #c46d9f !important;
  text-stroke:1px #c46d9f !important;
}
.gallery-feature-intro__sub{
  color:#8c4d70 !important;
}
@media(max-width:760px){
  #gallery-main{background-size:165px auto !important;}
  .gallery-feature-intro__panel:before{background-size:145px auto !important;}
}


/* v21: restore stable gallery sizing after V20 test and prevent endless-tall slider issue */
.category-slider__main ul{
  width:260px !important;
  margin:0 auto !important;
}
.category-slider__main li{
  width:260px !important;
  height:400px !important;
  aspect-ratio:auto !important;
  overflow:hidden !important;
  background:#fff !important;
}
.category-slider__main img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  cursor:zoom-in !important;
}
.category-slider__pager li{
  width:80px !important;
  height:123px !important;
  max-height:123px !important;
  overflow:hidden !important;
  background:#fff !important;
}
.category-slider__pager img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}
@media(max-width:760px){
  .category-slider__main ul{
    width:65vw !important;
    max-width:260px !important;
  }
  .category-slider__main li{
    width:65vw !important;
    max-width:260px !important;
    height:400px !important;
  }
  .category-slider__pager li{
    width:80px !important;
    height:123px !important;
    max-height:123px !important;
  }
}

/* v21: popup card for enlarged gallery images */
.kirari-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease, visibility .22s ease;
}
.kirari-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.kirari-lightbox__backdrop{
  position:absolute;
  inset:0;
  background:rgba(50,28,36,.58);
  backdrop-filter:blur(4px);
}
.kirari-lightbox__card{
  position:relative;
  z-index:1;
  width:min(92vw, 640px);
  max-height:90vh;
  background:rgba(255,255,255,.96);
  border-radius:26px;
  padding:14px;
  box-shadow:0 22px 60px rgba(35,12,22,.28);
  transform:translateY(12px) scale(.98);
  transition:transform .22s ease;
}
.kirari-lightbox.is-open .kirari-lightbox__card{
  transform:translateY(0) scale(1);
}
.kirari-lightbox__img{
  display:block;
  width:100%;
  max-height:82vh;
  object-fit:contain;
  border-radius:18px;
  background:#fff;
}
.kirari-lightbox__close{
  position:absolute;
  top:-14px;
  right:-10px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#ee9fba;
  color:#fff;
  font-size:30px;
  line-height:38px;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(80,35,50,.22);
}
.kirari-lightbox-open{
  overflow:hidden;
}
@media(max-width:760px){
  .kirari-lightbox{padding:14px;}
  .kirari-lightbox__card{
    width:94vw;
    padding:10px;
    border-radius:22px;
  }
  .kirari-lightbox__img{
    max-height:80vh;
    border-radius:16px;
  }
}


/* v22: moving gallery gets its own image set and popup support */
.gallery-slider__slider > img{
  cursor:zoom-in;
  transition:opacity .22s ease, transform .22s ease;
}
.gallery-slider__slider > img:hover{
  opacity:.88;
}


/* v23: stronger Kirari-style catch phrase between moving gallery rows */
.gallery-slider__text{
  position:relative;
  min-height:116px;
  padding:18px 18px;
  background:
    linear-gradient(rgba(255,255,255,.82), rgba(255,255,255,.82)),
    url('../images/bg-hearts-kirari.jpg') center center / 180px auto repeat !important;
}
.gallery-slider__text:before{
  content:"";
  position:absolute;
  left:50%;
  top:18px;
  transform:translateX(-50%);
  width:78%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(90,55,65,.70), transparent);
}
.gallery-slider__text span{
  position:relative;
  display:block !important;
  width:92%;
  max-width:340px;
  margin:0 auto;
  padding:18px 16px 16px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#2b1f23 !important;
  font-family:var(--serif) !important;
  font-size:19px !important;
  line-height:1.8 !important;
  letter-spacing:.07em !important;
  font-weight:700 !important;
  text-align:center;
}
.gallery-slider__text span:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:64%;
  height:2px;
  background:linear-gradient(90deg, transparent, #d88ea9, transparent);
}
@media(max-width:760px){
  .gallery-slider__text{
    min-height:108px;
    padding:16px 14px;
    background-size:150px auto !important;
  }
  .gallery-slider__text span{
    width:96%;
    font-size:17px !important;
    line-height:1.75 !important;
    letter-spacing:.05em !important;
  }
}


/* v24: keep moving-gallery catch phrase cleanly in 2 lines */
.gallery-slider__text{
  min-height:96px !important;
  padding:14px 8px !important;
}
.gallery-slider__text span{
  width:100% !important;
  max-width:390px !important;
  padding:12px 4px 10px !important;
  font-size:16px !important;
  line-height:1.9 !important;
  letter-spacing:.02em !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}
@media(max-width:760px){
  .gallery-slider__text{
    min-height:92px !important;
    padding:12px 6px !important;
  }
  .gallery-slider__text span{
    max-width:390px !important;
    font-size:15.5px !important;
    line-height:1.85 !important;
    letter-spacing:0 !important;
  }
}
@media(max-width:390px){
  .gallery-slider__text span{
    font-size:14.5px !important;
  }
}


/* v26: click-to-open accordion plan section like the sample video */
.plan-section--accordion{
  position:relative;
  padding:88px 0 34px !important;
  background:
    linear-gradient(rgba(255,246,249,.86), rgba(255,246,249,.86)),
    url('../images/bg-hearts-kirari.jpg') center top / 160px auto repeat !important;
}
.plan-section--accordion .pill-title{
  top:22px;
  left:54px;
  right:54px;
  height:58px;
  line-height:58px;
  border-radius:999px;
  background:linear-gradient(90deg,#efc2bf 0%,#f2c8c6 100%) !important;
  color:#fff;
  box-shadow:0 12px 24px rgba(190,100,118,.14);
}
.plan-section__intro{
  width:86%;
  margin:0 auto 18px;
  text-align:center;
  color:#8a5364;
  font-family:var(--serif);
  font-size:13px;
  line-height:1.8;
  letter-spacing:.04em;
}
.plan-accordion{
  width:88%;
  margin:0 auto;
  display:grid;
  gap:12px;
}
.plan-section--accordion .plan-card{
  margin:0 !important;
  overflow:hidden;
  border-radius:20px;
  background:#fff;
  box-shadow:0 14px 28px rgba(120,62,82,.10);
}
.plan-card--1{--plan-accent:#e5a34b;--plan-soft:#fff5e8;}
.plan-card--2{--plan-accent:#78aa99;--plan-soft:#edf8f3;}
.plan-card--3{--plan-accent:#748cbc;--plan-soft:#eef3ff;}
.plan-card--4{--plan-accent:#bd7180;--plan-soft:#fff0f3;}
.plan-section--accordion .plan-card__banner{
  position:relative;
  display:grid !important;
  grid-template-columns:72px 1fr 32px;
  gap:12px;
  align-items:center;
  width:100%;
  min-height:88px;
  padding:10px 12px;
  border:0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.82),rgba(255,255,255,.95)),
    repeating-linear-gradient(135deg,rgba(255,255,255,0) 0 8px,rgba(255,255,255,.56) 8px 14px),
    var(--plan-soft) !important;
  cursor:pointer;
  text-align:left;
}
.plan-card__thumb{
  display:block;
  width:72px;
  height:72px;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 0 0 1px rgba(180,95,120,.12);
}
.plan-card__thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.plan-card__summary{
  display:grid;
  gap:2px;
  min-width:0;
}
.plan-card__number{
  color:var(--plan-accent);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.plan-card__title{
  font-family:var(--serif);
  font-size:17px;
  line-height:1.35;
  font-weight:600;
  color:#2b1f23;
  letter-spacing:.03em;
}
.plan-card__price-mini{
  color:#5b444b;
  font-family:var(--serif);
  font-size:14px;
  line-height:1.2;
}
.plan-card__toggle-mark{
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--plan-accent);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  line-height:1;
  transition:transform .25s ease, background .25s ease;
}
.plan-card.is-open .plan-card__toggle-mark{
  transform:rotate(45deg);
}
.plan-section--accordion .plan-card__body{
  background:#fff !important;
  text-align:center;
  padding:0 !important;
  max-height:0;
  opacity:0;
  overflow:hidden;
  transition:max-height .42s ease, opacity .28s ease;
}
.plan-card.is-open .plan-card__body{
  max-height:1200px;
  opacity:1;
}
.plan-card__body-inner{
  padding:20px 18px 24px;
  border-top:1px solid rgba(180,95,120,.10);
}
.plan-section--accordion .plan-price{
  font-family:var(--serif);
  font-size:30px;
  line-height:1.25;
  margin:0 0 8px;
  color:#201619;
}
.plan-card__mini{
  width:94%;
  margin:0 auto 16px !important;
  color:#5a4249;
  font-size:13px;
  line-height:1.9;
  letter-spacing:.03em;
  text-align:left;
}
.plan-card__detail-image{
  margin:0 auto 16px;
  padding:8px;
  border-radius:16px;
  background:#f9f3f5;
  box-shadow:inset 0 0 0 1px rgba(180,95,120,.10);
}
.plan-card__detail-image img{
  display:block;
  width:100%;
  height:auto;
  max-height:560px;
  object-fit:contain;
  border-radius:10px;
  background:#fff;
}
.plan-card__features{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}
.plan-card__features li{
  background:#fff7f9 !important;
  border:1px solid rgba(180,95,120,.13);
  border-radius:999px;
  padding:7px 8px !important;
  color:#6d4e59;
  font-size:12px;
  line-height:1.4;
}
@media(max-width:760px){
  .plan-section--accordion{
    padding-top:86px !important;
    background-size:145px auto !important;
  }
  .plan-section--accordion .pill-title{
    left:36px;
    right:36px;
    height:56px;
    line-height:56px;
  }
  .plan-accordion{
    width:90%;
    gap:11px;
  }
  .plan-section--accordion .plan-card__banner{
    grid-template-columns:66px 1fr 30px;
    min-height:82px;
    padding:9px 10px;
    gap:10px;
  }
  .plan-card__thumb{
    width:66px;
    height:66px;
  }
  .plan-card__title{
    font-size:15.5px;
  }
  .plan-section--accordion .plan-price{
    font-size:28px;
  }
  .plan-card__mini{
    font-size:12.5px;
  }
  .plan-card__detail-image img{
    max-height:520px;
  }
}


/* v27: make plan cards look like the sample visual style */
.plan-section--accordion{
  background:
    linear-gradient(rgba(255,247,249,.90), rgba(255,247,249,.90)),
    url('../images/bg-hearts-kirari.jpg') center top / 155px auto repeat !important;
}
.plan-section--accordion .pill-title{
  top:20px;
  left:30px;
  right:30px;
  height:56px;
  line-height:56px;
  border-radius:999px;
  background:#e9c1c1 !important;
  color:#fff;
  font-size:18px;
  letter-spacing:.02em;
  box-shadow:none;
}
.plan-section__intro{
  font-size:12px;
  color:#7e6670;
  margin:0 auto 14px;
}
.plan-accordion{
  width:92%;
  gap:10px;
}
.plan-section--accordion .plan-card{
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.plan-section--accordion .plan-card__banner{
  grid-template-columns:138px 1fr 34px;
  gap:14px;
  min-height:116px;
  padding:14px 14px 14px 14px;
  border-radius:0 !important;
  background:var(--plan-accent) !important;
  box-shadow:none;
}
.plan-card--1{--plan-accent:#e7c0c0; --plan-soft:#e7c0c0;}
.plan-card--2{--plan-accent:#b9abcf; --plan-soft:#b9abcf;}
.plan-card--3{--plan-accent:#f0b46a; --plan-soft:#f0b46a;}
.plan-card--4{--plan-accent:#aad6e5; --plan-soft:#aad6e5;}

.plan-card__thumb{
  width:138px;
  height:92px;
  border-radius:16px;
  box-shadow:none;
  background:#fff;
}
.plan-card__thumb img{
  object-fit:cover;
}
.plan-card__summary{
  align-content:center;
  gap:6px;
}
.plan-card__number,
.plan-card__price-mini{
  display:none !important;
}
.plan-card__title{
  font-family:var(--sans);
  font-size:21px;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.02em;
  color:#fff;
}
.plan-card__subtitle{
  display:block;
  font-family:var(--sans);
  font-size:11px;
  line-height:1.45;
  font-weight:800;
  letter-spacing:.10em;
  color:rgba(255,255,255,.95);
}
.plan-card__toggle-mark{
  width:28px;
  height:28px;
  background:rgba(255,255,255,.92);
  color:#7c6570;
  font-size:22px;
  box-shadow:none;
}
.plan-card.is-open .plan-card__toggle-mark{
  transform:rotate(45deg);
}
.plan-section--accordion .plan-card__body{
  background:#fff !important;
}
.plan-card__body-inner{
  padding:18px 16px 22px;
  border-top:none;
  box-shadow:0 10px 24px rgba(120,62,82,.08);
  background:#fff;
}
.plan-section--accordion .plan-price{
  font-size:30px;
  margin-bottom:8px;
}
.plan-card__mini{
  width:100%;
  font-size:13px;
  margin-bottom:14px !important;
}
.plan-card__detail-image{
  margin-bottom:14px;
}
.plan-card__features li{
  background:#fff;
}

@media(max-width:760px){
  .plan-section--accordion .pill-title{
    left:18px;
    right:18px;
    font-size:17px;
  }
  .plan-accordion{
    width:94%;
  }
  .plan-section--accordion .plan-card__banner{
    grid-template-columns:112px 1fr 30px;
    gap:10px;
    min-height:102px;
    padding:10px;
  }
  .plan-card__thumb{
    width:112px;
    height:76px;
    border-radius:14px;
  }
  .plan-card__title{
    font-size:18px;
  }
  .plan-card__subtitle{
    font-size:10px;
    letter-spacing:.08em;
  }
  .plan-card__body-inner{
    padding:16px 14px 20px;
  }
}


/* v28: fix plan banner so image stays on the left and text stays on the right */
.plan-section--accordion .plan-card__banner > span{
  position:static !important;
  inset:auto !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  border:0 !important;
  padding:0 !important;
}
.plan-section--accordion .plan-card__banner{
  grid-template-columns:108px 1fr 26px !important;
  align-items:center !important;
  min-height:124px !important;
  padding:14px 16px !important;
}
.plan-card__thumb{
  width:108px !important;
  height:82px !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:#fff !important;
}
.plan-card__thumb img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}
.plan-card__summary{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:flex-start !important;
  gap:8px !important;
  min-width:0 !important;
  background:none !important;
}
.plan-card__title{
  display:block !important;
  width:auto !important;
  margin:0 !important;
  font-family:var(--sans) !important;
  font-size:20px !important;
  line-height:1.32 !important;
  font-weight:700 !important;
  letter-spacing:.01em !important;
  color:#fff !important;
  text-align:left !important;
  background:none !important;
}
.plan-card__subtitle{
  display:block !important;
  width:auto !important;
  margin:0 !important;
  font-family:var(--sans) !important;
  font-size:11px !important;
  line-height:1.45 !important;
  font-weight:800 !important;
  letter-spacing:.09em !important;
  color:rgba(255,255,255,.95) !important;
  text-align:left !important;
  background:none !important;
}
.plan-card__toggle-mark{
  position:static !important;
  justify-self:end !important;
  width:24px !important;
  height:24px !important;
  font-size:20px !important;
  background:rgba(255,255,255,.92) !important;
  color:#80636f !important;
}
@media(max-width:760px){
  .plan-section--accordion .plan-card__banner{
    grid-template-columns:98px 1fr 24px !important;
    min-height:114px !important;
    padding:12px 14px !important;
    gap:10px !important;
  }
  .plan-card__thumb{
    width:98px !important;
    height:74px !important;
    border-radius:12px !important;
  }
  .plan-card__title{
    font-size:17px !important;
    line-height:1.35 !important;
  }
  .plan-card__subtitle{
    font-size:10px !important;
    letter-spacing:.07em !important;
  }
}


/* v29: final fix for plan card header text overlaying the image
   The old base CSS targeted every span inside .plan-card__banner.
   This reset keeps image left and all text safely on the right. */
.plan-section--accordion .plan-card__banner,
.plan-section--accordion .plan-card__banner *{
  box-sizing:border-box;
}
.plan-section--accordion .plan-card__banner span{
  position:static !important;
  inset:auto !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.plan-section--accordion .plan-card__banner{
  display:grid !important;
  grid-template-columns:126px minmax(0,1fr) 28px !important;
  align-items:center !important;
  column-gap:18px !important;
  width:100% !important;
  min-height:126px !important;
  padding:16px 18px !important;
  text-align:left !important;
  overflow:hidden !important;
}
.plan-section--accordion .plan-card__thumb{
  display:block !important;
  width:126px !important;
  height:86px !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:#fff !important;
  justify-self:start !important;
}
.plan-section--accordion .plan-card__thumb img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}
.plan-section--accordion .plan-card__summary{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  min-width:0 !important;
  width:100% !important;
  gap:6px !important;
  text-align:left !important;
}
.plan-section--accordion .plan-card__title{
  display:block !important;
  width:100% !important;
  color:#fff !important;
  font-family:var(--sans) !important;
  font-size:20px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
  letter-spacing:.02em !important;
  text-align:left !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}
.plan-section--accordion .plan-card__subtitle{
  display:block !important;
  width:100% !important;
  color:rgba(255,255,255,.96) !important;
  font-family:var(--sans) !important;
  font-size:11px !important;
  line-height:1.4 !important;
  font-weight:800 !important;
  letter-spacing:.09em !important;
  text-align:left !important;
  white-space:normal !important;
}
.plan-section--accordion .plan-card__toggle-mark{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:28px !important;
  height:28px !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.92) !important;
  color:#80636f !important;
  font-size:20px !important;
  line-height:1 !important;
  justify-self:end !important;
}
@media(max-width:760px){
  .plan-section--accordion .plan-card__banner{
    grid-template-columns:112px minmax(0,1fr) 26px !important;
    column-gap:14px !important;
    min-height:116px !important;
    padding:14px 14px !important;
  }
  .plan-section--accordion .plan-card__thumb{
    width:112px !important;
    height:76px !important;
    border-radius:12px !important;
  }
  .plan-section--accordion .plan-card__title{
    font-size:17px !important;
    line-height:1.35 !important;
  }
  .plan-section--accordion .plan-card__subtitle{
    font-size:10px !important;
    letter-spacing:.07em !important;
  }
}
@media(max-width:390px){
  .plan-section--accordion .plan-card__banner{
    grid-template-columns:104px minmax(0,1fr) 24px !important;
    column-gap:11px !important;
    padding:12px 12px !important;
  }
  .plan-section--accordion .plan-card__thumb{
    width:104px !important;
    height:72px !important;
  }
  .plan-section--accordion .plan-card__title{
    font-size:16px !important;
  }
}


/* v30: plan toggle button moved to lower-right and made more visible */
.plan-section--accordion .plan-card__banner{
  position:relative !important;
  padding-right:56px !important;
}
.plan-section--accordion .plan-card__toggle-mark{
  position:absolute !important;
  right:14px !important;
  bottom:14px !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
  width:30px !important;
  height:30px !important;
  border-radius:50% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#ffffff !important;
  color:#8e6d79 !important;
  border:2px solid rgba(255,255,255,.92) !important;
  box-shadow:0 4px 12px rgba(90,50,65,.18) !important;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:400 !important;
  z-index:3 !important;
}
.plan-card.is-open .plan-card__toggle-mark{
  transform:rotate(45deg) !important;
}
@media(max-width:760px){
  .plan-section--accordion .plan-card__banner{
    padding-right:50px !important;
  }
  .plan-section--accordion .plan-card__toggle-mark{
    right:12px !important;
    bottom:12px !important;
    width:28px !important;
    height:28px !important;
    font-size:18px !important;
  }
}


/* v31: place the plus icon exactly in the lower-right corner and make it a clear circular icon */
.plan-section--accordion .plan-card__toggle-mark{
  position:absolute !important;
  right:14px !important;
  bottom:14px !important;
  top:auto !important;
  left:auto !important;
  transform:none !important;
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  min-height:34px !important;
  display:block !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.96) !important;
  border:2px solid #ffffff !important;
  box-shadow:0 4px 12px rgba(80,45,60,.18) !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  overflow:hidden !important;
  z-index:4 !important;
}
.plan-section--accordion .plan-card__toggle-mark::before,
.plan-section--accordion .plan-card__toggle-mark::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  background:#8d7280;
  border-radius:999px;
}
.plan-section--accordion .plan-card__toggle-mark::before{
  width:14px;
  height:2.5px;
}
.plan-section--accordion .plan-card__toggle-mark::after{
  width:2.5px;
  height:14px;
}
.plan-card.is-open .plan-card__toggle-mark{
  transform:none !important;
}
.plan-card.is-open .plan-card__toggle-mark::after{
  opacity:0;
}
@media(max-width:760px){
  .plan-section--accordion .plan-card__toggle-mark{
    right:12px !important;
    bottom:12px !important;
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
    min-height:32px !important;
  }
  .plan-section--accordion .plan-card__toggle-mark::before{
    width:13px;
  }
  .plan-section--accordion .plan-card__toggle-mark::after{
    height:13px;
  }
}


/* v32: hide plan plus/minus icon completely */
.plan-section--accordion .plan-card__toggle-mark{
  display:none !important;
  visibility:hidden !important;
}
.plan-section--accordion .plan-card__banner{
  grid-template-columns:126px minmax(0,1fr) !important;
  padding-right:18px !important;
}
@media(max-width:760px){
  .plan-section--accordion .plan-card__banner{
    grid-template-columns:112px minmax(0,1fr) !important;
    padding-right:14px !important;
  }
}
@media(max-width:390px){
  .plan-section--accordion .plan-card__banner{
    grid-template-columns:104px minmax(0,1fr) !important;
    padding-right:12px !important;
  }
}


/* v33: Kirari-style flow section redesigned to match the sample direction */
.flow-section--kirari{
  position:relative;
  padding:34px 0 26px !important;
  background:
    linear-gradient(rgba(255,255,255,.94), rgba(255,255,255,.94)),
    radial-gradient(circle at center, rgba(236,205,214,.20) 0 1px, transparent 1px 100%);
  background-size:auto, 18px 18px;
}
.section-title--flow-kirari{
  margin:0 auto 18px !important;
  text-align:center;
}
.section-title--flow-kirari h2{
  margin:0;
  font-family:var(--sans) !important;
  font-size:22px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  letter-spacing:.06em !important;
  color:#50383f !important;
  text-transform:uppercase;
  -webkit-text-stroke:1px #d9a8b4;
  text-shadow:1px 1px 0 #fff;
}
.section-title--flow-kirari .flow-jp{
  display:block;
  margin-top:6px;
  color:#5a474d;
  font-size:14px;
  letter-spacing:.12em;
  font-weight:500;
}
.flow-section--kirari .flow-list{
  padding:0 0 62px !important;
  overflow:visible !important;
}
.flow-section--kirari .slick-list{
  margin:0 24px !important;
  border-radius:0 !important;
  overflow:hidden !important;
}
.flow-section--kirari .flow-card{
  background:#fff !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
.flow-section--kirari .flow-card figure{
  margin:0;
  padding-top:68%;
  background:#f3e7e2;
}
.flow-section--kirari .flow-card figure img{
  object-fit:cover;
}
.flow-section--kirari .flow-card__text{
  padding:18px 26px 18px !important;
  text-align:center !important;
}
.flow-section--kirari .flow-card__text span{
  font-family:var(--sans) !important;
  font-size:58px !important;
  line-height:1 !important;
  font-weight:300 !important;
  color:#111 !important;
  margin-bottom:8px !important;
  letter-spacing:.02em;
}
.flow-section--kirari .flow-card__text h3{
  font-family:var(--sans) !important;
  font-size:20px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
  color:#111 !important;
  margin:0 0 14px !important;
}
.flow-section--kirari .flow-card__text p{
  margin:0 auto !important;
  max-width:92%;
  text-align:left !important;
  color:#111 !important;
  font-size:14px !important;
  line-height:1.85 !important;
  letter-spacing:.01em;
}
.flow-section--kirari .flow-list .slick-arrow{
  bottom:auto !important;
  top:46% !important;
  transform:translateY(-50%) !important;
  width:46px !important;
  height:46px !important;
  border:2px solid #111 !important;
  border-radius:50% !important;
  background:#fff !important;
  box-shadow:none !important;
}
.flow-section--kirari .flow-list .slick-prev{
  left:-8px !important;
}
.flow-section--kirari .flow-list .slick-next{
  right:-8px !important;
}
.flow-section--kirari .flow-list .slick-prev:before,
.flow-section--kirari .flow-list .slick-next:before{
  color:#111 !important;
  font-size:34px !important;
  line-height:1 !important;
}
.flow-section--kirari .flow-list .slick-prev:before{
  content:"‹" !important;
}
.flow-section--kirari .flow-list .slick-next:before{
  content:"›" !important;
}
.flow-section--kirari .flow-list .slick-dots{
  bottom:8px !important;
  left:0 !important;
  right:0 !important;
  margin:0 !important;
  justify-content:center !important;
  gap:8px !important;
}
.flow-section--kirari .flow-list .slick-dots button{
  width:9px !important;
  height:9px !important;
  border-radius:50% !important;
  background:#8f8a8d !important;
}
.flow-section--kirari .flow-list .slick-dots .slick-active button{
  background:#d9a8b4 !important;
}
@media(max-width:760px){
  .section-title--flow-kirari h2{
    font-size:20px !important;
  }
  .section-title--flow-kirari .flow-jp{
    font-size:13px;
  }
  .flow-section--kirari .slick-list{
    margin:0 26px !important;
  }
  .flow-section--kirari .flow-card figure{
    padding-top:64%;
  }
  .flow-section--kirari .flow-card__text{
    padding:16px 18px 18px !important;
  }
  .flow-section--kirari .flow-card__text span{
    font-size:52px !important;
    margin-bottom:6px !important;
  }
  .flow-section--kirari .flow-card__text h3{
    font-size:18px !important;
    margin-bottom:12px !important;
  }
  .flow-section--kirari .flow-card__text p{
    max-width:100%;
    font-size:13px !important;
    line-height:1.8 !important;
  }
  .flow-section--kirari .flow-list .slick-arrow{
    width:42px !important;
    height:42px !important;
    top:45% !important;
  }
  .flow-section--kirari .flow-list .slick-prev{
    left:-4px !important;
  }
  .flow-section--kirari .flow-list .slick-next{
    right:-4px !important;
  }
}


/* v35: stable flow slider fix
   Built from V33 and replaces the broken V34 flow behavior. */
.flow-section--kirari{
  padding:34px 0 34px !important;
  min-height:auto !important;
}
.flow-section--kirari .flow-list,
.flow-section--kirari .flow-list.slick-initialized{
  display:block !important;
  overflow:visible !important;
  overflow-x:visible !important;
  scroll-snap-type:none !important;
  gap:0 !important;
  padding:0 0 76px !important;
  min-height:auto !important;
}
.flow-section--kirari .flow-list .slick-list{
  display:block !important;
  margin:0 24px !important;
  overflow:hidden !important;
  border-radius:0 !important;
  min-height:0 !important;
}
.flow-section--kirari .flow-list .slick-track{
  display:flex !important;
  align-items:stretch !important;
}
.flow-section--kirari .flow-list .slick-slide{
  float:none !important;
  height:auto !important;
  min-height:1px !important;
  overflow:hidden !important;
}
.flow-section--kirari .flow-list .slick-slide > div{
  height:100% !important;
}
.flow-section--kirari .flow-card{
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  max-width:none !important;
  height:100% !important;
  margin:0 auto !important;
  opacity:1 !important;
  transform:none !important;
  background:#fff !important;
}
.flow-section--kirari .flow-card figure{
  flex:0 0 auto !important;
  width:100% !important;
  margin:0 !important;
  padding-top:62% !important;
  overflow:hidden !important;
}
.flow-section--kirari .flow-card figure img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.flow-section--kirari .flow-card__text{
  flex:0 0 auto !important;
  padding:20px 26px 22px !important;
  text-align:center !important;
  background:#fff !important;
}
.flow-section--kirari .flow-card__text span{
  font-size:60px !important;
  line-height:1 !important;
  margin:0 0 8px !important;
}
.flow-section--kirari .flow-card__text h3{
  font-size:21px !important;
  line-height:1.35 !important;
  margin:0 0 14px !important;
  font-weight:700 !important;
}
.flow-section--kirari .flow-card__text p{
  max-width:100% !important;
  margin:0 auto !important;
  font-size:15px !important;
  line-height:1.85 !important;
  text-align:left !important;
  color:#111 !important;
  letter-spacing:.01em !important;
}

/* Simple full-arrow controls, no round button */
.flow-section--kirari .flow-list .slick-arrow{
  top:46% !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  width:26px !important;
  height:54px !important;
  border:none !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:0 !important;
  z-index:10 !important;
}
.flow-section--kirari .flow-list .slick-prev{
  left:0 !important;
}
.flow-section--kirari .flow-list .slick-next{
  right:0 !important;
}
.flow-section--kirari .flow-list .slick-prev:before,
.flow-section--kirari .flow-list .slick-next:before{
  font-family:Arial, sans-serif !important;
  color:#111 !important;
  font-size:50px !important;
  font-weight:400 !important;
  line-height:1 !important;
  opacity:1 !important;
}
.flow-section--kirari .flow-list .slick-prev:before{
  content:"‹" !important;
}
.flow-section--kirari .flow-list .slick-next:before{
  content:"›" !important;
}
.flow-section--kirari .flow-list .slick-dots{
  bottom:10px !important;
  left:0 !important;
  right:0 !important;
  margin:0 !important;
  justify-content:center !important;
  gap:9px !important;
}
.flow-section--kirari .flow-list .slick-dots button{
  width:9px !important;
  height:9px !important;
}

@media(max-width:760px){
  .flow-section--kirari .flow-list,
  .flow-section--kirari .flow-list.slick-initialized{
    padding-bottom:74px !important;
  }
  .flow-section--kirari .flow-list .slick-list{
    margin:0 22px !important;
  }
  .flow-section--kirari .flow-card figure{
    padding-top:60% !important;
  }
  .flow-section--kirari .flow-card__text{
    padding:18px 20px 20px !important;
  }
  .flow-section--kirari .flow-card__text span{
    font-size:56px !important;
    margin-bottom:8px !important;
  }
  .flow-section--kirari .flow-card__text h3{
    font-size:19px !important;
    margin-bottom:12px !important;
  }
  .flow-section--kirari .flow-card__text p{
    font-size:14px !important;
    line-height:1.82 !important;
  }
  .flow-section--kirari .flow-list .slick-arrow{
    width:24px !important;
    height:50px !important;
    top:45% !important;
  }
  .flow-section--kirari .flow-list .slick-prev{
    left:1px !important;
  }
  .flow-section--kirari .flow-list .slick-next{
    right:1px !important;
  }
  .flow-section--kirari .flow-list .slick-prev:before,
  .flow-section--kirari .flow-list .slick-next:before{
    font-size:46px !important;
  }
}


/* v36: improve Flow text typography — stronger number/title and more elegant reading style */
.flow-section--kirari .flow-card__text{
  padding-top:24px !important;
  padding-bottom:26px !important;
}
.flow-section--kirari .flow-card__text span{
  font-family:var(--serif) !important;
  font-size:66px !important;
  line-height:.95 !important;
  font-weight:700 !important;
  color:#9b5f72 !important;
  letter-spacing:.04em !important;
  text-shadow:1px 1px 0 rgba(255,255,255,.9);
  margin-bottom:12px !important;
}
.flow-section--kirari .flow-card__text h3{
  font-family:var(--serif) !important;
  font-size:23px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
  color:#2a1e22 !important;
  letter-spacing:.06em !important;
  margin:0 0 18px !important;
}
.flow-section--kirari .flow-card__text h3:after{
  content:"";
  display:block;
  width:48px;
  height:2px;
  margin:12px auto 0;
  background:linear-gradient(90deg, transparent, #d8a0b1, transparent);
}
.flow-section--kirari .flow-card__text p{
  font-family:var(--sans) !important;
  font-size:15.5px !important;
  line-height:2.05 !important;
  font-weight:500 !important;
  color:#24181d !important;
  letter-spacing:.03em !important;
}
@media(max-width:760px){
  .flow-section--kirari .flow-card__text span{
    font-size:62px !important;
    margin-bottom:10px !important;
  }
  .flow-section--kirari .flow-card__text h3{
    font-size:21px !important;
    margin-bottom:16px !important;
  }
  .flow-section--kirari .flow-card__text p{
    font-size:15px !important;
    line-height:2 !important;
  }
}


/* v37: make the Flow section shorter by removing extra bottom blank space */
.flow-section--kirari{
  padding-bottom:18px !important;
}
.flow-section--kirari .flow-list,
.flow-section--kirari .flow-list.slick-initialized{
  padding-bottom:38px !important;
}
.flow-section--kirari .flow-card__text{
  padding-bottom:14px !important;
}
.flow-section--kirari .flow-card__text p{
  line-height:1.85 !important;
  margin-bottom:0 !important;
}
.flow-section--kirari .flow-list .slick-dots{
  bottom:2px !important;
}
@media(max-width:760px){
  .flow-section--kirari{
    padding-bottom:14px !important;
  }
  .flow-section--kirari .flow-list,
  .flow-section--kirari .flow-list.slick-initialized{
    padding-bottom:34px !important;
  }
  .flow-section--kirari .flow-card__text{
    padding-bottom:12px !important;
  }
}


/* v38: cute Kirari-style intro card for Gallery 002 / related line */
#gallery-second{
  padding-top:34px !important;
  background:
    linear-gradient(rgba(255,252,246,.92), rgba(255,252,246,.92)),
    url('../images/bg-hearts-kirari.jpg') center top / 170px auto repeat !important;
}
#gallery-second .product-box{
  padding-top:0 !important;
}
#gallery-second .product-box:before,
#gallery-second .product-box:after{
  display:none !important;
}
.second-gallery-head{
  position:relative;
  width:88%;
  margin:0 auto 24px;
  padding:24px 18px 22px;
  border:1.5px solid rgba(206,181,97,.72);
  border-radius:26px;
  background:
    radial-gradient(circle at 12% 12%, rgba(255,231,203,.42) 0 13%, transparent 14%),
    radial-gradient(circle at 88% 10%, rgba(255,214,225,.45) 0 12%, transparent 13%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.91));
  box-shadow:0 14px 28px rgba(130,88,100,.10);
  text-align:center;
  overflow:hidden;
}
.second-gallery-head:before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.70);
  pointer-events:none;
}
.second-gallery-head__label-row{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
}
.second-gallery-head__label-row span{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(190,146,83,.85), transparent);
}
.second-gallery-head__label-row em{
  font-style:normal;
  color:#a06478;
  font-family:var(--sans);
  font-size:16px;
  font-weight:900;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.second-gallery-head h2{
  position:relative;
  z-index:1;
  margin:0 0 12px;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.55;
  font-weight:700;
  letter-spacing:.06em;
  color:#2b1e22;
}
.second-gallery-head h2:after{
  content:"";
  display:block;
  width:54px;
  height:2px;
  margin:12px auto 0;
  background:linear-gradient(90deg, transparent, #d8a0b1, transparent);
}
.second-gallery-head p{
  position:relative;
  z-index:1;
  margin:0 auto;
  max-width:330px;
  color:#6f4c57;
  font-size:13.5px;
  line-height:1.95;
  letter-spacing:.03em;
  text-align:center;
}
#gallery-second .category-slider{
  padding-top:6px !important;
}
@media(max-width:760px){
  #gallery-second{
    background-size:150px auto !important;
  }
  .second-gallery-head{
    width:90%;
    padding:22px 14px 20px;
    margin-bottom:22px;
    border-radius:24px;
  }
  .second-gallery-head h2{
    font-size:20px;
    line-height:1.55;
  }
  .second-gallery-head p{
    font-size:13px;
    line-height:1.9;
  }
}


/* v39: Instagram section under Kirari style gallery */
.instagram-section{
  padding:38px 0 44px;
  background:
    linear-gradient(rgba(255,250,252,.92), rgba(255,250,252,.92)),
    url('../images/bg-hearts-kirari.jpg') center top / 155px auto repeat;
}
.instagram-card{
  width:88%;
  margin:0 auto;
  padding:26px 18px 30px;
  border:1.5px solid #2b1f23;
  border-radius:26px;
  background:rgba(255,255,255,.94);
  text-align:center;
  box-shadow:0 14px 28px rgba(120,62,82,.10);
}
.instagram-head h2{
  margin:0;
  font-family:var(--sans);
  font-size:22px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.12em;
  color:#52393f;
  -webkit-text-stroke:1px #d8a0b1;
  text-shadow:1px 1px 0 #fff;
}
.instagram-head p{
  margin:8px 0 18px;
  font-size:14px;
  letter-spacing:.12em;
  color:#3f3136;
}
.instagram-feed-box{
  margin:0 auto 24px;
}
.instagram-fallback-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:0;
  width:100%;
  max-width:330px;
  margin:0 auto;
  background:#fff;
}
.instagram-fallback-grid a{
  display:block;
  position:relative;
  aspect-ratio:1 / 1;
  overflow:hidden;
  background:#f7edf1;
}
.instagram-fallback-grid img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .28s ease, opacity .28s ease;
}
.instagram-fallback-grid a:hover img{
  transform:scale(1.04);
  opacity:.86;
}
.instagram-more{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:240px;
  min-height:50px;
  border:1.5px solid #2b1f23;
  border-radius:999px;
  background:#fff;
  color:#111;
  font-family:var(--sans);
  font-size:15px;
  font-weight:600;
  letter-spacing:.12em;
  text-decoration:none;
}
.instagram-more:hover{
  background:#f9edf2;
}
@media(max-width:760px){
  .instagram-section{
    padding:34px 0 40px;
    background-size:140px auto;
  }
  .instagram-card{
    width:90%;
    padding:24px 14px 28px;
    border-radius:24px;
  }
  .instagram-fallback-grid{
    max-width:320px;
  }
  .instagram-more{
    min-width:220px;
    min-height:48px;
  }
}


/* v40: real Kirari store/access section */
.store-section--kirari{
  padding:42px 0 46px !important;
  background:
    linear-gradient(rgba(255,248,251,.90), rgba(255,248,251,.90)),
    url('../images/bg-hearts-kirari.jpg') center top / 155px auto repeat !important;
}
.store-section-title{
  width:88%;
  margin:0 auto 24px !important;
}
.store-section-title h2{
  font-family:var(--serif);
  font-size:25px !important;
  line-height:1.4;
  font-weight:500;
  letter-spacing:.04em;
  color:#2b1f23;
}
.store-section-title p{
  width:92%;
  margin:12px auto 0;
  color:#6f4c57;
  font-size:13px;
  line-height:1.9;
  letter-spacing:.03em;
}
.store-list-kirari{
  width:88%;
  margin:0 auto;
  display:grid;
  gap:22px;
}
.store-card-kirari{
  overflow:hidden;
  border-radius:24px;
  background:rgba(255,255,255,.96);
  box-shadow:0 16px 34px rgba(120,62,82,.12);
}
.store-card-kirari__image{
  margin:0;
  position:relative;
  aspect-ratio: 16 / 10;
  overflow:hidden;
  background:#f7edf1;
}
.store-card-kirari__image img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.store-card-kirari__body{
  padding:20px 18px 22px;
  text-align:left;
}
.store-card-kirari__body h3{
  margin:0 0 12px;
  font-family:var(--serif);
  font-size:21px;
  line-height:1.45;
  font-weight:700;
  color:#2b1f23;
  letter-spacing:.03em;
}
.store-card-kirari__address{
  margin:0 0 14px;
  color:#3c3035;
  font-size:13px;
  line-height:1.8;
}
.store-card-kirari__details{
  display:grid;
  gap:7px;
  margin:0 0 16px;
  padding:0;
}
.store-card-kirari__details div{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:8px;
  align-items:start;
  border-bottom:1px solid rgba(180,95,120,.10);
  padding-bottom:7px;
}
.store-card-kirari__details dt{
  color:#a06478;
  font-size:11px;
  line-height:1.6;
  font-weight:800;
  letter-spacing:.08em;
}
.store-card-kirari__details dd{
  margin:0;
  color:#2b1f23;
  font-size:13px;
  line-height:1.6;
}
.store-card-kirari__buttons{
  margin-top:4px;
}
.store-card-kirari__buttons .btn{
  min-width:108px;
}
@media(max-width:760px){
  .store-section--kirari{
    padding:38px 0 42px !important;
    background-size:140px auto !important;
  }
  .store-list-kirari{
    width:90%;
    gap:20px;
  }
  .store-section-title h2{
    font-size:23px !important;
  }
  .store-card-kirari__body{
    padding:18px 16px 20px;
  }
  .store-card-kirari__body h3{
    font-size:19px;
  }
  .store-card-kirari__details div{
    grid-template-columns:68px 1fr;
  }
}


/* v41: keep long store names on one line */
.store-card-kirari__body h3{
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  font-size:18px !important;
  letter-spacing:.01em !important;
}
@media(max-width:760px){
  .store-card-kirari__body h3{
    font-size:17px !important;
  }
}
@media(max-width:390px){
  .store-card-kirari__body h3{
    font-size:16px !important;
  }
}


/* v42: Kirari reservation form page with shop-select popup */
.reserve-page-kirari{
  padding:0 0 42px;
  background:
    linear-gradient(rgba(255,255,255,.86), rgba(255,255,255,.86)),
    url('../images/011-1.jpg') center top / cover fixed no-repeat;
}
.reserve-page-head{
  position:relative;
  min-height:120px;
  padding:24px 18px 28px;
  background:
    repeating-linear-gradient(135deg, rgba(255,174,195,.42) 0 10px, rgba(255,255,255,.82) 10px 20px);
  display:grid;
  place-items:center;
  overflow:hidden;
}
.reserve-page-head__label{
  position:relative;
  z-index:1;
  margin:0;
  width:74%;
  min-height:70px;
  display:grid;
  place-items:center;
  background:#fff;
  border-radius:6px;
  color:#d94f83;
  font-family:var(--serif);
  font-size:22px;
  font-weight:700;
  letter-spacing:.08em;
  box-shadow:0 8px 20px rgba(120,62,82,.08);
}
.reserve-page-head__flower{
  position:absolute;
  width:76px;
  height:76px;
  object-fit:cover;
  border-radius:50%;
}
.reserve-page-head__flower--left{left:12px;top:10px;}
.reserve-page-head__flower--right{right:18px;bottom:8px;}
.reserve-phone-box,
.kirari-reserve-form,
.reserve-message{
  width:88%;
  margin:22px auto 0;
  background:rgba(255,255,255,.96);
  border:2px solid #d980a3;
  box-shadow:0 14px 30px rgba(120,62,82,.10);
}
.reserve-phone-box{
  padding:22px 12px;
  text-align:center;
}
.reserve-phone-box__tel{
  margin:0 0 10px !important;
  color:#c4587d;
  font-family:var(--serif);
  font-size:32px;
  line-height:1.1;
  letter-spacing:.05em;
}
.reserve-phone-box p{
  margin:4px 0;
  font-size:12px;
  color:#2b1f23;
}
.kirari-reserve-form{
  padding:24px 18px 30px;
  border:0;
  box-shadow:0 16px 36px rgba(120,62,82,.12);
}
.kirari-reserve-form label,
.kirari-reserve-form legend{
  display:block;
  margin:0 0 8px;
  color:#2b1f23;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
}
.kirari-reserve-form label span,
.kirari-reserve-form legend span{
  display:inline-flex;
  margin-left:8px;
  padding:1px 8px;
  border-radius:3px;
  background:#e84c82;
  color:#fff;
  font-size:10px;
  line-height:1.6;
}
.kirari-reserve-form input[type="text"],
.kirari-reserve-form input[type="email"],
.kirari-reserve-form input[type="tel"],
.kirari-reserve-form input[type="date"],
.kirari-reserve-form textarea,
.kirari-reserve-form select{
  width:100%;
  min-height:38px;
  border:1px solid #ddd;
  border-radius:6px;
  background:#f7f7f7;
  padding:8px 10px;
  font:inherit;
  font-size:13px;
  margin:0 0 16px;
}
.kirari-reserve-form textarea{
  min-height:130px;
}
.reserve-postal,
.reserve-birthday{
  display:grid;
  align-items:center;
  gap:8px;
  margin-bottom:16px;
}
.reserve-postal{
  grid-template-columns:auto 1fr auto 1fr;
}
.reserve-postal input,
.reserve-birthday input,
.reserve-birthday select{
  margin-bottom:0 !important;
}
.reserve-birthday{
  grid-template-columns:1.2fr .8fr .8fr;
}
.kirari-reserve-form fieldset{
  border:0;
  padding:0;
  margin:0 0 16px;
}
.reserve-choice-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.reserve-choice{
  display:flex !important;
  align-items:center;
  gap:8px;
  min-height:36px;
  margin:0 !important;
  padding:8px 10px;
  border:1px solid #ddd;
  border-radius:6px;
  background:#fff;
  font-size:12px !important;
  font-weight:500 !important;
}
.reserve-choice input{
  margin:0;
}
.reserve-submit-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:160px;
  min-height:46px;
  margin:22px auto 0;
  border:0;
  border-radius:8px;
  background:#e84c82;
  color:#fff;
  font-size:14px;
  font-weight:700;
  letter-spacing:.18em;
}
.reserve-message{
  padding:18px;
  border-radius:14px;
}
.reserve-message h2{
  margin:0 0 8px;
  font-family:var(--serif);
  font-size:20px;
}
.reserve-message ul{margin:0;padding-left:20px;}
.reserve-message--success{border-color:#85bd9d;}
.reserve-message--error{border-color:#d980a3;}
.reserve-shop-modal{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:.22s ease;
}
.reserve-shop-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.reserve-shop-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(55,35,42,.55);
  backdrop-filter:blur(4px);
}
.reserve-shop-modal__card{
  position:relative;
  z-index:1;
  width:min(92vw,420px);
  padding:28px 20px 22px;
  border-radius:24px;
  background:#fff;
  box-shadow:0 22px 60px rgba(35,12,22,.28);
  text-align:center;
}
.reserve-shop-modal__close{
  position:absolute;
  right:12px;
  top:10px;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#f2c6d1;
  color:#fff;
  font-size:24px;
}
.reserve-shop-modal__eyebrow{
  color:#a06478;
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  margin:0 0 8px;
}
.reserve-shop-modal__card h2{
  margin:0 0 10px;
  font-family:var(--serif);
  font-size:24px;
  line-height:1.45;
}
.reserve-shop-modal__card p{
  color:#6f4c57;
  font-size:13px;
  line-height:1.8;
}
.reserve-shop-modal__shops{
  display:grid;
  gap:10px;
  margin-top:18px;
}
.reserve-shop-modal__shops button{
  width:100%;
  padding:14px;
  border:1px solid #e5b4c2;
  border-radius:14px;
  background:#fff8fa;
  color:#2b1f23;
  text-align:left;
}
.reserve-shop-modal__shops strong{
  display:block;
  font-size:15px;
  margin-bottom:4px;
}
.reserve-shop-modal__shops span{
  color:#a06478;
  font-size:13px;
}
@media(max-width:760px){
  .reserve-page-kirari{background-attachment:scroll;}
  .reserve-phone-box,
  .kirari-reserve-form,
  .reserve-message{width:90%;}
  .reserve-phone-box__tel{font-size:28px;}
  .reserve-page-head__label{width:76%;font-size:20px;}
}


/* v43: reservation page link/required-field polish */
.reserve-source-fieldset legend span{
  background:#e84c82 !important;
  color:#fff !important;
}
body.reserve-modal-open{
  overflow:hidden;
}
.kirari-reserve-form .reserve-choice-grid .reserve-choice,
.kirari-reserve-form fieldset .reserve-choice{
  cursor:pointer;
}
.reserve-shop-modal__shops button:hover{
  background:#ffeef5;
  border-color:#d980a3;
}


/* v44: reservation page top spacing and first-step shop selection */
.reserve-page-kirari{
  padding-top:70px !important;
}
.reserve-page-head{
  margin-top:0 !important;
  min-height:112px !important;
}
.reserve-page-head__label{
  width:70% !important;
}
.reserve-selected-shop-box{
  width:88%;
  margin:18px auto 0;
  padding:16px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(216,128,163,.55);
  box-shadow:0 12px 24px rgba(120,62,82,.08);
  text-align:center;
}
.reserve-selected-shop-box__label{
  margin:0 0 4px;
  color:#a06478;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
}
.reserve-selected-shop-box__name{
  margin:0 0 12px;
  color:#2b1f23;
  font-family:var(--serif);
  font-size:18px;
  line-height:1.45;
  font-weight:700;
}
.reserve-selected-shop-box__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  min-height:36px;
  border:0;
  border-radius:999px;
  background:#e84c82;
  color:#fff;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
}
.reserve-shop-modal__shops button{
  cursor:pointer;
}
.reserve-shop-modal__shops button:hover,
.reserve-shop-modal__shops button:focus{
  background:#ffeef5;
  border-color:#d980a3;
  outline:none;
}
@media(max-width:760px){
  .reserve-page-kirari{
    padding-top:70px !important;
  }
  .reserve-page-head__label{
    width:72% !important;
  }
  .reserve-selected-shop-box{
    width:90%;
  }
  .reserve-selected-shop-box__name{
    font-size:16px;
  }
}


/* v45: reservation header color, sample-style hero, and selected shop info */
.kirari-reservation-page .phone-header{
  background:rgba(255,175,175,.96) !important;
  box-shadow:0 4px 16px rgba(120,62,82,.10);
}
.kirari-reservation-page .menu-toggle:before{
  background-image:url('../images/btn-menu-heart-white.svg') !important;
}
.kirari-reservation-page .menu-toggle span{
  background:#fff !important;
}
.reserve-page-kirari{
  padding-top:70px !important;
}
.reserve-page-head{
  display:none !important;
}
.reserve-hero-kirari{
  width:90%;
  margin:0 auto 22px;
  padding:28px 14px 18px;
  background:#fff;
  text-align:center;
}
.reserve-hero-kirari__title{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin:0 0 6px;
}
.reserve-hero-kirari__title span{
  height:1px;
  background:#111;
}
.reserve-hero-kirari__title h1{
  margin:0;
  color:#4d353d;
  font-family:var(--sans);
  font-size:23px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:.12em;
  -webkit-text-stroke:1px #d9a8b4;
  text-shadow:1px 1px 0 #fff;
}
.reserve-hero-kirari__sub{
  margin:0 0 18px;
  color:#2b1f23;
  font-size:14px;
  letter-spacing:.10em;
}
.reserve-hero-kirari__note{
  margin:0 auto 20px;
  color:#111;
  font-size:14px;
  line-height:1.85;
  font-weight:700;
  letter-spacing:.02em;
}
.reserve-hero-kirari__image{
  margin:0;
  overflow:hidden;
  background:#f7edf1;
}
.reserve-hero-kirari__image img{
  display:block;
  width:100%;
  aspect-ratio:1000 / 650;
  object-fit:cover;
}
.reserve-phone-box--selected{
  padding:20px 14px 22px !important;
  border:2px solid #d980a3 !important;
  border-radius:0 !important;
}
.reserve-phone-box--selected .reserve-phone-box__small{
  margin:0 0 8px !important;
  color:#a06478;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
}
.reserve-phone-box--selected .reserve-phone-box__tel{
  margin:0 0 8px !important;
  color:#c4587d;
  font-family:var(--serif);
  font-size:28px !important;
  line-height:1.15;
}
.reserve-phone-box--selected p[data-selected-shop-name]{
  margin:0 0 7px !important;
  color:#2b1f23;
  font-family:var(--serif);
  font-size:18px;
  line-height:1.45;
  font-weight:700;
}
.reserve-phone-box--selected p[data-selected-shop-address],
.reserve-phone-box--selected p[data-selected-shop-hours]{
  margin:4px 0 !important;
  color:#2b1f23;
  font-size:12px;
  line-height:1.7;
}
.reserve-phone-box--selected .reserve-selected-shop-box__button{
  margin-top:14px;
}
@media(max-width:760px){
  .reserve-hero-kirari{
    width:90%;
    padding:26px 12px 16px;
  }
  .reserve-hero-kirari__title h1{
    font-size:21px;
  }
  .reserve-hero-kirari__note{
    font-size:13px;
  }
  .reserve-phone-box--selected .reserve-phone-box__tel{
    font-size:25px !important;
  }
  .reserve-phone-box--selected p[data-selected-shop-name]{
    font-size:16px;
  }
}


/* v46: use same main-page event banner slider on reservation page */
.reserve-hero-kirari__image{
  display:none !important;
}
.reserve-hero-kirari .reserve-event-slider.event-banners.js-event-slider{
  width:100% !important;
  max-width:360px !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:visible !important;
}
.reserve-hero-kirari .reserve-event-slider .slick-list{
  border-radius:0 !important;
  overflow:hidden !important;
  background:#fff;
}
.reserve-hero-kirari .reserve-event-slider .event-banner{
  border-radius:0 !important;
  box-shadow:none !important;
  background:#fff;
}
.reserve-hero-kirari .reserve-event-slider .event-banner img{
  display:block;
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  object-fit:cover !important;
}
.reserve-hero-kirari .reserve-event-slider .event-banner span{
  display:none !important;
}
.reserve-hero-kirari .reserve-event-slider .slick-dots{
  margin-top:12px !important;
}
.reserve-hero-kirari .reserve-event-slider .slick-dots button{
  width:18px !important;
  height:18px !important;
  border:2px solid #777 !important;
  background:#777 !important;
}
.reserve-hero-kirari .reserve-event-slider .slick-dots .slick-active button{
  background:#f4b8c4 !important;
  border-color:#b86e82 !important;
}
@media(max-width:760px){
  .reserve-hero-kirari .reserve-event-slider.event-banners.js-event-slider{
    max-width:340px !important;
  }
  .reserve-hero-kirari .reserve-event-slider .slick-dots button{
    width:14px !important;
    height:14px !important;
  }
}


/* v47: generic reservation note suitable for both stores */
.reserve-hero-kirari__note{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(216,128,163,.38);
  border-radius:10px;
  padding:14px 12px;
}


/* v48: keep first reservation note sentence on one line */
.reserve-hero-kirari__note .reserve-note-first{
  display:inline-block;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  font-size:13px !important;
  letter-spacing:0 !important;
}
@media(max-width:760px){
  .reserve-hero-kirari__note .reserve-note-first{
    font-size:12px !important;
  }
}
@media(max-width:390px){
  .reserve-hero-kirari__note .reserve-note-first{
    font-size:11.5px !important;
  }
}


/* v49: Japanese Kirari footer CTA copy */
.footer-cta__inner .section-kana{
  color:#d48aa2 !important;
  letter-spacing:.14em !important;
}
.footer-cta__inner h2{
  font-family:var(--serif) !important;
  font-size:24px !important;
  line-height:1.55 !important;
  letter-spacing:.04em !important;
}
.footer-cta__inner p:not(.section-kana){
  font-size:14px !important;
  line-height:1.9 !important;
  letter-spacing:.03em !important;
}
@media(max-width:760px){
  .footer-cta__inner h2{
    font-size:21px !important;
  }
  .footer-cta__inner p:not(.section-kana){
    font-size:13px !important;
  }
}


/* v50: real Japanese Kirari footer information */
.site-footer .footer-brand--kirari{
  text-align:center;
}
.footer-brand--kirari .footer-brand__name{
  margin-top:18px;
  font-family:var(--serif);
  font-size:22px;
  font-weight:700;
  letter-spacing:.08em;
}
.footer-brand__tagline{
  margin:6px 0 18px !important;
  color:#f2c6d1;
  font-size:13px;
  letter-spacing:.10em;
}
.footer-store-list{
  width:88%;
  margin:18px auto 22px;
  display:grid;
  gap:16px;
}
.footer-store{
  padding:14px 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  background:rgba(255,255,255,.04);
}
.footer-store p{
  margin:4px 0 !important;
  color:rgba(255,255,255,.88);
  font-size:12px;
  line-height:1.65;
}
.footer-store__name{
  color:#fff !important;
  font-family:var(--serif);
  font-size:15px !important;
  font-weight:700;
  letter-spacing:.05em;
  margin-bottom:8px !important;
}
.site-footer .copyright{
  color:rgba(255,255,255,.65);
}
@media(max-width:760px){
  .footer-store-list{
    width:90%;
    gap:14px;
  }
  .footer-store{
    padding:13px 10px;
  }
  .footer-store p{
    font-size:11.5px;
  }
}


/* v51: Furisode list page / WordPress-admin-managed items */
.kirari-furisode-page .phone-header{
  background:rgba(255,196,208,.96) !important;
  box-shadow:0 4px 16px rgba(120,62,82,.10);
}
.kirari-furisode-page .menu-toggle:before{
  background-image:url('../images/btn-menu-heart-white.svg') !important;
}
.kirari-furisode-page .menu-toggle span{
  background:#111 !important;
}
.furisode-list-page{
  padding:70px 0 42px;
  background:
    linear-gradient(rgba(255,255,255,.72), rgba(255,255,255,.72)),
    url('../images/bg-hearts-kirari.jpg') center top / 150px auto repeat;
}
.furisode-list-hero{
  min-height:250px;
  padding:16px 12px 30px;
  background:
    radial-gradient(circle at 6% 28%, rgba(245,120,160,.25) 0 16%, transparent 17%),
    radial-gradient(circle at 95% 12%, rgba(245,120,160,.20) 0 18%, transparent 19%),
    linear-gradient(rgba(255,255,255,.70), rgba(255,255,255,.70)),
    url('../images/011-1.jpg') center center / cover no-repeat;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.furisode-list-hero__logo{
  display:block;
  width:158px;
  margin:0 0 22px 2px;
}
.furisode-list-hero__script{
  margin:10px 0 4px;
  color:#e85d88;
  font-family:"Brush Script MT","Segoe Script",cursive;
  font-size:38px;
  line-height:1;
  transform:rotate(-7deg);
  text-shadow:0 2px 0 rgba(255,255,255,.75);
}
.furisode-list-hero h1{
  margin:4px 0 0;
  color:#e84c82;
  font-family:var(--serif);
  font-size:28px;
  line-height:1.4;
  letter-spacing:.08em;
  font-weight:600;
}
.furisode-list-intro{
  width:88%;
  margin:26px auto 22px;
  text-align:center;
  color:#6f4c57;
  font-size:13px;
  line-height:1.85;
}
.furisode-list-intro p{
  margin:0 0 4px;
}
.furisode-grid{
  width:94%;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 14px;
}
.furisode-item-card{
  min-width:0;
}
.furisode-item-card__image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:3 / 4;
  border-radius:8px;
  overflow:hidden;
  background:#f7edf1;
  box-shadow:0 10px 22px rgba(120,62,82,.08);
}
.furisode-item-card__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .25s ease;
}
.furisode-item-card__image:hover img{
  transform:scale(1.03);
}
.furisode-item-card__image span{
  position:absolute;
  left:8px;
  top:8px;
  padding:3px 8px;
  border-radius:99px;
  background:rgba(232,76,130,.90);
  color:#fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.furisode-item-card__body{
  padding:8px 2px 0;
  color:#4b3940;
  font-size:12px;
  line-height:1.65;
  letter-spacing:.03em;
}
.furisode-item-card__body h2{
  margin:0 0 4px;
  color:#bd6b82;
  font-family:var(--serif);
  font-size:14px;
  line-height:1.3;
  letter-spacing:.10em;
  text-align:center;
}
.furisode-item-card__body p{
  margin:0 0 5px;
}
.furisode-item-card__body strong{
  color:#d95d83;
  font-weight:700;
}
.furisode-item-card__note{
  margin-top:6px;
  color:#6f4c57;
  font-size:11px;
  line-height:1.6;
}
.furisode-admin-note{
  width:90%;
  margin:28px auto 0;
  padding:14px 16px;
  border:1px solid rgba(216,128,163,.4);
  border-radius:14px;
  background:rgba(255,255,255,.9);
  color:#6f4c57;
  font-size:12px;
  line-height:1.8;
  text-align:center;
}
@media(max-width:390px){
  .furisode-grid{
    width:95%;
    gap:16px 12px;
  }
  .furisode-item-card__body{
    font-size:11.5px;
    letter-spacing:.01em;
  }
  .furisode-list-hero__script{
    font-size:34px;
  }
}


/* v52: remove duplicate logo from Furisode list hero */
.furisode-list-hero__logo{
  display:none !important;
}
.furisode-list-hero{
  padding-top:44px !important;
}


/* v53: category-based catalog pages */
.accessories-list-page{
  background:
    linear-gradient(rgba(255,255,255,.78), rgba(255,255,255,.78)),
    url('../images/bg-accessories-dots.jpg') center top / 340px auto repeat !important;
}
.accessories-list-hero{
  background:
    radial-gradient(circle at 7% 22%, rgba(245,120,160,.16) 0 17%, transparent 18%),
    radial-gradient(circle at 95% 14%, rgba(245,120,160,.14) 0 18%, transparent 19%),
    linear-gradient(rgba(255,255,255,.84), rgba(255,255,255,.84)),
    url('../images/bg-accessories-dots.jpg') center top / 340px auto repeat !important;
}
.accessory-grid{
  width:88%;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px 28px;
}
.accessory-item-card{
  text-align:center;
}
.accessory-item-card__image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  border-radius:12px;
  overflow:hidden;
  background:#f7edf1;
  box-shadow:0 10px 22px rgba(120,62,82,.08);
}
.accessory-item-card__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.accessory-item-card__image:hover img{
  transform:scale(1.03);
}
.accessory-item-card__image span{
  position:absolute;
  left:8px;
  top:8px;
  padding:3px 8px;
  border-radius:99px;
  background:rgba(232,76,130,.90);
  color:#fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.accessory-item-card__body{
  padding-top:12px;
  color:#4b3940;
  font-size:12px;
  line-height:1.65;
}
.accessory-item-card__body h2{
  margin:0 0 6px;
  font-family:var(--sans);
  font-size:14px;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.04em;
  color:#111;
}
.accessory-code{
  color:#bd6b82;
  font-family:var(--serif);
  letter-spacing:.08em;
}
.accessory-item-card__body strong{
  color:#d95d83;
}
@media(max-width:390px){
  .accessory-grid{
    width:88%;
    gap:24px 24px;
  }
  .accessory-item-card__body h2{
    font-size:13px;
  }
}


/* v54: Accessories page divided by category with visual section banners */
.accessory-category-section{width:100%;margin:34px 0 0;}
.accessory-category-head{
  position:relative;width:88%;margin:0 auto 24px;min-height:132px;padding:28px 18px 24px;overflow:hidden;text-align:center;
  background:
    radial-gradient(circle at 8% 10%, rgba(245,120,160,.20) 0 15%, transparent 16%),
    radial-gradient(circle at 92% 86%, rgba(245,120,160,.18) 0 16%, transparent 17%),
    linear-gradient(rgba(255,255,255,.84), rgba(255,255,255,.84)),
    url('../images/bg-accessories-dots.jpg') center center / 300px auto repeat;
  box-shadow:0 12px 28px rgba(120,62,82,.08);
}
.accessory-category-head:before,.accessory-category-head:after{content:"";position:absolute;width:118px;height:118px;border-radius:50%;background:rgba(255,194,208,.32);pointer-events:none;}
.accessory-category-head:before{left:-44px;top:-38px;}
.accessory-category-head:after{right:-40px;bottom:-48px;}
.accessory-category-head__script{
  position:relative;z-index:1;margin:0 0 4px;color:#e85d88;font-family:"Brush Script MT","Segoe Script",cursive;
  font-size:30px;line-height:1;transform:rotate(-6deg);text-shadow:0 2px 0 rgba(255,255,255,.75);
}
.accessory-category-head h2{
  position:relative;z-index:1;margin:0 0 10px;color:#e84c82;font-family:var(--serif);
  font-size:28px;line-height:1.35;letter-spacing:.08em;font-weight:600;
}
.accessory-category-head > p:not(.accessory-category-head__script){
  position:relative;z-index:1;width:92%;max-width:340px;margin:0 auto;color:#6f4c57;font-size:12.5px;line-height:1.8;letter-spacing:.03em;
}
.accessory-category-section .accessory-grid{margin-bottom:12px;}
.accessory-category-section + .accessory-category-section{margin-top:44px;}
@media(max-width:390px){
  .accessory-category-head{width:88%;min-height:122px;padding:24px 12px 20px;margin-bottom:22px;}
  .accessory-category-head__script{font-size:26px;}
  .accessory-category-head h2{font-size:25px;}
  .accessory-category-head > p:not(.accessory-category-head__script){font-size:12px;}
}


/* v56: product detail page instead of opening images directly */
.product-detail-page{
  padding:86px 0 48px;
  background:
    linear-gradient(rgba(255,255,255,.78), rgba(255,255,255,.78)),
    url('../images/bg-accessories-dots.jpg') center top / 340px auto repeat;
}
.product-detail-head{
  width:88%;
  margin:0 auto 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#a06478;
  font-size:12px;
  letter-spacing:.08em;
}
.product-detail-head a{
  color:#e84c82;
  text-decoration:none;
  font-weight:700;
}
.product-detail-head p{
  margin:0;
}
.product-detail-card{
  width:88%;
  margin:0 auto;
  background:#fff;
}
.product-detail-main{
  position:relative;
  width:100%;
  background:#fff;
  text-align:center;
  padding:0;
}
.product-detail-main img{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:contain;
  background:#fff;
}
.product-detail-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:34px;
  height:54px;
  border:0;
  background:rgba(255,255,255,.72);
  color:#111;
  font-size:42px;
  line-height:1;
  cursor:pointer;
}
.product-detail-arrow--prev{left:4px;}
.product-detail-arrow--next{right:4px;}
.product-detail-thumbs{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 0 16px;
}
.product-detail-thumbs button{
  width:64px;
  height:64px;
  padding:0;
  border:2px solid transparent;
  background:#fff;
  cursor:pointer;
}
.product-detail-thumbs button.is-active{
  border-color:#e84c82;
}
.product-detail-thumbs img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.product-detail-info{
  border-top:1px solid #222;
  padding:0 0 22px;
}
.product-detail-status{
  display:inline-flex;
  margin:18px 0 0 0;
  padding:4px 12px;
  border-radius:99px;
  background:#e84c82;
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}
.product-detail-info dl{
  margin:0;
}
.product-detail-info dl > div{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:16px;
  border-bottom:1px solid rgba(20,20,20,.35);
  padding:20px 0;
}
.product-detail-info dt{
  color:#e84c82;
  font-size:15px;
  font-weight:700;
  letter-spacing:.08em;
}
.product-detail-info dd{
  margin:0;
  color:#231b1f;
  font-family:var(--serif);
  font-size:16px;
  line-height:1.85;
}
.product-detail-info dd p{
  margin:0 0 16px;
}
.product-detail-info dd p:last-child{
  margin-bottom:0;
}
.product-detail-info strong{
  color:#111;
  font-weight:500;
}
.product-detail-buttons{
  display:flex;
  justify-content:center;
  gap:12px;
  padding-top:20px;
}
.product-detail-buttons .btn{
  min-width:120px;
}
@media(max-width:760px){
  .product-detail-page{
    padding-top:78px;
  }
  .product-detail-card,
  .product-detail-head{
    width:90%;
  }
  .product-detail-main img{
    max-height:500px;
  }
  .product-detail-info dl > div{
    grid-template-columns:76px 1fr;
    gap:12px;
    padding:18px 0;
  }
  .product-detail-info dt{
    font-size:14px;
  }
  .product-detail-info dd{
    font-size:15px;
  }
  .product-detail-thumbs button{
    width:56px;
    height:56px;
  }
}


/* v57: reliable product links and non-clickable sample placeholders */
.furisode-item-card__image--sample,
.accessory-item-card__image--sample{
  cursor:default !important;
}
.furisode-item-card__image--sample:hover img,
.accessory-item-card__image--sample:hover img{
  transform:none !important;
}


/* v58: smoother automatic product detail gallery */
.product-detail-gallery{
  position:relative;
}
.product-detail-main{
  border-radius:0;
  overflow:hidden;
}
.product-detail-main img{
  transition:opacity .28s ease, transform .36s ease;
  will-change:opacity, transform;
}
.product-detail-main.is-changing img{
  opacity:.18;
  transform:scale(.985);
}
.product-detail-arrow{
  display:flex !important;
  align-items:center;
  justify-content:center;
  width:42px !important;
  height:64px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.68) !important;
  box-shadow:0 6px 18px rgba(80,35,48,.12);
  font-size:42px !important;
  line-height:1 !important;
  color:#2a1d22 !important;
  transition:background .22s ease, transform .22s ease;
}
.product-detail-arrow:hover{
  background:rgba(255,255,255,.92) !important;
  transform:translateY(-50%) scale(1.04);
}
.product-detail-arrow--prev{
  left:10px !important;
}
.product-detail-arrow--next{
  right:10px !important;
}
.product-detail-thumbs{
  overflow-x:auto;
  justify-content:flex-start !important;
  padding:14px 8px 16px !important;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.product-detail-thumbs button{
  flex:0 0 auto;
  scroll-snap-align:center;
  border-radius:4px;
  transition:border-color .22s ease, transform .22s ease, opacity .22s ease;
}
.product-detail-thumbs button.is-active{
  transform:translateY(-2px);
}
.product-detail-thumbs::-webkit-scrollbar{
  height:4px;
}
.product-detail-thumbs::-webkit-scrollbar-thumb{
  background:rgba(232,76,130,.35);
  border-radius:999px;
}
@media(max-width:760px){
  .product-detail-main{
    touch-action:pan-y;
  }
  .product-detail-arrow{
    width:34px !important;
    height:50px !important;
    font-size:34px !important;
    background:rgba(255,255,255,.58) !important;
  }
  .product-detail-arrow--prev{
    left:6px !important;
  }
  .product-detail-arrow--next{
    right:6px !important;
  }
  .product-detail-thumbs{
    gap:7px !important;
    padding:12px 6px 14px !important;
  }
  .product-detail-thumbs button{
    width:54px !important;
    height:54px !important;
  }
}


/* v61: Hakama collection page and homepage jump */
.hakama-slide-link{
  display:block;
}
.hakama-section-cta{
  width:88%;
  margin:22px auto 0;
  text-align:center;
}
.hakama-section-cta a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:230px;
  min-height:46px;
  border-radius:999px;
  background:#efbfc1;
  color:#fff;
  font-family:var(--serif);
  font-size:16px;
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  box-shadow:0 12px 24px rgba(130,88,100,.14);
}
.hakama-page{
  padding:76px 0 46px;
  background:
    linear-gradient(rgba(255,255,255,.74), rgba(255,255,255,.74)),
    url('../images/bg-pattern-dot.png') center top / 420px auto repeat;
}
.hakama-hero{
  width:90%;
  margin:0 auto 34px;
  padding:26px 0 0;
}
.hakama-hero__box{
  position:relative;
  padding:28px 20px 30px;
  border:1.5px solid #111;
  border-radius:26px 26px 0 0;
  background:rgba(255,255,255,.94);
  text-align:center;
  overflow:hidden;
}
.hakama-hero__box:before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:20px 20px 0 0;
  border:1px solid rgba(255,255,255,.7);
  pointer-events:none;
}
.hakama-hero__title-row{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin:0 0 8px;
}
.hakama-hero__title-row span{
  height:1px;
  background:#111;
}
.hakama-hero h1{
  margin:0;
  color:#4d353d;
  font-family:var(--sans);
  font-size:25px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.16em;
  -webkit-text-stroke:1px #d9a8b4;
  text-shadow:1px 1px 0 #fff;
}
.hakama-hero__sub{
  position:relative;
  z-index:1;
  margin:0 0 24px;
  color:#2b1f23;
  font-size:14px;
  letter-spacing:.10em;
}
.hakama-hero__copy{
  position:relative;
  z-index:1;
  margin:0;
  color:#111;
  font-size:16px;
  line-height:1.85;
  font-weight:800;
  letter-spacing:.03em;
}
.hakama-collection{
  margin:0 auto 44px;
}
.hakama-collection__head{
  width:88%;
  margin:0 auto 22px;
  padding:24px 18px 22px;
  border-radius:22px;
  background:
    radial-gradient(circle at 12% 15%, rgba(245,120,160,.16) 0 16%, transparent 17%),
    linear-gradient(rgba(255,255,255,.90), rgba(255,255,255,.90));
  border:1px solid rgba(216,128,163,.35);
  box-shadow:0 12px 26px rgba(120,62,82,.08);
  text-align:center;
}
.hakama-collection__head p{
  margin:0 0 8px;
  color:#a06478;
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
}
.hakama-collection__head h2{
  margin:0 0 10px;
  color:#e84c82;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.35;
  letter-spacing:.03em;
  white-space:nowrap;
}
.hakama-collection__head span{
  display:block;
  color:#6f4c57;
  font-size:12.5px;
  line-height:1.85;
}
.hakama-grid{
  width:94%;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 14px;
}
.hakama-item-card__image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:3 / 4;
  border-radius:8px;
  overflow:hidden;
  background:#f7edf1;
  box-shadow:0 10px 22px rgba(120,62,82,.08);
}
.hakama-item-card__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.hakama-item-card__image:hover img{
  transform:scale(1.03);
}
.hakama-item-card__image span{
  position:absolute;
  left:8px;
  top:8px;
  padding:3px 8px;
  border-radius:99px;
  background:rgba(232,76,130,.90);
  color:#fff;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.hakama-item-card__body{
  padding:8px 2px 0;
  color:#4b3940;
  font-size:12px;
  line-height:1.65;
  letter-spacing:.03em;
  text-align:center;
}
.hakama-item-card__body h3{
  margin:0 0 4px;
  color:#bd6b82;
  font-family:var(--serif);
  font-size:14px;
  line-height:1.3;
  letter-spacing:.10em;
}
.hakama-item-card__body p{
  margin:0 0 5px;
}
.hakama-item-card__body strong{
  color:#d95d83;
  font-weight:700;
}
.hakama-item-card__note{
  margin-top:6px;
  color:#6f4c57;
  font-size:11px;
  line-height:1.6;
}
@media(max-width:390px){
  .hakama-hero__copy{
    font-size:14px;
    line-height:1.8;
  }
  .hakama-grid{
    width:95%;
    gap:16px 12px;
  }
  .hakama-collection__head h2{
    font-size:18px;
    letter-spacing:.02em;
  }
  .hakama-section-cta a{
    min-width:210px;
    font-size:15px;
  }
}


/* v63: Catalog request page */
.kirari-catalog-page .phone-header{
  background:rgba(255,196,208,.96) !important;
}
.catalog-request-page{
  padding:70px 0 44px;
  background:
    linear-gradient(rgba(255,255,255,.78), rgba(255,255,255,.78)),
    url('../images/bg-sakura-soft.jpg') center top / 520px auto repeat;
}
.catalog-request-hero{
  position:relative;
  min-height:170px;
  padding:38px 18px 28px;
  overflow:hidden;
  text-align:center;
  background:
    linear-gradient(135deg, rgba(255,255,255,.85), rgba(255,241,246,.72)),
    repeating-linear-gradient(-45deg, rgba(247,160,185,.35) 0 10px, rgba(255,255,255,.35) 10px 20px);
}
.catalog-request-hero:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:8px;
  background:repeating-linear-gradient(-45deg, #f9b8c5 0 10px, #fff 10px 20px);
}
.catalog-request-hero h1{
  position:relative;
  z-index:2;
  margin:0;
  color:#e84c82;
  font-family:var(--serif);
  font-size:26px;
  line-height:1.45;
  letter-spacing:.10em;
}
.catalog-request-hero__flowers{
  position:absolute;
  width:140px;
  height:140px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(232,76,130,.42) 0 9%, transparent 10%),
    radial-gradient(ellipse at 50% 18%, rgba(255,122,166,.55) 0 22%, transparent 23%),
    radial-gradient(ellipse at 82% 50%, rgba(255,122,166,.45) 0 22%, transparent 23%),
    radial-gradient(ellipse at 50% 82%, rgba(255,122,166,.38) 0 22%, transparent 23%),
    radial-gradient(ellipse at 18% 50%, rgba(255,122,166,.45) 0 22%, transparent 23%);
  opacity:.95;
  filter:blur(.1px);
}
.catalog-request-hero__flowers--left{
  left:-44px;
  top:-38px;
  transform:rotate(-14deg);
}
.catalog-request-hero__flowers--right{
  right:-42px;
  top:28px;
  transform:rotate(20deg) scale(.75);
}
.catalog-phone-card,
.catalog-brand-box,
.catalog-request-form,
.form-message,
.catalog-bottom-actions{
  width:88%;
  margin-left:auto;
  margin-right:auto;
}
.catalog-phone-card{
  margin-top:24px;
  padding:18px 16px;
  border:2px solid rgba(232,76,130,.55);
  background:rgba(255,255,255,.92);
  text-align:center;
  color:#4b3940;
  font-size:12px;
  line-height:1.65;
}
.catalog-phone-card__tel{
  margin:0 0 4px;
  color:#d44f80;
  font-family:var(--serif);
  font-size:28px;
  line-height:1.25;
  letter-spacing:.04em;
}
.catalog-phone-card p{
  margin:0 0 12px;
}
.catalog-phone-card p:last-child{
  margin-bottom:0;
}
.catalog-brand-box{
  margin-top:24px;
  padding:0 6px;
  text-align:center;
  color:#4b3940;
}
.catalog-brand-box h2{
  margin:0 0 12px;
  color:#e84c82;
  font-size:15px;
  letter-spacing:.12em;
  font-weight:800;
}
.catalog-brand-box p{
  margin:0 auto 12px;
  font-size:12px;
  line-height:1.75;
}
.catalog-brand-box ul{
  width:92%;
  margin:12px auto 18px;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:5px 12px;
  list-style:none;
}
.catalog-brand-box li{
  position:relative;
  padding-left:10px;
  color:#231b1f;
  font-size:13px;
  font-weight:700;
}
.catalog-brand-box li:before{
  content:"•";
  position:absolute;
  left:0;
  color:#e84c82;
}
.catalog-brand-box__note,
.catalog-brand-box__privacy{
  text-align:left;
}
.form-message{
  margin-top:18px;
  padding:14px 16px;
  border-radius:12px;
  font-size:13px;
  line-height:1.7;
}
.form-message--success{
  background:#fff7fb;
  border:1px solid rgba(232,76,130,.35);
  color:#b0456c;
}
.form-message--error{
  background:#fff4f4;
  border:1px solid rgba(200,40,40,.30);
  color:#9c3030;
}
.form-message ul{
  margin:0;
  padding-left:18px;
}
.catalog-request-form{
  margin-top:24px;
  padding:20px 18px 24px;
  background:rgba(255,255,255,.92);
  border-radius:0;
  box-shadow:0 12px 28px rgba(120,62,82,.08);
}
.catalog-request-form label{
  display:block;
  margin:0 0 18px;
  color:#1c171a;
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
}
.catalog-request-form label span{
  display:inline-block;
  margin-left:8px;
  padding:2px 7px;
  border-radius:3px;
  background:#e84c82;
  color:#fff;
  font-size:10px;
  line-height:1.3;
}
.catalog-request-form input,
.catalog-request-form select,
.catalog-request-form textarea{
  width:100%;
  margin-top:8px;
  padding:11px 12px;
  border:1px solid #ddd;
  border-radius:6px;
  background:#f8f8f8;
  color:#231b1f;
  font-size:14px;
  font-family:var(--sans);
}
.catalog-request-form textarea{
  min-height:130px;
  resize:vertical;
}
.catalog-address-group{
  margin:-8px 0 18px;
}
.zip-row,
.birth-row{
  display:flex;
  align-items:center;
  gap:8px;
  margin:8px 0 10px;
}
.zip-row input{
  flex:1;
  margin-top:0;
}
.zip-row span,
.birth-row span{
  color:#4b3940;
  font-size:13px;
}
.birth-row{
  margin:0 0 18px;
}
.birth-row input,
.birth-row select{
  margin-top:0;
}
.birth-row input{
  flex:1.2;
}
.birth-row select{
  flex:0 0 62px;
}
.catalog-submit{
  display:block;
  width:150px;
  min-height:48px;
  margin:26px auto 0;
  border:0;
  border-radius:8px;
  background:#e84c82;
  color:#fff;
  font-size:14px;
  font-weight:700;
  letter-spacing:.18em;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(232,76,130,.22);
}
.catalog-bottom-actions{
  margin-top:22px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.catalog-bottom-actions a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  border-radius:8px;
  background:#e84c82;
  color:#fff;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
}
.catalog-bottom-actions a:nth-child(2){
  background:#ef5a91;
}
@media(max-width:390px){
  .catalog-request-hero h1{
    font-size:24px;
  }
  .catalog-phone-card__tel{
    font-size:25px;
  }
  .catalog-request-form{
    width:90%;
    padding:18px 14px 22px;
  }
  .catalog-brand-box li{
    font-size:12px;
  }
}


/* v65: Q&A page with pie charts */
.kirari-qa-page .phone-header{
  background:rgba(255,196,208,.96) !important;
}
.qa-page{
  padding:78px 0 48px;
  background:
    linear-gradient(rgba(255,255,255,.76), rgba(255,255,255,.76)),
    url('../images/bg-pattern-dot.png') center top / 420px auto repeat;
}
.qa-hero{
  width:90%;
  margin:0 auto 28px;
  padding:28px 20px 30px;
  border:1.5px solid #111;
  border-radius:26px 26px 0 0;
  background:rgba(255,255,255,.94);
  text-align:center;
  box-shadow:0 12px 28px rgba(120,62,82,.08);
}
.qa-hero__title-row{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}
.qa-hero__title-row span{
  height:1px;
  background:#111;
}
.qa-hero h1{
  margin:0;
  color:#4d353d;
  font-family:var(--sans);
  font-size:26px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.18em;
  -webkit-text-stroke:1px #d9a8b4;
  text-shadow:1px 1px 0 #fff;
}
.qa-hero > p{
  margin:0 0 20px;
  color:#2b1f23;
  font-size:14px;
  letter-spacing:.10em;
}
.qa-hero__copy{
  color:#111;
  font-size:14px;
  line-height:1.9;
  font-weight:700;
}
.qa-list{
  width:90%;
  margin:0 auto;
  display:grid;
  gap:24px;
}
.qa-card{
  padding:22px 18px 24px;
  border-radius:24px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(216,128,163,.32);
  box-shadow:0 12px 26px rgba(120,62,82,.08);
}
.qa-card__head{
  text-align:center;
}
.qa-card__head span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  margin:0 auto 12px;
  border-radius:50%;
  background:#e84c82;
  color:#fff;
  font-family:var(--serif);
  font-size:18px;
  line-height:1;
  font-weight:700;
  box-shadow:0 8px 18px rgba(232,76,130,.22);
}
.qa-card__head h2{
  margin:0;
  color:#231b1f;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.6;
  letter-spacing:.04em;
}
.qa-card__answer{
  margin:16px 0 20px;
  color:#4b3940;
  font-size:13px;
  line-height:1.9;
  text-align:left;
}
.qa-chart-wrap{
  display:grid;
  gap:22px;
}
.qa-chart{
  text-align:center;
}
.qa-chart h3{
  margin:0 0 14px;
  color:#a06478;
  font-size:13px;
  font-weight:800;
  letter-spacing:.12em;
}
.qa-pie{
  position:relative;
  width:178px;
  height:178px;
  margin:0 auto 16px;
  border-radius:50%;
  box-shadow:0 12px 26px rgba(120,62,82,.12);
}
.qa-pie:after{
  content:"";
  position:absolute;
  inset:28px;
  border-radius:50%;
  background:rgba(255,255,255,.96);
  box-shadow:inset 0 0 0 1px rgba(216,128,163,.16);
}
.qa-pie span{
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#e84c82;
  font-family:var(--serif);
  font-size:20px;
  font-weight:700;
}
.qa-legend{
  width:92%;
  margin:0 auto;
  padding:0;
  list-style:none;
  display:grid;
  gap:7px;
}
.qa-legend li{
  display:grid;
  grid-template-columns:14px 1fr auto;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  background:#fff7fb;
  color:#4b3940;
  font-size:12px;
  line-height:1.3;
  text-align:left;
}
.qa-legend i{
  width:12px;
  height:12px;
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(0,0,0,.04);
}
.qa-legend b{
  font-weight:700;
}
.qa-legend em{
  font-style:normal;
  color:#e84c82;
  font-weight:800;
}
.qa-text-only{
  margin-top:18px;
  padding:18px 16px;
  border-radius:18px;
  background:#fff7fb;
  border:1px solid rgba(216,128,163,.28);
}
.qa-text-only p{
  margin:0;
  color:#4b3940;
  font-size:13px;
  line-height:1.9;
}
@media(min-width:520px){
  .qa-chart-wrap--double{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:390px){
  .qa-hero h1{
    font-size:24px;
  }
  .qa-card{
    padding:20px 14px 22px;
  }
  .qa-card__head h2{
    font-size:18px;
  }
  .qa-pie{
    width:160px;
    height:160px;
  }
  .qa-pie:after{
    inset:25px;
  }
}


/* v66: Q&A page mobile width / overflow fix */
.qa-page,
.qa-page *{
  box-sizing:border-box;
}
.qa-page{
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.qa-hero,
.qa-list,
.qa-card,
.qa-chart,
.qa-chart-wrap,
.qa-legend,
.qa-text-only{
  max-width:100%;
}
.qa-list{
  width:86% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.qa-card{
  width:100% !important;
  overflow:hidden;
}
.qa-card__head h2{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
  font-size:18px;
  line-height:1.55;
}
.qa-card__answer{
  overflow-wrap:anywhere;
}
.qa-chart-wrap{
  width:100%;
}
.qa-legend{
  width:100% !important;
}
.qa-legend li{
  max-width:100%;
  min-width:0;
}
.qa-legend b{
  min-width:0;
  overflow-wrap:anywhere;
}
@media(max-width:430px){
  .qa-list{
    width:84% !important;
  }
  .qa-card{
    padding:20px 14px 22px !important;
    border-radius:22px;
  }
  .qa-card__head h2{
    font-size:17px;
    letter-spacing:.02em;
  }
  .qa-card__answer{
    font-size:12.5px;
    line-height:1.85;
  }
  .qa-pie{
    width:150px !important;
    height:150px !important;
  }
  .qa-pie:after{
    inset:24px !important;
  }
  .qa-legend li{
    grid-template-columns:12px minmax(0,1fr) auto;
    padding:7px 9px;
    font-size:11.5px;
  }
}


/* v67: Q4 double charts fit better on mobile */
.qa-chart-wrap--double{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:start;
}
.qa-chart-wrap--double .qa-chart h3{
  font-size:12px;
  margin-bottom:10px;
  letter-spacing:.08em;
}
.qa-chart-wrap--double .qa-pie{
  width:132px;
  height:132px;
  margin-bottom:12px;
}
.qa-chart-wrap--double .qa-pie:after{
  inset:22px;
}
.qa-chart-wrap--double .qa-pie span{
  font-size:18px;
}
.qa-chart-wrap--double .qa-legend{
  width:100%;
}
.qa-chart-wrap--double .qa-legend li{
  padding:6px 8px;
  gap:6px;
  font-size:11px;
}
@media(max-width:430px){
  .qa-chart-wrap--double{
    gap:10px;
  }
  .qa-chart-wrap--double .qa-chart h3{
    font-size:11px;
    margin-bottom:8px;
  }
  .qa-chart-wrap--double .qa-pie{
    width:112px !important;
    height:112px !important;
    margin-bottom:10px;
  }
  .qa-chart-wrap--double .qa-pie:after{
    inset:18px !important;
  }
  .qa-chart-wrap--double .qa-pie span{
    font-size:16px;
  }
  .qa-chart-wrap--double .qa-legend li{
    grid-template-columns:10px minmax(0,1fr) auto;
    padding:5px 7px;
    gap:5px;
    font-size:10px;
    line-height:1.25;
  }
  .qa-chart-wrap--double .qa-legend i{
    width:10px;
    height:10px;
  }
}


/* v68: About Kirari / Concept page */
.kirari-about-page .phone-header{
  background:rgba(255,196,208,.96) !important;
}
.about-kirari-page{
  padding:76px 0 48px;
  background:
    linear-gradient(rgba(255,255,255,.76), rgba(255,255,255,.76)),
    url('../images/bg-pattern-petal.png') center top / 520px auto repeat;
}
.about-kirari-hero{
  position:relative;
  width:90%;
  margin:0 auto 28px;
  padding:30px 20px 32px;
  border-radius:28px 28px 0 0;
  background:rgba(255,255,255,.94);
  border:1.5px solid #111;
  text-align:center;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(120,62,82,.08);
}
.about-kirari-hero:before,
.about-kirari-hero:after{
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  border-radius:50%;
  background:rgba(255,194,208,.34);
  pointer-events:none;
}
.about-kirari-hero:before{
  left:-48px;
  top:-46px;
}
.about-kirari-hero:after{
  right:-52px;
  bottom:-58px;
}
.about-kirari-hero__script{
  position:relative;
  z-index:1;
  margin:0 0 8px;
  color:#e85d88;
  font-family:"Brush Script MT","Segoe Script",cursive;
  font-size:30px;
  line-height:1;
  transform:rotate(-5deg);
}
.about-kirari-hero__title-row{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin-bottom:7px;
}
.about-kirari-hero__title-row span{
  height:1px;
  background:#111;
}
.about-kirari-hero h1{
  margin:0;
  color:#4d353d;
  font-family:var(--sans);
  font-size:22px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.14em;
  -webkit-text-stroke:1px #d9a8b4;
  text-shadow:1px 1px 0 #fff;
}
.about-kirari-hero__sub{
  position:relative;
  z-index:1;
  margin:0 0 18px;
  color:#2b1f23;
  font-size:14px;
  letter-spacing:.08em;
}
.about-kirari-hero__lead{
  position:relative;
  z-index:1;
  margin:0;
  color:#4b3940;
  font-size:12.5px;
  line-height:1.85;
  font-weight:700;
}
.about-kirari-hero__lead span{
  display:block;
  white-space:nowrap;
}
.about-kirari-intro{
  width:86%;
  margin:0 auto 30px;
  padding:22px 18px;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 26px rgba(120,62,82,.08);
  text-align:center;
}
.about-kirari-intro img{
  width:148px;
  height:auto;
  margin:0 auto 14px;
}
.about-kirari-intro p{
  margin:0;
  color:#4b3940;
  font-size:13px;
  line-height:1.9;
}
.about-concept-list{
  width:88%;
  margin:0 auto;
  display:grid;
  gap:28px;
}
.about-concept-card{
  position:relative;
  overflow:hidden;
  border-radius:26px;
  background:#fff;
  border:1px solid rgba(216,128,163,.32);
  box-shadow:0 12px 28px rgba(120,62,82,.09);
}
.about-concept-card:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:9px;
  background:repeating-linear-gradient(-45deg, #f9b8c5 0 10px, #fff 10px 20px);
}
.about-concept-card__image{
  width:100%;
  height:178px;
  overflow:hidden;
  background:#f7edf1;
}
.about-concept-card__image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.about-concept-card__body{
  padding:24px 18px 26px;
  text-align:center;
}
.about-concept-card__no{
  margin:0 0 12px;
  color:#e84c82;
  font-family:"Brush Script MT","Segoe Script",cursive;
  font-size:28px;
  line-height:1;
}
.about-concept-card h2{
  margin:0 0 16px;
  color:#e84c82;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.65;
  letter-spacing:.04em;
}
.about-concept-card__text{
  margin:0;
  color:#231b1f;
  font-size:13px;
  line-height:2.0;
  font-weight:600;
}
.about-kirari-closing{
  width:88%;
  margin:34px auto 0;
  padding:28px 20px 30px;
  border-radius:28px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(216,128,163,.38);
  box-shadow:0 12px 26px rgba(120,62,82,.08);
  text-align:center;
}
.about-kirari-closing__small{
  margin:0 0 10px;
  color:#a06478;
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
}
.about-kirari-closing h2{
  margin:0 0 14px;
  color:#e84c82;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.55;
}
.about-kirari-closing p:not(.about-kirari-closing__small){
  margin:0;
  color:#4b3940;
  font-size:13px;
  line-height:1.9;
}
.about-kirari-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:22px;
}
.about-kirari-buttons a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border-radius:999px;
  background:#e84c82;
  color:#fff;
  text-decoration:none;
  font-size:13px;
  font-weight:700;
}
.about-kirari-buttons a:nth-child(2){
  background:#b8a6d1;
}
@media(max-width:390px){
  .about-kirari-hero h1{
    font-size:20px;
    letter-spacing:.12em;
  }
  .about-kirari-hero__script{
    font-size:27px;
  }
  .about-concept-card__image{
    height:160px;
  }
  .about-concept-card h2{
    font-size:18px;
  }
  .about-concept-card__text{
    font-size:12.5px;
  }
}


/* v72: Privacy policy page */
.kirari-privacy-page .phone-header{
  background:rgba(255,196,208,.96) !important;
}
.privacy-policy-page{
  padding:76px 0 48px;
  background:
    linear-gradient(rgba(255,255,255,.76), rgba(255,255,255,.76)),
    url('../images/bg-pattern-dot.png') center top / 420px auto repeat;
}
.privacy-policy-hero{
  position:relative;
  width:90%;
  margin:0 auto 28px;
  padding:30px 20px 32px;
  border-radius:28px 28px 0 0;
  background:rgba(255,255,255,.94);
  border:1.5px solid #111;
  text-align:center;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(120,62,82,.08);
}
.privacy-policy-hero:before,
.privacy-policy-hero:after{
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  border-radius:50%;
  background:rgba(255,194,208,.34);
  pointer-events:none;
}
.privacy-policy-hero:before{
  left:-48px;
  top:-46px;
}
.privacy-policy-hero:after{
  right:-52px;
  bottom:-58px;
}
.privacy-policy-hero__script{
  position:relative;
  z-index:1;
  margin:0 0 8px;
  color:#e85d88;
  font-family:"Brush Script MT","Segoe Script",cursive;
  font-size:30px;
  line-height:1;
  transform:rotate(-5deg);
}
.privacy-policy-hero__title-row{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin-bottom:7px;
}
.privacy-policy-hero__title-row span{
  height:1px;
  background:#111;
}
.privacy-policy-hero h1{
  margin:0;
  color:#4d353d;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.08em;
}
.privacy-policy-hero__sub{
  position:relative;
  z-index:1;
  margin:0 0 18px;
  color:#2b1f23;
  font-size:14px;
  letter-spacing:.08em;
}
.privacy-policy-hero__lead{
  position:relative;
  z-index:1;
  margin:0;
  color:#4b3940;
  font-size:13px;
  line-height:1.9;
  font-weight:700;
}
.privacy-policy-content{
  width:88%;
  margin:0 auto;
  padding:22px 18px 26px;
  border-radius:24px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(216,128,163,.32);
  box-shadow:0 12px 28px rgba(120,62,82,.09);
}
.privacy-policy-block{
  padding:0 0 22px;
  margin:0 0 22px;
  border-bottom:1px solid rgba(216,128,163,.24);
}
.privacy-policy-block:last-of-type{
  border-bottom:0;
  margin-bottom:0;
}
.privacy-policy-block h2,
.privacy-policy-contact h2{
  position:relative;
  margin:0 0 12px;
  padding-left:14px;
  color:#e84c82;
  font-family:var(--serif);
  font-size:18px;
  line-height:1.55;
  letter-spacing:.05em;
}
.privacy-policy-block h2:before,
.privacy-policy-contact h2:before{
  content:"";
  position:absolute;
  left:0;
  top:.35em;
  bottom:.35em;
  width:4px;
  border-radius:99px;
  background:#e84c82;
}
.privacy-policy-block p,
.privacy-policy-contact p{
  margin:0;
  color:#4b3940;
  font-size:13px;
  line-height:2.0;
  text-align:left;
}
.privacy-policy-block ul{
  margin:14px 0 0;
  padding:0;
  list-style:none;
}
.privacy-policy-block li{
  position:relative;
  margin:0 0 8px;
  padding-left:18px;
  color:#4b3940;
  font-size:13px;
  line-height:1.8;
}
.privacy-policy-block li:before{
  content:"♡";
  position:absolute;
  left:0;
  top:0;
  color:#e84c82;
  font-size:12px;
}
.privacy-policy-contact{
  margin-top:26px;
  padding:22px 18px;
  border-radius:20px;
  background:#fff7fb;
  border:1px solid rgba(216,128,163,.28);
}
.privacy-policy-contact__label{
  margin:0 0 8px !important;
  color:#a06478 !important;
  font-size:12px !important;
  font-weight:900;
  letter-spacing:.18em;
  text-align:center !important;
}
@media(max-width:390px){
  .privacy-policy-hero h1{
    font-size:20px;
  }
  .privacy-policy-hero__script{
    font-size:27px;
  }
  .privacy-policy-content{
    width:90%;
    padding:20px 15px 24px;
  }
  .privacy-policy-block h2,
  .privacy-policy-contact h2{
    font-size:17px;
  }
  .privacy-policy-block p,
  .privacy-policy-block li,
  .privacy-policy-contact p{
    font-size:12.5px;
  }
}


/* v73: hide Guarantee / Feature section for now */
.guarantee-section,
.feature-section,
#guarantee,
#feature{
  display:none !important;
}


/* v74: Editable Event / News Area */
.news-section .section-title h2{
  white-space:nowrap;
}
.news-item h3 a{
  color:inherit;
  text-decoration:none;
}
.news-item h3 a:hover{
  color:#e84c82;
}
.news-item{
  transition:background .2s ease;
}
.news-item:hover{
  background:rgba(255,247,251,.7);
}


/* v76: News detail page */
.kirari-news-detail-page .phone-header{
  background:rgba(255,196,208,.96) !important;
}
.news-detail-page{
  padding:76px 0 48px;
  background:
    linear-gradient(rgba(255,255,255,.76), rgba(255,255,255,.76)),
    url('../images/bg-pattern-dot.png') center top / 420px auto repeat;
}
.news-detail-hero{
  position:relative;
  width:90%;
  margin:0 auto 28px;
  padding:30px 20px 30px;
  border-radius:28px 28px 0 0;
  background:rgba(255,255,255,.94);
  border:1.5px solid #111;
  text-align:center;
  overflow:hidden;
  box-shadow:0 12px 28px rgba(120,62,82,.08);
}
.news-detail-hero:before,
.news-detail-hero:after{
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  border-radius:50%;
  background:rgba(255,194,208,.34);
  pointer-events:none;
}
.news-detail-hero:before{
  left:-48px;
  top:-46px;
}
.news-detail-hero:after{
  right:-52px;
  bottom:-58px;
}
.news-detail-hero__script{
  position:relative;
  z-index:1;
  margin:0 0 8px;
  color:#e85d88;
  font-family:"Brush Script MT","Segoe Script",cursive;
  font-size:30px;
  line-height:1;
  transform:rotate(-5deg);
}
.news-detail-hero__title-row{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:10px;
  margin-bottom:7px;
}
.news-detail-hero__title-row span{
  height:1px;
  background:#111;
}
.news-detail-hero h1{
  margin:0;
  color:#4d353d;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.10em;
}
.news-detail-hero__sub{
  position:relative;
  z-index:1;
  margin:0;
  color:#2b1f23;
  font-size:14px;
  letter-spacing:.08em;
}
.news-detail-card{
  width:88%;
  margin:0 auto;
  padding:24px 18px 28px;
  border-radius:24px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(216,128,163,.32);
  box-shadow:0 12px 28px rgba(120,62,82,.09);
}
.news-detail-date{
  display:inline-flex;
  margin:0 0 14px;
  padding:4px 12px;
  border-radius:999px;
  background:#fff7fb;
  color:#e84c82;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
}
.news-detail-card h2{
  margin:0 0 14px;
  color:#231b1f;
  font-family:var(--serif);
  font-size:23px;
  line-height:1.55;
  letter-spacing:.04em;
}
.news-detail-lead{
  margin:0 0 20px;
  color:#a06478;
  font-size:13px;
  line-height:1.9;
  font-weight:700;
}
.news-detail-image{
  margin:0 0 22px;
  border-radius:18px;
  overflow:hidden;
  background:#fff7fb;
}
.news-detail-image img{
  width:100%;
  height:auto;
}
.news-detail-content{
  color:#4b3940;
  font-size:13.5px;
  line-height:2.0;
}
.news-detail-content p{
  margin:0 0 1.2em;
}
.news-detail-content h2,
.news-detail-content h3{
  margin:1.6em 0 .8em;
  color:#e84c82;
  font-family:var(--serif);
  line-height:1.55;
}
.news-detail-content ul,
.news-detail-content ol{
  padding-left:1.4em;
}
.news-detail-external{
  margin-top:24px;
  text-align:center;
}
.news-detail-external a,
.news-detail-buttons a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border-radius:999px;
  padding:0 22px;
  background:#e84c82;
  color:#fff;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
}
.news-detail-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:26px;
}
.news-detail-buttons a{
  padding:0 10px;
}
.news-detail-buttons a:first-child{
  background:#b8a6d1;
}
.news-item h3 a:after{
  content:"";
  display:inline-block;
  width:.45em;
  height:.45em;
  margin-left:.45em;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-1px);
}
@media(max-width:390px){
  .news-detail-card{
    width:90%;
    padding:22px 15px 26px;
  }
  .news-detail-card h2{
    font-size:21px;
  }
  .news-detail-hero__script{
    font-size:27px;
  }
  .news-detail-buttons{
    grid-template-columns:1fr;
  }
}


/* v78: slider images now come from WordPress admin when available */
.event-banner[href="#"]{
  cursor:default;
}

/* v79: security hardening update; no visual change intended. */


/* v80: laptop / small-screen desktop safety fix
   Real laptops with browser/UI scaling can be 800-1154px wide.
   In that range the desktop side CTA buttons can overlap the centered phone layout,
   so we switch them to the compact bottom style earlier. */
html,
body,
.site-canvas{
  overflow-x:hidden;
}

@media(min-width:761px) and (max-width:1154px){
  .pc-brand__logo,
  .pc-brand__copy{
    display:none !important;
  }

  .fixed-cta{
    width:240px !important;
    height:80px !important;
    left:50% !important;
    right:auto !important;
    bottom:16px !important;
    transform:translateX(-50%) !important;
    gap:0 !important;
    z-index:9000 !important;
  }

  .fixed-cta__item{
    width:80px !important;
    height:80px !important;
  }

  .fixed-cta__item a{
    box-shadow:0 10px 24px rgba(60,20,30,.12) !important;
  }

  .fixed-cta__item a:before{
    width:28px !important;
    height:28px !important;
    top:20px !important;
  }

  .fixed-cta__item span{
    bottom:10px !important;
    font-size:12px !important;
    line-height:1.25 !important;
  }

  .page-top{
    bottom:108px !important;
  }

  .site-footer{
    padding-bottom:126px !important;
  }
}

/* v80: medium laptop side spacing guard */
@media(min-width:1155px) and (max-width:1320px){
  .fixed-cta{
    right:18px !important;
    gap:12px !important;
  }

  .fixed-cta__item{
    width:88px !important;
    height:88px !important;
  }

  .fixed-cta__item a:before{
    width:32px !important;
    height:32px !important;
    top:22px !important;
  }

  .fixed-cta__item span{
    bottom:13px !important;
    font-size:13px !important;
  }

  .pc-brand__logo{
    left:20px !important;
    width:min(270px, calc(50vw - 230px)) !important;
  }

  .pc-brand__copy{
    left:calc(25% - 85px) !important;
    font-size:clamp(18px,2.1vw,28px) !important;
  }
}


/* v81: PC/laptop background photo no-crop fix
   The PC background image is a wide banner (1500x414). cover cropped it badly on laptop screens.
   Use full-width sizing so the whole image stays visible as the screen gets smaller. */
@media(min-width:761px){
  body{
    background:
      linear-gradient(180deg,#fff4f7 0%,#fae8ee 45%,#f7d7df 100%) !important;
  }

  body:after{
    content:"" !important;
    position:fixed !important;
    inset:0 !important;
    z-index:-3 !important;
    background-image:url('../images/000-pc-background.jpg') !important;
    background-position:center top !important;
    background-size:100% auto !important;
    background-repeat:no-repeat !important;
    filter:none !important;
    transform:none !important;
  }

  body:before{
    background:
      linear-gradient(90deg,
        rgba(255,255,255,.56) 0%,
        rgba(255,239,245,.66) 48%,
        rgba(255,255,255,.56) 100%),
      linear-gradient(180deg,
        rgba(255,255,255,.14) 0%,
        rgba(250,232,238,.74) 52%,
        rgba(247,215,223,.90) 100%) !important;
  }
}

@media(min-width:761px) and (max-width:1154px){
  body:after{
    background-size:100% auto !important;
    background-position:center top !important;
  }
}


/* v82: restore full-height PC/laptop background
   V81 showed the 1500x414 background as full width, which made it appear only as a top strip.
   This version fills the full viewport height again and anchors the model side to the right,
   so the image does not look cut in half on laptop screens. */
@media(min-width:761px){
  body{
    background:#fae8ee !important;
  }

  body:after{
    content:"" !important;
    position:fixed !important;
    inset:0 !important;
    z-index:-3 !important;
    background-image:url('../images/000-pc-background.jpg') !important;
    background-position:right center !important;
    background-size:auto 100vh !important;
    background-repeat:no-repeat !important;
    filter:none !important;
    transform:none !important;
  }

  body:before{
    content:"" !important;
    position:fixed !important;
    inset:0 !important;
    z-index:-2 !important;
    background:
      linear-gradient(90deg,
        rgba(255,255,255,.62) 0%,
        rgba(255,239,245,.70) 48%,
        rgba(255,255,255,.58) 100%) !important;
  }
}

/* On very wide screens, keep the background natural and stable. */
@media(min-width:1600px){
  body:after{
    background-size:cover !important;
    background-position:center center !important;
  }
}


/* v84: Font standardization
   Body / UI: Noto Sans JP
   Headings / Japanese-style catch copy: Noto Serif JP
   Old Japanese serif fallbacks are removed. */
body,
button,
input,
select,
textarea,
.primary-nav,
.fixed-cta,
.news-item,
.form-mock,
.catalog-page,
.qa-page,
.privacy-policy-page,
.news-detail-page,
.product-detail-page{
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,sans-serif !important;
}

h1,h2,h3,h4,h5,h6,
.pc-brand__copy,
.message-opening__copy,
.message__heading,
.section-title h2,
.event-head__title,
.gallery-feature-intro__label,
.gallery-feature-intro__sub,
.pill-title,
.plan-card__title,
.flow-card__text h3,
.second-gallery-head h2,
.footer-cta h2,
.footer-brand__name,
.privacy-policy-hero h1,
.privacy-policy-block h2,
.privacy-policy-contact h2,
.news-detail-hero h1,
.news-detail-card h2,
.product-detail-title,
.product-detail h1{
  font-family:"Noto Serif JP",serif !important;
}

/* Decorative English script labels can stay script-style. */
.message-opening__script,
.privacy-policy-hero__script,
.news-detail-hero__script{
  font-family:"Brush Script MT","Segoe Script",cursive !important;
}


/* v85: 10 benefits slider section */
.benefit-section{
  background:linear-gradient(180deg,#fff 0%, #fff8fb 100%);
  padding-top:42px;
}
.benefit-section .section-title--flow-kirari h2{
  letter-spacing:.08em;
}
.benefit-section .flow-jp{
  font-size:14px;
}
.benefit-list .benefit-card{
  background:#fffdfd;
}
.benefit-list .benefit-card figure{
  padding-top:62%;
  background:#f8eef2;
}
.benefit-list .benefit-card figure img{
  object-fit:cover;
}
.benefit-card__text{
  padding:22px 24px 28px;
}
.benefit-card__text span{
  color:#df6d95;
  font-size:52px;
  margin-bottom:12px;
  letter-spacing:.04em;
}
.benefit-card__text h3{
  font-size:20px;
  line-height:1.55;
  margin:0 0 12px;
}
.benefit-card__text h3:after{
  content:"";
  display:block;
  width:48px;
  height:1px;
  margin:12px auto 0;
  background:rgba(181,95,120,.35);
}
.benefit-card__main{
  text-align:center !important;
  font-size:22px !important;
  line-height:1.6 !important;
  color:#d25e86 !important;
  font-weight:700;
  margin:0 !important;
}
.benefit-card__note{
  margin:10px 0 0 !important;
  text-align:center !important;
  font-size:12px !important;
  line-height:1.75 !important;
  color:#7a6670 !important;
}
@media (max-width:760px){
  .benefit-section .flow-jp{
    font-size:13px;
  }
  .benefit-card__text{
    padding:20px 20px 26px;
  }
  .benefit-card__text span{
    font-size:46px;
  }
  .benefit-card__text h3{
    font-size:18px;
  }
  .benefit-card__main{
    font-size:20px !important;
  }
}


/* v87: phone shop selection popup */
.kirari-phone-modal{
  position:fixed;
  inset:0;
  z-index:100000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
}
.kirari-phone-modal.is-open{
  display:flex;
}
.kirari-phone-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(40,20,28,.45);
  backdrop-filter:blur(4px);
}
.kirari-phone-modal__dialog{
  position:relative;
  width:min(342px,92vw);
  border-radius:26px;
  background:rgba(255,255,255,.98);
  padding:26px 20px 20px;
  box-shadow:0 22px 52px rgba(55,20,32,.28);
  text-align:center;
  border:1px solid rgba(255,255,255,.9);
}
.kirari-phone-modal__close{
  position:absolute;
  right:12px;
  top:10px;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#fff0f5;
  color:#a06478;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.kirari-phone-modal__eyebrow{
  margin:0 0 6px;
  color:#e84c82;
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.kirari-phone-modal h2{
  margin:0 0 8px;
  color:#3d2b32;
  font-family:"Noto Serif JP",serif;
  font-size:20px;
  line-height:1.55;
  letter-spacing:.04em;
}
.kirari-phone-modal__lead{
  margin:0 0 18px;
  color:#8a6974;
  font-size:12.5px;
  line-height:1.7;
}
.kirari-phone-modal__shops{
  display:grid;
  gap:12px;
}
.kirari-phone-shop{
  display:block;
  padding:15px 14px 14px;
  border-radius:20px;
  color:#fff;
  text-decoration:none;
  text-align:left;
  box-shadow:0 10px 22px rgba(80,30,48,.16);
}
.kirari-phone-shop--honten{
  background:linear-gradient(135deg,#f2a7b8,#e87695);
}
.kirari-phone-shop--izumiya{
  background:linear-gradient(135deg,#b6a6d7,#8f79c1);
}
.kirari-phone-shop__name{
  display:block;
  margin-bottom:3px;
  font-size:14px;
  font-weight:900;
  line-height:1.45;
}
.kirari-phone-shop__sub{
  display:block;
  margin-bottom:8px;
  font-size:11px;
  opacity:.92;
}
.kirari-phone-shop strong{
  display:block;
  font-size:21px;
  line-height:1;
  letter-spacing:.04em;
}
.kirari-phone-modal__cancel{
  width:100%;
  margin-top:14px;
  min-height:42px;
  border:0;
  border-radius:999px;
  background:#f3eef1;
  color:#55404a;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
body.kirari-phone-modal-open{
  overflow:hidden;
}


/* v90: Instagram button in both store cards */
.store-card-kirari__buttons{
  display:grid !important;
  grid-template-columns:1fr 1fr 1.18fr;
  gap:8px;
}
.store-card-kirari__buttons .btn{
  padding:0 10px;
  min-height:36px;
  white-space:nowrap;
}
.btn-instagram{
  border-color:#e7cad9;
  background:#fff;
  color:#4b3940;
  gap:5px;
}
.btn-instagram__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:6px;
  background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 65%, #285AEB 90%);
  color:#fff;
  font-size:8px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.04em;
}
@media(max-width:380px){
  .store-card-kirari__buttons{
    grid-template-columns:1fr 1fr;
  }
  .store-card-kirari__buttons .btn-instagram{
    grid-column:1 / -1;
  }
}


/* v91: fix store Instagram button overflow and use real Instagram icon shape */
.store-card-kirari{
  overflow:hidden;
}
.store-card-kirari__buttons{
  width:100%;
  max-width:100%;
  display:grid !important;
  grid-template-columns:minmax(0,.9fr) minmax(0,.82fr) minmax(0,1.08fr) !important;
  gap:6px !important;
  align-items:center;
}
.store-card-kirari__buttons .btn{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:36px;
  padding:0 7px !important;
  font-size:11px;
  line-height:1;
  overflow:hidden;
  white-space:nowrap;
}
.store-card-kirari__buttons .btn-instagram{
  gap:4px;
  justify-content:center;
  border-color:#efd3df;
  background:#fff;
  color:#4b3940;
}
.btn-instagram__icon{
  flex:0 0 18px;
  width:18px;
  height:18px;
  border-radius:5px;
  padding:3px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 65%, #285AEB 90%);
}
.btn-instagram__icon svg{
  display:block;
  width:100%;
  height:100%;
}
.btn-instagram__icon rect,
.btn-instagram__icon circle{
  fill:none;
  stroke:#fff;
  stroke-width:1.9;
}
.btn-instagram__icon circle:last-child{
  fill:#fff;
  stroke:none;
}
.btn-instagram span:last-child{
  min-width:0;
  overflow:hidden;
  text-overflow:clip;
}
@media(max-width:370px){
  .store-card-kirari__buttons{
    grid-template-columns:1fr 1fr !important;
  }
  .store-card-kirari__buttons .btn-instagram{
    grid-column:1 / -1;
  }
}


/* v92: Instagram section button uses supplied Instagram logo image */
.instagram-more--logo{
  width:min(176px,72%);
  min-height:44px;
  padding:8px 18px;
  border-radius:999px;
  background:#fff;
  border:1.5px solid #4a3840;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 18px rgba(70,30,42,.08);
}
.instagram-more--logo img{
  display:block;
  width:138px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}
.instagram-more--logo:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 24px rgba(70,30,42,.12);
}
@media(max-width:380px){
  .instagram-more--logo{
    width:170px;
    padding:8px 16px;
  }
  .instagram-more--logo img{
    width:132px;
  }
}


/* v93: final client text/store/accessory adjustments */
.store-card-kirari__body h3,
.reserve-phone-box [data-selected-shop-name],
.reserve-shop-modal__shops strong,
.kirari-phone-shop__name{
  white-space:pre-line;
}
.accessories-list-page--hidden .furisode-list-intro{
  text-align:center;
}


/* v94: functional contact form */
.contact-form-wrap{width:100%;}
.contact-form-kirari{display:grid;gap:12px;background:#fff;border-radius:18px;padding:18px;box-shadow:var(--shadow);}
.contact-form-kirari label{display:grid;gap:6px;font-weight:700;font-size:13px;color:#4b3940;}
.contact-form-kirari label span{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:18px;border-radius:999px;background:#b45f78;color:#fff;font-size:10px;margin-left:4px;vertical-align:middle;}
.contact-form-kirari input,.contact-form-kirari textarea{width:100%;border:1px solid #ead9df;border-radius:12px;background:#fff;padding:11px 12px;font:inherit;box-sizing:border-box;}
.contact-form-kirari textarea{resize:vertical;min-height:130px;}
.contact-form-kirari .btn{justify-self:center;min-width:160px;border:none;}
.contact-mail-note{font-size:11px;color:var(--muted);word-break:break-all;}



/* v5: reservation shop popup full store display */
.reserve-shop-modal__shops button strong{
  display:block;
  line-height:1.45;
}
.reserve-shop-modal__shops button em{
  display:block;
  margin-top:4px;
  font-style:normal;
  font-size:12px;
  line-height:1.5;
  color:#6f5962;
}


/* v6: enlarge and center reservation shop popup store cards */
.reserve-shop-modal__shops button{
  text-align:center;
  padding:24px 20px;
  border-radius:28px;
}
.reserve-shop-modal__shops button strong{
  display:block;
  font-size:clamp(24px, 5vw, 34px);
  line-height:1.18;
  font-weight:700;
  margin-bottom:10px;
}
.reserve-shop-modal__shops button em{
  display:block;
  margin-top:0;
  margin-bottom:4px;
  font-style:normal;
  font-size:clamp(15px, 3vw, 20px);
  line-height:1.35;
  color:#a06478;
}
.reserve-shop-modal__shops button span{
  display:block;
  font-size:clamp(22px, 4.2vw, 30px);
  line-height:1.2;
  font-weight:700;
  color:#b45f78;
}

/* v9 update: force all 10 benefits text blocks to center-align */
.benefit-card__text,
.benefit-card__text *,
.benefit-card__text h3,
.benefit-card__main,
.benefit-card__note{
  text-align:center !important;
}
.benefit-card__text h3,
.benefit-card__main,
.benefit-card__note{
  width:100%;
  margin-left:auto !important;
  margin-right:auto !important;
}
.benefit-card__note{
  display:block;
}

/* v10 update: balanced 10 benefits text spacing and automatic centering for admin-entered fields */
.benefit-card__text{
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center !important;
  gap:8px;
  padding-top:24px !important;
  padding-bottom:30px !important;
}
.benefit-card__text span{
  margin:0 0 4px !important;
  text-align:center !important;
}
.benefit-card__text h3{
  max-width:92%;
  margin:0 auto 2px !important;
  text-align:center !important;
  line-height:1.45 !important;
  white-space:pre-line;
}
.benefit-card__text h3:after{
  margin:10px auto 0 !important;
}
.benefit-card__main{
  max-width:92%;
  margin:0 auto !important;
  text-align:center !important;
  line-height:1.55 !important;
  white-space:pre-line;
}
.benefit-card__note{
  max-width:92%;
  margin:2px auto 0 !important;
  text-align:center !important;
  line-height:1.65 !important;
  white-space:pre-line;
}
.benefit-list .slick-slide,
.benefit-list .slick-slide > div,
.benefit-list .benefit-card{
  text-align:center !important;
}
@media(max-width:760px){
  .benefit-card__text{
    gap:7px;
    padding-top:22px !important;
    padding-bottom:28px !important;
  }
  .benefit-card__text h3,
  .benefit-card__main,
  .benefit-card__note{
    max-width:94%;
  }
}


/* v11 update: tighten 10 benefits content spacing so text is fully visible */
.benefit-card__text{
  gap: 4px !important;
  padding-top: 8px !important;
  padding-bottom: 18px !important;
  margin-top: -6px !important;
  min-height: 0 !important;
}
.benefit-card__text span{
  margin: 0 !important;
}
.benefit-card__text h2,
.benefit-card__text .benefit-card__number{
  margin: 0 0 2px !important;
  line-height: 1 !important;
}
.benefit-card__text h3{
  margin: 0 auto 2px !important;
  line-height: 1.35 !important;
}
.benefit-card__text h3:after{
  margin: 8px auto 0 !important;
}
.benefit-card__main{
  margin: 0 auto !important;
  line-height: 1.45 !important;
}
.benefit-card__note{
  margin: 0 auto !important;
  line-height: 1.5 !important;
}
.benefit-card .benefit-card__image,
.benefit-card__image-wrap,
.benefit-card__visual{
  margin-bottom: 8px !important;
}
@media (max-width: 760px){
  .benefit-card__text{
    padding-top: 4px !important;
    padding-bottom: 16px !important;
    margin-top: -10px !important;
    gap: 3px !important;
  }
  .benefit-card__text h3{
    line-height: 1.3 !important;
  }
  .benefit-card__main,
  .benefit-card__note{
    line-height: 1.42 !important;
  }
}

/* v12 update: rebuild 10 Benefits card layout so image/text/dots do not overlap */
.benefit-list.flow-list.slick-initialized{
  padding-bottom:62px !important;
}
.benefit-list.flow-list .slick-list{
  overflow:hidden !important;
  height:auto !important;
  margin:0 20px !important;
}
.benefit-list .slick-track{
  align-items:flex-start !important;
}
.benefit-list .slick-slide,
.benefit-list .slick-slide > div,
.benefit-list .benefit-card{
  height:auto !important;
  min-height:0 !important;
}
.benefit-list .benefit-card{
  display:block !important;
  overflow:hidden !important;
}
.benefit-list .benefit-card figure{
  position:relative !important;
  height:190px !important;
  min-height:190px !important;
  padding-top:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  background:#f8eef2 !important;
}
.benefit-list .benefit-card figure img{
  position:static !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.benefit-card__text{
  display:block !important;
  min-height:0 !important;
  margin:0 !important;
  padding:12px 20px 22px !important;
  text-align:center !important;
}
.benefit-card__text span{
  display:block !important;
  margin:0 0 8px !important;
  font-size:48px !important;
  line-height:1 !important;
  text-align:center !important;
}
.benefit-card__text h3{
  display:block !important;
  margin:0 auto 8px !important;
  max-width:94% !important;
  font-size:20px !important;
  line-height:1.35 !important;
  text-align:center !important;
}
.benefit-card__text h3:after{
  margin:8px auto 0 !important;
}
.benefit-card__main{
  display:block !important;
  margin:0 auto 4px !important;
  max-width:94% !important;
  font-size:18px !important;
  line-height:1.42 !important;
  text-align:center !important;
}
.benefit-card__note{
  display:block !important;
  margin:0 auto !important;
  max-width:94% !important;
  font-size:12px !important;
  line-height:1.45 !important;
  text-align:center !important;
}
.benefit-list.flow-list .slick-dots{
  bottom:16px !important;
}
@media(max-width:760px){
  .benefit-list .benefit-card figure{
    height:182px !important;
    min-height:182px !important;
  }
  .benefit-card__text{
    padding:10px 18px 24px !important;
  }
  .benefit-card__text span{
    font-size:46px !important;
    margin-bottom:7px !important;
  }
  .benefit-card__text h3{
    font-size:19px !important;
    line-height:1.3 !important;
    margin-bottom:7px !important;
  }
  .benefit-card__main{
    font-size:17px !important;
    line-height:1.38 !important;
  }
  .benefit-card__note{
    font-size:11px !important;
    line-height:1.38 !important;
  }
}

/* v13 update: high-specificity center alignment for 10 Benefits text */
#benefits.benefit-section .benefit-card__text,
#benefits.benefit-section .benefit-card__text span,
#benefits.benefit-section .benefit-card__text h3,
#benefits.benefit-section .benefit-card__text p,
#benefits.benefit-section .benefit-card__text p.benefit-card__main,
#benefits.benefit-section .benefit-card__text p.benefit-card__note,
#benefits.flow-section--kirari .flow-card__text p.benefit-card__main,
#benefits.flow-section--kirari .flow-card__text p.benefit-card__note{
  text-align:center !important;
}
#benefits.benefit-section .benefit-card__text p.benefit-card__main,
#benefits.benefit-section .benefit-card__text p.benefit-card__note{
  display:block !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* v18 update: footer uses separate white-on-black logo image */
.footer-brand--kirari .footer-brand__logo-img{
  max-width:210px;
  width:62%;
  height:auto;
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
  box-shadow:none !important;
  display:block;
  margin:0 auto 16px;
}


/* v19: product catalog collection tabs / import display */
.furisode-collection-tabs{
  width:90%;
  margin:0 auto 22px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
}
.furisode-collection-tabs a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid #d9a6b7;
  background:#fff;
  color:#a06478;
  font-size:12px;
  font-weight:700;
  text-decoration:none;
}
.furisode-collection-tabs a.is-active{
  background:#b45f78;
  color:#fff;
  border-color:#b45f78;
}
.furisode-item-card__collection{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  margin:0 auto 8px !important;
  min-height:22px;
  padding:0 10px;
  border-radius:999px;
  background:#fff4f8;
  color:#a06478;
  font-size:11px !important;
  font-weight:700;
}


/* v21: hide production sample products and show a clean empty catalog message */
.catalog-empty-message{
  width:90%;
  max-width:330px;
  margin:24px auto 40px;
  padding:24px 18px;
  text-align:center;
  border:1px solid rgba(180,95,120,.25);
  border-radius:22px;
  background:rgba(255,255,255,.86);
  color:#7b6870;
  font-size:13px;
  line-height:1.8;
}
.furisode-grid .catalog-empty-message,
.hakama-grid .catalog-empty-message{
  grid-column:1 / -1;
}


/* v22: neutral no-image placeholder; do not reuse one sample photo for all missing product images */
.catalog-no-image{
  width:100%;
  min-height:240px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  border-radius:14px;
  background:linear-gradient(135deg, #fff5f8, #f9e4ec);
  color:#b45f78;
  font-weight:700;
  letter-spacing:.08em;
  text-align:center;
  line-height:1.4;
}
.catalog-no-image small{
  font-size:12px;
  letter-spacing:.05em;
}
.hakama-item-card__image .catalog-no-image{
  min-height:210px;
}


/* v27: digital catalog sort control */
.furisode-sort-control{
  width:90%;
  max-width:360px;
  margin:-4px auto 20px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
}
.furisode-sort-control label{
  flex:0 0 auto;
  color:#9f687a;
  font-size:12px;
  font-weight:700;
}
.furisode-sort-control select{
  min-width:180px;
  max-width:230px;
  min-height:38px;
  padding:7px 32px 7px 12px;
  border:1px solid #dba7b7;
  border-radius:999px;
  background:#fff;
  color:#7d5965;
  font:inherit;
  font-size:12px;
  font-weight:600;
  outline:none;
}
.furisode-sort-control select:focus{
  border-color:#b45f78;
  box-shadow:0 0 0 1px #b45f78;
}
@media (max-width:480px){
  .furisode-sort-control{
    justify-content:center;
  }
  .furisode-sort-control select{
    min-width:190px;
  }
}


/* v28: dynamic product color filter and card color label */
.furisode-filter-controls{
  width:90%;
  max-width:390px;
  margin:-4px auto 20px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px 12px;
}
.furisode-filter-control{
  display:flex;
  align-items:center;
  gap:7px;
}
.furisode-filter-control label{
  flex:0 0 auto;
  color:#9f687a;
  font-size:11px;
  font-weight:700;
}
.furisode-filter-control select{
  min-height:38px;
  padding:7px 30px 7px 11px;
  border:1px solid #dba7b7;
  border-radius:999px;
  background:#fff;
  color:#7d5965;
  font:inherit;
  font-size:11px;
  font-weight:600;
  outline:none;
}
#furisode-color{
  min-width:135px;
}
#furisode-sort{
  min-width:175px;
}
.furisode-filter-control select:focus{
  border-color:#b45f78;
  box-shadow:0 0 0 1px #b45f78;
}
.furisode-item-card__color{
  margin:2px 0 8px !important;
  color:#6f5d64;
  font-size:11px !important;
  line-height:1.5;
}
.furisode-item-card__color span{
  display:inline-block;
  margin-right:4px;
  color:#b45f78;
  font-weight:700;
}
@media (max-width:480px){
  .furisode-filter-controls{
    align-items:stretch;
  }
  .furisode-filter-control{
    width:100%;
    justify-content:space-between;
  }
  .furisode-filter-control select{
    flex:1 1 auto;
    min-width:0 !important;
  }
}


/* v29: refined catalog filter panel */
.furisode-filter-panel{
  width:90%;
  max-width:380px;
  margin:8px auto 22px;
  padding:14px 12px 15px;
  border:1px solid rgba(212,145,168,.42);
  border-radius:18px;
  background:rgba(255,255,255,.72);
  box-shadow:0 5px 14px rgba(150,90,110,.06);
}

.furisode-filter-panel .furisode-collection-tabs{
  width:100%;
  margin:0 0 14px;
  gap:7px;
  justify-content:center;
}

.furisode-filter-panel .furisode-collection-tabs a{
  min-height:32px;
  padding:0 13px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  white-space:nowrap;
}

.furisode-filter-panel .furisode-filter-controls{
  width:100%;
  max-width:none;
  margin:0;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}

.furisode-filter-panel .furisode-filter-control{
  width:100%;
  display:grid;
  grid-template-columns:62px minmax(0,1fr);
  align-items:center;
  gap:8px;
}

.furisode-filter-panel .furisode-filter-control label{
  margin:0;
  text-align:right;
  color:#a26378;
  font-size:11px;
  font-weight:700;
  line-height:1.2;
}

.furisode-filter-panel .furisode-filter-control select{
  width:100%;
  min-width:0 !important;
  max-width:none;
  min-height:36px;
  margin:0;
  padding:6px 32px 6px 13px;
  border:1px solid #d9a6b7;
  border-radius:10px;
  background:#fff;
  color:#6f5860;
  font-size:11px;
  font-weight:600;
  line-height:1.2;
  box-shadow:none;
}

.furisode-filter-panel .furisode-filter-control select:hover{
  border-color:#c9839b;
}

.furisode-filter-panel .furisode-filter-control select:focus{
  border-color:#b45f78;
  box-shadow:0 0 0 2px rgba(180,95,120,.10);
}

@media (max-width:480px){
  .furisode-filter-panel{
    width:92%;
    padding:13px 10px 14px;
  }

  .furisode-filter-panel .furisode-filter-control{
    grid-template-columns:58px minmax(0,1fr);
    gap:7px;
  }

  .furisode-filter-panel .furisode-collection-tabs a{
    padding:0 12px;
  }
}


/* v30: keep product detail labels on one line */
.product-detail-info dt{
  white-space:nowrap;
  word-break:keep-all;
}
@media(max-width:760px){
  .product-detail-info dl > div{
    grid-template-columns:104px minmax(0,1fr);
    gap:10px;
  }
  .product-detail-info dt{
    white-space:nowrap;
    word-break:keep-all;
    letter-spacing:.04em;
  }
}


/* v31: keep rental label on one line in catalog cards */
.furisode-item-card__rental{
  white-space:nowrap;
  word-break:keep-all;
  font-size:10px !important;
  letter-spacing:-.025em !important;
  line-height:1.55;
}
.furisode-item-card__rental strong{
  font-size:12px;
  letter-spacing:0;
}
@media(max-width:390px){
  .furisode-item-card__rental{
    font-size:9.5px !important;
  }
}


/* v36: robust desktop background rendering.
 * Use the real PC image directly on body instead of relying on a negative-z-index
 * pseudo element, which can disappear behind the body background in some browsers.
 */
@media(min-width:761px){
  html{
    background:#fae8ee !important;
  }

  body{
    background:
      linear-gradient(90deg,
        rgba(255,255,255,.62) 0%,
        rgba(255,239,245,.70) 48%,
        rgba(255,255,255,.60) 100%),
      url('../images/000-pc-background.jpg') right center / auto 100vh fixed no-repeat !important;
  }

  body:after{
    display:none !important;
  }

  body:before{
    display:none !important;
  }
}


/* v37: restore PC model photo to the RIGHT SIDE of the centered phone frame.
 * The image is clipped to the desktop side area, so it can never render behind
 * the 400px phone canvas. This keeps V36 browser reliability without changing
 * the mobile site itself.
 */
@media(min-width:761px){
  html{
    background:#f8dce5 !important;
  }

  body{
    position:relative !important;
    isolation:isolate;
    background:
      linear-gradient(90deg,#f8dce5 0%,#f6d6e0 48%,#f4cedb 100%) !important;
  }

  .site-canvas{
    position:relative;
    z-index:2;
  }

  body:before{
    display:none !important;
  }

  body:after{
    content:"" !important;
    display:block !important;
    position:fixed !important;
    top:0 !important;
    bottom:0 !important;
    left:calc(50% + (var(--phone) / 2)) !important;
    right:0 !important;
    z-index:1 !important;
    pointer-events:none !important;
    background:
      linear-gradient(rgba(255,218,231,.16),rgba(255,218,231,.16)),
      url('../images/000-pc-background.jpg') right center / auto 100vh no-repeat !important;
    filter:none !important;
    transform:none !important;
  }
}

/* On smaller desktop/laptop widths, preserve a clean side strip and never
 * let the photo overlap the centered phone canvas. */
@media(min-width:761px) and (max-width:1154px){
  body:after{
    left:calc(50% + (var(--phone) / 2)) !important;
    background-position:right center !important;
    background-size:auto 100vh !important;
  }
}

/* On very wide screens keep the model anchored to the far right, still clipped
 * outside the phone canvas. */
@media(min-width:1600px){
  body:after{
    left:calc(50% + (var(--phone) / 2)) !important;
    background-position:right center !important;
    background-size:auto 100vh !important;
  }
}


/* v38: dedicated right-side PC background crop.
 * V37 correctly kept the photo outside the phone frame, but the original
 * 1500x414 banner is extremely wide, so clipping it to the side showed only
 * part of the model. V38 uses a dedicated crop of the SAME source photo so
 * the full face and upper body remain visible on the right side.
 */
@media(min-width:761px){
  body{
    background:
      linear-gradient(90deg,#f8dce5 0%,#f6d6e0 48%,#f4cedb 100%) !important;
  }

  body:after{
    content:"" !important;
    display:block !important;
    position:fixed !important;
    top:0 !important;
    bottom:0 !important;
    left:calc(50% + (var(--phone) / 2)) !important;
    right:0 !important;
    z-index:1 !important;
    pointer-events:none !important;
    background-image:
      linear-gradient(rgba(255,218,231,.10),rgba(255,218,231,.10)),
      url('../images/000-pc-background-side.jpg') !important;
    background-position:center top !important;
    background-size:cover !important;
    background-repeat:no-repeat !important;
    filter:none !important;
    transform:none !important;
  }
}

@media(min-width:761px) and (max-width:1154px){
  body:after{
    background-position:center top !important;
    background-size:cover !important;
  }
}

@media(min-width:1600px){
  body:after{
    background-position:center top !important;
    background-size:cover !important;
  }
}
