/* ===== SOURCE: boutique.css ===== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500&family=Noto+Sans+JP:wght@300;400;500&family=Noto+Serif+JP:wght@300;400&display=swap');
:root{--paper:#fbf8f4;--ivory:#f5f0eb;--ink:#4c3739;--wine:#56222f;--mauve:#ac8f96;--gold:#b79a69;--line:rgba(76,55,57,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-weight:300;letter-spacing:.025em}img{display:block;width:100%}a{color:inherit;text-decoration:none}h1,h2,h3,p,figure{margin:0}.is-intro{overflow:hidden}
.opening{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(circle at 82% 18%,rgba(86,34,47,.07),transparent 32%),#fcfaf7;transition:opacity .9s,visibility .9s}.opening__inner{text-align:center;opacity:0;transform:translateY(8px);animation:opIn .9s .15s ease forwards}.opening__logo{width:min(250px,42vw);margin:auto}.opening i{display:block;width:36px;height:1px;background:var(--gold);margin:25px auto;transform:scaleX(0);animation:rule .65s .85s forwards}.opening p{font-family:'Noto Serif JP',serif;font-size:clamp(16px,1.6vw,23px);letter-spacing:.16em;color:var(--wine)}.opening.leave{opacity:0;visibility:hidden}@keyframes opIn{to{opacity:1;transform:none}}@keyframes rule{to{transform:scaleX(1)}}
.bh-header{position:absolute;top:0;left:0;right:0;z-index:20;height:88px;padding:0 4.5vw;display:grid;grid-template-columns:180px 1fr 110px;align-items:center;color:white;border-bottom:1px solid rgba(255,255,255,.18);transition:.35s}.bh-logo img{width:150px;filter:brightness(0) invert(1)}.bh-nav{justify-self:center;display:flex;gap:34px}.bh-nav a,.bh-reserve{font-family:'Cormorant Garamond',serif;font-size:12px;letter-spacing:.12em}.bh-reserve{justify-self:end;border:1px solid rgba(255,255,255,.6);padding:11px 16px}.bh-menu{display:none}.bh-header.sticky{position:fixed;background:rgba(251,248,244,.96);backdrop-filter:blur(14px);color:var(--ink);border-color:var(--line)}.bh-header.sticky .bh-logo img{filter:none}.bh-header.sticky .bh-reserve{border-color:var(--line)}
.bh-hero{height:92vh;min-height:720px;max-height:900px;position:relative;overflow:hidden;color:white;background:#766b63}.bh-hero__image{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center 55%;filter:saturate(.7) contrast(.95) brightness(.78)}.bh-hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(49,34,35,.65),rgba(49,34,35,.34) 30%,rgba(49,34,35,.06) 64%)}.bh-hero__content{position:absolute;left:5vw;bottom:13vh}.kicker,.heading small,.story small,.instagram small{font:400 12px/1 'Cormorant Garamond',serif;letter-spacing:.16em}.bh-hero h1{font:300 clamp(82px,9vw,142px)/.78 'Cormorant Garamond',serif;letter-spacing:.04em;margin:22px 0 32px}.hero-jp{font-family:'Noto Serif JP',serif;font-size:clamp(20px,2vw,30px);line-height:1.9;letter-spacing:.12em}.textlink{display:inline-flex;gap:24px;align-items:center;margin-top:20px;padding-bottom:7px;border-bottom:1px solid;font:400 12px/1 'Cormorant Garamond',serif;letter-spacing:.11em}.textlink b{font-weight:300;transition:.25s}.textlink:hover b{transform:translateX(5px)}.vertical-concept{position:absolute;right:4vw;bottom:6vh;writing-mode:vertical-rl;font:300 12px/2 'Noto Serif JP',serif;letter-spacing:.22em}.scroll{position:absolute;right:4vw;top:118px;writing-mode:vertical-rl;font:400 10px 'Cormorant Garamond',serif;letter-spacing:.18em}.scroll span{display:inline-block;width:1px;height:48px;background:white;margin-top:10px}
.sec{padding:105px 5vw}.heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:50px}.heading small{color:var(--wine)}.heading h2,.story h2,.instagram h2{font:300 clamp(56px,5vw,82px)/.9 'Cormorant Garamond',serif;letter-spacing:.035em;margin-top:8px}.textlink.dark{color:var(--ink)}
.exp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.exp-item{position:relative;border-top:1px solid var(--line);padding-top:22px}.exp-item em{position:absolute;top:-34px;font:400 20px 'Cormorant Garamond',serif;color:var(--wine)}.exp-item figure{aspect-ratio:1.42/1;overflow:hidden;margin-bottom:18px}.exp-item figure img{height:100%;object-fit:cover;filter:saturate(.72);transition:.45s}.exp-item:hover img{transform:scale(1.025)}.exp-item>small{font:400 11px 'Cormorant Garamond',serif;letter-spacing:.13em;color:var(--wine)}.exp-item h3{font:400 16px/1.6 'Noto Serif JP',serif;margin:6px 0}.exp-item p{font:400 12px 'Cormorant Garamond',serif;color:#75696a}
.story{display:grid;grid-template-columns:42% 58%;min-height:520px;background:linear-gradient(120deg,#9b7f86,#b59da3);color:white;overflow:hidden}.story-copy{padding:88px 6vw;align-self:center}.story h3{font:300 21px/1.8 'Noto Serif JP',serif;letter-spacing:.12em;margin:32px 0 22px}.story p{font-size:13px;line-height:2.1}.story figure{overflow:hidden;border-top-left-radius:42% 100%;border-left:1px solid rgba(220,189,133,.7);border-top:1px solid rgba(220,189,133,.7)}.story figure img{height:100%;object-fit:cover;filter:saturate(.62) brightness(.86)}
.people{background:#fdfaf6}.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.people article{display:grid;grid-template-columns:58% 42%;align-items:end}.people article figure{aspect-ratio:4/5;overflow:hidden}.people article figure img{height:100%;object-fit:cover;object-position:center top;filter:saturate(.7)}.people article>div{padding:0 0 20px 28px}.people article small{font:400 11px 'Cormorant Garamond',serif;letter-spacing:.13em;color:var(--wine)}.people article h3{font:300 45px 'Cormorant Garamond',serif;margin:4px 0 12px}.people article p{font-size:13px}
.journal-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px}.journal-main{display:grid;grid-template-columns:60% 40%;background:#f1eae4}.journal-main>img{height:100%;object-fit:cover;filter:saturate(.7)}.journal-main>div{padding:36px}.journal-main small,.journal-main span,.journal-list small{font:400 11px 'Cormorant Garamond',serif;letter-spacing:.09em}.journal-main h3,.journal-list h3{font:400 16px/1.75 'Noto Serif JP',serif;margin:10px 0 20px}.journal-list{border-top:1px solid var(--line)}.journal-list a{display:grid;grid-template-columns:140px 1fr;gap:24px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.journal-list img{width:140px;height:94px;object-fit:cover;filter:saturate(.7)}
.instagram{display:grid;grid-template-columns:27% 73%;background:var(--ink);color:white}.instagram-title{padding:58px 5vw}.ig-grid{display:grid;grid-template-columns:repeat(6,1fr)}.ig-grid img{height:100%;min-height:245px;object-fit:cover;filter:saturate(.7)}
.faq{padding-top:88px}.faq-list{max-width:980px;margin-left:auto;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;justify-content:space-between;padding:24px 0;font-family:'Noto Serif JP',serif;cursor:pointer}summary::-webkit-details-marker{display:none}details p{padding:0 0 26px;font-size:13px;line-height:2;color:#716466}
.bh-footer{padding:65px 5vw 28px;background:linear-gradient(110deg,#6d3040,#403235);color:white;display:grid;grid-template-columns:1.4fr 2fr 1fr;gap:45px}.bh-footer>div img{width:170px;margin-bottom:24px}.bh-footer>div p{font:300 13px 'Noto Serif JP',serif;letter-spacing:.12em}.bh-footer nav{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 28px}.bh-footer nav a,.bh-footer aside a{font:400 12px 'Cormorant Garamond',serif;letter-spacing:.11em}.bh-footer aside{display:flex;flex-direction:column;gap:16px}.copy{grid-column:1/-1;text-align:center;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font:400 11px 'Cormorant Garamond',serif;opacity:.7}
@media(max-width:900px){.bh-header{height:72px;padding:0 20px;grid-template-columns:1fr auto}.bh-logo img{width:125px}.bh-nav,.bh-reserve{display:none}.bh-menu{display:block;width:34px;height:34px;background:none;border:0;position:relative;color:currentColor}.bh-menu span{position:absolute;right:0;width:24px;height:1px;background:currentColor}.bh-menu span:first-child{top:12px}.bh-menu span:last-child{top:20px}.bh-hero{height:88vh;min-height:640px}.bh-hero__content{left:24px;bottom:11vh}.bh-hero h1{font-size:64px}.hero-jp{font-size:18px}.vertical-concept,.scroll{display:none}.sec{padding:78px 22px}.heading h2,.story h2,.instagram h2{font-size:50px}.exp-grid{grid-template-columns:1fr 1fr;gap:52px 18px}.story{grid-template-columns:1fr}.story-copy{padding:68px 24px}.story figure{height:350px;border-radius:0}.people-grid{grid-template-columns:1fr}.journal-grid{grid-template-columns:1fr}.instagram{grid-template-columns:1fr}.instagram-title{padding:45px 22px}.ig-grid{grid-template-columns:repeat(3,1fr)}.ig-grid img{min-height:0;aspect-ratio:4/5}.faq-list{margin-left:0}.bh-footer{grid-template-columns:1fr;padding:52px 24px 25px}.bh-footer nav{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.opening__logo{width:185px}.opening p{font-size:15px}.bh-hero__shade{background:linear-gradient(180deg,rgba(49,34,35,.16),rgba(49,34,35,.66))}.bh-hero__content{right:24px}.bh-hero h1{font-size:56px}.exp-grid{grid-template-columns:1fr}.people article{grid-template-columns:1fr}.people article>div{padding:20px 0 0}.journal-main{grid-template-columns:1fr}.journal-main>img{aspect-ratio:1.35/1}.journal-list a{grid-template-columns:105px 1fr}.journal-list img{width:105px;height:80px}.ig-grid{grid-template-columns:repeat(2,1fr)}}

/* ============================================================
   Boutique v4 refinements — 2026-08-27
   ============================================================ */
