/* Scoped additions for the existing CHARME theme. */
body.charme-enhanced .hero { height:auto; min-height:max(740px,100svh); padding:124px 24px 112px; isolation:isolate; }
body.charme-enhanced .hero::before { inset:-3%; transform:translate3d(var(--charme-x,0px),var(--charme-y,0px),0) scale(1.035); transition:transform 1.3s cubic-bezier(.2,.6,.3,1); animation:charme-arrival 4s ease-out both; filter:brightness(.72) contrast(1.05) saturate(.8); }
body.charme-enhanced .hero::after { background:linear-gradient(180deg,rgba(9,8,7,.58),rgba(9,8,7,.35) 45%,rgba(9,8,7,.78)); pointer-events:none; }
body.charme-enhanced .hero-content { width:100%; max-width:800px; padding:0; }
body.charme-enhanced .hero-eyebrow { font-size:.8125rem; margin-bottom:22px; }
body.charme-enhanced .hero-logo { width:clamp(190px,23vw,280px); max-width:100%; margin:0 auto; }
.charme-logo-light { position:relative; width:fit-content; max-width:100%; margin:0 auto 24px; }
.charme-logo-light::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 35%,rgba(255,243,206,.85) 49%,transparent 63%); background-size:300% 100%; background-position:140% 0; mask-image:var(--charme-logo); mask-size:100% 100%; mask-repeat:no-repeat; -webkit-mask-image:var(--charme-logo); -webkit-mask-size:100% 100%; -webkit-mask-repeat:no-repeat; animation:charme-shine 3.6s .6s ease-in-out both; }
body.charme-enhanced .hero-divider { height:28px; margin:0 auto 22px; }
body.charme-enhanced .hero-tagline { font-size:clamp(1.1rem,1.8vw,1.35rem); line-height:2.2; color:#f4eee5; }
body.charme-enhanced .hero-tagline-en { margin-top:16px; font-size:.875rem; color:#d6cabe; }
.charme-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:30px; }
.charme-action { display:inline-flex; align-items:center; justify-content:center; min-height:52px; min-width:178px; padding:14px 24px; border:1px solid #d6b880; color:#17130e; background:#d6b880; text-decoration:none; font:500 .9375rem/1.5 var(--serif-jp,serif); letter-spacing:.12em; transition:background .2s,color .2s; }
.charme-action--outline { color:#fff4e1; background:rgba(15,13,10,.45); }
.charme-action:hover { background:#e9cfa0; color:#17130e; }
.charme-action--outline:hover { background:rgba(214,184,128,.16); color:#fff; }
.charme-enhanced a:focus-visible,.charme-enhanced button:focus-visible { outline:2px solid #f7dca7; outline-offset:5px; }
.charme-motion-toggle { position:absolute; z-index:6; bottom:30px; right:40px; padding:10px 14px; min-height:44px; border:1px solid rgba(214,184,128,.5); background:rgba(10,9,8,.6); color:#e6d8bf; font:400 .8125rem/1.5 var(--serif-jp,serif); cursor:pointer; }
body.charme-enhanced .scroll-indicator { bottom:22px; }
body.charme-enhanced .scroll-indicator-text { font-size:.75rem; }
body.charme-enhanced section[id] { scroll-margin-top:110px; }
.charme-mobile-actions { display:none; }
.charme-enhanced.charme-motion-off .hero::before { animation:none; transform:none; transition:none; }
.charme-enhanced.charme-motion-off .charme-logo-light::after { animation:none; opacity:0; }
.charme-enhanced.charme-motion-off .scroll-indicator-line::after { animation:none; }
@keyframes charme-arrival { from { transform:scale(1.075); } to { transform:scale(1.035); } }
@keyframes charme-shine { from { background-position:140% 0; opacity:0; } 20% { opacity:.85; } 80% { opacity:.85; } to { background-position:-40% 0; opacity:0; } }
@media(max-width:768px) {
 body.charme-enhanced { padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
 body.charme-enhanced .hero { min-height:max(730px,100svh); padding:116px 24px 118px; }
 body.charme-enhanced .hero::before { transition:none; }
 body.charme-enhanced .hero-vertical { display:none; }
 body.charme-enhanced .hero-logo { width:210px; }
 body.charme-enhanced .hero-tagline-en { letter-spacing:.07em; }
 .charme-actions { gap:10px; margin-top:26px; }
 .charme-action { min-width:0; flex:1 1 140px; max-width:220px; padding:14px 12px; font-size:.875rem; letter-spacing:.07em; }
 .charme-motion-toggle { right:24px; bottom:26px; font-size:.75rem; }
 body.charme-enhanced .scroll-indicator { left:38px; transform:none; bottom:22px; }
 .charme-mobile-actions { position:fixed; display:grid; grid-template-columns:1.15fr 1fr 1fr; z-index:900; left:0; right:0; bottom:0; padding-bottom:env(safe-area-inset-bottom); border-top:1px solid #816947; background:#12100d; }
 .charme-mobile-actions a { min-height:64px; display:flex; align-items:center; justify-content:center; font-size:.875rem; color:#eee1c9; text-decoration:none; border-right:1px solid #443b2c; }
 .charme-mobile-actions a:first-child { background:#d6b880; color:#17130e; font-weight:600; }
 body.menu-open .charme-mobile-actions { visibility:hidden; }
}
@media(prefers-reduced-motion:reduce) {
 .charme-motion-toggle { display:none; }
 body.charme-enhanced .hero::before { animation:none; transition:none; transform:none; }
 .charme-logo-light::after { animation:none; opacity:0; }
 body.charme-enhanced .scroll-indicator-line::after { animation:none; }
 body.charme-enhanced .fade-in { opacity:1; transform:none; transition:none; }
 html { scroll-behavior:auto!important; }
}
