:root{--sw-navy:#0F2447;--sw-navy-deep:#081426;--sw-navy-mid:#1B355A;--sw-gold:#C9A24B;--sw-gold-light:#F5D98B;--sw-surface:#fff;--sw-surface-soft:#F7F8FA;--sw-text:#13213A;--sw-muted:#6B7280;--sw-border:#E5E7EB;--sw-radius-sm:10px;--sw-radius-md:14px;--sw-radius-lg:18px;--sw-radius-xl:24px;--sw-shadow-float:0 18px 42px -22px rgba(15,36,71,.4);--sw-icon-xs:14px;--sw-icon-sm:16px;--sw-icon-md:20px;--sw-icon-lg:24px;--sw-icon-xl:32px}
.sw-icon{width:var(--sw-icon-md);height:var(--sw-icon-md);display:inline-block;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.18em}.sw-icon .sw-accent{stroke:var(--sw-gold);fill:none}.sw-icon-xs{width:var(--sw-icon-xs);height:var(--sw-icon-xs)}.sw-icon-sm{width:var(--sw-icon-sm);height:var(--sw-icon-sm)}.sw-icon-lg{width:var(--sw-icon-lg);height:var(--sw-icon-lg)}.sw-icon-xl{width:var(--sw-icon-xl);height:var(--sw-icon-xl)}
.sw-icon-tile{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--sw-gold-light);background:rgba(201,162,75,.09);border:1px solid rgba(201,162,75,.18)}.sw-icon-tile.is-light{color:var(--sw-navy);background:#FFFBEB;border-color:rgba(201,162,75,.28)}
.sw-badge{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:999px;font-size:9.5px;font-weight:800;line-height:1;color:#7A5B1D;background:#FFF8E6;border:1px solid rgba(201,162,75,.28);white-space:nowrap}.sw-badge.is-free{color:#3C5F50;background:#F2F8F5;border-color:#D8EADF}.sw-badge.is-new{color:var(--sw-navy);background:var(--sw-gold-light);border-color:transparent}
/* Header / menu */
.sw-desktop-nav{display:none;align-items:center;gap:4px}.sw-dnav-item{position:relative}.sw-dnav-trigger,.sw-dnav-link{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:9px 10px;border-radius:10px;color:rgba(255,255,255,.84);font-size:12.5px;font-weight:700;transition:.15s}.sw-dnav-trigger:hover,.sw-dnav-trigger:focus-visible,.sw-dnav-link:hover,.sw-dnav-link:focus-visible{color:var(--sw-gold-light);background:rgba(255,255,255,.06)}.sw-dnav-panel{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);width:min(720px,80vw);padding:14px;background:#fff;border:1px solid rgba(15,36,71,.1);border-radius:18px;box-shadow:0 24px 60px -20px rgba(8,20,38,.45);display:none;z-index:80;color:var(--sw-text)}.sw-dnav-item:focus-within .sw-dnav-panel,.sw-dnav-item:hover .sw-dnav-panel{display:block}.sw-mega-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sw-mega-group{padding:8px}.sw-mega-title{font-size:10px;font-weight:900;letter-spacing:.06em;color:#8B93A2;margin:0 0 6px;text-transform:uppercase}.sw-mega-link{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:10px;color:var(--sw-navy);font-size:12px;font-weight:750;text-decoration:none}.sw-mega-link:hover,.sw-mega-link:focus-visible{background:#F7F8FA;color:#8A6A28}.sw-mega-link .sw-icon{width:17px;height:17px;color:#8A6A28}.sw-mega-meta{margin-left:auto;font-size:9.5px;color:#9AA1AE;font-weight:700}
@media(min-width:768px){.sw-desktop-nav{display:flex}}
#mnavRoot{display:flex;flex-direction:column;gap:0}.sw-mnav-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:2px 0 14px}.sw-mnav-quick a{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:9px 4px;border-radius:14px;text-align:center;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);color:#fff;font-size:10.5px;font-weight:800}.sw-mnav-quick a:hover,.sw-mnav-quick a:focus-visible{border-color:rgba(201,162,75,.45);background:rgba(201,162,75,.09);color:var(--sw-gold-light)}.sw-mnav-quick .sw-icon{width:22px;height:22px;color:var(--sw-gold-light)}.mnav-label{margin-top:13px!important}.mnav-card{border-radius:14px!important;overflow:hidden}.mnav-row{min-height:48px!important}.mnav-row .mnav-icon{width:30px!important;height:30px!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:10px;background:rgba(201,162,75,.08);color:var(--sw-gold-light)}.mnav-row .mnav-icon .sw-icon{width:17px;height:17px}.mnav-row .mnav-chevron{margin-left:7px;color:rgba(255,255,255,.28)}.mnav-row .mnav-chevron .sw-icon{width:14px;height:14px}.mnav-point{background:rgba(201,162,75,.08)!important;color:#D9BD7B!important;border:1px solid rgba(201,162,75,.14)!important;border-radius:999px!important;padding:3px 7px!important}.mnav-new{border-radius:999px!important;padding:3px 7px!important}.mnav-account{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
/* Common card language */
.quick-link-card,.guide-card,.today-action-btn,.feat-row{border-radius:var(--sw-radius-md)!important}.quick-link-card,.guide-card{box-shadow:none!important}.quick-link-card:hover,.guide-card:hover,.today-action-btn:hover{box-shadow:var(--sw-shadow-float)!important}.feat-row{border-color:rgba(201,162,75,.14)!important}.feat-row .sw-row-icon{margin-right:2px}.sw-row-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(201,162,75,.09);color:var(--sw-gold-light);flex:none}.sw-row-icon .sw-icon{width:17px;height:17px}.sw-card-icon{width:40px;height:40px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:#FFF9EC;color:#8A6A28;border:1px solid rgba(201,162,75,.2);margin-bottom:10px}.sw-card-icon .sw-icon{width:22px;height:22px}.sw-card-icon.on-dark{background:rgba(201,162,75,.09);color:var(--sw-gold-light);border-color:rgba(201,162,75,.2)}
/* Controls */
.sw-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:12px;background:linear-gradient(135deg,var(--sw-gold),#DFBD71);color:var(--sw-navy);font-weight:850;border:0}.sw-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:12px;background:var(--sw-navy);color:var(--sw-gold-light);font-weight:800;border:1px solid transparent}.sw-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:12px;background:transparent;color:var(--sw-navy);font-weight:750;border:1px solid var(--sw-border)}
@media(max-width:479px){.sw-mnav-quick a{min-height:68px;font-size:10px}.sw-mega-grid{grid-template-columns:1fr}}

/* v244 — mobile density / single-line UI pass
   Do not shrink core reading text to force one line. Compact labels first. */
:root{
  --sw-mobile-pad:14px;
  --sw-control-min:42px;
}
button,a,[role="button"]{ -webkit-tap-highlight-color:transparent; }
button,.btn,[class*="-btn"],[class*="Btn"]{ text-wrap:balance; }
@media (max-width:480px){
  /* Use scarce horizontal space for the label, not decorative padding. */
  .sw-nav-link,.sw-mobile-link,.nav-item,.nav-link,
  .theme-card-title,.product-title,.service-title{
    word-break:keep-all;
    overflow-wrap:normal;
  }
  button,.btn,[class*="-btn"],[class*="Btn"]{
    min-height:var(--sw-control-min);
    padding-left:12px;
    padding-right:12px;
    line-height:1.25;
    word-break:keep-all;
  }
  /* Short action labels should remain one line on normal phone widths. */
  .sw-nav-link,.sw-mobile-link,
  .dtc-saju-btn,.dtc-card,
  .dream-save-cta a,
  .dream-interest-buttons button{
    white-space:nowrap;
  }
  .sw-nav-link,.sw-mobile-link{gap:7px}
}
@media (max-width:374px){
  /* 360px devices: reduce chrome before typography. */
  :root{--sw-mobile-pad:12px}
  button,.btn,[class*="-btn"],[class*="Btn"]{padding-left:10px;padding-right:10px}
}

/* v263 — custom icon language: remove platform emoji from product UI */
.sw-inline-heading{display:inline-flex!important;align-items:center;gap:5px;vertical-align:middle}
.sw-inline-heading .sw-icon{flex:none}
.sw-timeline-status{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:12px;color:#6B7280;white-space:nowrap}
.sw-timeline-status>i{width:8px;height:8px;border-radius:50%;display:inline-block;border:1px solid rgba(15,36,71,.12);box-shadow:inset 0 0 0 2px rgba(255,255,255,.45)}
.sw-timeline-status.is-good>i{background:#3F8B66}.sw-timeline-status.is-watch>i{background:#C9A24B}.sw-timeline-status.is-prepare>i{background:#B8C0CC}
.sw-calendar-spark{display:inline-flex;align-items:center;justify-content:center;margin-top:2px;color:#0F2447}.sw-calendar-spark .sw-icon{width:10px;height:10px}
.sw-daeun-label{font-size:9.5px;color:#8792A6;width:72px;flex:none;display:inline-flex;align-items:center;gap:4px}.sw-daeun-label .sw-icon{width:12px;height:12px}
.sinsal-chip .sw-icon{vertical-align:-.15em;margin-right:3px}
@media(max-width:480px){.sw-timeline-status{font-size:11px;gap:5px}.sw-daeun-label{width:70px}}

/* v286 — 오늘의 운세에서 무료 종합 사주로 이어지는 단일 브리지 */
.today-saju-bridge{background:#fff;border:1px solid rgba(15,36,71,.09);border-left:4px solid #C9A24B;border-radius:22px;padding:20px 18px;box-shadow:0 8px 24px rgba(15,36,71,.05)}
.today-saju-bridge-icon{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:#FFF8E6;color:#8A6A28;margin-bottom:12px}.today-saju-bridge-icon .sw-icon{width:22px;height:22px}
.today-saju-bridge-copy span{display:block;font-size:11px;font-weight:800;color:#8A6A28;margin-bottom:4px}.today-saju-bridge-copy strong{display:block;font-size:17px;line-height:1.45;color:#0F2447}.today-saju-bridge-copy p{margin:7px 0 15px;font-size:12.5px;line-height:1.65;color:#697386;word-break:keep-all}
.today-saju-bridge-btn{width:100%;min-height:48px;border:0;border-radius:14px;background:#0F2447;color:#fff;font-size:14px;font-weight:900;cursor:pointer}.today-saju-bridge-btn:active{transform:translateY(1px)}

/* v349: explicit menu controls work by touch and keyboard. */
#desktopNavV237 .sw-dnav-panel[hidden]{display:none!important}#desktopNavV237 .sw-dnav-panel:not([hidden]){display:block;max-height:75vh;overflow:auto}#desktopNavV237 .sw-dnav-panel{top:100%}.sw-mega-link{min-height:44px}.nav349-hint{font-size:13px;color:#c1cbd8;line-height:1.7;margin:8px 0 14px}.nav349-group{border-bottom:1px solid #ffffff20;padding:8px 0}.nav349-group summary{cursor:pointer;min-height:52px;padding:12px 3px;color:#f4e1b7;font-weight:700;font-size:15px}.nav349-group summary small{display:block;color:#bac5d4;font-size:12px;font-weight:400;margin:4px 0 0 16px}.nav349-group .mnav-card{margin-bottom:12px}.sw-mnav-quick small{font-size:11px;color:#f4d892}.nav349-group summary:focus-visible,.sw-dnav-trigger:focus-visible{outline:2px solid #e7c981;outline-offset:3px}
