/* Public menu pages extend the approved public-service.css tokens.
   No prices, authentication, publication rules, seller content or form hooks change. */
.service-menu-page {
  --accent: var(--service-green);
  --soft: var(--service-soft);
  --surface: #fff;
  --dark: var(--service-ink);
  --good: var(--service-green);
  --guide-cream: #fff;
  --guide-paper: #fff;
  --guide-olive: var(--service-green);
  --guide-olive-dark: var(--service-green);
  --guide-ember: var(--service-green);
  --guide-ink: var(--service-ink);
  --guide-muted: var(--service-muted);
  --guide-line: var(--service-line);
  --guide-shadow: none;
  --deal-brand: var(--service-green);
  --deal-ink: var(--service-ink);
  --deal-muted: var(--service-muted);
  --deal-line: var(--service-line);
  --deal-bg: #fff;
  --deal-dark: var(--service-ink);
  --iphone18-blue: var(--service-green);
  --iphone18-blue-dark: var(--service-green-hover);
  --iphone18-ink: var(--service-ink);
  --iphone18-muted: var(--service-muted);
  --iphone18-line: var(--service-line);
  --iphone18-soft: var(--service-surface);
  --hd-brand: var(--service-green);
  --hd-olive: var(--service-green);
  --hd-ink: var(--service-ink);
  --hd-muted: var(--service-muted);
  --hd-line: var(--service-line);
  --hd-paper: var(--service-surface);
  background: #fff;
}
.service-menu-page main { min-width: 0; }
.service-menu-page main :is(h1,h2,h3) { letter-spacing: -.03em; }
.service-menu-page main h1 { font-size: clamp(28px, 3.5vw, 40px); line-height: 1.3; }
.service-menu-page main h2 { line-height: 1.4; }
.service-menu-page main :is(input,select,textarea) { font-family: var(--hotker-font); accent-color: var(--service-green); }
.service-menu-page main :is(input,select,textarea):focus-visible { outline: 3px solid var(--service-green); outline-offset: 3px; box-shadow: none; }
.service-menu-page main :is(a,button,summary):focus-visible { outline: 3px solid var(--service-green); outline-offset: 4px; }
.service-menu-page main :is(.primary-button,.secondary-button,.ghost-button,.guide-primary-link,.consult-button,.alert-button,.loyalty-button) {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
  border-radius: 8px; font-size: 14px; font-weight: 700; text-decoration: none;
}
.service-menu-page main :is(.primary-button,.guide-primary-link,.consult-button:not(.is-disabled),.alert-button,.loyalty-button) {
  background: var(--service-green); color: #fff; border-color: var(--service-green); box-shadow: none;
}
.service-menu-page main :is(.secondary-button,.ghost-button) { background: #fff; color: var(--service-ink); border: 1px solid var(--service-line); box-shadow: none; }
.service-menu-page main :is(.guide-eyebrow,.guide-heading > span,.partner-kicker,.deal-eyebrow,.hd-eyebrow,.mart-eyebrow,.mart-section-label,.iphone18-eyebrow) { display: none; }
.service-menu-page :is(.guide-breadcrumb,.deal-breadcrumb,.hd-breadcrumb) { flex-wrap: wrap; line-height: 1.7; }
.service-menu-page main :is(.price,.partner-price-value,.deal-card-price,.penalty-result strong,.watch-target) { font-variant-numeric: tabular-nums; }

/* MY: a short page heading, then the existing login/account workflow. */
.service-my .my-shell { padding: 0; }
.service-my .my-hero {
  padding: 0 0 24px; border: 0; border-bottom: 1px solid var(--service-line);
  border-radius: 0; background: none; color: var(--service-ink); box-shadow: none;
}
.service-my .my-hero::after { display: none; }
.service-my .my-hero-copy > p:last-child { color: var(--service-muted); margin-top: 12px; font-size: 16px; }
.service-my .my-hero .status:not(.error) { background: var(--service-surface); border: 0; border-radius: 8px; color: var(--service-muted); }
.service-my.my-login-refreshed #signedOut:not([hidden]) { max-width: 560px; margin: 32px auto; gap: 20px; }
.service-my.my-login-refreshed .auth-entry { padding: 28px; border-color: var(--service-line); border-radius: 12px; box-shadow: none; }
.service-my .auth-entry :is(.remember-login,.auth-method input) { border-color: #c9d2cb; border-radius: 8px; }
.service-my .auth-entry :is(.remember-note,.privacy-note) { color: var(--service-muted); line-height: 1.7; }
.service-my.my-login-refreshed .auth-mode-navigation button[aria-pressed=true] { background: var(--service-green); border-color: var(--service-green); }
.service-my.my-login-refreshed .auth-recovery-choice[aria-pressed=true] { background: var(--service-soft); border-color: var(--service-green); box-shadow: none; }
.service-my.my-login-refreshed .auth-recovery-contact { background: var(--service-green); }
.service-my.my-login-refreshed .auth-recovery-entry { background: var(--service-surface); color: var(--service-ink); border-color: var(--service-line); }
.service-my :is(.panel,.account-bar,.guest-watch-optional) { border: 1px solid var(--service-line); border-radius: 12px; box-shadow: none; }
.service-my :is(.watch-card,.notification-card,.community-card) { border-color: var(--service-line); border-radius: 12px; background: #fff; box-shadow: none; }
.service-my :is(.watch-card-keyword,.watch-email-channel,.watch-mode-switch) { background: var(--service-surface); }
.service-my :is(.watch-category,.community-badge,.watch-mode-button.is-active) { background: var(--service-soft); color: var(--service-green); box-shadow: none; }
.service-my .my-smartphone-tools { grid-template-columns: 1fr; padding: 24px; border-color: var(--service-line); border-radius: 12px; background: var(--service-surface); box-shadow: none; }
.service-my .my-smartphone-tools > div > span { font-size: 14px; line-height: 1.7; color: var(--service-muted); }
.service-my .my-smartphone-tools nav { display: grid; min-width: 0; grid-template-columns: repeat(4,minmax(0,1fr)); }
.service-my .my-smartphone-tools a { min-width: 0; min-height: 44px; white-space: normal; font-size: 14px; border-color: var(--service-line); border-radius: 8px; }
.service-my .my-smartphone-tools a.is-primary { grid-column: auto; }
.service-my.my-login-refreshed .guest-watch-optional { width: 100%; }
.service-my .my-smartphone-tools a.is-primary { background: var(--service-green); color: #fff; border-color: var(--service-green); }

/* Shared storefront, including every seller slug and each saved theme preset. */
.service-partners.partner-detail-route { background: #fff; }
.service-partners.partner-detail-route .partner-app,
.service-partners .partner-app { width: min(1120px,calc(100% - 64px)); margin: 24px auto 64px; padding: 0; }
.service-partners .partner-top { min-height: 44px; padding: 0; margin: 0 0 24px; }
.service-partners .partner-brand { color: var(--service-green); font-style: normal; letter-spacing: -.02em; }
.service-partners .partner-nav a { min-height: 44px; border-color: var(--service-line); border-radius: 8px; font-size: 14px; font-weight: 600; }
.service-partners :is(.card,.partner-hero) { border-color: var(--service-line); border-radius: 12px; box-shadow: none; }
.service-partners .partner-hero { padding: 24px 0; border: 0; border-bottom: 1px solid var(--service-line); border-radius: 0; background: #fff; }
.service-partners #publicPartnerDetail { padding: 0; margin: 0; border: 0; background: #fff; box-shadow: none; }
.service-partners #publicPartnerDetailContent[data-store-theme] {
  --store-ink: var(--service-ink); --store-accent: var(--service-green);
  --store-soft: var(--service-soft); --store-border: var(--service-line);
}
.service-partners #publicPartnerDetailContent .partner-detail-hero {
  grid-template-columns: minmax(0,1fr) 300px; min-height: 0; gap: 32px; padding: 24px 0;
  border: 0; border-bottom: 1px solid var(--service-line); border-radius: 0;
  background: #fff; color: var(--service-ink); box-shadow: none;
}
.service-partners #publicPartnerDetailContent .partner-detail-copy h1 { font-size: clamp(28px,3.5vw,40px); letter-spacing: -.03em; line-height: 1.3; }
.service-partners #publicPartnerDetailContent .partner-detail-copy :is(p,small) { color: var(--service-muted); line-height: 1.7; }
.service-partners .partner-detail-copy .verified-mark { background: var(--service-soft); color: var(--service-green); border: 0; border-radius: 6px; font-size: 12px; }
.service-partners .partner-primary-actions { padding: 20px; border-radius: 12px; background: var(--service-surface); box-shadow: none; }
.service-partners .partner-primary-actions h2 { font-size: 20px; }
.service-partners #publicPartnerDetailContent .partner-primary-actions :is(.consult-button,.loyalty-button) { border-radius: 8px; min-height: 44px; font-size: 14px; padding: 12px; }
.service-partners #publicPartnerDetailContent .partner-primary-actions .loyalty-button { border: 1px solid var(--service-green); background: #fff; color: var(--service-green); }
.service-partners .store-intro-details summary { color: var(--service-muted); }
.service-partners :is(.partner-trust-section,.partner-deals-section,.partner-review-panel) { padding: 28px 0; }
.service-partners #publicPartnerDetailContent .store-quick-nav { margin: 0; gap: 8px; padding: 16px 0; }
.service-partners #publicPartnerDetailContent .store-quick-nav a { font-weight: 600; }
.service-partners .partner-deal-filters { background: var(--service-surface); border-color: var(--service-line); border-radius: 12px; padding: 20px; }
.service-partners .partner-filter-options button { border-color: #c9d2cb; border-radius: 8px; color: var(--service-ink); }
.service-partners .partner-filter-options button[aria-pressed=true] { background: var(--service-green); border-color: var(--service-green); color: #fff; }
.service-partners :is(.partner-deal-card,.offer-card,.store-brand-banner,.partner-stat-grid > div) { border-color: var(--service-line); border-radius: 12px; box-shadow: none; }
.service-partners #publicPartnerDetailContent .partner-deal-card.is-store-featured { box-shadow: none; }
.service-partners .partner-deal-card { padding: 20px; }
.service-partners :is(.partner-deal-card small,.partner-deal-card dt,.partner-review-panel .section-heading p) { color: var(--service-muted); }
.service-partners .deal-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.service-partners :is(.partner-filter-summary p,.partner-catalog-hint,.legal-note,.muted) { color: var(--service-muted); }
.service-partners .partner-mobile-sticky .loyalty-button { background: var(--service-green); color: #fff; }
.service-partners .partner-price-safety { background: var(--service-surface); border-color: var(--service-line); border-radius: 12px; }

/* Community uses the same quiet list hierarchy as Blog and Q&A. */
.service-community .community-hero { padding: 8px 0 24px; border: 0; border-bottom: 1px solid var(--service-line); border-radius: 0; }
.service-community :is(.community-search button,.community-tabs .is-active,.community-primary-action) { background: var(--service-green); border-color: var(--service-green); color: #fff; }
.service-community .community-tabs a { border-radius: 8px; font-weight: 600; }
.service-community :is(.community-panel,.community-rail article,.community-value article) { border-color: var(--service-line); border-radius: 12px; box-shadow: none; }
.service-community .community-rail .community-invite { background: var(--service-soft); border-color: var(--service-line); }
.service-community :is(.post-card span,.community-rail > article > span) { color: var(--service-green); }
.service-community .community-search input { background: #fff; border-color: #c9d2cb; }
.service-community .community-intro p:not(.eyebrow) { font-size: 16px; }
.service-hotdeals .hd-shell { padding: 0; }
.service-hotdeals .hd-card,.service-hotdeals .hd-panel { border-radius: 12px; }

/* Guides: readable article headings, practical calculator/results remain prominent. */
.service-guide .guide-hero { padding: 24px 0 32px; border: 0; border-bottom: 1px solid var(--service-line); border-radius: 0; background: #fff; color: var(--service-ink); box-shadow: none; gap: 32px; }
.service-guide .guide-hero::before { display: none; }
.service-guide .guide-hero h1 em { color: var(--service-green); white-space: normal; }
.service-guide .guide-hero > div > p:not(.guide-eyebrow) { color: var(--service-muted); font-size: 16px; line-height: 1.75; }
.service-guide .guide-hero small { color: var(--service-muted); }
.service-guide .guide-hero aside { background: var(--service-soft); border: 0; border-radius: 12px; color: var(--service-ink); }
.service-guide .guide-hero aside span { display: none; }
.service-guide .guide-hero aside p { color: var(--service-muted); }
.service-guide .guide-section { padding: 28px 0; margin-top: 24px; border: 0; border-bottom: 1px solid var(--service-line); border-radius: 0; background: #fff; box-shadow: none; }
.service-guide .guide-heading h2 { font-size: clamp(24px,2.5vw,30px); }
.service-guide :is(.guide-dual article,.guide-result-grid article,.guide-formula-list article,.guide-carrier-grid article,.guide-assumption,.guide-caveat) { background: var(--service-surface); border-color: var(--service-line); border-radius: 12px; }
.service-guide .guide-result-grid article.is-highlight { border-color: var(--service-green); background: var(--service-soft); }
.service-guide .guide-result-grid strong { letter-spacing: -.03em; }
.service-guide .combo-input-panel { padding: 0; border: 0; border-radius: 0; background: #fff; }
.service-guide :is(.penalty-result,.combo-result) { border-radius: 12px; background: var(--service-soft); color: var(--service-ink); box-shadow: none; }
.service-guide .penalty-result :is(dt,small,p:first-of-type) { color: var(--service-muted); }
.service-guide .penalty-result > span,
.service-guide .penalty-result > strong,
.service-guide .penalty-result #penaltyResultFormula { color: var(--service-green); letter-spacing: -.02em; }
.service-guide .combo-result :is(.combo-result-program,.combo-result-cta,.combo-result-total strong) { color: var(--service-green); }
.service-guide .combo-result-total span { color: var(--service-muted); }
.service-guide .combo-result-caption { color: var(--service-muted) !important; }
.service-guide .penalty-result dl div { border-color: #ccdcd0; gap: 16px; }
.service-guide .penalty-result[data-state=error] > strong { color: #a32432; }
.service-guide .penalty-form :is(input,select,button) { border-radius: 8px; font-size: 16px; }
.service-guide .guide-table-wrap { max-width: 100%; overflow: auto; }
.service-guide .guide-footer { background: var(--service-surface); color: var(--service-muted); border-color: var(--service-line); }
.service-guide .guide-footer strong { color: var(--service-ink); }

/* Events retain campaign imagery, discounts and disclosure colours. */
.service-deals .deal-hero { padding: 8px 0 28px; border: 0; border-bottom: 1px solid var(--service-line); border-radius: 0; background: #fff; color: var(--service-ink); box-shadow: none; }
.service-deals .deal-hero::after { display: none; }
.service-deals .deal-hero > p:not(.deal-eyebrow) { color: var(--service-muted); }
.service-deals .deal-hero > div span { border-color: var(--service-line); background: var(--service-surface); color: var(--service-muted); border-radius: 6px; }
.service-deals .deal-card { border-radius: 12px; box-shadow: none; }
.service-deals.deal-listing-body .deal-hero h1 { font-size: clamp(28px,3.5vw,40px); }
.service-deals.deal-listing-body .deal-hero h1 em { color: var(--service-green); }
.service-deals.deal-listing-body .deal-hero-copy > p:not(.deal-eyebrow),
.service-deals .deal-hero-copy > small { color: var(--service-muted); }
.service-deals .deal-hero-primary { border-radius: 8px; box-shadow: none; }
.service-deals .deal-hero-link,
.service-deals.deal-listing-body .deal-hero-actions .deal-hero-link span { color: var(--service-green); }
.service-deals .deal-live-summary { background: var(--service-soft); border: 0; border-radius: 12px; }
.service-deals .deal-live-summary > span { display: none; }
.service-deals .deal-live-summary :is(dt,small,small span) { color: var(--service-muted); }
.service-deals .deal-live-summary :is(dd,small b) { color: var(--service-ink); }
.service-deals .deal-campaign-feature { background: var(--service-surface); border-color: var(--service-line); border-radius: 12px; box-shadow: none; }
.service-deals .deal-campaign-feature-label,
.service-deals .deal-campaign-feature-copy > span:first-child { display: none; }
.service-deals .deal-campaign-feature :is(b,em) { background: var(--service-soft); color: var(--service-green); }
.service-deals .deal-campaign-feature-cta { background: var(--service-green); border-radius: 8px; }
.service-marts .mart-shell { width: 100%; }
.service-marts .mart-hero { padding: 8px 0 28px; background: #fff; color: var(--service-ink); }
.service-marts .mart-hero :is(em,p) { color: var(--service-green); }
.service-marts .mart-coming-soon-card { border-color: var(--service-line); border-radius: 12px; background: var(--service-surface); box-shadow: none; }
.service-marts .mart-coming-soon-actions .primary { background: var(--service-green); color: #fff; }
.service-marts .mart-coming-soon-actions .primary { border-color: var(--service-green); }
.service-marts .mart-coming-soon-icon,
.service-marts .mart-coming-soon-card li b { background: var(--service-green); }
.service-marts .mart-coming-soon-card li { background: var(--service-soft); }
.service-campaign.iphone18-page { background: #fff; }
.service-campaign.iphone18-page main { margin-bottom: 160px; }
.service-campaign .iphone18-hero { border-radius: 12px; background: var(--service-soft); color: var(--service-ink); box-shadow: none; padding: 32px; }
.service-campaign .iphone18-hero::before { display: none; }
.service-campaign .iphone18-hero h1 span { color: var(--service-green); }
.service-campaign :is(.iphone18-hero-copy > p,.iphone18-basis,.iphone18-schedule span) { color: var(--service-muted); }
.service-campaign .iphone18-countdown { background: #fff; border: 1px solid var(--service-line); border-radius: 12px; }
.service-campaign .iphone18-countdown span { color: var(--service-muted); }
.service-campaign .iphone18-countdown p { color: var(--service-green); }
.service-campaign .iphone18-countdown small { color: var(--service-muted); }
.service-campaign .iphone18-schedule > div { border-color: var(--service-line); background: #fff; }
.service-campaign .iphone18-hero-actions a { background: var(--service-green); color: #fff; }
.service-campaign a.iphone18-primary-action { color: #fff; }
.service-campaign .iphone18-hero-actions a:last-child { border-color: var(--service-green); background: #fff; color: var(--service-green); }
.service-campaign .iphone18-hero-visual { transform: none; }
.service-campaign :is(.iphone18-priority,.iphone18-carrier-card.is-coming) { background: var(--service-surface); }
.service-campaign .iphone18-carrier-card[aria-pressed=true] { background: var(--service-soft); box-shadow: none; }
.service-campaign :is(.iphone18-carrier-card,.iphone18-section,.iphone18-links a) { border-radius: 12px; }
.service-campaign .iphone18-selection-summary { background: var(--service-soft); color: var(--service-ink); border-radius: 12px; }
.service-campaign .iphone18-selection-summary :is(span,small) { color: var(--service-muted); }
.service-campaign .iphone18-formula strong { background: var(--service-soft); }
.service-campaign .iphone18-sticky { background: #fff; color: var(--service-ink); border: 1px solid var(--service-line); box-shadow: 0 4px 20px #20272314; }
.service-campaign .iphone18-sticky span { color: var(--service-muted); }

/* Partner recruitment keeps its Kakao brand card and every application field. */
.service-partner-join main:not(.blog-main):not(.qa-main) { width: 100%; margin: 0; }
.service-partner-join .join-shell { width: min(1120px,calc(100% - 64px)); }
.service-partner-join .join-header { position: static; height: auto; min-height: 64px; padding: 12px max(32px,calc((100vw - 1120px)/2)); border-color: var(--service-line); }
.service-partner-join .join-logo { color: var(--service-green); font-size: 20px; }
.service-partner-join .join-header nav { flex-wrap: wrap; gap: 12px; }
.service-partner-join :is(.primary,.nav-apply,.partner-help-download) { background: var(--service-green); color: #fff; box-shadow: none; border-color: var(--service-green); border-radius: 8px; }
.service-partner-join .join-hero { background: var(--service-surface); padding: 40px 0; }
.service-partner-join .hero-grid { gap: 40px; }
.service-partner-join .join-hero h1 { font-size: clamp(30px,3.5vw,42px); letter-spacing: -.03em; }
.service-partner-join :is(.join-form,.partner-help,.partner-help-card,.kakao-hero-card) { border-radius: 12px; box-shadow: none; }
.service-partner-join .partner-help { background: var(--service-surface); border-color: var(--service-line); }
.service-partner-join :is(.partner-help-toc a,.partner-help-back,.partner-help-number) { color: var(--service-green); }
.service-partner-join .join-form :is(input,select,textarea) { border-radius: 8px; }
.service-partner-join :is(.message-example > span,.visual-eyebrow,.kakao-steps small) { color: #66582f; }
.service-partner-join .kakao-steps li p { color: #66582f; }
.service-partner-join :is(.blog-workflow b,.benefit-grid b) { color: var(--service-green); }
.service-partner-join .customer-flow > b { color: #bfdebd; }
.service-partner-join :is(.feature-panel .feature-note,.development-note,.join-form small,.form-options summary span,.agreements small,.final-contact p) { color: var(--service-muted); }

@media (hover: hover) and (pointer: fine) {
  .service-menu-page main :is(.primary-button,.guide-primary-link,.consult-button:not(.is-disabled),.alert-button,.loyalty-button):hover { background: var(--service-green-hover); color: #fff; }
  .service-menu-page main :is(.secondary-button,.ghost-button):hover { background: var(--service-soft); }
  .service-partners #publicPartnerDetailContent .partner-primary-actions .loyalty-button:hover { background: var(--service-soft); }
}
@media (max-width: 900px) {
  .service-partners .deal-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-partners #publicPartnerDetailContent .partner-detail-hero { grid-template-columns: minmax(0,1fr) 260px; gap: 20px; }
  .service-guide .combo-calculator-layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .service-menu-page main:not(.blog-main):not(.qa-main),
  .service-partners.partner-detail-route .partner-app { width: calc(100% - 32px); margin: 20px auto 100px; padding: 0; }
  .service-menu-page main h1 { font-size: 28px; }
  .service-my .my-hero { padding: 0 0 20px; }
  .service-my.my-login-refreshed #signedOut:not([hidden]) { margin: 24px auto; }
  .service-my.my-login-refreshed .auth-entry { padding: 20px 16px; }
  .service-my .my-smartphone-tools { padding: 18px; }
  .service-my .my-smartphone-tools nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-my .my-smartphone-tools a { text-align: center; }
  .service-partners .partner-top { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
  .service-partners .partner-nav { gap: 6px; }
  .service-partners .partner-nav a { padding: 8px 10px; font-size: 13px; }
  .service-partners #publicPartnerDetailContent .partner-detail-hero { grid-template-columns: 1fr; padding: 16px 0; gap: 16px; }
  .service-partners .partner-primary-actions { padding: 16px; }
  .service-partners #publicPartnerDetailContent .partner-deals-section { padding: 24px 0; }
  .service-partners .partner-deal-filters { padding: 12px; }
  .service-partners .partner-deal-card { padding: 16px; }
  .service-partners .partner-price-safety { margin-bottom: 36px; }
  .service-guide .guide-hero { padding: 8px 0 24px; gap: 20px; }
  .service-guide .guide-hero aside { padding: 20px; }
  .service-guide .guide-section { padding: 24px 0; }
  .service-guide .penalty-result { padding: 22px; }
  .service-campaign .iphone18-hero { padding: 20px; }
  .service-campaign.iphone18-page main { margin-bottom: 200px; }
  .service-partner-join main:not(.blog-main):not(.qa-main) { width: 100%; margin: 0; }
  .service-partner-join .join-shell { width: calc(100% - 32px); }
  .service-partner-join .join-header { padding: 12px 16px; }
  .service-partner-join .hero-grid { gap: 24px; }
}
@media (max-width: 560px) {
  .service-partners .deal-grid { grid-template-columns: 1fr; }
  .service-partners .partner-catalog-controls { grid-template-columns: minmax(0,1fr) minmax(110px,.65fr); }
  .service-community .community-intro { align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) {
  .service-menu-page { scroll-behavior: auto; }
  .service-menu-page *, .service-menu-page *::before, .service-menu-page *::after { scroll-behavior: auto; transition-duration: 0s; animation: none; }
}