.bh-header{height:116px;padding:0 4.2vw;grid-template-columns:280px 1fr 46px;align-items:start;padding-top:18px;border-bottom-color:rgba(255,255,255,.12)}
.bh-logo{position:relative;width:252px;height:172px;transition:width .28s ease,height .28s ease,transform .28s ease;z-index:3}
.bh-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:left top;transition:opacity .25s ease}
.bh-logo-dark{opacity:0}.bh-logo-light{opacity:1}
.bh-nav{justify-self:end;display:flex;align-items:flex-start;gap:28px;padding-top:4px}
.bh-nav>a:not(.bh-nav-instagram){display:flex;flex-direction:column;align-items:center;gap:2px;position:relative;padding:3px 0 9px;color:inherit}
.bh-nav>a:not(.bh-nav-instagram)::after{content:"";position:absolute;bottom:0;left:50%;width:0;height:1px;background:currentColor;transition:.25s;transform:translateX(-50%)}
.bh-nav>a:not(.bh-nav-instagram):hover::after{width:100%}
.bh-nav a span{font:400 13px/1.2 'Cormorant Garamond',serif;letter-spacing:.14em}
.bh-nav a small{font-family:'Noto Sans JP',sans-serif;font-size:9px;line-height:1.4;letter-spacing:.08em;font-weight:300;white-space:nowrap}
.bh-nav-instagram{display:grid;place-items:center;width:31px;height:31px;margin-top:0}.bh-nav-instagram svg{width:20px;height:20px}
.bh-header.sticky{height:78px;padding-top:7px;grid-template-columns:175px 1fr 46px;align-items:start;background:rgba(251,248,244,.965)}
.bh-header.sticky .bh-logo{width:148px;height:70px}.bh-header.sticky .bh-logo-light{opacity:0}.bh-header.sticky .bh-logo-dark{opacity:1}.bh-header.sticky .bh-nav{padding-top:7px}
.bh-menu{justify-self:end}

