:root{--purple:#534AB7;--deep:#26215C;--lav:#EEEDFE;--char:#444441;--gray:#888780;--gold:#BA7517;--white:#fff;--border:#dcd9f3;--serif:"Shippori Mincho",serif;--sans:"Noto Sans JP",sans-serif;--shadow:0 18px 50px rgba(38,33,92,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--char);background:#fff;font-family:var(--sans);line-height:1.85;font-size:15px}body.nav-open{overflow:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}.narrow{width:min(850px,calc(100% - 40px))}.center{text-align:center}.skip-link{position:absolute;left:-9999px;top:5px;background:#fff;padding:8px;z-index:999}.skip-link:focus{left:5px}.topbar{background:var(--deep);color:#dcd9f3;font-size:11px;letter-spacing:.08em}.topbar__inner{display:flex;justify-content:space-between;padding:7px 0}.site-header{height:86px;background:rgba(255,255,255,.97);position:sticky;top:0;z-index:100;border-bottom:1px solid #eee}.admin-bar .site-header{top:32px}.site-header__inner{height:100%;display:flex;align-items:center;gap:24px}.brand{display:flex;flex-direction:column;min-width:max-content}.brand__main{font-family:var(--serif);font-size:22px;color:var(--deep);letter-spacing:.08em}.brand__main b{font-weight:700}.brand__sub{font-size:9px;color:var(--purple);letter-spacing:.18em;margin-top:1px}.main-nav{margin-left:auto}.main-nav__list{display:flex;align-items:center;gap:22px;list-style:none;margin:0;padding:0;font-family:var(--serif);font-size:13px}.main-nav__list a{position:relative}.main-nav__list a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--purple);transition:.25s}.main-nav__list a:hover:after{right:0}.header-actions{display:flex;gap:8px}.header-action{background:var(--purple);color:#fff;padding:11px 15px;font-size:12px;font-weight:700;border:1px solid var(--purple);white-space:nowrap}.header-action--outline{background:#fff;color:var(--purple)}.nav-toggle{display:none;background:none;border:0;width:50px;height:52px;padding:7px;position:relative}.nav-toggle span{display:block;height:1px;background:var(--deep);margin:6px 0}.nav-toggle em{font-style:normal;font-size:8px;letter-spacing:.1em}.breadcrumbs{font-size:11px;color:var(--gray);border-bottom:1px solid #eee}.breadcrumbs .container{display:flex;gap:8px;padding:8px 0;overflow:hidden;white-space:nowrap}.hero{height:min(780px,calc(100vh - 110px));min-height:560px;position:relative;overflow:hidden;background:var(--deep);color:#fff}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1s}.hero-slide.is-active{opacity:1}.hero-slide__img{width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,20,55,.72) 0%,rgba(25,20,55,.32) 48%,rgba(25,20,55,.05) 75%)}.hero-content{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:1180px}.hero-kicker{font-size:11px;letter-spacing:.24em;margin:0 0 22px}.hero h1{font-family:var(--serif);font-size:clamp(34px,5vw,68px);line-height:1.48;letter-spacing:.08em;margin:0 0 20px;font-weight:500;text-shadow:0 2px 16px rgba(0,0,0,.2)}.hero-content>p:not(.hero-kicker){max-width:600px;font-size:16px;margin:0 0 28px}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:50px;padding:12px 28px;border:1px solid transparent;font-weight:700;font-size:13px;letter-spacing:.04em;transition:.25s}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.12)}.btn--gold{background:var(--gold);color:#fff}.btn--purple{background:var(--purple);color:#fff}.btn--white{background:#fff;color:var(--deep)}.btn--ghost{border-color:#fff;color:#fff}.btn--large{width:100%;font-size:16px;min-height:62px}.hero-dots{position:absolute;z-index:5;bottom:32px;left:50%;transform:translateX(-50%);display:flex;gap:9px}.hero-dots button{width:28px;height:2px;border:0;background:rgba(255,255,255,.45);padding:0}.hero-dots button.is-active{background:#fff}.hero-scroll{position:absolute;right:30px;bottom:24px;z-index:3;font-size:9px;letter-spacing:.2em;writing-mode:vertical-rl;display:flex;align-items:center;gap:8px}.hero-scroll span{display:block;width:1px;height:46px;background:rgba(255,255,255,.6)}.section{padding:100px 0}.section--lavender{background:var(--lav)}.section--purple{background:var(--deep);color:#fff}.section-heading{text-align:center;max-width:740px;margin:0 auto 46px}.section-heading__en,.eyebrow{display:block;color:var(--purple);font-size:10px;letter-spacing:.22em;font-weight:700;margin-bottom:10px}.section-heading h2,.intro-copy :is(h1,h2),.photo-copy h2,.access h2,.page-header h1,.plan-detail h2,.photo-hero h2,.store-story h2{font-family:var(--serif);color:var(--deep);font-size:clamp(28px,4vw,44px);line-height:1.5;letter-spacing:.06em;margin:0 0 14px;font-weight:600}.section-heading p,.page-header p{color:var(--gray);margin:0}.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.event-card{background:#fff;box-shadow:var(--shadow)}.event-card__image{aspect-ratio:16/9;position:relative;overflow:hidden}.event-card__image img{width:100%;height:100%;object-fit:cover;transition:.4s}.event-card:hover img{transform:scale(1.025)}.event-card__badge{position:absolute;left:14px;top:14px;background:var(--gold);color:#fff;padding:5px 10px;font-size:10px;font-weight:700}.event-card__body{padding:24px}.event-card time{font-size:12px;color:var(--purple);font-weight:700}.event-card h3{font-family:var(--serif);font-size:22px;color:var(--deep);margin:7px 0}.event-card__venue{font-size:13px;color:var(--gray)}.text-link{display:inline-block;color:var(--purple);font-weight:700;font-size:13px;margin-top:12px}.text-link b{margin-left:8px}.events-note{font-size:11px;color:var(--gray);margin-top:18px;text-align:center}.intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:72px;align-items:center}.intro-image{position:relative}.intro-image img{width:100%;aspect-ratio:4/5;object-fit:cover}.vertical-label{position:absolute;right:-24px;top:20px;writing-mode:vertical-rl;letter-spacing:.22em;color:var(--purple);font-size:10px}.intro-copy p{margin:0 0 18px}.promises{margin-top:80px}.promises>h3{text-align:center;font-family:var(--serif);font-size:26px;color:var(--deep);margin-bottom:30px}.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.promise-grid>div{border:1px solid var(--border);padding:30px 22px;text-align:center;background:#fff}.promise-grid strong{font-family:var(--serif);font-size:30px;color:var(--purple)}.promise-grid p{font-family:var(--serif);font-size:17px;color:var(--deep);margin:10px 0 0}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr)}.quick-grid a{padding:40px 26px;border-right:1px solid rgba(255,255,255,.15);min-height:190px;transition:.25s}.quick-grid a:first-child{border-left:1px solid rgba(255,255,255,.15)}.quick-grid a:hover{background:rgba(255,255,255,.06)}.quick-grid span{font-size:9px;letter-spacing:.18em;color:#afa9ec}.quick-grid h3{font-family:var(--serif);font-size:22px;margin:13px 0 6px}.quick-grid p{font-size:12px;color:#cecbf6}.furisode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.furisode-card__image{aspect-ratio:4/5;overflow:hidden;background:#eee}.furisode-card__image img{width:100%;height:100%;object-fit:cover;transition:.4s}.furisode-card:hover img{transform:scale(1.025)}.furisode-card h3,.furisode-card h2{font-family:var(--serif);color:var(--deep);font-size:17px;margin:14px 0 2px}.furisode-card p{font-size:12px;color:var(--gray);margin:0}.furisode-card__meta span{font-size:9px;letter-spacing:.14em;color:var(--purple)}.center>.btn{margin-top:42px}.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.plan-card{background:#fff;box-shadow:0 8px 26px rgba(38,33,92,.07)}.plan-card__image{aspect-ratio:4/3;overflow:hidden}.plan-card__image img{width:100%;height:100%;object-fit:cover}.plan-card__body{padding:22px}.plan-card__body>span{font-size:9px;color:var(--purple);letter-spacing:.18em}.plan-card h3{font-family:var(--serif);font-size:20px;color:var(--deep);margin:8px 0}.plan-card p{font-size:12px;margin:0;color:var(--gray)}.plan-card strong{display:block;color:var(--gold);margin-top:12px;font-size:15px}.photo-preview__grid,.access-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.photo-main img{width:100%;aspect-ratio:4/3;object-fit:cover}.photo-copy p{margin:20px 0 26px}.mini-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mini-steps>div{background:#fff;padding:26px 20px;border-top:3px solid var(--purple)}.mini-steps b{color:var(--purple);font-family:var(--serif);font-size:24px}.mini-steps h3{font-family:var(--serif);font-size:17px;color:var(--deep);margin:8px 0}.mini-steps p{font-size:12px;color:var(--gray)}.insta-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.insta-grid a{aspect-ratio:1/1;position:relative;overflow:hidden}.insta-grid img{width:100%;height:100%;object-fit:cover}.insta-grid span{position:absolute;right:8px;top:4px;color:#fff;text-shadow:0 1px 6px #000}.access dl>div,.store-info-grid dl>div{display:grid;grid-template-columns:100px 1fr;border-top:1px solid var(--border);padding:10px 0;font-size:13px}.access dt,.store-info-grid dt{color:var(--gray)}.map-wrap{height:420px;background:#ddd}.map-wrap iframe{border:0;width:100%;height:100%}.footer-cta{background:var(--purple);color:#fff;padding:64px 0}.footer-cta__grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.footer-cta span{font-size:9px;letter-spacing:.2em;color:#dcd9f3}.footer-cta h2{font-family:var(--serif);font-size:32px;line-height:1.6;margin:10px 0}.footer-cta p{color:#dcd9f3}.footer-cta__buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.footer-phone{grid-column:1/-1;text-align:center;color:#fff;font-family:var(--serif);font-size:24px;padding:12px}.footer-phone small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.1em}.site-footer{background:#18152e;color:#cecbf6;padding:64px 0 22px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr .7fr;gap:60px}.brand--footer .brand__main{color:#fff}.footer-address{font-size:12px;line-height:2;margin-top:20px}.footer-nav ul{list-style:none;padding:0;margin:0;columns:2}.footer-nav li{margin-bottom:11px;font-size:12px}.footer-social{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:12px}.footer-social>p:first-child{font-size:9px;letter-spacing:.2em;color:#7f77dd}.footer-general{margin-top:18px}.copyright{border-top:1px solid rgba(255,255,255,.12);margin-top:44px;padding-top:20px;font-size:10px;color:#7f77dd}.mobile-cta{display:none}.standard-page{padding:80px 0 110px}.page-header{text-align:center;margin:0 auto 60px;max-width:800px}.page-header>span{color:var(--purple);letter-spacing:.22em;font-size:10px}.page-header h1{margin-top:8px}.entry-content h2,.legal-content h2{font-family:var(--serif);color:var(--deep);margin-top:2em}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.collection-filters{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:40px}.collection-filter-buttons,.collection-selects{display:flex;gap:8px}.collection-selects select{border:1px solid var(--border);background:#fff;padding:9px 30px 9px 12px;color:var(--deep)}.collection-filters button{border:1px solid var(--border);background:#fff;padding:9px 24px;color:var(--deep)}.collection-filters button.is-active{background:var(--deep);color:#fff;border-color:var(--deep)}.furisode-grid--large{grid-template-columns:repeat(4,1fr)}[hidden]{display:none!important}.collection-help{margin-top:80px;background:var(--lav);padding:50px;text-align:center}.collection-help h2{font-family:var(--serif);color:var(--deep)}.product-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:start}.product-image img{width:100%}.product-info h1{font-family:var(--serif);color:var(--deep);font-size:38px}.product-type{color:var(--purple);font-weight:700}.product-price{font-size:22px;color:var(--gold);font-weight:700}.plan-detail{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:70px 0;border-bottom:1px solid var(--border);scroll-margin-top:130px}.plan-detail:nth-child(even) .plan-detail__image{order:2}.plan-detail__image{position:relative}.plan-detail__image img{aspect-ratio:4/3;object-fit:cover;width:100%}.plan-detail__image>span{position:absolute;left:-16px;top:-20px;font-family:var(--serif);font-size:64px;color:rgba(83,74,183,.18)}.plan-detail__copy>p{margin:20px 0}.price-box{background:var(--lav);padding:18px;margin:24px 0}.price-box small{display:block}.price-box strong{font-size:26px;color:var(--deep);display:block}.price-box b{color:var(--gold);font-size:14px}.check-list{list-style:none;padding:0}.check-list li{padding:7px 0 7px 28px;position:relative;border-bottom:1px solid #eee;font-size:13px}.check-list li:before{content:"✓";position:absolute;left:3px;color:var(--purple);font-weight:700}.notice-box{background:#fff8ed;border:1px solid #efd7af;padding:26px;margin:50px 0}.notice-box h3{font-family:var(--serif);color:#7a510e}.comparison{margin-top:70px}.comparison h2,.shoot-schedule>h2,.photo-gallery>h2,.staff header h2{font-family:var(--serif);font-size:30px;color:var(--deep);text-align:center}.table-scroll{overflow:auto}.comparison table{width:100%;border-collapse:collapse;min-width:720px}.comparison th,.comparison td{border:1px solid var(--border);padding:14px;text-align:center;font-size:13px}.comparison thead th{background:var(--deep);color:#fff}.comparison tbody th{background:var(--lav);color:var(--deep)}.flow-intro{background:var(--lav);padding:35px;margin-bottom:50px}.flow-intro h2{font-family:var(--serif);color:var(--deep)}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:32px;top:20px;bottom:20px;width:1px;background:var(--border)}.timeline-item{display:grid;grid-template-columns:65px 1fr;gap:24px;position:relative;padding:0 0 45px}.timeline-num{width:64px;height:64px;border-radius:50%;background:var(--purple);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:20px;z-index:1}.timeline-item h2{font-family:var(--serif);color:var(--deep);margin:4px 0 6px}.timeline-item p{margin:0;color:var(--gray)}.photo-hero,.store-story{display:grid;grid-template-columns:1.15fr .85fr;gap:65px;align-items:center;margin-bottom:90px}.photo-hero img,.store-story img{width:100%;aspect-ratio:4/3;object-fit:cover}.shoot-schedule{background:var(--lav);padding:50px;margin-bottom:70px}.shoot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.shoot-grid>div{background:#fff;padding:22px 16px}.shoot-grid b{font-family:var(--serif);font-size:25px;color:var(--purple)}.shoot-grid h3{font-family:var(--serif);color:var(--deep);font-size:16px}.shoot-grid p{font-size:11px;color:var(--gray)}.preparation-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:80px}.preparation-grid>div{border:1px solid var(--border);padding:28px}.preparation-grid h2{font-family:var(--serif);color:var(--deep);font-size:20px}.photo-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-gallery-grid>div{aspect-ratio:1/1;overflow:hidden}.photo-gallery-grid img{width:100%;height:100%;object-fit:cover}.store-info-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;background:var(--lav);padding:45px;margin-bottom:90px}.store-info-grid h2{font-family:var(--serif);color:var(--deep)}.staff-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.staff-grid article>div{aspect-ratio:3/2;overflow:hidden}.staff-grid img{width:100%;height:100%;object-fit:cover}.staff-grid h3{font-family:var(--serif);font-size:22px;color:var(--deep)}.faq-item{border-bottom:1px solid var(--border)}.faq-item summary{list-style:none;display:grid;grid-template-columns:40px 1fr 20px;gap:12px;padding:22px 0;cursor:pointer;font-weight:600;color:var(--deep)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary span,.faq-item>div>span{font-family:var(--serif);font-size:20px;color:var(--purple)}.faq-item summary b{color:var(--purple);font-size:20px}.faq-item>div{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:0 0 25px}.faq-item p{margin:0;color:var(--gray)}.selected-event{background:var(--lav);padding:28px;margin-bottom:35px;border-left:4px solid var(--purple)}.selected-event>span{font-size:9px;letter-spacing:.2em;color:var(--purple)}.selected-event h2{font-family:var(--serif);color:var(--deep);margin:7px 0}.reservation-form{background:#fff;border:1px solid var(--border);padding:35px;box-shadow:var(--shadow)}.reservation-form label{display:block;font-weight:600;color:var(--deep);margin-bottom:22px}.reservation-form em{font-style:normal;font-size:10px;color:#fff;background:#b84d4d;padding:2px 5px;margin-left:5px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.reservation-form input,.reservation-form select,.reservation-form textarea{display:block;width:100%;border:1px solid #cbc8df;background:#fff;padding:13px;margin-top:7px;border-radius:0}.privacy-check{font-size:12px;font-weight:400!important}.privacy-check input{display:inline;width:auto;margin:0}.privacy-check a{text-decoration:underline;color:var(--purple)}.form-note{font-size:11px;color:var(--gray);text-align:center}.hp-field{position:absolute!important;left:-9999px!important}.reservation-events{margin-top:60px}.reservation-events h2{font-family:var(--serif);color:var(--deep)}.event-list-small{display:grid;gap:8px}.event-list-small a{border:1px solid var(--border);padding:16px;display:flex;justify-content:space-between;gap:20px}.event-list-small span{color:var(--gray);font-size:12px}.complete-mark{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--purple);color:#fff;margin:0 auto 30px;font-size:35px}.receipt-number{background:var(--lav);padding:18px}.footer-phone--dark{color:var(--deep);display:inline-block}.event-single-image{width:100%;margin-bottom:30px}.legal-content{font-size:14px}.mobile-cta{height:64px}.empty-message{grid-column:1/-1;text-align:center;padding:40px}
@media(max-width:1050px){.main-nav__list{gap:13px;font-size:12px}.header-actions{display:none}.quick-grid{grid-template-columns:1fr 1fr}.plan-grid{grid-template-columns:1fr 1fr}.furisode-grid--large{grid-template-columns:repeat(3,1fr)}.shoot-grid{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.footer-social{grid-column:1/-1;flex-direction:row}.insta-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:782px){.admin-bar .site-header{top:46px}.topbar{display:none}.site-header{height:70px}.site-header__inner{justify-content:space-between}.brand__main{font-size:18px}.brand__sub{font-size:7px}.nav-toggle{display:block}.main-nav{position:fixed;inset:70px 0 0;background:#fff;opacity:0;visibility:hidden;transform:translateY(-10px);transition:.25s;margin:0;padding:40px 30px 100px;overflow:auto}.admin-bar .main-nav{inset:116px 0 0}.nav-open .main-nav{opacity:1;visibility:visible;transform:none}.main-nav__list{display:block}.main-nav__list li{border-bottom:1px solid var(--border)}.main-nav__list a{display:block;padding:16px 0;font-size:16px}.hero{height:72vh;min-height:560px}.hero-overlay{background:linear-gradient(0deg,rgba(25,20,55,.75),rgba(25,20,55,.08) 70%)}.hero-content{justify-content:flex-end;padding-bottom:90px}.hero h1{font-size:34px}.hero-content>p:not(.hero-kicker){font-size:13px}.hero-buttons .btn{min-width:46%;padding:11px 15px}.hero-scroll{display:none}.section{padding:70px 0}.section-heading{margin-bottom:32px}.event-grid,.intro-grid,.photo-preview__grid,.access-grid,.photo-hero,.store-story,.store-info-grid,.product-grid,.footer-cta__grid{grid-template-columns:1fr;gap:32px}.event-card__body{padding:18px}.intro-grid{gap:35px}.vertical-label{right:10px}.promises{margin-top:50px}.promise-grid{grid-template-columns:1fr;gap:8px}.promise-grid>div{display:grid;grid-template-columns:60px 1fr;align-items:center;text-align:left;padding:18px}.promise-grid p{margin:0}.furisode-grid,.furisode-grid--large{grid-template-columns:1fr 1fr;gap:14px}.furisode-card h3,.furisode-card h2{font-size:14px}.plan-grid{gap:10px}.plan-card__body{padding:15px}.plan-card h3{font-size:16px}.mini-steps{grid-template-columns:1fr 1fr}.insta-grid{grid-template-columns:repeat(3,1fr)}.map-wrap{height:320px}.footer-cta__buttons{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:35px}.footer-social{grid-column:auto}.site-footer{padding-bottom:85px}.mobile-cta{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:120;background:var(--deep);color:#fff;box-shadow:0 -5px 18px rgba(0,0,0,.15)}.mobile-cta a{display:flex;flex-direction:column;justify-content:center;text-align:center;border-right:1px solid rgba(255,255,255,.18)}.mobile-cta b{font-size:13px}.mobile-cta small{font-size:8px;letter-spacing:.12em;color:#afa9ec}.standard-page{padding:55px 0 90px}.page-header{margin-bottom:40px}.page-header h1{font-size:32px}.collection-filters{display:block;overflow:visible;padding-bottom:5px}.collection-filter-buttons{overflow:auto;margin-bottom:10px}.collection-selects{display:grid;grid-template-columns:1fr 1fr}.collection-filters button{white-space:nowrap}.collection-help{padding:35px 20px}.plan-detail{grid-template-columns:1fr;gap:24px;padding:45px 0}.plan-detail:nth-child(even) .plan-detail__image{order:0}.plan-detail__image>span{left:4px}.shoot-schedule{padding:30px 20px}.shoot-grid{grid-template-columns:1fr}.preparation-grid{grid-template-columns:1fr}.photo-gallery-grid{grid-template-columns:1fr 1fr}.staff-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr;gap:0}.reservation-form{padding:25px 18px}.event-list-small a{display:block}.event-list-small span{display:block;margin-top:5px}.footer-nav ul{columns:1}}
@media(max-width:480px){.container,.narrow{width:min(100% - 28px,1180px)}.hero{min-height:520px}.hero h1{font-size:30px}.hero-kicker{font-size:8px}.hero-buttons{width:100%}.hero-buttons .btn{width:100%}.event-grid{gap:14px}.quick-grid{grid-template-columns:1fr 1fr}.quick-grid a{padding:25px 16px;min-height:155px}.quick-grid h3{font-size:17px}.plan-grid{grid-template-columns:1fr 1fr}.plan-card strong{font-size:12px}.mini-steps{grid-template-columns:1fr}.footer-cta h2{font-size:27px}.furisode-grid,.furisode-grid--large{grid-template-columns:1fr 1fr}.photo-gallery-grid{grid-template-columns:1fr 1fr}}


/* =========================================================
   v1.0.2 HOME VISUAL ALIGNMENT
   Client-approved: white / deep purple / pale lavender / gold.
   ========================================================= */
.section--lavender-soft{background:linear-gradient(180deg,#fff 0%,#faf9ff 100%)}

/* Header: light, compact and three explicit client actions */
.site-header{height:94px;background:rgba(255,255,255,.985);border-bottom:1px solid #e9e7f4;box-shadow:0 4px 20px rgba(38,33,92,.035)}
.site-header__inner{gap:20px}
.brand__main{font-size:23px}
.main-nav__list{gap:18px;font-size:12px}
.header-actions{gap:5px;align-items:stretch}
.header-action{min-width:92px;min-height:58px;padding:8px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.25;font-size:12px;border-radius:0}
.header-action small{font-size:7px;letter-spacing:.14em;margin-bottom:3px;font-weight:500}
.header-action--reserve{background:var(--purple);border-color:var(--purple);color:#fff}
.header-action--materials{background:#fff;border-color:var(--purple);color:var(--purple)}
.header-action--tel{background:var(--gold);border-color:var(--gold);color:#fff;min-width:116px}

/* Editorial image-first hero */
.hero--editorial{height:clamp(540px,53vw,730px);min-height:540px;background:#f5f3ef;color:var(--deep)}
.hero--editorial .hero-overlay{background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.72) 30%,rgba(255,255,255,.18) 58%,rgba(255,255,255,0) 76%)}
.hero-content--minimal{justify-content:center;max-width:1180px}
.hero-content--minimal .hero-kicker{color:var(--purple);font-size:10px;margin-bottom:18px}
.hero-content--minimal h1{color:var(--deep);font-size:clamp(34px,4.25vw,60px);line-height:1.55;text-shadow:none;margin-bottom:18px;max-width:700px;font-weight:500}
.hero-content--minimal>p:not(.hero-kicker){color:var(--char);font-size:14px;max-width:520px;margin:0;line-height:2}
.hero--editorial .hero-dots button{background:rgba(38,33,92,.25)}
.hero--editorial .hero-dots button.is-active{background:var(--purple)}

/* Events: banner-first instead of generic content cards */
.events .section-heading{margin-bottom:38px}
.event-grid{gap:22px}
.event-card{box-shadow:0 10px 35px rgba(38,33,92,.07);border:1px solid rgba(83,74,183,.08)}
.event-card__image{aspect-ratio:16/9}
.event-card__body{padding:18px 20px 20px}
.event-card h3{font-size:20px;margin:4px 0}
.event-card__venue{margin:0}
.event-card .text-link{margin-top:8px}

/* Lighter story cards */
.promise-grid>div{box-shadow:0 8px 30px rgba(38,33,92,.035)}

/* Furisode is a strong editorial grid on the home page */
.furisode-grid--home{grid-template-columns:repeat(4,1fr);gap:18px}
.furisode-grid--home .furisode-card__image{aspect-ratio:4/5}
.furisode-grid--home .furisode-card h3{margin-top:11px}

/* Photo block kept simple and visual */
.photo-preview{background:#fff}
.photo-preview__grid{grid-template-columns:.85fr 1.15fr;gap:80px}
.photo-main img{aspect-ratio:16/10}

/* Access stays bright */
.access{background:#fff}

/* Footer: consolidated but intentionally light like the approved design */
.footer-cta{background:var(--lav);color:var(--deep);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.footer-cta span{color:var(--purple)}
.footer-cta h2{color:var(--deep)}
.footer-cta p{color:var(--char)}
.footer-cta .btn--white{border:1px solid var(--purple);color:var(--purple)}
.footer-phone{color:var(--deep)}
.site-footer{background:#fff;color:var(--char);border-top:0;padding:58px 0 22px}
.brand--footer .brand__main{color:var(--deep)}
.footer-nav a,.footer-social a{color:var(--char)}
.footer-social>p:first-child{color:var(--purple)}
.copyright{border-top:1px solid var(--border);color:var(--gray)}

@media(max-width:1180px){
  .main-nav__list{gap:12px;font-size:11px}
  .header-action{min-width:82px;padding-inline:9px}
  .header-action--tel{min-width:102px}
}
@media(max-width:1050px){
  .header-actions{display:none}
  .furisode-grid--home{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:782px){
  .site-header{height:70px}
  .hero--editorial{height:68vh;min-height:520px}
  .hero--editorial .hero-overlay{background:linear-gradient(0deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.80) 31%,rgba(255,255,255,.12) 66%,rgba(255,255,255,0) 82%)}
  .hero-content--minimal{justify-content:flex-end;padding-bottom:72px}
  .hero-content--minimal h1{font-size:32px;line-height:1.55}
  .hero-content--minimal>p:not(.hero-kicker){font-size:12px;max-width:90%}
  .furisode-grid--home{grid-template-columns:1fr 1fr;gap:12px}
  .photo-preview__grid{grid-template-columns:1fr;gap:28px}
  .photo-copy{order:2}
  .photo-main{order:1}
  .footer-cta{padding:50px 0}
}
@media(max-width:480px){
  .hero--editorial{min-height:500px}
  .hero-content--minimal h1{font-size:28px}
  .event-card__body{padding:15px}
}


/* =========================================================
   v1.0.8 RESPONSIVE CLICKABLE HERO BANNERS
   Show the complete uploaded banner at every viewport width.
   The active slide controls the natural responsive height; no object-fit crop.
   ========================================================= */
.hero--banner-slider{
  height:auto!important;
  min-height:0!important;
  display:grid;
  position:relative;
  overflow:hidden;
  background:#fff;
  color:var(--deep);
}
.hero--banner-slider .hero-slide{
  position:relative!important;
  inset:auto!important;
  grid-area:1/1;
  width:100%;
  height:auto;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .65s ease;
}
.hero--banner-slider .hero-slide.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  z-index:1;
}
.hero--banner-slider .hero-slide__link{display:block;width:100%;height:auto}
.hero--banner-slider .hero-slide__img{
  display:block;
  width:100%;
  height:auto!important;
  max-width:none;
  object-fit:contain!important;
  object-position:center center;
}
.hero--banner-slider .hero-overlay,
.hero--banner-slider .hero-content{display:none!important}
.hero--banner-slider .hero-dots{z-index:6;bottom:14px}
.hero--banner-slider .hero-dots button{height:3px;background:rgba(255,255,255,.78);box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:pointer}
.hero--banner-slider .hero-dots button.is-active{background:var(--purple)}
@media(max-width:782px){
  .hero--banner-slider{height:auto!important;min-height:0!important}
  .hero--banner-slider .hero-slide__img{width:100%;height:auto!important;object-fit:contain!important}
  .hero--banner-slider .hero-dots{bottom:8px}
}
@media(max-width:480px){
  .hero--banner-slider{height:auto!important;min-height:0!important}
}


/* =========================================================
   v1.0.10 EVENT SLIDER
   Event artwork is square. One active event is centered; 2+ events slide one at a time.
   ========================================================= */
.event-slider{position:relative;width:min(720px,100%);margin:0 auto;padding:0 56px 38px}
.event-slider__track{display:grid;position:relative;overflow:hidden;background:#fff;box-shadow:0 14px 42px rgba(38,33,92,.09)}
.event-slide{grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(18px);transition:opacity .45s ease,transform .45s ease;min-width:0}
.event-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:none;z-index:2}
.event-slide__link{display:block;background:#fff}
.event-slide__image{aspect-ratio:1/1;position:relative;overflow:hidden;background:#fff}
.event-slide__image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .35s ease}
.event-slide__link:hover .event-slide__image img{transform:scale(1.015)}
.event-slide__body{padding:20px 24px 24px;text-align:left}
.event-slide__body time{font-size:12px;color:var(--purple);font-weight:700}
.event-slide__body h3{font-family:var(--serif);font-size:22px;color:var(--deep);margin:6px 0 4px}
.event-slide__body .event-card__venue{margin:0;color:var(--gray);font-size:13px}
.event-slider__arrow{position:absolute;top:calc(50% - 20px);transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--deep);font-family:Arial,sans-serif;font-size:31px;line-height:1;z-index:5;cursor:pointer;box-shadow:0 6px 20px rgba(38,33,92,.08)}
.event-slider__arrow:hover{background:var(--purple);color:#fff;border-color:var(--purple)}
.event-slider__arrow--prev{left:0}.event-slider__arrow--next{right:0}
.event-slider__dots{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);display:flex;gap:9px;align-items:center;justify-content:center}
.event-slider__dots button{width:8px;height:8px;border:0;border-radius:50%;background:#c9c5e7;padding:0;cursor:pointer;transition:.2s}
.event-slider__dots button.is-active{background:var(--purple);transform:scale(1.25)}
.events .empty-message{background:#fff;padding:40px;text-align:center;box-shadow:0 10px 35px rgba(38,33,92,.05)}
@media(max-width:782px){
  .event-slider{width:100%;padding:0 0 34px}
  .event-slider__arrow{top:46%;width:38px;height:38px;background:rgba(255,255,255,.92)}
  .event-slider__arrow--prev{left:8px}.event-slider__arrow--next{right:8px}
  .event-slide__body{padding:17px 18px 20px}
  .event-slide__body h3{font-size:19px}
}
@media(max-width:480px){
  .event-slider__arrow{width:34px;height:34px;font-size:26px}
  .event-slide__body{padding:15px}
}


/* =========================================================
   v1.0.12 EVENT SLIDER SIDE IMAGE LAYOUT
   WordPress-controlled transparent decorative art on left/right.
   ========================================================= */
.events{position:relative;overflow:hidden;isolation:isolate}
.events>.container{position:relative;z-index:2}
.events__decor{position:absolute;z-index:1;top:120px;bottom:42px;width:min(var(--event-decor-width,460px),30vw);display:flex;align-items:center;pointer-events:none;opacity:var(--event-decor-opacity,.78)}
.events__decor img{display:block;width:100%;height:auto;max-height:100%;object-fit:contain;filter:saturate(.96)}
.events__decor--left{left:0;justify-content:flex-start}
.events__decor--right{right:0;justify-content:flex-end}
@media(max-width:1280px){
  .events__decor{width:min(var(--event-decor-width,460px),24vw);opacity:var(--event-decor-opacity,.78)}
}
@media(max-width:960px){
  .events__decor{width:20vw;opacity:.38}
}
@media(max-width:782px){
  .events__decor{display:none;top:150px;bottom:20px;width:46vw;opacity:.22}
  .events--decor-mobile .events__decor{display:flex}
  .events--decor-mobile .events__decor--left{left:-18vw}
  .events--decor-mobile .events__decor--right{right:-18vw}
}

/* =========================================================
   v1.0.13 PC + MOBILE HERO ARTWORK
   Each Hero Banner can use separate desktop and mobile images.
   ========================================================= */
.hero--banner-slider .hero-slide__picture{display:block;width:100%;height:auto}
.hero--banner-slider .hero-slide__picture .hero-slide__img{display:block;width:100%;height:auto!important;object-fit:contain!important}
@media(max-width:782px){
  .hero--banner-slider .hero-slide__picture{width:100%}
  .hero--banner-slider .hero-slide__picture .hero-slide__img{width:100%;height:auto!important;max-height:none!important;object-fit:contain!important}
}


/* =========================================================
   v1.0.14 WORDPRESS-MANAGED FURISODE BRANDS
   ========================================================= */
.brand-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.brand-card{display:block;background:#fff;position:relative;overflow:hidden;box-shadow:0 8px 28px rgba(38,33,92,.05)}
.brand-card__image{aspect-ratio:4/5;overflow:hidden;background:#eee}
.brand-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.brand-card:hover .brand-card__image img{transform:scale(1.025)}
.brand-card__body{padding:14px 14px 16px}
.brand-card__body span,.brand-collection-header__copy>span{display:block;color:var(--purple);font-size:9px;letter-spacing:.18em;font-weight:700}
.brand-card__body h3{font-family:var(--serif);font-size:19px;color:var(--deep);line-height:1.45;margin:5px 0 0;overflow-wrap:anywhere}
.brand-collection-section{padding:72px 0 20px;scroll-margin-top:110px;border-top:1px solid var(--border)}
.brand-collection-section:first-of-type{border-top:0;padding-top:25px}
.brand-collection-header{display:grid;grid-template-columns:230px 1fr;gap:40px;align-items:center;margin-bottom:34px;background:var(--lav);padding:22px}
.brand-collection-header__image{aspect-ratio:4/5;overflow:hidden;background:#fff;max-width:230px}
.brand-collection-header__image img{width:100%;height:100%;object-fit:cover}
.brand-collection-header__copy h2{font-family:var(--serif);color:var(--deep);font-size:clamp(28px,4vw,44px);line-height:1.45;margin:6px 0 10px}
.brand-collection-header__copy p{color:var(--gray);max-width:720px;margin:0}
.brand-collection-header--text{grid-template-columns:1fr}
.brand-empty{grid-column:1/-1;background:#fafafe;border:1px dashed var(--border);padding:25px;text-align:center;color:var(--gray);margin:0}
@media(max-width:782px){
  .brand-grid{grid-template-columns:1fr 1fr;gap:12px}
  .brand-card__body{padding:10px 10px 12px}
  .brand-card__body h3{font-size:15px}
  .brand-collection-section{padding-top:55px;scroll-margin-top:90px}
  .brand-collection-header{grid-template-columns:110px 1fr;gap:18px;padding:14px;margin-bottom:24px}
  .brand-collection-header__image{max-width:110px}
  .brand-collection-header__copy h2{font-size:25px}
  .brand-collection-header__copy p{font-size:12px;line-height:1.75}
}
/* v1.0.15 imported brand-product details */
.furisode-card__code{font-size:.82rem;color:#888780;margin:.35rem 0 0}.product-code{font-size:.9rem;color:#888780;margin:.25rem 0 .75rem}.product-media{min-width:0}.product-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.product-gallery__item{padding:0;border:1px solid #ddd;background:#fff;cursor:pointer;aspect-ratio:4/5;overflow:hidden}.product-gallery__item.is-active{border:2px solid #534AB7}.product-gallery__item img{width:100%;height:100%;object-fit:cover;display:block}@media(max-width:640px){.product-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}}

/* =========================================================
   v1.0.16 COLLECTION PAGE REFINEMENT + BRAND NAVIGATION
   ========================================================= */
.brand-jump-nav{position:sticky;top:86px;z-index:50;background:rgba(255,255,255,.96);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0 0 24px;backdrop-filter:blur(8px)}
.admin-bar .brand-jump-nav{top:118px}
.brand-jump-nav__inner{display:flex;gap:8px;overflow-x:auto;padding:12px 4px;scrollbar-width:thin}
.brand-jump-nav a{flex:0 0 auto;border:1px solid var(--border);background:#fff;color:var(--deep);padding:8px 15px;font-family:var(--serif);font-size:13px;white-space:nowrap;transition:.2s}
.brand-jump-nav a:hover{background:var(--deep);border-color:var(--deep);color:#fff}
.brand-collection-section{padding:88px 0 44px;border-top:0;scroll-margin-top:150px}
.brand-collection-section+.brand-collection-section{border-top:1px solid var(--border)}
.brand-collection-header{position:relative;grid-template-columns:minmax(260px,330px) 1fr;gap:58px;padding:34px;background:linear-gradient(120deg,#f7f6ff 0%,var(--lav) 100%);border:1px solid var(--border);overflow:hidden;margin-bottom:36px}
.brand-collection-header:after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(83,74,183,.18);border-radius:50%;right:-75px;top:-85px;pointer-events:none}
.brand-collection-header__image{max-width:330px;aspect-ratio:4/5;box-shadow:0 12px 34px rgba(38,33,92,.08)}
.brand-collection-header__copy{position:relative;z-index:1;align-self:center}
.brand-collection-header__copy h2{font-size:clamp(34px,5vw,56px);margin:8px 0 7px;letter-spacing:.045em}
.brand-collection-header__copy p{font-size:14px;line-height:1.9;max-width:650px}
.brand-collection-count{display:inline-block;margin:0 0 15px;color:var(--gold);font-size:10px;letter-spacing:.16em;font-weight:700}
.furisode-grid--brand{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 18px}
.furisode-card--brand{background:#fff;min-width:0}
.furisode-card--brand .furisode-card__image{position:relative;aspect-ratio:4/5;background:#f4f3f8;overflow:hidden}
.furisode-card--brand .furisode-card__image img{width:100%;height:100%;object-fit:cover}
.furisode-card__view{position:absolute;left:50%;bottom:16px;transform:translate(-50%,8px);opacity:0;background:rgba(38,33,92,.92);color:#fff;padding:7px 17px;font-size:9px;letter-spacing:.18em;transition:.25s}
.furisode-card--brand:hover .furisode-card__view{opacity:1;transform:translate(-50%,0)}
.furisode-card--brand .furisode-card__meta{padding:13px 4px 0;border-top:1px solid transparent}
.furisode-card--brand .furisode-card__meta>span{font-size:8px;letter-spacing:.17em}
.furisode-card--brand h3{font-size:16px;letter-spacing:.035em;margin:5px 0 0}
.furisode-card__price{margin-top:4px!important;color:var(--gold)!important;font-weight:600}
@media(max-width:1050px){
  .furisode-grid--brand{grid-template-columns:repeat(3,minmax(0,1fr))}
  .brand-collection-header{grid-template-columns:230px 1fr;gap:34px}
}
@media(max-width:782px){
  .brand-jump-nav{top:70px;margin-left:-14px;margin-right:-14px;padding-left:14px}.admin-bar .brand-jump-nav{top:116px}
  .brand-collection-section{padding:58px 0 30px;scroll-margin-top:130px}
  .brand-collection-header{grid-template-columns:105px 1fr;gap:18px;padding:15px;margin-bottom:24px}
  .brand-collection-header__image{max-width:105px}
  .brand-collection-header__copy h2{font-size:25px;margin:4px 0 3px}
  .brand-collection-header__copy p{display:none}
  .brand-collection-count{font-size:8px;margin-bottom:0}
  .furisode-grid--brand{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 11px}
  .furisode-card__view{display:none}
}

/* =========================================================
   v1.0.17 COLLECTION SHOWCASE + BRAND POPUP SLIDER
   ========================================================= */
.collection-page--showcase{padding:0;background:#fff}
.collection-showcase-hero{background:linear-gradient(100deg,#fffaf6 0%,#fbf7f2 58%,#f3eee8 100%);border-bottom:1px solid #eee7df}
.collection-showcase-hero__inner{min-height:560px;display:grid;grid-template-columns:.88fr 1.12fr;align-items:stretch;padding-top:0;padding-bottom:0}
.collection-showcase-hero__copy{display:flex;flex-direction:column;justify-content:center;padding:70px 50px 70px 28px;position:relative;z-index:2}
.collection-showcase-hero__copy h1{font-family:var(--serif);font-weight:600;color:var(--deep);font-size:clamp(38px,5.3vw,68px);letter-spacing:.08em;line-height:1.35;margin:0 0 18px;white-space:nowrap}
.collection-showcase-hero__copy p{color:var(--char);font-family:var(--serif);font-size:17px;letter-spacing:.06em;margin:0 0 30px}
.btn--collection-outline{align-self:flex-start;background:rgba(255,255,255,.75);color:var(--gold);border-color:rgba(186,117,23,.55);min-height:46px}
.collection-showcase-hero__visual{min-height:560px;overflow:hidden;position:relative}
.collection-showcase-hero__visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fbf7f2 0%,rgba(251,247,242,0) 18%);pointer-events:none}
.collection-showcase-hero__visual img{width:100%;height:100%;object-fit:cover;object-position:center top}
.collection-brand-tabs{background:#fff;border-bottom:1px solid #ece9f3;position:sticky;top:86px;z-index:45}
.admin-bar .collection-brand-tabs{top:118px}
.collection-brand-tabs__inner{display:flex;align-items:center;justify-content:center;gap:34px;overflow-x:auto;min-height:72px;padding:10px 0;scrollbar-width:thin}
.collection-brand-tabs button,.collection-brand-tabs__all{appearance:none;border:0;background:none;color:var(--deep);font-family:var(--serif);font-size:13px;letter-spacing:.12em;padding:13px 5px;white-space:nowrap;cursor:pointer;position:relative}
.collection-brand-tabs__all{font-weight:700;letter-spacing:.26em}
.collection-brand-tabs button:after,.collection-brand-tabs__all:after{content:"";position:absolute;height:1px;left:50%;right:50%;bottom:4px;background:var(--deep);transition:.25s}
.collection-brand-tabs button:hover:after,.collection-brand-tabs button:focus-visible:after,.collection-brand-tabs__all:after{left:0;right:0}
.collection-brand-showcase{padding:72px 0 92px;background:#fff}
.collection-brand-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 28px}
.collection-brand-tile{min-width:0;background:#fff;border:1px solid #ebe8f3;overflow:hidden}
.collection-brand-tile__button{display:grid;grid-template-columns:46% 54%;width:100%;min-height:290px;padding:0;border:0;background:#fff;color:inherit;text-align:left;cursor:pointer;font:inherit;transition:box-shadow .25s,transform .25s}
.collection-brand-tile__button:hover,.collection-brand-tile__button:focus-visible{box-shadow:0 18px 48px rgba(38,33,92,.10);transform:translateY(-2px);outline:0}
.collection-brand-tile__image{overflow:hidden;background:#f6f5f3;min-width:0}
.collection-brand-tile__image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.collection-brand-tile__button:hover .collection-brand-tile__image img{transform:scale(1.025)}
.collection-brand-tile__copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:30px 30px 28px;position:relative;overflow:hidden;background:linear-gradient(125deg,#fff 0%,#fbfaff 100%)}
.collection-brand-tile__copy:after{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(83,74,183,.10);border-radius:50%;right:-95px;bottom:-100px}
.collection-brand-tile--2 .collection-brand-tile__copy:after,.collection-brand-tile--6 .collection-brand-tile__copy:after{border-color:rgba(186,117,23,.13)}
.collection-brand-tile--3 .collection-brand-tile__copy:after,.collection-brand-tile--7 .collection-brand-tile__copy:after{border-radius:0;transform:rotate(35deg);border-color:rgba(83,74,183,.08)}
.collection-brand-tile__copy small{color:var(--purple);font-size:8px;font-weight:700;letter-spacing:.20em;margin-bottom:7px;position:relative;z-index:1}
.collection-brand-tile__copy strong{font-family:var(--serif);color:var(--deep);font-size:clamp(24px,2.2vw,34px);font-weight:600;letter-spacing:.04em;line-height:1.45;overflow-wrap:anywhere;position:relative;z-index:1}
.collection-brand-tile__copy em{font-style:normal;color:var(--gold);font-size:9px;letter-spacing:.15em;font-weight:700;margin-top:6px;position:relative;z-index:1}
.collection-brand-tile__desc{font-size:12px;color:var(--gray);line-height:1.8;margin-top:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;position:relative;z-index:1}
.collection-brand-tile__link{margin-top:22px;color:var(--deep);font-family:var(--serif);font-size:12px;font-weight:600;letter-spacing:.06em;position:relative;z-index:1}
.collection-brand-tile__link b{color:var(--gold);margin-left:7px}
.collection-showcase-cta{background:linear-gradient(90deg,#f5f3ff 0%,#fff 50%,#f7f2ff 100%);text-align:center;padding:74px 0 78px;border-top:1px solid #ece9f3}
.collection-showcase-cta>div>span{color:var(--purple);font-size:9px;font-weight:700;letter-spacing:.2em}
.collection-showcase-cta h2{font-family:var(--serif);color:var(--deep);font-size:clamp(26px,3.7vw,40px);line-height:1.55;margin:10px 0 6px}
.collection-showcase-cta p{color:var(--gray);margin:0 0 22px}

/* Full collection popup */
body.collection-modal-open{overflow:hidden}
.brand-collection-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:26px}
.brand-collection-modal[hidden]{display:none!important}
.brand-collection-modal__backdrop{position:absolute;inset:0;background:rgba(22,18,48,.82);backdrop-filter:blur(6px)}
.brand-collection-modal__panel{position:relative;z-index:1;background:#fff;width:min(1220px,96vw);max-height:94vh;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.28);display:flex;flex-direction:column}
.brand-collection-modal__header{height:84px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:16px 24px 14px 30px;border-bottom:1px solid #ece9f3;background:#fff}
.brand-collection-modal__header span{display:block;color:var(--purple);font-size:8px;letter-spacing:.2em;font-weight:700}
.brand-collection-modal__header h2{font-family:var(--serif);font-size:28px;color:var(--deep);line-height:1.2;margin:5px 0 0;letter-spacing:.06em}
.brand-collection-modal__close{width:48px;height:48px;border:0;background:#f6f5fb;color:var(--deep);font-family:Arial,sans-serif;font-size:32px;line-height:1;cursor:pointer;transition:.2s}
.brand-collection-modal__close:hover{background:var(--deep);color:#fff}
.brand-collection-slider{position:relative;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#fbfaff}
.brand-collection-slider__stage{position:relative;min-height:580px;flex:1;overflow:hidden}
.brand-collection-slide{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(290px,.72fr);opacity:0;visibility:hidden;transform:translateX(14px);transition:opacity .3s ease,transform .3s ease,visibility .3s;pointer-events:none}
.brand-collection-slide.is-active{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.brand-collection-slide__image{min-width:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#f5f3f1;overflow:hidden}
.brand-collection-slide__image img{max-width:100%;max-height:64vh;width:auto;height:auto;object-fit:contain;box-shadow:0 12px 35px rgba(38,33,92,.10)}
.brand-collection-slide__details{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:50px 48px;background:#fff}
.brand-collection-slide__type{color:var(--purple);font-size:9px;font-weight:700;letter-spacing:.18em;margin-bottom:10px}
.brand-collection-slide__details h3{font-family:var(--serif);color:var(--deep);font-size:clamp(25px,3vw,38px);letter-spacing:.06em;line-height:1.4;margin:0 0 8px;overflow-wrap:anywhere}
.brand-collection-slide__title{color:var(--gray);font-size:13px;line-height:1.8;margin:0 0 14px}
.brand-collection-slide__price{color:var(--gold);font-size:16px;font-weight:700;margin:0 0 24px}
.brand-collection-slider__arrow{position:absolute;z-index:5;top:calc(50% - 38px);width:52px;height:52px;border:1px solid rgba(83,74,183,.18);border-radius:50%;background:rgba(255,255,255,.92);color:var(--deep);font-size:34px;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(38,33,92,.08)}
.brand-collection-slider__arrow--prev{left:18px}.brand-collection-slider__arrow--next{right:18px}
.brand-collection-slider__arrow:hover{background:var(--deep);color:#fff}
.brand-collection-slider__footer{height:104px;flex:0 0 auto;display:flex;align-items:center;gap:18px;padding:12px 24px;background:#fff;border-top:1px solid #ece9f3}
.brand-collection-slider__counter{font-family:var(--serif);font-size:12px;color:var(--gray);min-width:58px}
.brand-collection-slider__counter b{font-size:19px;color:var(--deep)}
.brand-collection-slider__thumbs{display:flex;gap:8px;overflow-x:auto;flex:1;padding:2px 0;scrollbar-width:thin}
.brand-collection-slider__thumb{flex:0 0 58px;width:58px;height:76px;padding:0;border:1px solid #e1dfe8;background:#fff;cursor:pointer;opacity:.62;overflow:hidden}
.brand-collection-slider__thumb.is-active{border:2px solid var(--purple);opacity:1}
.brand-collection-slider__thumb img{width:100%;height:100%;object-fit:cover}

@media(max-width:1050px){
  .collection-brand-grid{gap:18px}
  .collection-brand-tile__button{grid-template-columns:44% 56%;min-height:250px}
  .collection-brand-tile__copy{padding:22px}
  .collection-brand-tabs__inner{justify-content:flex-start}
  .brand-collection-slider__stage{min-height:520px}
  .brand-collection-slide{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr)}
  .brand-collection-slide__details{padding:38px 34px}
}
@media(max-width:782px){
  .collection-showcase-hero__inner{grid-template-columns:1fr;padding-left:0;padding-right:0}
  .collection-showcase-hero__copy{padding:48px 28px 30px;order:2}
  .collection-showcase-hero__copy h1{font-size:clamp(27px,8.5vw,34px);letter-spacing:.035em;white-space:nowrap}
  .collection-showcase-hero__copy p{font-size:14px}
  .collection-showcase-hero__visual{order:1;min-height:0;aspect-ratio:4/3}
  .collection-showcase-hero__visual:after{background:linear-gradient(0deg,#fbf7f2 0%,rgba(251,247,242,0) 20%)}
  .collection-brand-tabs{top:70px}.admin-bar .collection-brand-tabs{top:116px}
  .collection-brand-tabs__inner{justify-content:flex-start;gap:20px;padding-left:14px;padding-right:14px;min-height:58px}
  .collection-brand-showcase{padding:34px 0 58px}
  .collection-brand-grid{grid-template-columns:1fr;gap:14px}
  .collection-brand-tile__button{grid-template-columns:43% 57%;min-height:190px}
  .collection-brand-tile__copy{padding:17px 15px}
  .collection-brand-tile__copy strong{font-size:21px}
  .collection-brand-tile__desc{display:none}
  .collection-brand-tile__link{margin-top:14px;font-size:10px}
  .collection-showcase-cta{padding:50px 20px 55px}

  .brand-collection-modal{padding:0;align-items:stretch}
  .brand-collection-modal__panel{width:100%;max-height:none;height:100%;box-shadow:none}
  .brand-collection-modal__header{height:72px;padding:12px 12px 10px 18px}
  .brand-collection-modal__header h2{font-size:21px;margin-top:3px}
  .brand-collection-modal__close{width:46px;height:46px}
  .brand-collection-slider{height:calc(100vh - 72px)}
  .brand-collection-slider__stage{min-height:0;flex:1}
  .brand-collection-slide{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;overflow-y:auto}
  .brand-collection-slide__image{padding:12px 12px 8px;min-height:0}
  .brand-collection-slide__image img{max-height:56vh;max-width:100%;box-shadow:none}
  .brand-collection-slide__details{padding:15px 20px 20px;justify-content:flex-start}
  .brand-collection-slide__details h3{font-size:23px}
  .brand-collection-slide__title{margin-bottom:7px}
  .brand-collection-slide__price{margin-bottom:14px}
  .brand-collection-slide__details .btn{min-height:44px;padding:9px 22px}
  .brand-collection-slider__arrow{top:42%;width:44px;height:44px;font-size:29px;background:rgba(255,255,255,.92)}
  .brand-collection-slider__arrow--prev{left:8px}.brand-collection-slider__arrow--next{right:8px}
  .brand-collection-slider__footer{height:88px;padding:9px 12px;gap:10px}
  .brand-collection-slider__thumb{flex-basis:48px;width:48px;height:64px}
}
@media(max-width:480px){
  .collection-brand-tile__button{grid-template-columns:42% 58%;min-height:170px}
  .collection-brand-tile__copy strong{font-size:18px}
  .collection-brand-tile__copy em{font-size:7px}
  .brand-collection-slide__image img{max-height:53vh}
}


/* =========================================================
   v1.0.19 PRODUCT DETAIL GALLERY
   ========================================================= */
.product-page .product-grid{grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:64px;max-width:1080px}
.product-page .product-media{width:100%;max-width:520px;margin-inline:auto}
.product-page .product-image{position:relative;width:100%;background:#f8f7fb;display:flex;align-items:center;justify-content:center;overflow:hidden}
.product-page .product-image img{width:100%;height:auto;max-height:690px;object-fit:contain}
.product-image__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:42px;height:42px;border-radius:50%;border:1px solid rgba(38,33,92,.2);background:rgba(255,255,255,.92);color:var(--deep);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 4px 18px rgba(38,33,92,.12)}
.product-image__nav--prev{left:12px}.product-image__nav--next{right:12px}
.product-image__count{position:absolute;right:12px;bottom:12px;background:rgba(38,33,92,.82);color:#fff;font-size:11px;line-height:1;padding:7px 10px;letter-spacing:.08em}
.product-gallery{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-top:12px}
.product-gallery__item{aspect-ratio:4/5;border-color:#e7e5ef;transition:.18s}
.product-gallery__item:hover{border-color:var(--purple)}
@media(max-width:782px){
  .product-page .product-grid{grid-template-columns:1fr;gap:34px;max-width:none}
  .product-page .product-media{max-width:430px}
  .product-page .product-image img{max-height:580px}
  .product-gallery{display:flex;overflow-x:auto;gap:7px;scroll-snap-type:x proximity;padding-bottom:4px;scrollbar-width:thin}
  .product-gallery__item{flex:0 0 72px;width:72px;scroll-snap-align:start}
  .product-image__nav{width:38px;height:38px;font-size:25px}
}

/* =========================================================
   v1.0.21 COLLECTION POPUP - MOBILE RESPONSIVE POLISH
   ========================================================= */
@media(max-width:782px){
  body.collection-modal-open{overflow:hidden;overscroll-behavior:none}
  .brand-collection-modal{
    width:100vw;
    width:100dvw;
    height:100vh;
    height:100dvh;
    padding:0;
    overflow:hidden;
    align-items:stretch;
    justify-content:stretch;
  }
  .brand-collection-modal__panel{
    width:100vw;
    width:100dvw;
    max-width:100vw;
    max-width:100dvw;
    height:100vh;
    height:100dvh;
    max-height:100vh;
    max-height:100dvh;
    overflow:hidden;
  }
  .brand-collection-modal__header{
    height:64px;
    min-height:64px;
    padding:9px 10px 8px 14px;
  }
  .brand-collection-modal__header span{font-size:7px;letter-spacing:.17em}
  .brand-collection-modal__header h2{
    font-size:20px;
    line-height:1.1;
    margin-top:2px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:calc(100vw - 78px);
  }
  .brand-collection-modal__close{
    flex:0 0 42px;
    width:42px;
    height:42px;
    font-size:28px;
  }
  .brand-collection-slider{
    height:calc(100vh - 64px);
    height:calc(100dvh - 64px);
    min-width:0;
    width:100%;
    overflow:hidden;
  }
  .brand-collection-slider__stage{
    width:100%;
    min-width:0;
    min-height:0;
    overflow:hidden;
  }
  .brand-collection-slide{
    width:100%;
    max-width:100%;
    min-width:0;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto auto;
    align-content:start;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    touch-action:pan-y;
  }
  .brand-collection-slide__image{
    width:100%;
    min-width:0;
    height:min(56dvh,520px);
    padding:8px 10px;
    align-items:center;
    background:#f7f5f3;
  }
  .brand-collection-slide__image img{
    display:block;
    width:100%;
    height:100%;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    object-position:center center;
    box-shadow:none;
  }
  .brand-collection-slide__details{
    width:100%;
    min-width:0;
    padding:13px 16px 18px;
    box-sizing:border-box;
  }
  .brand-collection-slide__type{font-size:8px;margin-bottom:6px}
  .brand-collection-slide__details h3{
    font-size:clamp(22px,7.2vw,28px);
    line-height:1.25;
    margin-bottom:5px;
    word-break:break-word;
  }
  .brand-collection-slide__title{
    font-size:12px;
    line-height:1.55;
    margin-bottom:9px;
    overflow-wrap:anywhere;
  }
  .brand-collection-slide__price{font-size:14px;margin-bottom:11px}
  .brand-collection-slide__details .btn{
    width:100%;
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px 14px;
    box-sizing:border-box;
  }
  .brand-collection-slider__arrow{
    top:calc(min(56dvh,520px) / 2 + 64px);
    transform:translateY(-50%);
    width:38px;
    height:38px;
    font-size:26px;
    border-color:rgba(83,74,183,.14);
  }
  .brand-collection-slider__arrow--prev{left:6px}
  .brand-collection-slider__arrow--next{right:6px}
  .brand-collection-slider__footer{
    height:76px;
    min-height:76px;
    padding:7px 10px;
    gap:8px;
    width:100%;
    min-width:0;
    overflow:hidden;
  }
  .brand-collection-slider__counter{min-width:46px;font-size:10px}
  .brand-collection-slider__counter b{font-size:16px}
  .brand-collection-slider__thumbs{
    min-width:0;
    gap:6px;
    padding-bottom:2px;
  }
  .brand-collection-slider__thumb{
    flex:0 0 42px;
    width:42px;
    height:56px;
  }
}

@media(max-width:480px){
  .brand-collection-slide__image{height:min(52dvh,450px);padding:6px 8px}
  .brand-collection-slider__arrow{top:calc(min(52dvh,450px) / 2 + 64px)}
  .brand-collection-slide__details{padding:11px 13px 16px}
  .brand-collection-modal__header h2{font-size:19px}
}

@media(max-width:782px) and (orientation:landscape){
  .brand-collection-slider__footer{display:none}
  .brand-collection-slide{
    grid-template-columns:minmax(0,1.15fr) minmax(230px,.85fr);
    grid-template-rows:1fr;
    overflow:hidden;
  }
  .brand-collection-slide__image{height:100%;max-height:none}
  .brand-collection-slide__details{justify-content:center;overflow-y:auto}
  .brand-collection-slider__arrow{top:50%}
}


/* =========================================================
   v1.0.22 COLLECTION POPUP - MOBILE ARROWS UNDER IMAGE
   ========================================================= */
@media(max-width:782px){
  .brand-collection-slide__details{
    padding-top:58px;
  }
  .brand-collection-slider__arrow{
    top:calc(min(56dvh,520px) + 10px);
    top:calc(min(56svh,520px) + 10px);
    transform:none;
    width:40px;
    height:40px;
    font-size:24px;
    background:#fff;
    box-shadow:0 8px 22px rgba(38,33,92,.14);
  }
  .brand-collection-slider__arrow--prev{
    left:calc(50% - 48px);
    right:auto;
  }
  .brand-collection-slider__arrow--next{
    left:calc(50% + 8px);
    right:auto;
  }
}

@media(max-width:480px){
  .brand-collection-slide__details{
    padding-top:56px;
  }
  .brand-collection-slider__arrow{
    top:calc(min(52dvh,450px) + 8px);
    top:calc(min(52svh,450px) + 8px);
  }
  .brand-collection-slider__arrow--prev{
    left:calc(50% - 46px);
  }
  .brand-collection-slider__arrow--next{
    left:calc(50% + 6px);
  }
}

/* =========================================================
   v1.0.23 COLLECTION POPUP - MOBILE ARROWS / TITLE SPACING FIX
   ========================================================= */
@media (max-width: 782px){
  .brand-collection-slide__details{
    padding-top: 88px;
  }

  .brand-collection-slider__arrow{
    top: calc(min(56dvh,520px) + 14px);
    top: calc(min(56svh,520px) + 14px);
    width: 42px;
    height: 42px;
    z-index: 8;
  }

  .brand-collection-slider__arrow--prev{
    left: calc(50% - 50px);
  }

  .brand-collection-slider__arrow--next{
    left: calc(50% + 8px);
    right: auto;
  }

  .brand-collection-slide__type,
  .brand-collection-slide__details h3,
  .brand-collection-slide__title,
  .brand-collection-slide__price{
    position: relative;
    z-index: 1;
  }
}

@media (max-width: 480px){
  .brand-collection-slide__details{
    padding-top: 92px;
  }

  .brand-collection-slider__arrow{
    top: calc(min(52dvh,450px) + 14px);
    top: calc(min(52svh,450px) + 14px);
  }

  .brand-collection-slider__arrow--prev{
    left: calc(50% - 48px);
  }

  .brand-collection-slider__arrow--next{
    left: calc(50% + 6px);
  }
}

/* =========================================================
   v1.0.24 COLLECTION POPUP - MOBILE BOTTOM BAR COLLISION FIX
   ========================================================= */
body.collection-modal-open .mobile-cta{
  display:none !important;
}

@media (max-width:782px){
  .brand-collection-modal{
    z-index:10000;
  }

  .brand-collection-slider__footer{
    box-sizing:border-box;
    min-height:82px;
    height:82px;
    padding:8px 10px max(8px, env(safe-area-inset-bottom));
    background:#fff;
    position:relative;
    z-index:10;
  }

  .brand-collection-slider__thumbs{
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }

  .brand-collection-slider__counter{
    flex:0 0 auto;
  }
}

/* =========================================================
   v1.0.25 UI TEXT - SINGLE LINE POLISH
   ========================================================= */
.header-action,
.main-nav__list a,
.mobile-cta b,
.mobile-cta small,
.btn,
.text-link,
.collection-brand-tabs button,
.collection-brand-tabs__all,
.section-heading h2,
.page-header h1,
.collection-showcase-hero__copy h1,
.collection-showcase-cta h2,
.footer-cta h2,
.quick-grid h3,
.event-card h3,
.plan-card h3,
.furisode-card h2,
.furisode-card h3,
.collection-brand-tile__copy strong,
.collection-brand-tile__link,
.brand-collection-modal__header h2,
.brand-collection-slide__details h3,
.footer-nav a,
.footer-social a,
.brand__main,
.brand__sub,
.breadcrumbs .container,
.product-copy h1,
.product-copy h2,
.product-copy h3,
.plan-detail h2,
.photo-copy h2,
.store-story h2,
.access h2,
.intro-copy :is(h1,h2),
.collection-help h2,
.collection-help h3,
.reservation-step__title,
.reservation-complete__title{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.section-heading h2,
.page-header h1,
.collection-showcase-hero__copy h1,
.collection-showcase-cta h2,
.footer-cta h2,
.quick-grid h3,
.event-card h3,
.plan-card h3,
.furisode-card h2,
.furisode-card h3,
.collection-brand-tile__copy strong,
.brand-collection-modal__header h2,
.brand-collection-slide__details h3,
.product-copy h1,
.product-copy h2,
.product-copy h3,
.plan-detail h2,
.photo-copy h2,
.store-story h2,
.access h2,
.intro-copy :is(h1,h2),
.collection-help h2,
.collection-help h3,
.reservation-step__title,
.reservation-complete__title{
  display:block;
}

.collection-brand-tile,
.collection-brand-tile__button,
.collection-brand-tile__copy,
.brand-collection-slide__details,
.footer-cta__grid > *,
.footer-nav,
.footer-social,
.section-heading,
.page-header,
.product-copy,
.plan-detail__content,
.intro-copy,
.photo-copy,
.store-story__copy,
.access-copy{
  min-width:0;
}

.collection-brand-tile__copy strong,
.brand-collection-slide__details h3,
.footer-cta h2,
.collection-showcase-cta h2,
.section-heading h2,
.page-header h1{
  letter-spacing:.03em;
}

@media(max-width:782px){
  .main-nav__list a,
  .header-action,
  .btn,
  .text-link,
  .footer-nav a,
  .footer-social a,
  .mobile-cta b,
  .mobile-cta small,
  .collection-brand-tabs button,
  .collection-brand-tabs__all{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .section-heading h2,
  .page-header h1,
  .plan-detail h2,
  .photo-copy h2,
  .store-story h2,
  .access h2,
  .intro-copy :is(h1,h2),
  .collection-help h2,
  .collection-help h3{
    font-size:clamp(24px,6.3vw,32px);
    letter-spacing:.025em;
  }

  .collection-showcase-hero__copy h1{
    font-size:clamp(24px,6.8vw,32px);
    letter-spacing:.02em;
  }

  .collection-showcase-cta h2{
    font-size:clamp(21px,5.7vw,26px);
    letter-spacing:.015em;
  }

  .footer-cta h2{
    font-size:clamp(18px,5.3vw,24px);
    line-height:1.3;
    letter-spacing:.01em;
  }

  .quick-grid h3,
  .event-card h3,
  .plan-card h3,
  .collection-brand-tile__copy strong,
  .furisode-card h2,
  .furisode-card h3,
  .brand-collection-slide__details h3,
  .product-copy h1,
  .product-copy h2,
  .product-copy h3{
    letter-spacing:.02em;
  }

  .quick-grid h3{font-size:18px}
  .event-card h3{font-size:20px}
  .plan-card h3{font-size:15px}
  .furisode-card h2,
  .furisode-card h3{font-size:13px}
  .collection-brand-tile__copy strong{font-size:clamp(16px,4.9vw,24px)}
  .brand-collection-slide__details h3{font-size:clamp(20px,6vw,26px)}

  .btn,
  .header-action{
    font-size:12px;
    padding-left:16px;
    padding-right:16px;
  }

  .mobile-cta b{font-size:12px}
  .mobile-cta small{font-size:7px}

  .footer-cta__grid{gap:26px}
  .collection-brand-tabs__inner{
    justify-content:flex-start;
    padding-left:14px;
    padding-right:14px;
    gap:24px;
  }
}

@media(max-width:480px){
  .brand__main{font-size:16px}
  .brand__sub{font-size:6px}

  .section-heading h2,
  .page-header h1,
  .plan-detail h2,
  .photo-copy h2,
  .store-story h2,
  .access h2,
  .intro-copy :is(h1,h2),
  .collection-help h2,
  .collection-help h3{
    font-size:clamp(22px,7vw,28px);
  }

  .collection-showcase-hero__copy h1{
    font-size:clamp(22px,7.2vw,28px);
  }

  .collection-showcase-cta h2{
    font-size:clamp(19px,6vw,22px);
  }

  .footer-cta h2{
    font-size:clamp(16px,5.6vw,19px);
  }

  .quick-grid h3{font-size:16px}
  .event-card h3{font-size:18px}
  .plan-card h3{font-size:14px}
  .collection-brand-tile__copy strong{font-size:15px}
  .furisode-card h2,
  .furisode-card h3{font-size:12px}
  .brand-collection-slide__details h3{font-size:clamp(18px,6.2vw,22px)}

  .btn,
  .header-action,
  .collection-brand-tabs button,
  .collection-brand-tabs__all,
  .mobile-cta b{
    letter-spacing:.02em;
  }
}

/* =========================================================
   v1.0.26 HOMEPAGE SECTION SPACING NORMALIZATION
   ========================================================= */
main#main > section.section{
  padding-top:72px;
  padding-bottom:72px;
}

main#main > section.section .section-heading{
  margin-bottom:34px;
}

main#main > section.section .center > .btn{
  margin-top:32px;
}

main#main > section.intro.section .promises{
  margin-top:56px;
}

/* Keep the transition from promises into the brand section compact. */
main#main > section.intro.section{
  padding-bottom:54px;
}
main#main > section.collection-preview.section{
  padding-top:54px;
}

@media(max-width:782px){
  main#main > section.section{
    padding-top:44px;
    padding-bottom:44px;
  }

  main#main > section.section .section-heading{
    margin-bottom:26px;
  }

  main#main > section.section .center > .btn{
    margin-top:26px;
  }

  main#main > section.intro.section .promises{
    margin-top:38px;
  }

  main#main > section.intro.section{
    padding-bottom:30px;
  }

  main#main > section.collection-preview.section{
    padding-top:30px;
  }

  main#main > section.photo-preview.section,
  main#main > section.instagram.section,
  main#main > section.access.section,
  main#main > section.events.section{
    padding-top:42px;
    padding-bottom:42px;
  }
}

@media(max-width:480px){
  main#main > section.section{
    padding-top:38px;
    padding-bottom:38px;
  }

  main#main > section.section .section-heading{
    margin-bottom:22px;
  }

  main#main > section.intro.section{
    padding-bottom:26px;
  }

  main#main > section.collection-preview.section{
    padding-top:26px;
  }

  main#main > section.photo-preview.section,
  main#main > section.instagram.section,
  main#main > section.access.section,
  main#main > section.events.section{
    padding-top:36px;
    padding-bottom:36px;
  }
}

/* =========================================================
   v1.0.27 COLLECTION BRAND TABS - MOBILE SHRINK FIX
   ========================================================= */
.collection-brand-tabs__inner{
  flex-wrap:nowrap;
}
.collection-brand-tabs button,
.collection-brand-tabs__all{
  flex:0 0 auto;
  min-width:max-content;
  overflow:visible;
  text-overflow:clip;
}

@media(max-width:782px){
  .collection-brand-tabs{
    overflow:hidden;
  }
  .collection-brand-tabs__inner{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  .collection-brand-tabs button,
  .collection-brand-tabs__all{
    flex:0 0 auto;
    min-width:max-content;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
  }
}

/* v1.0.28 dynamic Plan Manager */
.plan-description p{margin:0 0 18px}.plan-description p:last-child{margin-bottom:0}.plans-page .plan-detail__image img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}

/* =========================================================
   v1.0.30 PHOTO FLOW - SHOW FULL HERO IMAGE
   ========================================================= */
.photo-flow-page .photo-hero > div:first-child{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  background:#fff;
}

.photo-flow-page .photo-hero > div:first-child img{
  width:100%;
  height:auto;
  max-height:none;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center center;
}

@media(max-width:782px){
  .photo-flow-page .photo-hero{
    gap:26px;
  }

  .photo-flow-page .photo-hero > div:first-child img{
    width:100%;
    height:auto;
    aspect-ratio:auto;
    object-fit:contain;
  }
}

/* =========================================================
   v1.0.31 PHOTO FLOW - SECTION SPACING NORMALIZATION
   Keep this page visually compact and consistent after the
   full-image sizing fix from v1.0.30.
   ========================================================= */
.photo-flow-page{
  padding-top:64px;
  padding-bottom:82px;
}

.photo-flow-page .page-header{
  margin-bottom:48px;
}

.photo-flow-page .photo-hero{
  margin-bottom:56px;
  gap:56px;
}

.photo-flow-page .shoot-schedule{
  margin-bottom:48px;
  padding:42px;
}

.photo-flow-page .shoot-schedule > h2{
  margin-top:0;
  margin-bottom:28px;
  text-align:center;
}

.photo-flow-page .preparation-grid{
  margin-bottom:52px;
}

.photo-flow-page .photo-gallery > h2{
  margin-top:0;
  margin-bottom:28px;
  text-align:center;
}

.photo-flow-page .center > .btn{
  margin-top:30px;
}

@media(max-width:782px){
  .photo-flow-page{
    padding-top:40px;
    padding-bottom:74px;
  }

  .photo-flow-page .page-header{
    margin-bottom:32px;
  }

  .photo-flow-page .photo-hero{
    margin-bottom:38px;
    gap:24px;
  }

  .photo-flow-page .shoot-schedule{
    margin-bottom:36px;
    padding:28px 20px;
  }

  .photo-flow-page .shoot-schedule > h2{
    margin-bottom:22px;
  }

  .photo-flow-page .preparation-grid{
    margin-bottom:40px;
    gap:14px;
  }

  .photo-flow-page .photo-gallery > h2{
    margin-bottom:22px;
  }

  .photo-flow-page .center > .btn{
    margin-top:24px;
  }
}

@media(max-width:480px){
  .photo-flow-page{
    padding-top:34px;
  }

  .photo-flow-page .page-header{
    margin-bottom:28px;
  }

  .photo-flow-page .photo-hero{
    margin-bottom:32px;
    gap:20px;
  }

  .photo-flow-page .shoot-schedule{
    margin-bottom:32px;
    padding:24px 16px;
  }

  .photo-flow-page .preparation-grid{
    margin-bottom:34px;
  }
}

/* =========================================================
   v1.0.32 PHOTO FLOW - TIGHT / CONSISTENT VERTICAL SPACING
   ========================================================= */
.photo-flow-page{
  padding-top:46px;
  padding-bottom:64px;
}

/* Use a non-collapsing column layout so section spacing is exact. */
.photo-flow-page > .container{
  display:flex;
  flex-direction:column;
  gap:0;
}

.photo-flow-page .page-header{
  margin:0 auto 26px;
}

.photo-flow-page .photo-hero{
  margin:0 0 34px;
  gap:48px;
}

.photo-flow-page .shoot-schedule{
  margin:0 0 30px;
  padding:38px 42px;
}

.photo-flow-page .preparation-grid{
  margin:0 0 32px;
}

.photo-flow-page .photo-gallery{
  margin:0;
}

.photo-flow-page .photo-gallery > h2{
  margin:0 0 22px;
}

.photo-flow-page .center{
  margin:0;
}

.photo-flow-page .center > .btn{
  margin-top:24px;
}

@media(max-width:782px){
  .photo-flow-page{
    padding-top:32px;
    padding-bottom:66px;
  }

  .photo-flow-page .page-header{
    margin:0 auto 20px;
  }

  .photo-flow-page .photo-hero{
    margin:0 0 24px;
    gap:20px;
  }

  .photo-flow-page .shoot-schedule{
    margin:0 0 24px;
    padding:26px 20px;
  }

  .photo-flow-page .preparation-grid{
    margin:0 0 26px;
    gap:12px;
  }

  .photo-flow-page .photo-gallery > h2{
    margin-bottom:18px;
  }

  .photo-flow-page .center > .btn{
    margin-top:20px;
  }
}

@media(max-width:480px){
  .photo-flow-page{
    padding-top:28px;
  }

  .photo-flow-page .page-header{
    margin-bottom:18px;
  }

  .photo-flow-page .photo-hero{
    margin-bottom:22px;
    gap:18px;
  }

  .photo-flow-page .shoot-schedule{
    margin-bottom:22px;
    padding:22px 16px;
  }

  .photo-flow-page .preparation-grid{
    margin-bottom:24px;
  }
}

/* =========================================================
   v1.0.33 PHOTO FLOW - FIX WORDPRESS/CHROME AUTO-SIZE GAP
   WordPress may add sizes="auto,..." to lazy images. Chrome can then use
   a large contain-intrinsic-size placeholder. On this page that made the
   photo grid row appear about 1500px tall even though the image was small.
   ========================================================= */
.photo-flow-page img{
  content-visibility:visible !important;
  contain-intrinsic-size:none !important;
}

.photo-flow-page .photo-hero{
  align-items:center;
  min-height:0 !important;
  height:auto !important;
}

.photo-flow-page .photo-hero > div{
  min-height:0 !important;
  height:auto !important;
}

.photo-flow-page .photo-hero > div:first-child{
  min-height:0 !important;
  height:auto !important;
}

.photo-flow-page .photo-hero > div:first-child img{
  display:block;
  width:100%;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  object-fit:contain;
}

/* Exact spacing for this page after removing the phantom intrinsic height. */
.photo-flow-page .page-header{
  margin-bottom:36px !important;
}

.photo-flow-page .photo-hero{
  margin-bottom:42px !important;
}

.photo-flow-page .shoot-schedule{
  margin-top:0 !important;
  margin-bottom:34px !important;
}

@media(max-width:782px){
  .photo-flow-page .page-header{
    margin-bottom:24px !important;
  }

  .photo-flow-page .photo-hero{
    margin-bottom:28px !important;
  }

  .photo-flow-page .shoot-schedule{
    margin-bottom:26px !important;
  }
}

@media(max-width:480px){
  .photo-flow-page .page-header{
    margin-bottom:20px !important;
  }

  .photo-flow-page .photo-hero{
    margin-bottom:24px !important;
  }
}

/* =========================================================
   v1.0.34 MOBILE RESPONSIVE / HORIZONTAL OVERFLOW FIX
   Applies to the two flow pages and the plans page.
   ========================================================= */
@media(max-width:782px){
  html,
  body{
    max-width:100%;
    overflow-x:hidden;
  }

  .photo-flow-page,
  .flow-page,
  .plans-page,
  .photo-flow-page > .container,
  .flow-page > .container,
  .plans-page > .container{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
  }

  .photo-flow-page > .container,
  .flow-page > .container,
  .plans-page > .container{
    width:min(100% - 28px,1180px);
    margin-inline:auto;
  }

  .photo-flow-page *,
  .flow-page *,
  .plans-page *{
    box-sizing:border-box;
  }

  .photo-flow-page .page-header,
  .flow-page .page-header,
  .plans-page .page-header{
    width:100%;
    max-width:100%;
    min-width:0;
    padding-inline:0;
  }

  /* Long page titles must fit a 320px mobile screen without causing page scroll. */
  .photo-flow-page .page-header h1,
  .flow-page .page-header h1,
  .plans-page .page-header h1{
    max-width:100%;
    min-width:0;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
    font-size:clamp(20px,6.2vw,28px);
    letter-spacing:.01em;
    line-height:1.35;
  }

  .photo-flow-page .page-header p,
  .flow-page .page-header p,
  .plans-page .page-header p{
    max-width:100%;
    overflow-wrap:anywhere;
  }

  /* Photo Flow */
  .photo-flow-page .photo-hero{
    width:100%;
    max-width:100%;
    min-width:0;
    grid-template-columns:minmax(0,1fr) !important;
    gap:20px !important;
  }

  .photo-flow-page .photo-hero > div,
  .photo-flow-page .photo-hero > div:first-child,
  .photo-flow-page .photo-hero > div:last-child{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .photo-flow-page .photo-hero > div:first-child img{
    width:100%;
    max-width:100%;
    height:auto !important;
  }

  .photo-flow-page .photo-hero h2{
    max-width:100%;
    font-size:clamp(23px,7vw,30px);
    line-height:1.45;
    overflow-wrap:anywhere;
  }

  .photo-flow-page .shoot-schedule,
  .photo-flow-page .preparation-grid,
  .photo-flow-page .photo-gallery,
  .photo-flow-page .shoot-grid,
  .photo-flow-page .photo-gallery-grid{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .photo-flow-page .shoot-grid{
    grid-template-columns:minmax(0,1fr) !important;
  }

  .photo-flow-page .shoot-grid > div,
  .photo-flow-page .preparation-grid > div{
    min-width:0;
    width:100%;
  }

  .photo-flow-page .preparation-grid{
    grid-template-columns:minmax(0,1fr) !important;
  }

  .photo-flow-page .photo-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px;
  }

  .photo-flow-page .shoot-schedule > h2,
  .photo-flow-page .photo-gallery > h2{
    max-width:100%;
    font-size:clamp(21px,6vw,27px);
    line-height:1.4;
    overflow-wrap:anywhere;
  }

  /* Ceremony Flow */
  .flow-page .flow-intro,
  .flow-page .timeline,
  .flow-page .timeline-item,
  .flow-page .notice-box{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .flow-page .flow-intro{
    padding:24px 18px;
  }

  .flow-page .timeline-item{
    grid-template-columns:48px minmax(0,1fr);
    gap:14px;
    padding-bottom:34px;
  }

  .flow-page .timeline:before{
    left:24px;
  }

  .flow-page .timeline-num{
    width:48px;
    height:48px;
    font-size:16px;
  }

  .flow-page .timeline-item > div:last-child,
  .flow-page .timeline-item h2,
  .flow-page .timeline-item p{
    min-width:0;
    max-width:100%;
  }

  .flow-page .timeline-item h2{
    font-size:clamp(19px,5.6vw,25px);
    overflow-wrap:anywhere;
  }

  /* Plans */
  .plans-page .plan-detail{
    width:100%;
    max-width:100%;
    min-width:0;
    grid-template-columns:minmax(0,1fr) !important;
    gap:22px;
  }

  .plans-page .plan-detail__image,
  .plans-page .plan-detail__copy,
  .plans-page .price-box,
  .plans-page .check-list,
  .plans-page .notice-box,
  .plans-page .comparison{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .plans-page .plan-detail__image{
    order:0 !important;
  }

  .plans-page .plan-detail h2{
    max-width:100%;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
    font-size:clamp(20px,6.2vw,28px);
    letter-spacing:.01em;
  }

  .plans-page .plan-description,
  .plans-page .plan-description p,
  .plans-page .check-list li{
    max-width:100%;
    overflow-wrap:anywhere;
  }

  /* Keep only the comparison table itself horizontally scrollable. */
  .plans-page .table-scroll{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }

  .plans-page .comparison table{
    min-width:680px;
    max-width:none;
  }

  /* Fixed CTA must never create viewport width overflow. */
  .mobile-cta{
    width:100%;
    max-width:100vw;
    min-width:0;
  }

  .mobile-cta a{
    min-width:0;
    overflow:hidden;
  }
}

@media(max-width:360px){
  .photo-flow-page .page-header h1,
  .flow-page .page-header h1,
  .plans-page .page-header h1{
    font-size:19px;
    letter-spacing:0;
  }

  .photo-flow-page .photo-hero h2{
    font-size:22px;
  }

  .photo-flow-page .shoot-schedule{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .photo-flow-page .photo-gallery-grid{
    gap:6px;
  }
}

/* =========================================================
   v1.0.35 STORE PAGE - MOBILE WIDTH / PRESIDENT IMAGE FIX
   ========================================================= */
@media(max-width:782px){
  .store-page,
  .store-page > .container{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:hidden;
  }

  .store-page > .container{
    width:min(100% - 28px,1180px);
    margin-inline:auto;
  }

  .store-page .page-header,
  .store-page .store-story,
  .store-page .store-info-grid,
  .store-page .staff,
  .store-page .staff-grid{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .store-page .store-story{
    grid-template-columns:minmax(0,1fr) !important;
    gap:26px !important;
  }

  .store-page .store-story > div,
  .store-page .store-story > div:first-child,
  .store-page .store-story > div:last-child{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .store-page .store-story img{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
    aspect-ratio:auto;
    object-fit:contain;
    object-position:center center;
  }

  /* This long heading was forced to one line by v1.0.25 and enlarged the grid track. */
  .store-page .store-story h2{
    width:100%;
    max-width:100%;
    min-width:0;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    overflow-wrap:anywhere;
    word-break:normal;
    font-size:clamp(24px,7vw,32px);
    line-height:1.45;
    letter-spacing:.02em;
  }

  .store-page .store-story p,
  .store-page .page-header p{
    max-width:100%;
    overflow-wrap:anywhere;
  }

  .store-page .store-info-grid{
    grid-template-columns:minmax(0,1fr) !important;
    padding:28px 20px;
    gap:28px;
  }

  .store-page .map-wrap,
  .store-page .map-wrap iframe{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .store-page .staff-grid{
    grid-template-columns:minmax(0,1fr) !important;
  }
}

@media(max-width:480px){
  .store-page .store-story{
    gap:22px !important;
  }

  .store-page .store-story h2{
    font-size:clamp(22px,7.2vw,28px);
  }

  .store-page .store-info-grid{
    padding:24px 16px;
  }
}


/* =========================================================
   v1.0.36 STORE PAGE - REMOVE PHANTOM IMAGE SPACE / NORMALIZE SPACING
   Mirrors the proven Photo Flow fix: disable Chrome/WordPress intrinsic
   lazy-image placeholder sizing and make section spacing explicit.
   ========================================================= */
.store-page img{
  content-visibility:visible !important;
  contain-intrinsic-size:none !important;
}

.store-page{
  padding-top:46px;
  padding-bottom:64px;
}

.store-page > .container{
  display:flex;
  flex-direction:column;
  gap:0;
}

.store-page .page-header{
  margin:0 auto 34px !important;
}

.store-page .store-story{
  margin:0 0 42px !important;
  gap:48px;
  align-items:center;
  min-height:0 !important;
  height:auto !important;
}

.store-page .store-story > div,
.store-page .store-story > div:first-child,
.store-page .store-story > div:last-child{
  min-height:0 !important;
  height:auto !important;
}

.store-page .store-story > div:first-child img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  object-fit:contain;
}

.store-page .store-info-grid{
  margin-top:0 !important;
  margin-bottom:42px !important;
}

.store-page .staff{
  margin-top:0 !important;
}

@media(max-width:782px){
  .store-page{
    padding-top:32px;
    padding-bottom:66px;
  }

  .store-page .page-header{
    margin-bottom:22px !important;
  }

  .store-page .store-story{
    gap:18px !important;
    margin-bottom:28px !important;
  }

  .store-page .store-story > div:first-child{
    margin:0 !important;
    padding:0 !important;
  }

  .store-page .store-story > div:first-child img{
    margin:0 !important;
  }

  .store-page .store-story > div:last-child{
    margin:0 !important;
    padding:0 !important;
  }

  .store-page .store-story > div:last-child .eyebrow{
    margin-top:0 !important;
  }

  .store-page .store-info-grid{
    margin-bottom:28px !important;
  }
}

@media(max-width:480px){
  .store-page{
    padding-top:28px;
  }

  .store-page .page-header{
    margin-bottom:18px !important;
  }

  .store-page .store-story{
    gap:16px !important;
    margin-bottom:24px !important;
  }

  .store-page .store-info-grid{
    margin-bottom:24px !important;
  }
}

/* Client revisions v1.0.38 */
.staff-grid.staff-grid--single{grid-template-columns:minmax(0,1fr);max-width:900px;margin-inline:auto}
.staff-grid--single article>div{aspect-ratio:4/3}
.staff-grid--single img{width:100%;height:100%;object-fit:contain}
.mobile-cta{grid-template-columns:repeat(2,minmax(0,1fr))}
.instagram-plugin-feed{margin-bottom:28px;min-width:0;overflow:hidden}
#events{scroll-margin-top:110px}
.reservation-form input[type=date]{width:100%;min-width:0;box-sizing:border-box;background:#fff;border:1px solid #ddd;padding:12px;font:inherit}
.footer-cta__buttons .btn--white{white-space:normal;text-align:center}

/* v1.0.40: fit the collection dialog to available height, including landscape. */
@media (min-width:783px) {
  .brand-collection-modal__panel{height:min(820px,94vh);height:min(820px,94dvh)}
  .brand-collection-slider{flex:1;min-height:0}
  .brand-collection-slider__stage{min-height:0}
  .brand-collection-slide{min-height:0;grid-template-rows:minmax(0,1fr)}
  .brand-collection-slide__image{min-height:0}
  .brand-collection-slide__image img{max-height:100%;width:100%;height:100%;object-fit:contain}
  .brand-collection-slide__details{min-height:0;overflow-y:auto;justify-content:safe center}
}
@media (orientation:landscape) and (max-height:600px) {
  .brand-collection-modal{padding:0}
  .brand-collection-modal__panel{width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh}
  .brand-collection-modal__header{height:56px;min-height:56px;padding:5px 12px 5px 18px}
  .brand-collection-modal__header h2{font-size:20px;margin:2px 0 0}
  .brand-collection-modal__header span{font-size:7px}
  .brand-collection-modal__close{width:44px;height:44px;flex-basis:44px}
  .brand-collection-slider{flex:1;height:auto;min-height:0}
  .brand-collection-slider__stage{flex:1;min-height:0}
  .brand-collection-slide{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);overflow:hidden}
  .brand-collection-slide__image{height:100%;min-height:0;padding:8px 48px}
  .brand-collection-slide__image img{width:100%;height:100%;max-height:100%;object-fit:contain}
  .brand-collection-slide__details{padding:12px 18px;overflow-y:auto;justify-content:safe center;min-height:0}
  .brand-collection-slide__details h3{font-size:22px;line-height:1.3}
  .brand-collection-slide__details .btn{width:auto;min-height:44px;padding:8px 18px}
  .brand-collection-slider__arrow{top:calc((100% - 72px) / 2);transform:translateY(-50%);width:44px;height:44px;font-size:28px}
  .brand-collection-slider__arrow--prev{left:6px;right:auto}
  .brand-collection-slider__arrow--next{left:calc(50% - 50px);right:auto}
  .brand-collection-slider__footer{display:flex;height:72px;min-height:72px;padding:6px 12px;gap:10px}
  .brand-collection-slider__thumb{width:44px;flex-basis:44px;height:58px}
}
@media (max-width:782px) {
  .reservation-form input:not([type=checkbox]),.reservation-form select,.reservation-form textarea{font-size:16px;min-width:0}
  .reservation-form input[type=date]{font-size:16px;min-height:50px}
  .mobile-cta{height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
  .site-footer{padding-bottom:calc(85px + env(safe-area-inset-bottom,0px))}
  .main-nav{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
  .brand-collection-modal__close,.brand-collection-slider__arrow{min-width:44px;min-height:44px}
}

/* Instagram layout remains visible before a feed shortcode is configured. */
.instagram-placeholder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:960px;margin:0 auto 24px}
.instagram-placeholder-card{aspect-ratio:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:1px solid #dedbef;background:linear-gradient(145deg,#fff 0%,#f5f3fc 100%);color:#a59ac5;border-radius:3px}
.instagram-placeholder-card:nth-child(even){background:linear-gradient(145deg,#faf8f3 0%,#f3eff9 100%)}
.instagram-placeholder-card svg{width:48px;height:48px;stroke:currentColor;stroke-width:1.4}
.instagram-placeholder-dot{fill:currentColor;stroke:none}
.instagram-placeholder-card span{font-size:10px;letter-spacing:.22em}
.instagram-placeholder-note{text-align:center;color:var(--char);font-size:13px;margin:0 0 20px;overflow-wrap:anywhere}
@media(max-width:600px){
 .instagram-placeholder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .instagram-placeholder-card{gap:10px}
 .instagram-placeholder-card svg{width:36px;height:36px}
 .instagram-placeholder-card span{font-size:8px}
}

/* Client information section: readable heading and real guidance before the feed. */
.instagram .section-heading h2{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.6;overflow-wrap:anywhere}
.instagram-guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:960px;margin:0 auto 40px}
.instagram-guides a{display:flex;flex-direction:column;gap:8px;padding:24px;background:#fff;border:1px solid var(--border);border-top:3px solid var(--purple);color:var(--deep)}
.instagram-guides a:hover,.instagram-guides a:focus-visible{border-color:var(--purple);box-shadow:var(--shadow)}
.instagram-guides span{font-size:10px;letter-spacing:.16em;color:var(--purple)}
.instagram-guides strong{font-family:var(--serif);font-size:20px}
.instagram-guides small{font-size:12px}
.instagram-feed-heading{text-align:center;margin:0 auto 24px}
.instagram-feed-heading h3{font-family:var(--serif);color:var(--deep);font-size:22px;margin:0 0 8px}
.instagram-feed-heading p{margin:0;font-size:14px}
.reservation-provisional-notice{background:var(--lav);border-left:4px solid var(--purple);padding:22px;margin:0 0 28px;text-align:left;overflow-wrap:anywhere}
.reservation-provisional-notice h2{font-size:20px;margin:0 0 10px;color:var(--deep)}
.reservation-provisional-notice p{margin:0 0 12px}
@media(max-width:600px){.instagram-guides{grid-template-columns:1fr;gap:12px;margin-bottom:32px}.instagram-guides a{padding:18px}.instagram-feed-heading h3{font-size:19px}.instagram-feed-heading p{font-size:13px}}

/* Next release: give the long Instagram heading enough room on desktop. */
.instagram .section-heading{max-width:1100px}
@media(min-width:783px){.instagram .section-heading h2{font-size:clamp(28px,3.5vw,44px);white-space:nowrap;overflow-wrap:normal}}

/* v1.0.45: organized mobile footer, with comfortable touch targets. */
@media(max-width:782px){
 .footer-cta{padding:36px 0}
 .footer-cta__grid{gap:22px;text-align:center}
 .footer-cta h2{white-space:normal;overflow:visible;text-overflow:clip;font-size:clamp(21px,5.8vw,28px);line-height:1.65}
 .footer-cta p{font-size:13px;line-height:1.9;margin:12px auto 0;max-width:34em}
 .footer-cta__buttons{gap:12px;width:100%;max-width:440px;margin-inline:auto}
 .footer-cta__buttons .btn{min-height:52px;white-space:normal;overflow:visible;text-overflow:clip}
 .site-footer{padding-top:32px;padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))}
 .footer-grid{gap:26px}
 .site-footer .brand{min-width:0}
 .site-footer .brand__main{font-size:21px}
 .site-footer .brand__sub{font-size:8px;letter-spacing:.12em;white-space:normal}
 .footer-address{font-size:13px;line-height:2.1;margin:16px 0 0;overflow-wrap:anywhere}
 .footer-nav{padding-top:22px;border-top:1px solid var(--border)}
 .footer-nav ul{columns:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
 .footer-nav li{margin:0;min-width:0;border-bottom:1px solid #eeedf5}
 .footer-nav li:last-child:nth-child(odd){grid-column:1/-1}
 .footer-nav a{display:flex;align-items:center;min-height:48px;padding:10px 0;white-space:normal;overflow:visible;text-overflow:clip;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
 .footer-nav ul ul{display:block;padding-left:12px}
 .footer-social{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
 .footer-social>p:first-child{grid-column:1/-1;margin:0;font-size:10px;letter-spacing:.16em}
 .footer-social>a,.footer-general a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 12px;border:1px solid var(--border);border-radius:3px;white-space:normal;overflow:visible;text-overflow:clip;text-align:center;font-size:13px}
 .footer-general{grid-column:1/-1;margin:0}
 .footer-general a{background:var(--lav)}
 .site-footer a:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
 .site-footer .copyright{margin-top:26px;padding-top:18px;font-size:10px;line-height:1.8;text-align:center;white-space:normal;overflow-wrap:anywhere}
}

/* Ranked appointment choices keep date/time pairs together on every screen. */
.appointment-choices{margin:12px 0 26px;min-width:0}
.appointment-choices h2{font-size:22px;color:var(--deep);margin:0 0 10px}
.appointment-choices>p{font-size:13px;line-height:1.9;margin:0 0 20px}
.appointment-choice{min-width:0;border:1px solid var(--border);padding:18px 18px 0;margin:0 0 20px;background:#faf9ff}
.appointment-choice legend{font-weight:700;color:var(--deep);padding:0 8px}
.appointment-choice legend span{font-size:11px;margin-left:6px;font-weight:400}
.appointment-choice input,.appointment-choice select{min-width:0;max-width:100%}
@media(max-width:782px){.appointment-choice{padding:14px 12px 0}.appointment-choice input,.appointment-choice select{font-size:16px}.appointment-choice .form-row{grid-template-columns:1fr}}
