/* ACE2017 refined customer presentation, generation 24.
   Home and the wordmark retain the black/red identity. Inner pages use stone;
   care pages use sage. Load last. Business rules and state remain untouched. */
.ace-refined-v24 {
  --ace-paper: #faf9f6;
  --ace-surface: #fffefa;
  --ace-ink: #292925;
  --ace-muted: #625f58;
  --ace-line: #e5e1d8;
  --ace-red: #c91428;
  --ace-red-dark: #ab1022;
  --ace-red-soft: #fff0ef;
  --ace-action: #655447;
  --ace-action-hover: #514337;
  --ace-action-soft: #f2ede5;
  --ace-focus: #836b50;
  --ace-radius: 16px;
  --ace-shadow: 0 6px 22px rgba(61, 48, 34, .045);
  background: var(--ace-paper);
  color: var(--ace-ink);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  font-size: 16px;
  line-height: 1.75;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
}
.ace-refined-v24.ace-refined-home {
  --ace-action: var(--ace-red);
  --ace-action-hover: var(--ace-red-dark);
  --ace-action-soft: var(--ace-red-soft);
  --ace-focus: var(--ace-red);
}
.ace-refined-v24 :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--ace-focus);
  outline-offset: 4px;
}
.ace-refined-v24 :is(input, select, textarea) {
  border-color: #d9d4c9;
  border-radius: 12px;
  color: var(--ace-ink);
  background: #fffefa;
}
.ace-refined-v24 :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--ace-action); }
.ace-refined-v24 :is(.btn, .button, button[type="submit"]) { border-radius: 12px; font-weight: 650; }
.ace-refined-v24 :is(.btn.primary, .button.primary, .production-save) {
  background: var(--ace-action);
  border-color: var(--ace-action);
  color: #fff;
}
.ace-refined-v24 :is(.btn.dark, .button.dark) { background: #514941; color: #fff; border-color: #514941; }
.ace-refined-v24 :is(.btn.light, .btn.ghost, .button.ghost) { border-color: #d7d0c5; background: #fffefa; color: #574b3e; }
.ace-refined-v24 :is(.customer-panel, .form, .list, .production-row, .contact-card, .value-card, .pref-card, .frequent-card, .points-rule, .points-log) {
  border-color: var(--ace-line);
  border-radius: var(--ace-radius);
  box-shadow: var(--ace-shadow);
}
.ace-refined-v24 :is(.customer-eyebrow, .company-label, .ace-kicker) { font-size: 14px; line-height: 1.65; letter-spacing: .04em; font-weight: 650; color: var(--ace-action); }

/* A text wordmark with a deliberate baseline, breathing room and a red year. */
.ace-refined-v24 :is(.top, .topbar) {
  background: #fffefa;
  border-top: 0;
  border-bottom: 1px solid var(--ace-line);
  box-shadow: 0 2px 18px rgba(38, 33, 27, .025);
}
.ace-refined-v24 .headrow { gap: 18px; align-items: center; }
.ace-refined-v24 .ace-brand-lockup { display: inline-flex; flex-direction: column; flex: 0 0 auto; gap: 4px; text-decoration: none; padding: 3px 0 5px; min-width: 158px; color: #19191b; }
.ace-refined-v24 .ace-brand-wordmark { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; line-height: 1; }
.ace-refined-v24 .ace-brand-name { font-family: Georgia, "Times New Roman", serif; font-size: 37px; line-height: 1; font-weight: 700; letter-spacing: .045em; color: #19191b; }
.ace-refined-v24 .ace-brand-year { font-size: 18px; line-height: 1; font-weight: 750; letter-spacing: .11em; color: var(--ace-red); }
.ace-refined-v24 :is(.ace-brand-caption, .ace-brand-tagline) { color: #656159; font-size: 12px; line-height: 1.4; letter-spacing: .12em; font-weight: 500; }
.ace-refined-v24 .logo { border-radius: 12px; background: #19191b; font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: .015em; }
.ace-refined-v24 .brand { color: #19191b; font-weight: 750; letter-spacing: .04em; }
.ace-refined-v24 .ace-header-search { border-radius: 24px; background: #f6f4ee; border: 1px solid #e8e3d9; padding-inline: 14px 5px; }
.ace-refined-v24 .ace-header-search input { border: 0; background: transparent; font-size: 14px; }
.ace-refined-v24 .ace-header-search button { border-radius: 20px; color: #564d40; font-size: 14px; }
.ace-refined-v24 .quick-request { border: 1px solid #d8d0c3; border-radius: 13px; background: #f4efe6; color: #554737; font-size: 14px; }
.ace-refined-v24 .quick-request small { color: #716355; font-size: 12px; }
.ace-refined-v24.ace-refined-home .quick-request { border-color: #e6c4c5; background: #fff4f2; color: #b21b2b; }
.ace-refined-v24.ace-refined-home .quick-request small { color: #815052; }
.ace-refined-v24 .ace-desktop-nav { gap: clamp(18px, 2.2vw, 34px); }
.ace-refined-v24 .ace-desktop-nav a { color: #47463f; font-size: 15px; font-weight: 550; border-radius: 0; }
.ace-refined-v24 .ace-desktop-nav a[aria-current="page"] { color: #292925; border-bottom: 2px solid #9d8a71; }
.ace-refined-v24.ace-refined-home .ace-desktop-nav a[aria-current="page"] { color: var(--ace-red); border-bottom-color: var(--ace-red); }
.ace-refined-v24 #app .ace-language-picker select { min-height: 40px; border-radius: 11px; background: #fffefa; color: #47463f; font-size: 14px; }
.ace-refined-v24 .ace-mobile-section { font-size: 14px; font-weight: 550; line-height: 1.45; border-radius: 10px; }
.ace-refined-v24 .ace-mobile-section[aria-current="page"] { color: var(--ace-action); background: var(--ace-action-soft); box-shadow: inset 0 -2px var(--ace-action); }
.ace-refined-v24 .tabbar .tab.on { color: var(--ace-action); }
.ace-refined-v24 .ace-desktop-footer { border-top: 1px solid #ded8cc; gap: 26px; background: transparent; }
.ace-refined-v24 .ace-footer-brand { font-family: Georgia, "Times New Roman", serif; font-size: 29px; letter-spacing: .045em; }
.ace-refined-v24 .ace-desktop-footer a { line-height: 1.8; min-height: 32px; font-size: 14px; }
.ace-refined-v24 .ace-footer-note { color: #6a665e; }

.ace-refined-v24 #app .catalog-gate-brand .ace-brand-lockup { min-width: 0; align-items: center; }
.ace-refined-v24 #app .catalog-gate-brand :is(.ace-brand-caption, .ace-brand-tagline) { display: none; }

/* Home: soft edges frame a single dark editorial opening. */
.ace-refined-v24 #app #home .home-intro-layout { gap: 20px; }
.ace-refined-v24 #app #home .hero.v42.v43 { border-radius: 22px; background: linear-gradient(128deg, #202022, #292629); box-shadow: inset 3px 0 #d41b30, 0 10px 28px rgba(33, 27, 26, .07); padding: 25px 30px; }
.ace-refined-v24 #app #home .hero.v42.v43::after { opacity: .035; }
.ace-refined-v24 #app #home .hero.v42.v43 .eyebrow { color: #ede6db; font-size: 14px; line-height: 1.6; letter-spacing: .05em; opacity: 1; }
.ace-refined-v24 #app #home .hero.v42.v43 .hero-v42-title { font-size: clamp(28px, 3vw, 38px); line-height: 1.38; font-weight: 700; letter-spacing: .025em; }
.ace-refined-v24 #app #home .hero.v42.v43 .hero-v42-light { font-size: 15px; line-height: 1.8; color: #ede5dc; }
.ace-refined-v24 #app #home .hero.v42.v43 .hero-v42-slogan { gap: 8px 18px; }
.ace-refined-v24 #app #home .hero.v42.v43 .hero-v42-slogan > * { font-size: 14px; font-weight: 550; }
.ace-refined-v24 #app #home .hero.v42.v43 .actions .btn { border-radius: 12px; padding-inline: 19px; min-height: 46px; font-size: 15px; }
.ace-refined-v24 #app #home .hero.v42.v43 .actions .btn.primary { background: var(--ace-red); border-color: var(--ace-red); }
.ace-refined-v24 #app #home .hero.v42.v43 .actions .btn.light { border-color: #a99f94; background: transparent; color: #fff8ee; }
.ace-refined-v24 #app #home .home-service-panel { border-radius: 22px; padding: 21px 24px; border-color: var(--ace-line); background: #fffefa; box-shadow: var(--ace-shadow); }
.ace-refined-v24 #app #home .ai-shop-search-icon { border-radius: 11px; background: #efebe4; color: #3c3932; font-family: Georgia, "Times New Roman", serif; font-size: 15px; }
.ace-refined-v24 #app #home .ai-shop-search-main b { font-size: 19px; font-weight: 650; }
.ace-refined-v24 #app #home .ai-shop-search-main small { font-size: 14px; color: #6b665d; }
.ace-refined-v24 #app #home .ai-shop-search-row :is(input, button) { border-radius: 12px; }
.ace-refined-v24 #app #home .ai-shop-search-row button { background: #5d5043; }
.ace-refined-v24 #app #home .home-member-strip { border-radius: 12px; background: #f7f2e9; border-color: #e4dacb; padding: 11px 14px; }
.ace-refined-v24 #app #home .home-member-strip a { font-size: 14px; font-weight: 550; }
.ace-refined-v24 #app #home .home-member-strip a b { color: #755a3d; font-weight: 650; }
.ace-refined-v24 #app #home :is(.sec, .ace-section-heading) { align-items: end; gap: 16px; margin-bottom: 16px; }
.ace-refined-v24 #app #home :is(.sec h2, .ace-section-heading h2) { color: #272722; font-size: 25px; line-height: 1.45; font-weight: 650; letter-spacing: .015em; }
.ace-refined-v24 #app #home :is(.sec small, .ace-section-heading small) { display: block; color: #a91629; font-size: 16px; line-height: 1.55; font-weight: 700; letter-spacing: .05em; opacity: 1; }
.ace-refined-v24 #app #home :is(.sec > a, .sec > span, .ace-section-heading > span) { font-size: 14px; line-height: 1.7; color: #655d51; }
.ace-refined-v24 #app #home :is(.home-carousel-slide, .home-catalog-card) { border: 1px solid var(--ace-line); border-radius: 18px; background: #fffefa; box-shadow: var(--ace-shadow); overflow: hidden; }
.ace-refined-v24 #app #home .home-carousel-slide { padding: 13px; }
.ace-refined-v24 #app #home .home-core.v43 .home-good-visual { border-radius: 12px; background: #f3f0e9; }
.ace-refined-v24 #app #home .home-core.v43 .home-good-visual img { border-radius: 10px; }
.ace-refined-v24 #app #home .home-core.v43 .home-good-visual > span { color: #75634e; font-size: 16px; letter-spacing: .055em; }
.ace-refined-v24 #app #home .home-core.v43 .home-good-visual small { font-size: 14px; color: #6a675f; letter-spacing: 0; }
.ace-refined-v24 #app #home .home-core.v43 .s-title { color: #2e2c26; font-size: 16px; line-height: 1.65; min-height: 3.3em; font-weight: 600; }
.ace-refined-v24 #app #home .home-core.v43 .s-sub { font-size: 14px; line-height: 1.65; color: #676056; }
.ace-refined-v24 #app #home .s-price :is(.domestic-price__label, .domestic-price__scope, .domestic-price__cny) { font-size: 13px; line-height: 1.75; color: #6a6257; }
.ace-refined-v24 #app #home .s-price .domestic-price__pending { color: #5b5348; font-size: 18px; font-weight: 600; }
.ace-refined-v24 #app #home .s-price .domestic-price__jpy { font-size: 23px; }
.ace-refined-v24 #app #home .home-core.v43 .home-request-card { border-radius: 18px; background: #f4f0e8; border-color: #e4dacb; padding: 18px 24px; }
.ace-refined-v24 #app #home .home-core.v43 .hr-law { color: #766045; font-size: 14px; font-weight: 650; }
.ace-refined-v24 #app #home .home-core.v43 .hr-adult { font-size: 20px; font-weight: 650; }
.ace-refined-v24 #app #home .home-core.v43 .hr-note { font-size: 14px; }
.ace-refined-v24 #app #home .home-core.v43 .hr-btn { border-radius: 12px; color: #62503c; border-color: #d8ccba; font-size: 14px; }
.ace-refined-v24 #app #home .home-catalog-image { border-radius: 13px; margin: 12px 12px 0; background: #f3f0e9; }
.ace-refined-v24 #app #home .home-catalog-body { padding: 15px 17px 16px; }
.ace-refined-v24 #app #home .home-catalog-body h2 { font-size: 16px; line-height: 1.65; font-weight: 600; }
.ace-refined-v24 #app #home :is(.home-catalog-category, .home-catalog-meta) { font-size: 14px; color: #666057; }
.ace-refined-v24 #app #home :is(.home-price-scope, .home-catalog-service-scope) { font-size: 13px; line-height: 1.75; color: #6b6359; }
.ace-refined-v24 #app #home a.home-catalog-detail { font-size: 14px; color: #65503a; border-top-color: #ebe5da; }
.ace-refined-v24 #app #home .ace-section-card { border-radius: 18px; border: 1px solid #e5dfd4; background: #fffefa; box-shadow: var(--ace-shadow); padding: 20px 22px; }
.ace-refined-v24 #app #home .ace-section-card--medical { background: #eef3eb; border-color: #dce5d9; }
.ace-refined-v24 #app #home .ace-section-card--tobacco_alcohol { background: #f1ede5; border-color: #e0d7c8; }
.ace-refined-v24 #app #home .ace-section-card--tobacco_alcohol :is(strong, .ace-section-kicker, .ace-section-subtitle) { color: #5c4a35; }
.ace-refined-v24 #app #home .ace-section-card strong { font-size: 22px; font-weight: 650; line-height: 1.45; }
.ace-refined-v24 #app #home .ace-section-subtitle { font-size: 14px; line-height: 1.65; }
.ace-refined-v24 #app #home .ace-section-go { border-radius: 10px; color: #705538; font-size: 14px; white-space: normal; min-width: 0; }
.ace-refined-v24 #app #home .ace-section-icon { color: #8a6e4e; opacity: .85; }
.ace-refined-v24 #app #home .ace-section-card--medical :is(.ace-section-icon, .ace-section-go) { color: #376655; }
.ace-refined-v24 #app #home .ace-section-card--tobacco_alcohol :is(.ace-section-icon, .ace-section-go) { color: #7a5a37; }
.ace-refined-v24 #app #home .japan-home-entry { border-radius: 18px; background: #eee9df; color: #423b31; border: 1px solid #e1d7c7; }
.ace-refined-v24 #app #home .japan-home-entry :is(h3, p, small) { color: #554c3d; }
.ace-refined-v24 #app #home .japan-home-entry > a { border-radius: 12px; color: #594a37; border-color: #c9bba7; background: #fffdf8; }
.ace-refined-v24 #app #home :is(.shop-tool, .value-shortcut, .ace-company-home) { border-radius: 18px; border-color: var(--ace-line); box-shadow: var(--ace-shadow); }
.ace-refined-v24 #app #home .value-shortcut > a { color: #705739; }
.ace-refined-v24 #app #home .ace-category-links a { border-radius: 11px; color: #665945; background: #f2ede4; font-size: 14px; }

/* Inner catalogues and product pages: stone, linen and clear information. */
.ace-refined-v24 #app .page-shop :is(.domestic-mall-heading, .catalog-section-hero) { border-left: 0; border: 1px solid #e3dbce; border-radius: 18px; background: #f0ece4; box-shadow: 0 4px 16px rgba(64, 50, 30, .025); }
.ace-refined-v24 #app .page-shop :is(.domestic-mall-heading, .catalog-section-hero) h1 { color: #3b382e; font-size: clamp(27px, 2.8vw, 34px); font-weight: 650; letter-spacing: .02em; }
.ace-refined-v24 #app .page-shop :is(.domestic-mall-heading small, .catalog-eyebrow, .catalog-products-heading small) { color: #7a6244; font-size: 14px; line-height: 1.7; font-weight: 600; }
.ace-refined-v24 #app .page-shop :is(.domestic-mall-heading, .catalog-section-hero) p { font-size: 15px; line-height: 1.8; color: #6b6153; }
.ace-refined-v24 #app .page-shop .catalog-section-hero--adult { background: #f0ece4; border-color: #ded4c4; }
.ace-refined-v24 #app .page-shop .catalog-section-hero--adult :is(h1, p, .catalog-eyebrow) { color: #604e36; }
.ace-refined-v24 #app .catalog-adult-emblem { color: #9a8768; opacity: .75; }
.ace-refined-v24 #app .page-shop .catalog-section-switch__item { border-radius: 13px; min-height: 56px; background: #fffefa; border-color: #e0d8cb; color: #62513d; font-size: 15px; line-height: 1.6; }
.ace-refined-v24 #app .page-shop .catalog-section-switch__item[aria-current="page"] { color: #4d4132; background: #ede5d7; border-color: #cbbca6; box-shadow: none; }
.ace-refined-v24 #app .page-shop .catalog-section-switch__item[aria-current="page"] small { color: #716047; }
.ace-refined-v24 #app .page-shop :is(.domestic-mall-chips, .catalog-hero-tags) span { border-radius: 8px; border-color: #e1d7c5; background: #fffdf6; color: #685843; font-size: 13px; }
.ace-refined-v24 #app .page-shop .production-search :is(input, button) { min-height: 46px; border-radius: 12px; }
.ace-refined-v24 #app .page-shop .japan-chip { border-radius: 22px; background: #fffdf9; border-color: #e0d8ca; color: #6c5c46; font-size: 14px; min-height: 42px; }
.ace-refined-v24 #app .page-shop .japan-chip.on { background: #eae1d2; color: #5d4931; border-color: #c8b797; }
.ace-refined-v24 #app :is(.page-shop, .page-japan-catalog, .product-grid) .domestic-product-card { border-radius: 18px; border-color: var(--ace-line); background: #fffefa; box-shadow: var(--ace-shadow); overflow: hidden; }
.ace-refined-v24 #app :is(.page-shop, .page-japan-catalog, .product-grid) .domestic-product-card :is(.shop-pic, .product-media) { border-radius: 12px; background: #f3f0e9; }
.ace-refined-v24 #app :is(.page-shop, .page-japan-catalog, .product-grid) .domestic-product-card :is(.shop-name, .product-name) { color: #302e28; font-size: 16px; line-height: 1.65; font-weight: 600; }
.ace-refined-v24 #app :is(.page-shop, .page-japan-catalog, .product-grid) .domestic-product-card :is(.shop-spec, .product-unit) { color: #6b6255; font-size: 14px; line-height: 1.65; }
.ace-refined-v24 #app :is(.page-shop, .page-japan-catalog, .product-grid) .domestic-price__jpy { color: #6c5131; }
.ace-refined-v24 #app :is(.page-shop, .page-japan-catalog) .domestic-product-card .btn { border-radius: 12px; border-color: #d7cab7; color: #675033; font-size: 14px; background: #fbf7ee; }
.ace-refined-v24 #app :is(.page-product-detail, .page-japan-product) :is(.product-panel, .product-description, .product-alert-box, .storefront-product-description, .storefront-purchase-note, .storefront-medicine-note) { border-radius: 18px; border-color: var(--ace-line); background: #fffefa; box-shadow: var(--ace-shadow); }
.ace-refined-v24 #app :is(.page-product-detail, .page-japan-product) :is(.domestic-price, .product-price-box) { border-radius: 16px; border-color: #e3d7c3; background: #f5f0e5; }
.ace-refined-v24 #app :is(.page-product-detail, .page-japan-product) :is(.domestic-price__jpy, .product-final-price) { color: #6a5132; }
.ace-refined-v24 #app :is(.product-gallery, .catalog-customer-gallery-track) { border-radius: 16px; background: #f4f1ea; }
.ace-refined-v24 #app :is(.catalog-customer-gallery-thumbnail, .product-gallery-thumbnail) { border-radius: 10px; }
.ace-refined-v24 #app .page-product-detail .product-buybar .buy-now-btn { border-radius: 12px; background: #6b543a; }
.ace-refined-v24 #app .page-product-detail .product-buybar .buy-now-btn:disabled { background: #ebe5da; color: #72695b; }
.ace-refined-v24 #app .storefront-purchase-actions .btn.primary { color: #fff; background: #655447; }
.ace-refined-v24 #app .storefront-purchase-actions .btn.ghost { color: #65513a; background: #faf5eb; border-color: #d7c8b2; }
.ace-refined-v24 #app .storefront-handover { border-radius: 16px; border-color: #e4daca; background: #f6f2e8; }

/* Care is visually calmer: sage and ivory, including the entry page. */
.ace-refined-v24.ace-theme--medical,
.ace-refined-v24 #app :is(.catalog-theme--medical, .catalog-gate-page--medical) {
  --ace-action: #326657;
  --ace-action-hover: #244e42;
  --ace-action-soft: #eaf2e9;
  --ace-focus: #397064;
  --ace-ink: #2d443a;
  --ace-muted: #5d7167;
  --ace-line: #dce5da;
  --ace-shadow: 0 8px 26px rgba(51, 81, 59, .05);
}
.ace-refined-v24.catalog-entry-gated #app { background: #f0eee8; }
.ace-refined-v24 #app .catalog-gate-page { background: linear-gradient(140deg, #f5f2eb, #ebe7dc); padding: 31px 20px 45px; min-height: 100dvh; }
.ace-refined-v24.ace-theme--medical.catalog-entry-gated #app { background: #edf2e9; }
.ace-refined-v24 #app .catalog-gate-page--medical { background: linear-gradient(142deg, #f3f6ee, #e8f0e5); }
.ace-refined-v24 #app .catalog-gate-brand { color: #272924; margin-bottom: 22px; }
.ace-refined-v24 #app .catalog-gate-brand > b { color: #262725; font-family: Georgia, "Times New Roman", serif; font-size: 30px; line-height: 1; letter-spacing: .055em; }
.ace-refined-v24 #app .catalog-gate-brand > b > span { margin-left: 5px; color: var(--ace-red); font-family: -apple-system, BlinkMacSystemFont, "Microsoft YaHei", sans-serif; font-size: 14px; font-weight: 750; letter-spacing: .1em; }
.ace-refined-v24 #app .catalog-entry-dialog { border: 1px solid #ded6c8; border-top: 1px solid #ded6c8; border-radius: 22px; background: #fffefa; box-shadow: 0 14px 40px rgba(75, 62, 44, .085); padding: 32px 34px; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-entry-dialog { border-color: #d7e2d3; background: #fffffa; box-shadow: 0 14px 40px rgba(46, 76, 49, .08); }
.ace-refined-v24 #app .catalog-gate-symbol { border-radius: 13px; color: #826b48; background: #f1ebdf; width: 50px; height: 50px; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-symbol { color: #47785f; background: #eaf2e5; }
.ace-refined-v24 #app .catalog-gate-close { border-color: #dce0d2; color: #68806d; background: #fffefa; border-radius: 50%; width: 42px; height: 42px; }
.ace-refined-v24 #app .catalog-entry-dialog h1 { color: #3e3a30; font-size: 28px; letter-spacing: .015em; line-height: 1.4; font-weight: 650; margin-top: 10px; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-entry-dialog h1 { color: #2b4938; }
.ace-refined-v24 #app .catalog-gate-intro { color: #6b6254; font-size: 15px; line-height: 1.85; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-intro { color: #5e7363; }
.ace-refined-v24 #app .catalog-gate-guidance { border: 1px solid #e2dacb; border-radius: 15px; background: #f7f3eb; padding: 3px 19px; margin: 20px 0; }
.ace-refined-v24 #app .catalog-gate-guidance > div { padding: 14px 0; }
.ace-refined-v24 #app .catalog-gate-guidance > div + div { border-top-color: #e3dccf; }
.ace-refined-v24 #app .catalog-gate-guidance strong { font-size: 16px; color: #524a3a; font-weight: 650; }
.ace-refined-v24 #app .catalog-gate-guidance p { font-size: 14px; line-height: 1.8; color: #6d6252; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-guidance { background: #f4f7ee; border-color: #dfe7d7; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-guidance > div + div { border-top-color: #dfe7d7; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-guidance strong { color: #3c5b45; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-guidance p { color: #60715e; }
.ace-refined-v24 #app .catalog-gate-audience label { font-size: 13px; line-height: 1.7; font-weight: 600; color: #6b6356; }
.ace-refined-v24 #app .catalog-gate-audience :is(select, input) { border-radius: 12px; border-color: #d6d0c3; color: #4f4a3e; min-height: 46px; font-size: 16px; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-audience label { color: #5f745f; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-audience :is(select, input) { border-color: #d4decd; color: #3e5c46; }
.ace-refined-v24 #app .catalog-gate-check { border-radius: 14px; border-color: #d8cfbe; background: #fffefa; padding: 16px; }
.ace-refined-v24 #app .catalog-gate-check input { accent-color: var(--ace-action); }
.ace-refined-v24 #app .catalog-gate-check strong { color: #4c473b; font-size: 15px; line-height: 1.75; font-weight: 600; }
.ace-refined-v24 #app .catalog-gate-check:has(input:checked) { border-color: #b39b75; background: #f8f2e6; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-check { border-color: #cfdcc6; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-check strong { color: #3c5640; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-check:has(input:checked) { border-color: #94af81; background: #f0f7e9; }
.ace-refined-v24 #app .catalog-gate-submit { border-radius: 13px; background: var(--ace-action); color: #fff; min-height: 49px; font-size: 16px; line-height: 1.5; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-submit { background: #326657; }
.ace-refined-v24 #app .catalog-gate-leave { font-size: 14px; color: #766851; }
.ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-leave { color: #62755c; }
.ace-refined-v24 #app .catalog-gate-footnote { color: #746c5c; font-size: 13px; }
.ace-refined-v24 #app dialog.catalog-product-age-dialog { border-radius: 21px; }
.ace-refined-v24 #app dialog.catalog-product-age-dialog::backdrop { background: rgba(69, 59, 46, .38); backdrop-filter: blur(3px); }
.ace-refined-v24 #app .catalog-theme--medical :is(.catalog-section-hero, .catalog-doctor-window, .catalog-care-types article, .catalog-flow-grid li, .catalog-boundary-card) { border-radius: 18px; border-color: #dce5d6; background: #f4f7ef; box-shadow: var(--ace-shadow); }
.ace-refined-v24 #app .catalog-theme--medical .catalog-section-hero { background: #eaf1e3; border-color: #d8e3cf; }
.ace-refined-v24 #app .catalog-theme--medical :is(h1, h2, h3) { color: #33583f; }
.ace-refined-v24 #app .catalog-theme--medical :is(.catalog-section-hero p, .catalog-doctor-window p, .catalog-care-types p, .catalog-boundary-card p) { color: #61715c; font-size: 15px; line-height: 1.85; }
.ace-refined-v24 #app .catalog-theme--medical :is(.catalog-eyebrow, .catalog-text-link, .catalog-status, .catalog-type-number) { color: #447452; font-size: 14px; }
.ace-refined-v24 #app .catalog-theme--medical .catalog-doctor-window > small { color: #65725c; font-size: 13px; }
.ace-refined-v24 #app .catalog-theme--medical .catalog-doctor-symbol { color: #4c7b58; background: #e8efdf; }
.ace-refined-v24 #app .catalog-theme--medical .catalog-section-switch__item[aria-current="page"] { background: #e6efde; color: #355940; border-color: #bcccac; }
.ace-refined-v24 #app .catalog-theme--medical .catalog-section-switch__item[aria-current="page"] small { color: #617959; }
.ace-refined-v24 #app .catalog-theme--medical .japan-chip.on { background: #e5edde; color: #385b40; border-color: #bacaaa; }
.ace-refined-v24 #app .catalog-theme--medical .catalog-hero-tags span { background: #f6faef; border-color: #d3dfc7; color: #5a7654; }
.ace-refined-v24 #app .telehealth-hero { border-radius: 22px; border-color: #dce5d4; background: #fffffa; box-shadow: var(--ace-shadow); }
.ace-refined-v24 #app .telehealth-hero-copy { background: linear-gradient(125deg, #edf3e6, #e4ecdc); color: #31533c; }
.ace-refined-v24 #app .telehealth-hero :is(h1, .telehealth-eyebrow) { color: #31533c; }
.ace-refined-v24 #app .telehealth-hero-copy > p { color: #5a715d; font-size: 15px; }
.ace-refined-v24 #app .telehealth-tags span { background: #f8fbf2; color: #4d6d4d; border-color: #cddac0; border-radius: 9px; font-size: 13px; }
.ace-refined-v24 #app .telehealth-fee { background: #fffefa; color: #3d5e43; }
.ace-refined-v24 #app .telehealth-fee p { color: #627361; font-size: 15px; }
.ace-refined-v24 #app .telehealth :is(.btn.primary, .catalog-gate-submit) { background: #326657; border-color: #326657; }
.ace-refined-v24 #app .telehealth :is(.telehealth-shortcuts > a, .telehealth-flow li, .telehealth-boundaries > div) { border-radius: 16px; border-color: #dce5d4; box-shadow: var(--ace-shadow); }
.ace-refined-v24 #app .telehealth :is(.telehealth-section-heading small, .telehealth-eyebrow) { font-size: 14px; letter-spacing: .065em; }
.ace-refined-v24 #app .telehealth-shortcuts small { color: #667663; font-size: 14px; }
.ace-refined-v24 #app .telehealth-flow p { font-size: 15px; line-height: 1.85; }

/* Account, service and policy pages inherit a quiet linen presentation. */
.ace-refined-v24 :is(.company-hero, .hero, .ref-hero, .points-hero, .logistics-hero, .after-hero, .success-hero, .join-hero, .bind-hero, .policy-center-hero, .japan-hero, .japan-detail-hero, .member-card-hero, .value-hero, .pref-hero, .frequent-hero, .reminder-hub-hero, .task-hero, .first-id-hero, .journey-hero) { border-radius: 20px; border-color: #e2d8c9; background: #f1ece2; box-shadow: var(--ace-shadow); }
.ace-refined-v24 :is(.company-card, .ace-company-facts, .ace-service-cards article, .ace-price-panels article, .ace-story-hero, .ace-vision, .ace-info-faq details, .policy-doc, .policy-center-card, .member-wealth, .member-action) { border-radius: 16px; border-color: #e1d8ca; box-shadow: var(--ace-shadow); }
.ace-refined-v24 :is(.ace-info-faq details, .ace-faq details) { background: #fffefa; padding: 19px 20px; margin-bottom: 10px; border: 1px solid #e4ddcf; }
.ace-refined-v24 :is(.ace-info-faq summary, .ace-faq summary) { font-size: 16px; line-height: 1.75; color: #554a39; }
.ace-refined-v24 .ace-story-hero aside { background: #ece5d8; color: #564835; }
.ace-refined-v24 .ace-story-hero aside :is(h2, p, span) { color: #645339; }
.ace-refined-v24 .ace-story-hero aside .btn.primary { background: #6d5940; color: #fff; }
.ace-refined-v24 .member { border: 1px solid #d2c8b5; border-radius: 20px; background: linear-gradient(125deg, #ece6d8, #e2d9c7); color: #4e4230; box-shadow: var(--ace-shadow); }
.ace-refined-v24 .member :is(.mid, h2, h3) { color: #4a3c27; }
.ace-refined-v24 .member :is(p, small, .founder, .production-note) { color: #6c5c43; }
.ace-refined-v24 .member .m { border-radius: 13px; background: rgba(255, 254, 250, .75); color: #5a4c36; }
.ace-refined-v24 .member .m :is(b, span) { color: #5a4c36; }
.ace-refined-v24 .member-card-logo { border-radius: 11px; background: #796344; }
.ace-refined-v24 .founder-badge2 { border-radius: 8px; background: #eee0c1; color: #715932; }
.ace-refined-v24 :is(.page-login, .page-register, .page-password-recovery) .form { background: #fffefa; border: 1px solid #e2d7c6; box-shadow: 0 10px 32px rgba(65, 49, 27, .055); }
.ace-refined-v24 .policy-doc { background: #fffefa; color: #4c473d; }
.ace-refined-v24 .policy-doc :is(p, li) { font-size: 15px; line-height: 1.95; }
.ace-refined-v24 .policy-doc :is(h2, h3) { color: #514637; }
.ace-refined-v24 :is(.warn, .notice, .reward-note) { border-radius: 13px; }
.ace-refined-v24 .ace-compare-choice { font-size: 14px; color: #6d5c45; }
.ace-refined-v24 .ace-compare-bar { border: 1px solid #d4c5ae; border-radius: 16px; background: #fffaf0; color: #56422a; box-shadow: 0 10px 34px rgba(66, 49, 29, .13); }
.ace-refined-v24 .ace-compare-bar button { border-radius: 11px; background: #6d5435; color: #fff; font-size: 14px; }
.ace-refined-v24 .ace-compare-bar [data-compare-clear] { color: #6b5436; border-color: #ccbaa0; background: #fffdf8; }
.ace-refined-v24 .ace-compare-dialog { border-radius: 20px; border-color: #ded1be; background: #fffaf0; }
.ace-refined-v24 .ace-compare-heading button { border-radius: 12px; color: #6b5537; border-color: #d5c5ac; }
.ace-refined-v24 .ace-compare-dialog::backdrop { background: rgba(61, 53, 42, .35); backdrop-filter: blur(3px); }
.ace-refined-v24 .ace-compare-dialog th { background: #f0e8d9; }
.ace-refined-v24 .ace-compare-bar button:focus-visible { outline-color: #7f6847; }

@media (min-width: 900px) {
  .ace-refined-v24 #app #home .home-intro-layout { grid-template-columns: minmax(0, 1.5fr) minmax(290px, 1fr); }
  .ace-refined-v24 #app #home .home-carousel-track[data-item-count="1"] { grid-template-columns: minmax(0, 1fr); }
  .ace-refined-v24 #app #home .home-carousel-track[data-item-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ace-refined-v24 #app #home .home-carousel-track[data-item-count="3"],
  .ace-refined-v24 #app #home .home-catalog-grid[data-item-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ace-refined-v24 #app #home .home-carousel-track[data-item-count="4"],
  .ace-refined-v24 #app #home .home-catalog-grid[data-item-count="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ace-refined-v24 #app #home .home-carousel-track:is([data-item-count="1"], [data-item-count="2"]) .home-carousel-slide { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1fr); gap: 20px; align-items: center; padding: 18px; }
  .ace-refined-v24 #app #home .home-carousel-track:is([data-item-count="1"], [data-item-count="2"]) .home-good-visual { height: 220px; margin: 0; }
  .ace-refined-v24 #app #home .home-carousel-track:is([data-item-count="1"], [data-item-count="2"]) .s-info { margin: 0; }
  .ace-refined-v24 #app #home .home-carousel-track:is([data-item-count="1"], [data-item-count="2"]) .s-title { min-height: 0; font-size: 17px; -webkit-line-clamp: 3; }
  .ace-refined-v24 #app #home .home-catalog-grid[data-item-count="1"] { grid-template-columns: minmax(0, 1fr); }
  .ace-refined-v24 #app #home .home-catalog-grid[data-item-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ace-refined-v24 #app :is(.production-products, .home-catalog-grid)[data-item-count="1"] { grid-template-columns: minmax(0, 1fr); }
  .ace-refined-v24 #app :is(.production-products, .home-catalog-grid)[data-item-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ace-refined-v24 #app .production-products[data-item-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ace-refined-v24 #app .production-products[data-item-count="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .ace-refined-v24 :is(.top, .topbar) { padding: 17px 30px 0; }
  .ace-refined-v24 .ace-desktop-nav { margin-top: 11px; }
  .ace-refined-v24 .ace-desktop-nav a { padding: 10px 0 12px; }
  .ace-refined-v24 #app main > .page > .pad { padding: 25px 32px 42px; }
  .ace-refined-v24 #app #home .home-carousel-track { gap: 20px; }
  .ace-refined-v24 #app #home .home-catalog-grid { gap: 20px; }
  .ace-refined-v24 #app .page-shop .production-products { gap: 20px; }
  .ace-refined-v24 #app .page-shop :is(.domestic-mall-heading, .catalog-section-hero) { padding: 23px 28px; min-height: 0; }
  .ace-refined-v24 #app .catalog-entry-dialog { max-width: 700px; }
  .ace-refined-v24 #app .telehealth-hero-copy { padding: 35px; }
  .ace-refined-v24 #app .telehealth-flow li { padding: 25px; }
  .ace-refined-v24 #app .ace-desktop-footer { grid-template-columns: 1.4fr 1fr 1fr 1.25fr; }
}
@media (max-width: 767px) {
  .ace-refined-v24 .top { padding: 14px 16px; }
  .ace-refined-v24 .headrow { gap: 12px; }
  .ace-refined-v24 .ace-brand-lockup { min-width: 120px; gap: 4px; }
  .ace-refined-v24 .ace-brand-name { font-size: 30px; }
  .ace-refined-v24 .ace-brand-year { font-size: 14px; }
  .ace-refined-v24 :is(.ace-brand-caption, .ace-brand-tagline) { font-size: 11px; letter-spacing: .07em; }
  .ace-refined-v24 .quick-request { padding: 9px 11px; font-size: 13px; }
  .ace-refined-v24 .quick-request small { font-size: 11px; }
  .ace-refined-v24 #app #home .hero.v42.v43 { padding: 23px; border-radius: 19px; }
  .ace-refined-v24 #app #home .home-service-panel { padding: 18px; border-radius: 19px; }
  .ace-refined-v24 #app #home :is(.sec h2, .ace-section-heading h2) { font-size: 22px; }
  .ace-refined-v24 #app #home :is(.sec small, .ace-section-heading small) { font-size: 15px; }
  .ace-refined-v24 #app #home :is(.sec > a, .sec > span) { font-size: 13px; }
  .ace-refined-v24 #app #home .ace-section-card { padding: 17px 12px; border-radius: 15px; min-width: 0; }
  .ace-refined-v24 #app #home .ace-section-card strong { font-size: 17px; }
  .ace-refined-v24 #app #home .ace-section-subtitle { font-size: 13px; }
  .ace-refined-v24 #app #home .ace-section-go { font-size: 13px; gap: 5px; line-height: 1.55; white-space: normal; }
  .ace-refined-v24 #app #home .home-carousel-slide { padding: 11px; border-radius: 16px; }
  .ace-refined-v24 #app #home .home-core.v43 .s-title { font-size: 15px; }
  .ace-refined-v24 #app #home .home-core.v43 .s-sub { font-size: 13px; }
  .ace-refined-v24 #app #home .home-catalog-body { padding: 13px; }
  .ace-refined-v24 #app #home .home-catalog-body h2 { font-size: 15px; }
  .ace-refined-v24 #app #home .home-catalog-image { margin: 10px 10px 0; }
  .ace-refined-v24 #app .catalog-entry-dialog { padding: 27px 21px; border-radius: 20px; }
  .ace-refined-v24 #app .catalog-entry-dialog h1 { font-size: 26px; }
  .ace-refined-v24 #app .catalog-gate-guidance { padding-inline: 15px; }
  .ace-refined-v24 #app .catalog-gate-guidance p { font-size: 14px; }
  .ace-refined-v24 #app .catalog-gate-check { padding: 14px; }
  .ace-refined-v24 #app .catalog-gate-check strong { font-size: 14px; }
  .ace-refined-v24 #app .catalog-gate-actions { flex-direction: column; gap: 8px; }
  .ace-refined-v24 #app .catalog-gate-submit { width: 100%; flex-basis: auto; }
  .ace-refined-v24 #app .catalog-gate-audience { max-width: none; }
  .ace-refined-v24 #app .page-shop .catalog-section-switch__item { white-space: normal; line-height: 1.55; font-size: 14px; }
  .ace-refined-v24 #app .page-shop .catalog-section-switch__item small { font-size: 12px; }
  .ace-refined-v24 #app .telehealth-hero-copy { padding: 26px 22px; }
  .ace-refined-v24 #app .telehealth-flow li { padding: 22px; }
  .ace-refined-v24 .ace-desktop-footer { gap: 24px 18px; padding-inline: 20px; }
}
@media (hover: hover) {
  .ace-refined-v24 :is(.btn.primary, .button.primary, .production-save):hover { background: var(--ace-action-hover); border-color: var(--ace-action-hover); }
  .ace-refined-v24 #app .catalog-gate-submit:hover { background: var(--ace-action-hover); }
  .ace-refined-v24 #app #home :is(.home-carousel-slide, .home-catalog-card):hover,
  .ace-refined-v24 #app :is(.page-shop, .page-japan-catalog) .domestic-product-card:hover { border-color: #cbbba5; box-shadow: 0 9px 24px rgba(73, 54, 27, .075); }
  .ace-refined-v24 .ace-desktop-nav a:hover { color: #806b4d; }
  .ace-refined-v24 .quick-request:hover { background: #eee5d7; border-color: #cbbda5; color: #584830; }
  .ace-refined-v24.ace-refined-home .quick-request:hover { background: #fae8e6; border-color: #dcb7b7; color: #a31626; }
  .ace-refined-v24 #app .catalog-gate-page--medical .catalog-gate-submit:hover,
  .ace-refined-v24 #app .telehealth .btn.primary:hover { background: #244e42; }
}
@media (prefers-reduced-motion: reduce) {
  .ace-refined-v24 *, .ace-refined-v24 *::before, .ace-refined-v24 *::after { transition-duration: 0s; animation-duration: 0s; scroll-behavior: auto; }
}
@media print {
  .ace-refined-v24, .ace-refined-v24 #app .catalog-gate-page { background: #fff; }
  .ace-refined-v24 #app :is(.catalog-entry-dialog, .home-carousel-slide, .home-catalog-card, .domestic-product-card) { box-shadow: none; }
}

/* Focused corrections after native desktop review; mobile swipe is unchanged. */
.ace-refined-v24 #app .catalog-entry-dialog h1[tabindex="-1"]:focus {
  outline: none;
  box-shadow: none;
}
.ace-refined-v24 #app .ace-header-search input {
  border: 0;
  box-shadow: none;
  background: transparent;
  border-radius: inherit;
}
@media (min-width: 900px) {
  .ace-refined-v24 #app #home .home-carousel { overflow: visible; }
  .ace-refined-v24 #app #home .home-carousel-track[data-item-count] {
    display: grid;
    transform: none !important;
    overflow: visible;
    scroll-snap-type: none;
    padding: 0;
  }
  .ace-refined-v24 #app #home .home-carousel-track[data-item-count] .home-carousel-slide {
    min-width: 0;
    width: auto;
    flex: none;
  }
  .ace-refined-v24 #app #home :is(.home-carousel-dots, .home-carousel-note-mobile) { display: none; }
}
@media (min-width: 900px) and (max-width: 1023px) {
  .ace-refined-v24 #app #home .home-carousel-track[data-item-count]:not([data-item-count="1"]):not([data-item-count="2"]):not([data-item-count="3"]):not([data-item-count="4"]) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .ace-refined-v24 .ace-desktop-footer > div:not(:first-child) > :is(b, a) {
    display: block;
  }
  .ace-refined-v24 .ace-desktop-footer > div:not(:first-child) > b {
    margin-bottom: 8px;
  }
  .ace-refined-v24 .ace-desktop-footer > div:not(:first-child) > a {
    min-height: 44px;
    padding-block: 8px;
    line-height: 1.6;
  }
}