.bh-hero__content{left:5vw;bottom:12vh;max-width:600px}.bh-hero__content .hero-jp{font-family:'Noto Serif JP',serif;font-size:clamp(28px,3vw,46px);font-weight:300;line-height:1.75;letter-spacing:.12em;margin:0;color:#fff}.hero-sub{margin:17px 0 0;font-family:'Noto Sans JP',sans-serif;font-size:13px;line-height:2;letter-spacing:.08em;color:rgba(255,255,255,.9)}
.hero-event-btn{display:inline-flex;align-items:center;gap:32px;margin-top:28px;padding:13px 22px;border:1px solid rgba(255,255,255,.72);font-family:'Noto Serif JP',serif;font-size:13px;letter-spacing:.08em;transition:.25s}.hero-event-btn:hover{background:#fff;color:var(--ink)}.hero-event-btn b{font-size:16px;font-weight:300}

.heading small{display:block;margin-bottom:10px;font-family:'Noto Sans JP',sans-serif;font-size:11px;line-height:1.4;letter-spacing:.12em;color:#806b6d}.heading h2{margin:0;font:300 clamp(58px,6vw,94px)/.85 'Cormorant Garamond',serif;letter-spacing:.025em;color:var(--ink)}
.event-section{padding-top:112px;padding-bottom:112px}.event-v1-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch}
.event-card-design2{display:block;height:100%;min-width:0}.event-card-design2 .event-card-shell{display:flex;flex-direction:column;height:100%;padding:10px;border:1px solid rgba(76,55,57,.20);border-radius:0;background:rgba(255,253,250,.82);overflow:hidden;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}.event-card-design2:hover .event-card-shell{border-color:rgba(86,34,47,.48);transform:translateY(-2px);box-shadow:0 16px 30px rgba(76,55,57,.055)}
.event-card-design2 .event-image{position:relative;aspect-ratio:16/10;border-radius:0;overflow:hidden;background:#eee9e2}.event-card-design2 .event-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.event-card-design2:hover .event-image img{transform:scale(1.02)}
.event-card-design2 .event-tag{position:absolute;top:10px;left:10px;z-index:2;margin:0;padding:6px 11px 5px;border:1px solid rgba(76,55,57,.12);border-radius:0;background:rgba(250,247,243,.92);color:#6d5559;font:400 11px/1 'Cormorant Garamond',serif;letter-spacing:.14em}.event-card-design2 .event-status{position:absolute;top:0;right:10px;z-index:2;min-width:74px;padding:11px 10px 18px;clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%);background:#56222f;color:#fff;text-align:center;font-family:'Noto Serif JP',serif;font-size:12px;line-height:1;letter-spacing:.05em}.event-card-design2 .event-status.is-closed{background:#8d8584}
.event-card-design2 .event-card-content{display:flex;flex-direction:column;flex:1;padding:16px 6px 5px}.event-card-design2 .event-title{margin:0;font-family:'Noto Serif JP',serif;font-size:17px;font-weight:400;line-height:1.65;letter-spacing:.025em;color:#4f3b3e}.event-card-design2 .event-title-rule{height:1px;margin:11px 0 15px;background:rgba(76,55,57,.16)}
.event-card-design2 .event-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px 12px;padding-bottom:14px;border-bottom:1px dotted rgba(76,55,57,.22)}.event-card-design2 .event-fact{display:flex;align-items:center;gap:7px;min-width:0;color:#5b4b4d;font-family:'Cormorant Garamond','Noto Sans JP',serif;font-size:13px;line-height:1.25;white-space:nowrap}.event-card-design2 .event-fact-place{grid-column:1/-1}.event-card-design2 .event-fact-icon{width:18px;height:18px;flex:none;fill:none;stroke:#9c767c;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.event-card-design2 .event-date-main{font-size:21px;line-height:1;letter-spacing:.04em}.event-card-design2 .event-fact small{font-size:10px;letter-spacing:.1em}
.event-card-design2 .event-card-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;margin-top:auto;padding-top:14px}.event-card-design2 .event-instructor{display:flex;align-items:center;gap:8px;min-width:0;color:#5e4e50}.event-card-design2 .event-instructor img{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center 22%;flex:none}.event-card-design2 .event-instructor>span{display:flex;flex-direction:column}.event-card-design2 .event-instructor small{font-family:'Noto Sans JP',sans-serif;font-size:8px;line-height:1.3;color:#887477}.event-card-design2 .event-instructor strong{font-family:'Cormorant Garamond',serif;font-size:19px;line-height:1.05;font-weight:400}
.event-card-design2 .event-detail-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:43px;padding:7px 9px;border:1px solid rgba(86,34,47,.38);border-radius:0;color:#69484e;background:transparent;font-family:'Noto Serif JP',serif;font-size:11px;white-space:nowrap;transition:.25s}.event-detail-rule{display:inline-block;width:18px;height:1px;background:#b79a69;position:relative}.event-detail-rule::after{content:"";position:absolute;right:-2px;top:-2px;width:4px;height:4px;border:1px solid #b79a69;transform:rotate(45deg);background:#fbf8f4}.event-card-design2 .event-detail-link b{font-size:14px;font-weight:300;transition:.25s}.event-card-design2:hover .event-detail-link{background:#56222f;color:#fff;border-color:#56222f}.event-card-design2:hover .event-detail-rule{background:#d8c199}.event-card-design2:hover .event-detail-rule::after{border-color:#d8c199;background:#56222f}.event-card-design2:hover .event-detail-link b{transform:translateX(3px)}

.story-copy>small{display:none}.story-copy h2{font:300 clamp(60px,6vw,96px)/.9 'Cormorant Garamond',serif;letter-spacing:.02em;margin:0 0 28px}.story-copy h3{margin-top:0}
.instructor-showcase{position:relative;background:#f7f3ef url('../images/boutique/instructor-marble-bg.webp') center/cover no-repeat;border-top:1px solid rgba(76,55,57,.08);border-bottom:1px solid rgba(76,55,57,.08)}.instructor-showcase::before{content:"";position:absolute;inset:0;background:rgba(251,248,244,.56);pointer-events:none}.instructor-showcase>*{position:relative;z-index:1}.instructor-v4-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px;width:min(860px,86%);margin:0 auto}.instructor-v4-card{text-align:center}.instructor-v4-card figure{width:210px;height:270px;margin:0 auto 24px;overflow:hidden;border:1px solid rgba(86,34,47,.24);border-radius:105px 105px 0 0;background:#eee7e2;box-shadow:0 16px 36px rgba(76,55,57,.06)}.instructor-v4-card figure img{width:100%;height:100%;object-fit:cover;object-position:center 18%}.instructor-v4-card>small{font-family:'Noto Sans JP',sans-serif;font-size:9px;letter-spacing:.1em;color:#8a7478}.instructor-v4-card h3{margin:5px 0 10px;font:400 36px/1 'Cormorant Garamond',serif;letter-spacing:.04em}.instructor-v4-card p{font-size:12px;line-height:1.8}.instructor-v4-card .textlink{margin-top:14px;color:#6b4b50}

.event-float{position:fixed;right:20px;bottom:24px;z-index:45;width:64px;height:174px;border-radius:32px;background:#56222f;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(255,255,255,.36);text-align:center;opacity:0;visibility:hidden;transform:translateY(16px);pointer-events:none;transition:opacity .28s ease,transform .28s ease,background .25s ease}.event-float.is-visible{opacity:1;visibility:visible;transform:none;pointer-events:auto}.event-float:hover{background:#4c3739;transform:translateY(-3px)}.event-float svg{width:20px;height:20px}.event-float-en{font:400 10px/1.1 'Cormorant Garamond',serif;letter-spacing:.08em}.event-float-jp{font-size:9px;writing-mode:vertical-rl;letter-spacing:.12em;line-height:1.2}

@media(max-width:1180px){.bh-header{grid-template-columns:220px 1fr 42px}.bh-logo{width:205px;height:142px}.bh-nav{gap:18px}.bh-nav a span{font-size:11px}.bh-nav a small{font-size:8px}.event-v1-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.instructor-v4-grid{width:min(760px,92%);gap:40px}}
@media(max-width:780px){.bh-header{height:96px;padding:8px 18px 0;display:flex;align-items:flex-start;justify-content:space-between}.bh-logo{width:150px;height:100px}.bh-header.sticky{height:72px;padding:4px 18px}.bh-header.sticky .bh-logo{width:118px;height:66px}.bh-menu{display:block;margin-top:13px}.bh-nav{position:fixed;inset:0;z-index:20;background:#4c3739;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transform:translateX(100%);transition:.35s;padding:0}.menu-open .bh-nav{transform:none}.bh-nav>a:not(.bh-nav-instagram){gap:3px}.bh-nav a span{font-size:24px}.bh-nav a small{font-size:10px}.bh-nav-instagram{color:#fff}.bh-hero__content{left:24px;right:24px;bottom:12vh}.bh-hero__content .hero-jp{font-size:clamp(24px,7vw,34px);line-height:1.7}.hero-sub{font-size:11.5px}.event-v1-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 20px 10px;margin:0 -20px}.event-card-design2{min-width:82%;scroll-snap-align:start}.heading{align-items:flex-start}.heading h2{font-size:58px}.story-copy h2{font-size:58px}.instructor-v4-grid{grid-template-columns:1fr;gap:48px}.instructor-v4-card figure{width:176px;height:230px;border-radius:88px 88px 0 0}.event-float{right:9px;bottom:16px;width:54px;height:146px;border-radius:27px}.event-float-en{font-size:9px}.event-float-jp{font-size:8px}.vertical-concept{display:none}}

/* ============================================================
   Boutique v5 refinements — 2026-08-27
   ============================================================ */
.bh-header:not(.sticky){border-bottom:0!important;box-shadow:none!important;background:transparent!important}
.bh-header:not(.sticky){grid-template-columns:260px 1fr 46px}
.bh-header:not(.sticky) .bh-logo{width:252px;height:172px;transform:none}
.bh-header.sticky{border-bottom:1px solid var(--line)!important;background:rgba(251,248,244,.965)!important}
.event-card-design2 .event-fact{font-family:'Cormorant Garamond','Noto Sans JP',serif;font-size:15px;font-weight:500;line-height:1.25}
.event-card-design2 .event-date-main{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:500;line-height:1;letter-spacing:.04em}
.event-card-design2 .event-fact small{font-size:11px;font-weight:500;letter-spacing:.12em}
.event-card-design2 .event-fact-time span{font-weight:500}
.event-card-design2 .event-detail-link{gap:10px;min-width:118px}
.event-card-design2 .event-detail-rule{order:2;width:24px;height:1px;background:var(--gold);position:relative;flex:none}
.event-card-design2 .event-detail-rule::after{content:"";position:absolute;right:-2px;top:-3px;width:5px;height:5px;border:1px solid var(--gold);transform:rotate(45deg);background:var(--paper)}
.event-card-design2:hover .event-detail-rule{background:#dfc99f}.event-card-design2:hover .event-detail-rule::after{border-color:#dfc99f;background:var(--wine)}
.event-card-design2 .event-detail-link b{display:none!important}
.instagram{grid-template-columns:minmax(290px,31%) 1fr}
.instagram-title{overflow:visible;min-width:0}
.instagram-title h2{font-size:clamp(46px,4.2vw,68px);line-height:.95;letter-spacing:.018em;white-space:nowrap;overflow:visible}
.bh-footer{background:#4c3739!important}
.instructor-showcase{background-color:#f5f1ed!important;background-image:url('../images/boutique/instructor-marble-bg.webp')!important;background-repeat:repeat!important;background-position:center top!important;background-size:1200px auto!important}
.instructor-showcase::before{background:rgba(251,248,244,.18)!important}
@media(max-width:1180px) and (min-width:781px){.bh-header:not(.sticky){grid-template-columns:220px 1fr 42px}.bh-header:not(.sticky) .bh-logo{width:205px;height:142px}}
@media(max-width:780px){
  .bh-header:not(.sticky){height:112px;padding:7px 16px 0;grid-template-columns:1fr auto}
  .bh-header:not(.sticky) .bh-logo{width:205px;height:136px;transform:none}
  .bh-menu{z-index:32}
  .bh-hero{min-height:640px;height:100svh;max-height:none}
  .bh-hero__image{object-position:61% center}
  .bh-hero__content{left:22px;right:22px;bottom:9.5svh}
  .bh-hero__content .hero-jp{font-size:clamp(23px,6.6vw,29px);line-height:1.7;letter-spacing:.08em}
  .hero-sub{max-width:320px;font-size:11px;line-height:1.9;letter-spacing:.05em}
  .hero-event-btn{margin-top:22px;padding:12px 18px;font-size:12px}
  .sec{padding:72px 20px}
  .heading{gap:16px;margin-bottom:38px;flex-wrap:wrap}.heading>div{min-width:0}.heading h2{font-size:clamp(46px,14vw,58px)}.heading .textlink{margin-top:0;font-size:10px}
  .event-card-design2{min-width:84%}.event-card-design2 .event-fact{font-size:14px}.event-card-design2 .event-date-main{font-size:23px}.event-card-design2 .event-card-bottom{grid-template-columns:minmax(0,1fr) auto}.event-card-design2 .event-detail-link{min-width:108px;padding-inline:8px;font-size:11px}
  .story{min-height:0}.story-copy{padding:64px 22px}.story-copy h2{font-size:clamp(48px,13vw,58px)}.story-copy h3{font-size:18px;line-height:1.8;letter-spacing:.08em}.story-copy p{font-size:12px;line-height:2}
  .instructor-showcase{background-size:900px auto!important}.instructor-showcase::before{background:rgba(251,248,244,.22)!important}.instructor-v4-grid{width:100%;gap:42px}.instructor-v4-card figure{width:158px;height:205px;border-radius:79px 79px 0 0;margin-bottom:18px}.instructor-v4-card h3{font-size:32px}
  .journal-grid{gap:28px}.journal-main>div{padding:26px 22px}
  .instagram{grid-template-columns:1fr}.instagram-title{padding:40px 20px 32px}.instagram-title h2{font-size:clamp(44px,13vw,52px);white-space:nowrap}.ig-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq{padding-top:68px}.bh-footer{padding:45px 22px 26px;gap:30px}.bh-footer>div img{width:145px}.bh-footer nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
}
@media(max-width:420px){.bh-header:not(.sticky) .bh-logo{width:194px;height:128px}.bh-header.sticky .bh-logo{width:110px;height:62px}.bh-hero__content{left:20px;right:20px}.event-v1-grid{padding-left:20px;padding-right:20px}.event-card-design2{min-width:86%}.instagram-title h2{font-size:46px;letter-spacing:0}.event-float{right:8px;bottom:14px}}
@media(max-width:780px){.bh-nav{transform:none!important;opacity:0;visibility:hidden;pointer-events:none}.menu-open .bh-nav{opacity:1;visibility:visible;pointer-events:auto}}
@media(min-width:1181px){.bh-header:not(.sticky) .bh-logo{width:252px;height:172px;transform:none}.bh-header:not(.sticky){grid-template-columns:260px 1fr 46px}}
@media(max-width:420px){.instructor-showcase .heading h2{font-size:50px;letter-spacing:0}}


/* ============================================================
   Boutique v6 refinements — 2026-08-27
   ============================================================ */
:root{--heading-gold:#aa8b58}
.heading h2,.story-copy h2,.instagram-title h2,.faq .heading h2{color:var(--heading-gold)!important}

/* Stronger marble texture behind instructors. */
.instructor-showcase{background-color:#e7ded8!important;background-image:url('../images/boutique/instructor-marble-bg.webp')!important;background-repeat:repeat!important;background-position:center top!important;background-size:780px auto!important;background-blend-mode:multiply!important}
.instructor-showcase::before{background:rgba(251,248,244,.02)!important}

/* Mobile menu: right drawer ~2/3 width, compact type, stable when header becomes sticky. */
@media(max-width:780px){
  body.menu-open{overflow:hidden!important}
  .bh-header,.bh-header.sticky{overflow:visible!important}
  .bh-menu{position:relative!important;z-index:130!important}
  .bh-nav{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(68vw,300px)!important;height:100dvh!important;min-height:100svh!important;z-index:120!important;padding:92px 30px 34px!important;background:#4c3739!important;color:#fff!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important;overflow-y:auto!important;overscroll-behavior:contain;transform:translateX(105%)!important;opacity:1!important;visibility:visible!important;pointer-events:none!important;box-shadow:-18px 0 44px rgba(38,26,28,.18);transition:transform .34s cubic-bezier(.22,.8,.22,1)!important}
  .menu-open .bh-nav{transform:translateX(0)!important;pointer-events:auto!important}
  .bh-nav>a:not(.bh-nav-instagram){width:100%!important;align-items:flex-start!important;gap:4px!important;padding:15px 0 14px!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
  .bh-nav>a:not(.bh-nav-instagram)::after{display:none!important}
  .bh-nav a span{font-size:19px!important;line-height:1.1!important;letter-spacing:.13em!important}
  .bh-nav a small{font-size:9px!important;line-height:1.5!important;letter-spacing:.08em!important}
  .bh-nav-instagram{margin-top:18px!important;width:34px!important;height:34px!important;align-self:flex-start!important}
  .menu-open .bh-menu span{background:#fff!important}
  .instructor-showcase{background-size:650px auto!important}
}
@media(max-width:420px){.bh-nav{width:67vw!important;padding-left:28px!important;padding-right:28px!important}}

/* ============================================================
   Boutique v7 — requested refinements
   ============================================================ */
/* Dark ABOUT BIRTUE block: heading must remain white for contrast. */
.story-copy h2{color:#fff!important}
.story-copy h3,.story-copy p,.story-copy .textlink{color:#fff}

/* Keep the instructor section unmistakably marble; preserve the same marble direction. */
.instructor-showcase{
  background-color:#f4f0ec!important;
  background-image:url('../images/boutique/instructor-marble-bg-v7.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
  background-blend-mode:normal!important;
}
.instructor-showcase::before{background:rgba(251,248,244,.16)!important}

/* Journal metadata: date + category only; no numeric labels. */
.journal-meta-v7{display:flex!important;gap:12px;align-items:center;flex-wrap:wrap;color:#81696d!important;font:400 10px/1.4 'Noto Sans JP',sans-serif!important;letter-spacing:.08em!important}
.journal-meta-v7 time,.journal-meta-v7 em{font:inherit;font-style:normal}
.journal-meta-v7 em{color:#aa8b58}
.journal-readmore-v7{display:inline-block;margin-top:10px;color:#74545a;font:400 10px/1 'Cormorant Garamond',serif;letter-spacing:.12em}
.journal-list .journal-readmore-v7{margin-top:5px}


/* ============================================================
   Boutique v8 — requested refinements 2026-08-28
   ============================================================ */
:root{
  --wine:#56222f;
  --footer-bg:#54434e;
}

/* Dark brand surfaces */
.bh-footer{background:#54434e!important}
.instagram{background:#54434e!important}
@media(max-width:780px){
  .bh-nav{background:#54434e!important}
}

/* Main brand accents */
.event-float{background:#56222f!important}
.event-card-design2 .event-status{background:#56222f!important}
.event-card-design2:hover .event-detail-link{background:#56222f!important;border-color:#56222f!important}
.event-card-design2:hover .event-detail-rule::after{background:#56222f!important}

/* Keep the ABOUT heading readable on its mauve field. */
.story-copy h2{color:#fff!important}

/* New soft stone/plaster texture: no cracks or vein-like fractures. */
.instructor-showcase{
  background-color:#ddd3d0!important;
  background-image:url('../images/boutique/instructor-stone-soft-v8.webp')!important;
  background-repeat:repeat!important;
  background-position:center top!important;
  background-size:900px auto!important;
  background-blend-mode:normal!important;
}
.instructor-showcase::before{background:rgba(251,248,244,.10)!important}

/* User asked to remove thin image frames. Preserve card containers, remove image/figure outlines. */
main figure,
main figure img,
main img{
  border:0!important;
  outline:0!important;
}
.instructor-v4-card figure{border:0!important;box-shadow:none!important}

/* Header has one more item (CONTACT). Keep it balanced on desktop. */
@media(min-width:901px){
  .bh-nav{gap:25px}
  .bh-nav a span{font-size:11px}
}


/* ===== SOURCE: boutique-v9.css ===== */
/* Birtue Boutique v9 final overrides — 2026-08-28 */
:root{
  --v9-wine:#56222f;
  --v9-footer:#54434e;
  --v9-gold:#b79a69;
  --v9-paper:#fbf8f4;
}

/* Exact requested solid footer/menu family colors. */
.bh-footer{
  background:#54434e!important;
  background-color:#54434e!important;
  background-image:none!important;
}
.boutique-home .instagram{background:#54434e!important;background-image:none!important}
@media(max-width:780px){.bh-nav{background:#54434e!important;background-image:none!important}}

/* Point/CTA color. */
.store-btn,.primary-btn,.submit-btn,.event-book-button,.trip-contact-only .store-btn{
  border-color:#56222f!important;
}
.trip-contact-only .store-btn{
  background:#56222f!important;
  color:#fff!important;
}
.trip-contact-only .store-btn:hover{background:#461b26!important;border-color:#461b26!important}
.event-float,.event-card-design2 .event-status{background:#56222f!important}
.event-card-design2:hover .event-detail-link{background:#56222f!important;border-color:#56222f!important}
.event-card-design2:hover .event-detail-rule::after{background:#56222f!important}

/* No thin frame directly around any photo/image. Keep semantic card dividers only. */
main img,main figure,main figure img,
.event-image,.about-gallery-item,.instagram-item,.ig-grid a,
.about-detail-hero-photo,.trip-about-hero-photo,.trip-gallery-item,
.about-instructor-card figure,.instructor-v4-card figure{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}

/* ABOUT / PROGRAMS FV: V1 geometry and content sizing; v7 palette + large English display heading. */
.about-page-v7 .about-detail-hero,
.programs-page-v7 .trip-about-hero{
  padding:150px 0 76px!important;
  background:linear-gradient(120deg,#9b7f86,#b59da3)!important;
}
.about-page-v7 .about-detail-hero-grid,
.programs-page-v7 .about-detail-hero-grid{
  position:relative!important;
  display:grid!important;
  grid-template-columns:.88fr 1.32fr!important;
  gap:74px!important;
  align-items:center!important;
  width:min(1180px,calc(100% - 56px))!important;
  margin-inline:auto!important;
}
.about-page-v7 .about-detail-hero-copy .eyebrow,
.programs-page-v7 .about-detail-hero-copy .eyebrow{
  margin:0 0 8px!important;
  font-family:'Noto Sans JP',sans-serif!important;
  font-size:10px!important;
  line-height:1.5!important;
  letter-spacing:.12em!important;
  color:rgba(255,255,255,.88)!important;
}
.about-page-v7 .about-detail-hero h1,
.programs-page-v7 .trip-about-hero h1{
  margin:0 0 22px!important;
  font-family:'Cormorant Garamond',serif!important;
  font-size:clamp(50px,4.9vw,70px)!important;
  font-weight:300!important;
  line-height:1!important;
  letter-spacing:.055em!important;
  white-space:nowrap!important;
  color:#fff!important;
}
.about-page-v7 .about-detail-hero h2{
  margin:0 0 25px!important;
  font-family:'Noto Serif JP',serif!important;
  font-size:clamp(21px,2.2vw,31px)!important;
  font-weight:400!important;
  line-height:1.85!important;
  letter-spacing:.04em!important;
  color:#fff!important;
}
.about-page-v7 .about-detail-hero p,
.programs-page-v7 .trip-about-hero p{
  max-width:470px!important;
  margin:0 0 16px!important;
  font-size:13px!important;
  line-height:2.15!important;
  color:#fff!important;
}
.programs-page-v7 .trip-about-description{
  font-family:'Noto Serif JP',serif!important;
  font-size:13px!important;
  line-height:2.15!important;
}
.about-page-v7 .about-detail-hero-photo,
.programs-page-v7 .trip-about-hero-photo{
  margin:0!important;
  width:100%!important;
  aspect-ratio:1.28/1!important;
  overflow:hidden!important;
  border-radius:46% 46% 0 0!important;
}
.about-page-v7 .about-detail-hero-photo img,
.programs-page-v7 .trip-about-hero-photo img{
  width:100%!important;height:100%!important;object-fit:cover!important;
}
.about-page-v7 .about-detail-hero-photo img{object-position:center 35%!important}
.programs-page-v7 .trip-about-hero-photo img{object-position:center 42%!important}
.about-page-v7 .about-detail-hero-decor,.programs-page-v7 .about-detail-hero-decor{display:none!important}

/* A single large, white stone/marble image — never tiled. */
.boutique-home .instructor-showcase{
  background-color:#f7f6f3!important;
  background-image:url('../images/boutique/top-instructor-stone-v9.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
  background-blend-mode:normal!important;
}
.boutique-home .instructor-showcase::before{background:rgba(255,255,255,.06)!important}
.about-page-v7 .about-instructors{
  position:relative!important;
  background-color:#f7f6f3!important;
  background-image:url('../images/boutique/about-instructor-stone-v9.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
  background-blend-mode:normal!important;
}
.about-page-v7 .about-instructors::before{background:rgba(255,255,255,.05)!important}
.about-page-v7 .about-instructors>.container{position:relative;z-index:1}

/* ABOUT instructor cards: larger portrait + 70% translucent white backing. */
.about-page-v7 .about-instructor-card{
  grid-template-columns:minmax(390px,430px) 1fr!important;
  gap:56px!important;
  padding:44px 50px!important;
  background:rgba(255,255,255,.70)!important;
  border:0!important;
  box-shadow:none!important;
}
.about-page-v7 .about-instructor-card.is-reverse{grid-template-columns:1fr minmax(390px,430px)!important}
.about-page-v7 .about-instructor-card figure{
  width:100%!important;
  max-width:none!important;
  height:520px!important;
  margin:0!important;
  border-radius:48% 48% 0 0!important;
  overflow:hidden!important;
}
.about-page-v7 .about-instructor-card figure img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 20%!important}

/* Gallery band must contain only editorial/event/program/journal imagery; no IG-specific visual treatment. */
.about-gallery-band .about-gallery-item{background:transparent!important}

/* CONTACT remains present in desktop + hamburger menu. */
.bh-nav a[href="contact.html"]{display:flex!important}

@media(max-width:780px){
  .about-page-v7 .about-detail-hero,.programs-page-v7 .trip-about-hero{padding:118px 0 54px!important}
  .about-page-v7 .about-detail-hero-grid,.programs-page-v7 .about-detail-hero-grid{
    width:min(100% - 36px,1180px)!important;
    grid-template-columns:1fr!important;
    gap:32px!important;
  }
  .about-page-v7 .about-detail-hero-copy{order:1!important}
  .about-page-v7 .about-detail-hero-photo{order:2!important}
  .programs-page-v7 .about-detail-hero-photo{order:1!important}
  .programs-page-v7 .about-detail-hero-copy{order:2!important}
  .about-page-v7 .about-detail-hero h1,.programs-page-v7 .trip-about-hero h1{
    font-size:clamp(38px,11vw,48px)!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .about-page-v7 .about-detail-hero h2{font-size:19px!important;line-height:1.9!important}
  .about-page-v7 .about-detail-hero p,.programs-page-v7 .trip-about-hero p{font-size:13px!important;line-height:2!important}
  .about-page-v7 .about-detail-hero-photo,.programs-page-v7 .trip-about-hero-photo{
    aspect-ratio:1/1.05!important;
    border-radius:42% 42% 0 0!important;
  }
  .about-page-v7 .about-instructor-card,.about-page-v7 .about-instructor-card.is-reverse{
    grid-template-columns:1fr!important;
    gap:28px!important;
    padding:30px 22px!important;
  }
  .about-page-v7 .about-instructor-card.is-reverse figure,
  .about-page-v7 .about-instructor-card.is-reverse .about-instructor-content{order:initial!important}
  .about-page-v7 .about-instructor-card figure{
    width:min(86%,280px)!important;
    height:360px!important;
    margin-inline:auto!important;
  }
}

@media(max-width:420px){
  .about-page-v7 .about-detail-hero-grid,.programs-page-v7 .about-detail-hero-grid{width:calc(100% - 32px)!important}
  .about-page-v7 .about-detail-hero h1{font-size:clamp(35px,10vw,43px)!important}
  .programs-page-v7 .trip-about-hero h1{font-size:clamp(38px,11vw,46px)!important}
  .about-page-v7 .about-instructor-card figure{width:min(88%,265px)!important;height:342px!important}
}


/* ===== SOURCE: boutique-v10.css ===== */
/* Birtue Boutique v10 corrections — 2026-08-28 */
:root{
  --v10-wine:#56222f;
  --v10-footer:#54434e;
  --v10-paper:#fbf8f4;
}

/* Exact solid footer / menu surface. */
.bh-footer{
  background:#54434e!important;
  background-color:#54434e!important;
  background-image:none!important;
}
@media(max-width:780px){.bh-nav{background:#54434e!important;background-image:none!important}}
.boutique-home .instagram{background:#54434e!important;background-image:none!important}

/* Programs inquiry CTA: exact requested point color. */
.trip-contact-only .store-btn,
.trip-contact-only a,
.programs-page-v7 .trip-contact-only .store-btn{
  background:#56222f!important;
  background-color:#56222f!important;
  border-color:#56222f!important;
  color:#fff!important;
}
.trip-contact-only .store-btn:hover,
.trip-contact-only a:hover{background:#461b26!important;border-color:#461b26!important}

/* ABOUT / PROGRAMS hero: use the exact V1 placement and geometry.
   Keep current v7/v9 palette and the larger English display heading. */
.about-page-v7 .about-detail-hero,
.programs-page-v7 .trip-about-hero{
  padding:150px 0 76px!important;
}
.about-page-v7 .about-detail-hero-grid,
.programs-page-v7 .about-detail-hero-grid{
  position:relative!important;
  display:grid!important;
  grid-template-columns:.88fr 1.32fr!important;
  gap:74px!important;
  align-items:center!important;
  width:min(1180px,calc(100% - 56px))!important;
  margin-inline:auto!important;
}
.about-page-v7 .about-detail-hero-copy,
.programs-page-v7 .about-detail-hero-copy{
  width:auto!important;
  max-width:none!important;
}
.about-page-v7 .about-detail-hero h1,
.programs-page-v7 .trip-about-hero h1{
  /* v7/v9 large English heading retained */
  font-size:clamp(50px,4.9vw,70px)!important;
  line-height:1!important;
  margin:0 0 22px!important;
  white-space:nowrap!important;
}
.about-page-v7 .about-detail-hero h2{
  margin:0 0 25px!important;
  font-size:clamp(21px,2.2vw,31px)!important;
  line-height:1.85!important;
}
.about-page-v7 .about-detail-hero p,
.programs-page-v7 .trip-about-hero p{
  max-width:470px!important;
  margin:0 0 16px!important;
  font-size:13px!important;
  line-height:2.15!important;
}
.about-page-v7 .about-detail-hero-photo,
.programs-page-v7 .trip-about-hero-photo{
  margin:0!important;
  width:100%!important;
  aspect-ratio:1.28/1!important;
  overflow:hidden!important;
  border-radius:46% 46% 0 0!important;
}
.about-page-v7 .about-detail-hero-photo img,
.programs-page-v7 .trip-about-hero-photo img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
.about-page-v7 .about-detail-hero-photo img{object-position:center 35%!important}
.programs-page-v7 .trip-about-hero-photo img{object-position:center 42%!important}

/* Instructor area: one large, white stone image per section. No tiling / cut-and-paste. */
.boutique-home .instructor-showcase{
  background-color:#f7f6f3!important;
  background-image:url('../images/boutique/top-instructor-stone-v10.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
}
.boutique-home .instructor-showcase::before{background:rgba(255,255,255,.05)!important}
.about-page-v7 .about-instructors{
  background-color:#f7f6f3!important;
  background-image:url('../images/boutique/about-instructor-stone-v10.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
}
.about-page-v7 .about-instructors::before{background:rgba(255,255,255,.04)!important}

/* ABOUT instructor cards: keep translucent backing, make portraits slightly larger. */
.about-page-v7 .about-instructor-card{
  grid-template-columns:minmax(440px,460px) 1fr!important;
  gap:58px!important;
  padding:46px 52px!important;
  background:rgba(255,255,255,.70)!important;
}
.about-page-v7 .about-instructor-card.is-reverse{grid-template-columns:1fr minmax(440px,460px)!important}
.about-page-v7 .about-instructor-card figure{
  width:100%!important;
  max-width:none!important;
  height:550px!important;
  margin:0!important;
  border-radius:48% 48% 0 0!important;
  overflow:hidden!important;
}
.about-page-v7 .about-instructor-card figure img{
  width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 20%!important;
}

/* TOP intro: special branded opening only on the first TOP visit in a browser session.
   Subsequent TOP loads use the same short loader as the subpages. */
.boutique-standard-loader{background:#faf8f4!important}

@media(max-width:780px){
  .about-page-v7 .about-detail-hero,
  .programs-page-v7 .trip-about-hero{padding:118px 0 54px!important}
  .about-page-v7 .about-detail-hero-grid,
  .programs-page-v7 .about-detail-hero-grid{
    width:min(100% - 36px,1180px)!important;
    grid-template-columns:1fr!important;
    gap:32px!important;
  }
  .about-page-v7 .about-detail-hero-copy{order:1!important}
  .about-page-v7 .about-detail-hero-photo{order:2!important}
  .programs-page-v7 .about-detail-hero-photo{order:1!important}
  .programs-page-v7 .about-detail-hero-copy{order:2!important}
  .about-page-v7 .about-detail-hero-photo,
  .programs-page-v7 .trip-about-hero-photo{
    aspect-ratio:1/1.05!important;
    border-radius:42% 42% 0 0!important;
  }
  .about-page-v7 .about-detail-hero h1,
  .programs-page-v7 .trip-about-hero h1{
    font-size:clamp(38px,11vw,48px)!important;
    line-height:1!important;
  }
  .about-page-v7 .about-detail-hero h2{font-size:19px!important;line-height:1.9!important}
  .about-page-v7 .about-detail-hero p,
  .programs-page-v7 .trip-about-hero p{font-size:13px!important;line-height:2!important}
  .about-page-v7 .about-instructor-card,
  .about-page-v7 .about-instructor-card.is-reverse{
    grid-template-columns:1fr!important;
    gap:28px!important;
    padding:30px 22px!important;
  }
  .about-page-v7 .about-instructor-card.is-reverse figure,
  .about-page-v7 .about-instructor-card.is-reverse .about-instructor-content{order:initial!important}
  .about-page-v7 .about-instructor-card figure{
    width:min(90%,300px)!important;
    height:385px!important;
    margin-inline:auto!important;
  }
}
@media(max-width:420px){
  .about-page-v7 .about-detail-hero-grid,
  .programs-page-v7 .about-detail-hero-grid{width:calc(100% - 32px)!important}
  .about-page-v7 .about-detail-hero h1{font-size:clamp(35px,10vw,43px)!important}
  .programs-page-v7 .trip-about-hero h1{font-size:clamp(38px,11vw,46px)!important}
  .about-page-v7 .about-instructor-card figure{width:min(92%,285px)!important;height:365px!important}
}


/* ===== SOURCE: boutique-v11.css ===== */
/* Birtue Boutique v11 — instructor background + ABOUT portrait sizing */

/* Use the approved white/gray marble, softened slightly, as one non-tiled image. */
.boutique-home .instructor-showcase{
  background-color:#faf9f7!important;
  background-image:url('../images/boutique/top-instructor-marble-v11.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
  background-blend-mode:normal!important;
}
.boutique-home .instructor-showcase::before{
  background:rgba(255,255,255,.08)!important;
}
.about-page-v7 .about-instructors{
  background-color:#faf9f7!important;
  background-image:url('../images/boutique/about-instructor-marble-v11.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-size:cover!important;
  background-blend-mode:normal!important;
}
.about-page-v7 .about-instructors::before{
  background:rgba(255,255,255,.08)!important;
}

/* ABOUT portraits must be exactly the same display size as TOP portraits. */
.about-page-v7 .about-instructor-card{
  grid-template-columns:210px 1fr!important;
  gap:46px!important;
}
.about-page-v7 .about-instructor-card.is-reverse{
  grid-template-columns:1fr 210px!important;
}
.about-page-v7 .about-instructor-card figure{
  width:210px!important;
  max-width:210px!important;
  height:270px!important;
  margin:0!important;
  border-radius:105px 105px 0 0!important;
}
.about-page-v7 .about-instructor-card figure img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center 20%!important;
}

@media(max-width:780px){
  .about-page-v7 .about-instructor-card,
  .about-page-v7 .about-instructor-card.is-reverse{
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  .about-page-v7 .about-instructor-card.is-reverse figure,
  .about-page-v7 .about-instructor-card.is-reverse .about-instructor-content{
    order:initial!important;
  }
  .about-page-v7 .about-instructor-card figure{
    width:158px!important;
    max-width:158px!important;
    height:205px!important;
    margin-inline:auto!important;
    border-radius:79px 79px 0 0!important;
  }
}


/* ===== SOURCE: event-card-shared.css ===== */
/* Birtue shared EVENT card component — v14
   Single source of truth for TOP / EVENT list / OTHER EVENTS.
   Do not duplicate card appearance rules in page-specific stylesheets. */
body .event-card.event-card-design2{
  display:block!important;
  height:100%!important;
  min-width:0;
  color:inherit;
}
body .event-card.event-card-design2 .event-card-shell{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  padding:10px!important;
  border:1px solid rgba(76,55,57,.20)!important;
  border-radius:0!important;
  background:rgba(255,253,250,.82)!important;
  overflow:hidden!important;
  box-shadow:none!important;
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease!important;
}
body .event-card.event-card-design2:hover .event-card-shell{
  border-color:rgba(86,34,47,.48)!important;
  transform:translateY(-2px)!important;
  box-shadow:0 16px 30px rgba(76,55,57,.055)!important;
}
body .event-card.event-card-design2 .event-image{
  position:relative!important;
  aspect-ratio:16/10!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#eee9e2!important;
}
body .event-card.event-card-design2 .event-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  transition:transform .5s ease!important;
}
body .event-card.event-card-design2:hover .event-image img{transform:scale(1.02)!important}
body .event-card.event-card-design2 .event-tag{
  position:absolute!important;
  top:10px!important;
  left:10px!important;
  z-index:2!important;
  margin:0!important;
  padding:6px 11px 5px!important;
  border:1px solid rgba(76,55,57,.12)!important;
  border-radius:0!important;
  background:rgba(250,247,243,.92)!important;
  color:#6d5559!important;
  font:400 11px/1 'Cormorant Garamond',serif!important;
  letter-spacing:.14em!important;
}
body .event-card.event-card-design2 .event-status{
  position:absolute!important;
  top:0!important;
  right:10px!important;
  z-index:2!important;
  min-width:74px!important;
  padding:11px 10px 18px!important;
  clip-path:polygon(0 0,100% 0,100% 76%,50% 100%,0 76%)!important;
  background:#56222f!important;
  color:#fff!important;
  text-align:center!important;
  font-family:'Noto Serif JP',serif!important;
  font-size:12px!important;
  line-height:1!important;
  letter-spacing:.05em!important;
}
body .event-card.event-card-design2 .event-status.is-closed{background:#8d8584!important}
body .event-card.event-card-design2 .event-card-content{
  display:flex!important;
  flex-direction:column!important;
  flex:1!important;
  padding:16px 6px 5px!important;
}
body .event-card.event-card-design2 .event-title{
  margin:0!important;
  min-height:0!important;
  font-family:'Noto Serif JP',serif!important;
  font-size:17px!important;
  font-weight:400!important;
  line-height:1.65!important;
  letter-spacing:.025em!important;
  color:#4f3b3e!important;
}
body .event-card.event-card-design2 .event-title-rule{
  height:1px!important;
  margin:11px 0 15px!important;
  background:rgba(76,55,57,.16)!important;
}
body .event-card.event-card-design2 .event-facts{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:11px 12px!important;
  padding-bottom:14px!important;
  border-bottom:1px dotted rgba(76,55,57,.22)!important;
}
body .event-card.event-card-design2 .event-fact{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  color:#5b4b4d!important;
  font-family:'Noto Sans JP',sans-serif!important;
  font-size:15px!important;
  font-weight:500!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}
body .event-card.event-card-design2 .event-fact-place{grid-column:1/-1!important}
body .event-card.event-card-design2 .event-fact-icon{
  width:18px!important;
  height:18px!important;
  flex:none!important;
  fill:none!important;
  stroke:#9c767c!important;
  stroke-width:1.4!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body .event-card.event-card-design2 .event-date-main{
  font-family:'Noto Sans JP',sans-serif!important;
  font-size:24px!important;
  font-weight:500!important;
  line-height:1!important;
  letter-spacing:.04em!important;
}
body .event-card.event-card-design2 .event-fact small{
  font-family:'Noto Sans JP',sans-serif!important;
  font-size:11px!important;
  font-weight:500!important;
  letter-spacing:.12em!important;
}
body .event-card.event-card-design2 .event-fact-time span{font-weight:500!important}
body .event-card.event-card-design2 .event-card-bottom{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:9px!important;
  margin-top:auto!important;
  padding-top:14px!important;
}
body .event-card.event-card-design2 .event-instructor{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  color:#5e4e50!important;
}
body .event-card.event-card-design2 .event-instructor img{
  width:42px!important;
  height:42px!important;
  border:0!important;
  border-radius:50%!important;
  object-fit:cover!important;
  object-position:center 22%!important;
  flex:none!important;
  box-shadow:none!important;
}
body .event-card.event-card-design2 .event-instructor>span{display:flex!important;flex-direction:column!important}
body .event-card.event-card-design2 .event-instructor small{
  font-family:'Noto Sans JP',sans-serif!important;
  font-size:8px!important;
  line-height:1.3!important;
  color:#887477!important;
}
body .event-card.event-card-design2 .event-instructor strong{
  font-family:'Cormorant Garamond',serif!important;
  font-size:19px!important;
  line-height:1.05!important;
  font-weight:400!important;
}
body .event-card.event-card-design2 .event-detail-link{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  min-width:118px!important;
  min-height:43px!important;
  padding:7px 9px!important;
  border:1px solid rgba(86,34,47,.38)!important;
  border-radius:0!important;
  color:#69484e!important;
  background:transparent!important;
  font-family:'Noto Serif JP',serif!important;
  font-size:11px!important;
  white-space:nowrap!important;
  transition:background .25s ease,color .25s ease,border-color .25s ease!important;
}
body .event-card.event-card-design2 .event-detail-link>span{color:inherit!important}
body .event-card.event-card-design2 .event-detail-rule{
  order:2!important;
  display:inline-block!important;
  width:24px!important;
  height:1px!important;
  background:#b79a69!important;
  position:relative!important;
  flex:none!important;
}
body .event-card.event-card-design2 .event-detail-rule::after{
  content:""!important;
  position:absolute!important;
  right:-2px!important;
  top:-3px!important;
  width:5px!important;
  height:5px!important;
  border:1px solid #b79a69!important;
  transform:rotate(45deg)!important;
  background:#fbf8f4!important;
}
body .event-card.event-card-design2 .event-detail-link b,
body .event-card.event-card-design2 .event-leaf-icon{display:none!important}
body .event-card.event-card-design2:hover .event-detail-link,
body .event-card.event-card-design2 .event-detail-link:hover{
  background:#56222f!important;
  border-color:#56222f!important;
  color:#fff!important;
}
body .event-card.event-card-design2:hover .event-detail-link>span,
body .event-card.event-card-design2 .event-detail-link:hover>span{color:#fff!important}
body .event-card.event-card-design2:hover .event-detail-rule,
body .event-card.event-card-design2 .event-detail-link:hover .event-detail-rule{background:#dfc99f!important}
body .event-card.event-card-design2:hover .event-detail-rule::after,
body .event-card.event-card-design2 .event-detail-link:hover .event-detail-rule::after{
  border-color:#dfc99f!important;
  background:#56222f!important;
}

@media(max-width:780px){
  body .event-card.event-card-design2 .event-fact{font-size:14px!important}
  body .event-card.event-card-design2 .event-date-main{font-size:23px!important}
  body .event-card.event-card-design2 .event-detail-link{min-width:108px!important;padding-inline:8px!important;font-size:11px!important}
}
@media(max-width:420px){
  body .event-card.event-card-design2 .event-fact{font-size:13px!important}
  body .event-card.event-card-design2 .event-date-main{font-size:22px!important}
}


/* v14 responsive layout safeguards — prevent flex cards from shrinking into narrow columns. */
@media(max-width:780px){
  .boutique-home .event-v1-grid{
    display:flex!important;
    gap:14px!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    padding:0 20px 12px!important;
    margin:0 -20px!important;
    -webkit-overflow-scrolling:touch;
  }
  .boutique-home .event-v1-grid > .event-card.event-card-design2{
    flex:0 0 86%!important;
    width:86%!important;
    min-width:86%!important;
    max-width:86%!important;
    scroll-snap-align:start!important;
  }
  .events-page-v7 .event-grid{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .events-page-v7 .event-grid > .event-card.event-card-design2{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}
@media(max-width:420px){
  .boutique-home .event-v1-grid > .event-card.event-card-design2{
    flex-basis:86%!important;
    width:86%!important;
    min-width:86%!important;
    max-width:86%!important;
  }
}


/* ===== SOURCE: boutique-v12.css ===== */
/* Birtue Boutique v12 — menu viewport fix + logo hover guard */

/* The FV logo may be large at the top and compact after scroll, but hovering it must never change its size. */
.bh-logo,
.bh-logo:hover,
.bh-logo:focus,
.bh-logo:active,
.bh-logo img,
.bh-logo:hover img,
.bh-logo:focus img,
.bh-logo:active img{
  scale:1!important;
}
.bh-header:not(.sticky) .bh-logo,
.bh-header:not(.sticky) .bh-logo:hover,
.bh-header:not(.sticky) .bh-logo:focus{
  transform:none!important;
}
.bh-header.sticky .bh-logo,
.bh-header.sticky .bh-logo:hover,
.bh-header.sticky .bh-logo:focus{
  transform:none!important;
}

/* Mobile navigation is mounted directly under <body> by boutique.js,
   so it is always fixed to the viewport even when opened far down a page. */
@media(max-width:780px){
  body.menu-open{overflow:hidden!important}
  .bh-nav{
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:auto!important;
    left:auto!important;
    width:min(68vw,300px)!important;
    height:100dvh!important;
    min-height:100svh!important;
    margin:0!important;
    padding:92px 30px 34px!important;
    z-index:9998!important;
    background:#54434e!important;
    background-image:none!important;
    color:#fff!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    transform:translate3d(105%,0,0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:none!important;
    box-shadow:-18px 0 44px rgba(38,26,28,.18)!important;
    transition:transform .34s cubic-bezier(.22,.8,.22,1)!important;
  }
  body.menu-open .bh-nav{
    transform:translate3d(0,0,0)!important;
    pointer-events:auto!important;
  }
  .bh-menu{z-index:9999!important}
  body.menu-open .bh-menu span{background:#fff!important}
}
@media(max-width:420px){
  .bh-nav{width:67vw!important;padding-left:28px!important;padding-right:28px!important}
}


/* ===== SOURCE: boutique-v13.css ===== */
/* Birtue Boutique v13 — stabilize TOP header logo on return navigation */

/*
 * v5 had desktop rules that expanded the non-sticky TOP logo to 440–520px wide
 * and 340px tall. When the user returned to TOP at scrollY=0, sticky was removed
 * and that oversized state became visible. Keep the FV logo large enough to read,
 * but fixed to the intended header size; hover/focus/navigation must not resize it.
 */
.boutique-home .bh-header:not(.sticky){
  grid-template-columns:260px 1fr 46px!important;
}
.boutique-home .bh-header:not(.sticky) .bh-logo,
.boutique-home .bh-header:not(.sticky) .bh-logo:hover,
.boutique-home .bh-header:not(.sticky) .bh-logo:focus,
.boutique-home .bh-header:not(.sticky) .bh-logo:active{
  width:252px!important;
  height:172px!important;
  transform:none!important;
}
.boutique-home .bh-logo img,
.boutique-home .bh-logo:hover img,
.boutique-home .bh-logo:focus img,
.boutique-home .bh-logo:active img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:left top!important;
  transform:none!important;
}

/* Hide the special first-visit opening before first paint on return visits. */
html.birtue-intro-seen .opening{display:none!important}
html.birtue-intro-seen body.is-intro{overflow:auto!important}

@media(max-width:1180px) and (min-width:781px){
  .boutique-home .bh-header:not(.sticky){grid-template-columns:220px 1fr 42px!important}
  .boutique-home .bh-header:not(.sticky) .bh-logo{width:205px!important;height:142px!important}
}
@media(max-width:780px){
  .boutique-home .bh-header:not(.sticky) .bh-logo{width:150px!important;height:100px!important}
}
@media(max-width:420px){
  .boutique-home .bh-header:not(.sticky) .bh-logo{width:150px!important;height:100px!important}
}


/* ===== SOURCE: boutique-v14.css ===== */
/* Birtue Boutique v14 — return-loader containment + mobile drawer close control */

/* TOP return visits use the normal short loader. It must always be a viewport overlay,
   never a document-flow image. The inline display:none in index.html is the safe default. */
.boutique-home .boutique-standard-loader{
  position:fixed!important;
  inset:0!important;
  z-index:9997!important;
  display:none!important;
  place-items:center!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  padding:0!important;
  background:#faf8f4!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transition:opacity .45s ease,visibility .45s ease!important;
  overflow:hidden!important;
}
.boutique-home .boutique-standard-loader.is-active{display:grid!important}
.boutique-home .boutique-standard-loader.is-hidden{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.boutique-home .boutique-standard-loader .site-loader-inner{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:20px!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
}
.boutique-home .boutique-standard-loader img{
  display:block!important;
  width:180px!important;
  height:150px!important;
  max-width:42vw!important;
  max-height:24vh!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
}
.boutique-home .boutique-standard-loader .site-loader-line{
  display:block!important;
  width:92px!important;
  height:1px!important;
  background:#b79a69!important;
}

/* Dedicated close button lives inside the drawer, so it remains clickable even though
   the drawer is mounted directly under body while the header has its own stacking context. */
.bh-menu-close{display:none}
@media(max-width:780px){
  .bh-nav .bh-menu-close{
    display:block!important;
    position:absolute!important;
    top:max(18px,env(safe-area-inset-top))!important;
    right:18px!important;
    width:40px!important;
    height:40px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#fff!important;
    z-index:10000!important;
    cursor:pointer!important;
  }
  .bh-nav .bh-menu-close span{
    position:absolute!important;
    top:19px!important;
    left:8px!important;
    width:24px!important;
    height:1px!important;
    background:currentColor!important;
    transform-origin:center!important;
  }
  .bh-nav .bh-menu-close span:first-child{transform:rotate(45deg)!important}
  .bh-nav .bh-menu-close span:last-child{transform:rotate(-45deg)!important}
}

@media(max-width:420px){
  .boutique-home .boutique-standard-loader img{width:150px!important;height:128px!important}
}
/* v24: requested hero line-break control only */
.bh-hero__content .hero-jp .hero-jp-line{display:block;white-space:nowrap}
@media(max-width:780px){.bh-hero__content .hero-jp{font-size:clamp(18px,5.5vw,29px)}}
