/* Store-aligned public brand tokens; retained official artwork is not redrawn. */
:root { --brand-green:#0c3d27; --brand-soft:#e8f3ec; --brand-gold:#d8ad4f; }
:lang(ja) body { font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif; }
:lang(zh-CN) body { font-family:"Noto Sans SC","PingFang SC",sans-serif; }
:lang(zh-TW) body { font-family:"Noto Sans TC","PingFang TC",sans-serif; }
:lang(ko) body { font-family:"Noto Sans KR","Apple SD Gothic Neo",sans-serif; }
.brand-subtitle { display:block; color:var(--brand-green); font-size:12px; font-weight:700; line-height:1.4; text-align:center; margin:2px 0 8px; }
.site-header .site-brand { display:flex; flex-direction:column; }
.hero .hero-title { font-family:Inter,Arial,sans-serif; font-size:clamp(32px,4vw,54px); line-height:1.08; font-weight:900; letter-spacing:.015em; }
.hero .brand-exchange { font-size:clamp(22px,2.5vw,30px); font-weight:600; margin:14px 0; }
.brand-contact { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin:20px auto; }
.brand-contact a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 18px; border-radius:10px; color:var(--brand-green); background:var(--brand-soft); font-size:14px; font-weight:700; text-decoration:none; }
.brand-contact a:hover { color:#fff; background:var(--brand-green); }
.brand-contact a:focus-visible { outline:3px solid var(--brand-gold); outline-offset:3px; }
.brand-qr-links { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; margin:20px auto; }
.brand-qr-links a { display:grid; justify-items:center; gap:8px; color:var(--brand-green); font-size:13px; text-decoration:none; }
.brand-qr-links img { display:block; width:112px; height:112px; }
.brand-footer-label { color:var(--brand-green); text-align:center; font-weight:600; }
.service-reference-exchange { background-position:19.375% 7.25%; }
.additional-services { display:flex; justify-content:center; align-items:center; gap:16px; flex-wrap:wrap; margin:22px auto 0; }
.additional-services p { margin:0; color:var(--muted); }
.additional-services button { min-height:44px; border:1px solid var(--brand-green); background:#fff; color:var(--brand-green); border-radius:10px; padding:10px 18px; font:inherit; cursor:pointer; }
.additional-services button:hover { background:var(--brand-soft); }
@media(max-width:767px){.brand-subtitle{font-size:11px;margin:0 0 4px}.brand-contact{gap:8px}.brand-contact a{font-size:13px;padding:10px 12px}.hero .hero-title{font-size:clamp(30px,8vw,40px)}.brand-qr-links{gap:14px}}
/* Compact public footer and address controls, shared with the booking page. */
.footer{padding:36px max(20px,5vw) 20px;background:#f6f8f5;border-top:1px solid #dce5df;color:var(--brand-green)}
.footer .footer-main{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:start;gap:28px;max-width:1180px;width:100%;margin:auto}
.footer .footer-brand,.footer .footer-address,.footer .footer-contact{grid-column:auto;grid-row:auto;display:flex;flex-direction:column;align-items:flex-start;justify-self:stretch;gap:12px;margin:0;text-align:left;min-width:0}
.footer .footer-brand img{width:220px;max-width:100%;height:auto;object-fit:contain}.footer .footer-brand strong{font-size:19px;letter-spacing:.04em}.footer h3{font-size:17px;margin:0}.footer p{margin:0}.footer address{font-size:15px;font-style:normal;line-height:1.7}.footer .footer-qr-grid{display:flex;gap:16px;grid-column:auto;grid-row:auto}.footer .footer-qr-grid figure{margin:0;padding:0;border:0;background:none;box-shadow:none;text-align:center}.footer .footer-qr-grid img{width:112px;height:112px;max-width:100%;object-fit:contain;border-radius:6px;background:#fff}.footer figcaption{font-size:12px;line-height:1.4;margin-top:8px}.footer .footer-copyright{grid-column:1/-1;display:block;border-top:1px solid #dce5df;padding-top:18px;text-align:center;font-size:12px;color:#52665b}
.address-row{display:flex;gap:16px;align-items:center;justify-content:space-between}.address-row p{margin:16px 0;line-height:1.6}.copy-address{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-height:44px;border:0;border-radius:9px;padding:10px 14px;background:var(--brand-green);color:#fff;font:inherit;font-size:14px;cursor:pointer}.copy-address:hover{background:#20583b}.copy-address svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.copy-address:focus-visible,.experience-toggle:focus-visible{outline:3px solid var(--brand-gold);outline-offset:3px}
@media(max-width:767px){.footer .footer-main{grid-template-columns:1fr;gap:26px}.footer .footer-brand,.footer .footer-address,.footer .footer-contact{width:100%;align-items:flex-start}.address-row{align-items:flex-start;flex-direction:column;gap:0;margin-bottom:16px}.footer .footer-brand img{width:200px}.footer .footer-qr-grid img{width:112px;height:112px}}
.footer .footer-brand{order:1}.footer .footer-address{order:2}.footer .footer-contact{order:3}.footer .footer-copyright{order:4}
/* Mobile footer: full available width, centered modules, paired contact codes. */
.footer .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr)}
@media(max-width:767px){
 .footer{box-sizing:border-box;width:100%;padding:30px 20px 20px}
 .footer .footer-main{box-sizing:border-box;grid-template-columns:minmax(0,1fr);width:100%;max-width:480px;margin-inline:auto;gap:24px;justify-items:center}
 .footer .footer-brand,.footer .footer-address,.footer .footer-contact{box-sizing:border-box;grid-column:1;width:100%;max-width:none;align-items:center;justify-self:stretch;text-align:center;gap:12px}
 .footer .footer-brand img{display:block;width:min(220px,100%);height:auto;margin-inline:auto}
 .footer .footer-brand strong{display:none}
 .footer .footer-brand p{font-size:15px;line-height:1.5}
 .footer .footer-address address{width:100%;max-width:360px;overflow-wrap:break-word;text-align:center}
 .footer .footer-qr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,280px);gap:20px;margin:0 auto;justify-items:center}
 .footer .footer-qr-grid figure{width:100%;min-width:0;display:flex;flex-direction:column;align-items:center}
 .footer .footer-qr-grid a{display:block;width:120px;max-width:100%;aspect-ratio:1}
 .footer .footer-qr-grid img{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:contain;border-radius:0}
 .footer .footer-copyright{box-sizing:border-box;width:100%;max-width:none;line-height:1.6;text-align:center}
}
.footer .footer-main{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,560px);max-width:900px;gap:20px 40px;justify-content:center}.footer .footer-address{justify-content:center;width:100%}.footer .footer-brand{align-items:center;text-align:center}.bilingual-address{width:100%;display:grid;gap:10px}.address-line{display:flex;gap:10px;align-items:center;width:100%;min-width:0}.address-line address{flex:1;min-width:0;font-style:normal;font-size:14px;line-height:1.6;text-align:left;overflow-wrap:anywhere}.icon-copy{position:relative;width:36px;min-height:36px;padding:8px;border-radius:8px;flex:0 0 36px}.icon-copy .copy-feedback{position:absolute;right:0;bottom:calc(100% + 5px);white-space:nowrap;padding:5px 8px;border-radius:5px;background:var(--brand-green);color:#fff;font-size:12px;z-index:2}.icon-copy .copy-feedback[data-brand="copy"]{display:none}.footer .footer-copyright{margin:0}.map-card .bilingual-address{margin:16px 0}
@media(max-width:767px){.footer{padding:24px 20px 16px}.footer .footer-main{grid-template-columns:minmax(0,1fr);max-width:480px;gap:18px}.footer .footer-address address{max-width:none;text-align:left}.footer .footer-brand img{width:190px}.address-line{gap:8px}.address-line address{font-size:13px}.footer .footer-copyright{padding-top:14px}}
/* Grid children must shrink within narrow phones (including 320px). */
.hero-copy,.hero-rate-card{min-width:0;max-width:100%}.hero .hero-title{overflow-wrap:normal;white-space:normal}
@media(max-width:359px){.hero .hero-title{font-size:27px;letter-spacing:0}}

/* Approved logo-only header; preserve existing navigation and business behavior. */
body[data-brand-page="home"] .site-header{min-height:0;padding:10px 24px;align-items:center;gap:22px}
body[data-brand-page="home"] .site-header .site-brand{width:260px;height:auto;flex:0 0 260px;line-height:1;gap:0;align-items:center;justify-content:center;overflow:hidden}
body[data-brand-page="home"] .site-header .site-logo{width:260px;height:auto;max-height:none;flex-shrink:0;margin-block:-20px;object-position:center}
@media(max-width:1240px){body[data-brand-page="home"] .site-header{padding:10px 16px;gap:14px}body[data-brand-page="home"] .site-header .site-brand{width:220px;flex-basis:220px}body[data-brand-page="home"] .site-header .site-logo{width:220px;margin-block:-16px}}
@media(max-width:600px){body[data-brand-page="home"] .site-header{padding:10px 12px;gap:8px}body[data-brand-page="home"] .site-header .site-brand{width:clamp(140px,43vw,220px);flex-basis:clamp(140px,43vw,220px)}body[data-brand-page="home"] .site-header .site-logo{width:100%;margin-block:-11px}}

/* Access and homepage Footer only; never target Header or other pages. */
#access .access-addresses{box-sizing:border-box;width:100%;margin:16px 0 20px;padding:0 28px;display:grid;gap:14px;text-align:left}
#access .access-addresses .address-line,#site-footer.footer-compact .address-line{display:block;width:100%;padding:0;border:0}
#access .access-addresses address,#site-footer.footer-compact address{display:block;margin:0;width:auto;max-width:none;font-style:normal;font-size:14px;line-height:1.8;text-align:left;overflow-wrap:anywhere}
#access .address-copy-tail,#site-footer.footer-compact .address-copy-tail{white-space:nowrap}
#access .access-addresses .icon-copy,#site-footer.footer-compact .icon-copy{display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;box-sizing:border-box;width:32px;height:32px;min-height:32px;margin:0 0 0 10px;padding:7px;border-radius:6px}
#access .access-addresses .icon-copy svg,#site-footer.footer-compact .icon-copy svg{width:18px;height:18px;flex:none}
#access .access-addresses .copy-feedback,#site-footer.footer-compact .copy-feedback{right:0;max-width:220px}
#site-footer.footer-compact{padding:24px 24px 16px}
#site-footer.footer-compact .footer-main{max-width:900px;grid-template-columns:220px minmax(0,1fr);gap:16px 28px;align-items:center}
#site-footer.footer-compact .footer-brand{align-items:center;gap:0}
#site-footer.footer-compact .footer-brand img{width:220px;max-width:100%;height:auto}
#site-footer.footer-compact .bilingual-address{gap:14px}
#site-footer.footer-compact .footer-copyright{padding-top:14px}
@media(max-width:767px){
 #access .access-addresses{padding-inline:24px}
 #site-footer.footer-compact .footer-main{grid-template-columns:minmax(0,1fr);max-width:480px;gap:16px}
 #site-footer.footer-compact .footer-brand img{width:190px}
 #site-footer.footer-compact .footer-address{width:100%;min-width:0}
}

/* Shared copy controls: text-flow placement and touch-size targets on every page. */
.address-line{display:block!important}
.address-line address{display:block;margin:0;font-style:normal;overflow-wrap:anywhere}
.address-copy-tail{white-space:nowrap}
.copy-address.icon-copy,#access .access-addresses .icon-copy,#site-footer.footer-compact .icon-copy{display:inline-flex;position:relative;vertical-align:middle;box-sizing:border-box;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;margin:0 0 0 8px;padding:13px;border:0;border-radius:6px;background:transparent;color:#254b39;box-shadow:none;cursor:pointer}
.copy-address.icon-copy:hover{background:#edf3ef}
.copy-address.icon-copy:focus-visible{outline:2px solid #254b39;outline-offset:2px}
.copy-address.icon-copy svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
.copy-address .copy-check{display:none}
.copy-address[data-copy-state="success"] .copy-check{display:block}
.copy-address[data-copy-state="success"] .copy-symbol{display:none}
.copy-address.icon-copy .copy-feedback{right:0;max-width:min(220px,75vw);white-space:normal;text-align:center;line-height:1.4;pointer-events:none}
.copy-manual{margin:8px 0;white-space:normal;max-width:100%;color:#303a34}
.copy-manual p{font-size:14px;line-height:1.5;margin:4px 0}
.copy-manual textarea{box-sizing:border-box;width:100%;max-width:100%;font:inherit;font-size:16px;padding:8px;border:1px solid #81958a;border-radius:4px;background:#fff;color:#303a34;resize:vertical;user-select:text}
.copy-address.icon-copy .copy-feedback{width:max-content;overflow-wrap:normal;word-break:normal}


/* Footer-only branding and original contact QRs; Header remains logo-only. */
#site-footer.footer-compact .footer-main{max-width:1050px;grid-template-columns:220px minmax(0,1fr) 256px;gap:20px 28px;align-items:center}
#site-footer.footer-compact .footer-brand{justify-items:center;gap:4px}
#site-footer.footer-compact .footer-center-name{margin:0;color:#303a34;font-size:17px;font-weight:600;line-height:1.35;text-align:center}
#site-footer.footer-compact .footer-contact{grid-column:3;grid-row:1;margin:0;justify-self:center;min-width:0}
#site-footer.footer-compact .footer-contact h2{margin:0 0 12px;color:#303a34;font-size:18px;font-weight:600;text-align:center}
#site-footer.footer-compact .footer-qr-grid{display:grid;grid-template-columns:repeat(2,120px);gap:16px;width:256px;max-width:100%;margin:0}
#site-footer.footer-compact .footer-qr-grid figure{margin:0;text-align:center;min-width:0}
#site-footer.footer-compact .footer-qr-grid a{display:block;width:120px;height:120px;background:#fff}
#site-footer.footer-compact .footer-qr-grid img{display:block;width:120px;height:120px;max-width:100%;background:#fff;object-fit:contain;border:0;border-radius:0}
#site-footer.footer-compact .footer-qr-grid figcaption{margin-top:6px;color:#303a34;font-size:14px}
#site-footer.footer-compact .footer-qr-grid a:focus-visible{outline:2px solid #254b39;outline-offset:4px}
@media(max-width:900px){
 #site-footer.footer-compact .footer-main{grid-template-columns:minmax(0,1fr);max-width:480px;gap:16px}
 #site-footer.footer-compact .footer-brand,#site-footer.footer-compact .footer-address,#site-footer.footer-compact .footer-contact,#site-footer.footer-compact .footer-copyright{grid-column:1;grid-row:auto}
 #site-footer.footer-compact .footer-brand{order:1}
 #site-footer.footer-compact .footer-address{order:2}
 #site-footer.footer-compact .footer-contact{order:3}
 #site-footer.footer-compact .footer-copyright{order:4;padding-top:4px}
}
