/*
 * nav-drawer.css — RönYen unified navigation drawer (.ry-unav)
 *
 * One off-canvas drawer for desktop + mobile, from the CD "Unified Menu"
 * handoff. Dark surface (--nav), slides from the right over a scrim. Scoped
 * entirely under .ry-unav / .ry-unav-scrim so it never touches the desktop
 * mega bar or the header account dropdown. Category accordions reuse the
 * mega-menu 'mobile' markup (.ry-mm-acc .acc …) styled here for the dark
 * +/× toggle. Brand tokens are reused where present, with literal fallbacks.
 */

.ry-unav{
  /* drawer-local tokens (fallbacks keep it self-contained) */
  --d-line:rgba(255,255,255,.09);
  --d-line-strong:#3a424b;
  --d-dim:#c2c7cd;
  --d-muted:var(--nav-muted,#9AA0A8);
  --d-designer:#9A64A8;
  --d-rxl:10px;
}

/* ── Scrim ─────────────────────────────────────────────────────────── */
.ry-unav-scrim{
  position:fixed; inset:0; background:rgba(18,22,26,.55); backdrop-filter:blur(3px);
  opacity:0; visibility:hidden; transition:opacity .32s ease, visibility .32s; z-index:1200;
}
.ry-unav-scrim.is-open{ opacity:1; visibility:visible; }

/* ── Panel ─────────────────────────────────────────────────────────── */
.ry-unav{
  position:fixed; top:0; right:0; height:100%; width:min(440px,100vw);
  background:var(--nav,#252D35); color:#fff; z-index:1210;
  display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .36s cubic-bezier(.4,0,.2,1);
  box-shadow:-24px 0 60px -24px rgba(0,0,0,.55);
  font-family:var(--font-body,'Prompt',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);
  font-weight:300;
}
.ry-unav.is-open{ transform:translateX(0); }
.ry-unav a{ color:inherit; text-decoration:none; }
.ry-unav svg{ display:block; }

/* A · Sticky header row */
.ry-unav-top{
  position:sticky; top:0; z-index:3; background:var(--nav,#252D35);
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 20px 16px; border-bottom:1px solid var(--d-line-strong);
}
.ry-unav-logo .logo{ height:34px; width:auto; }
.ry-unav-actions{ display:flex; align-items:center; gap:10px; }
.ry-unav-lang{ display:inline-flex; align-items:center; min-height:36px; }
.ry-unav-lang :is(.eapps-widget, [class*="elfsight-app"]){ min-width:0; }
.ry-unav-close{
  width:44px; height:44px; border:1px solid #4a525c; border-radius:6px; background:transparent;
  display:inline-flex; align-items:center; justify-content:center; color:#fff; cursor:pointer;
  transition:background .15s, border-color .15s;
}
.ry-unav-close:hover{ background:rgba(255,255,255,.07); border-color:#fff; }
.ry-unav-close svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* scroll region */
.ry-unav-body{ flex:1; overflow-y:auto; overscroll-behavior:contain; }
.ry-unav-body::-webkit-scrollbar{ width:10px; }
.ry-unav-body::-webkit-scrollbar-thumb{ background:#3d454e; border-radius:8px; border:3px solid var(--nav,#252D35); }

/* B · Promo strip */
.ry-unav-promo{
  background:var(--peach,#FDBD92); color:var(--peach-text,#3A2A1D); padding:12px 20px;
  display:flex; align-items:center; justify-content:center; gap:9px;
  font-size:.82rem; font-weight:500; text-align:center;
}
.ry-unav-promo svg{ width:15px; height:15px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* C · Account soft button */
.ry-unav-acct{
  display:flex; align-items:center; gap:12px; margin:18px 20px; padding:14px 16px;
  border:1px solid var(--d-line-strong); border-radius:var(--d-rxl); background:rgba(255,255,255,.03);
  color:#eef0f2; transition:background .15s, border-color .15s;
}
.ry-unav-acct:hover{ background:rgba(255,255,255,.06); border-color:#4a525c; color:#fff; }
.ry-unav-acct .who{ display:flex; flex-direction:column; line-height:1.25; }
.ry-unav-acct .who .hi{ font-size:.72rem; color:var(--d-muted); font-weight:400; }
.ry-unav-acct .who .nm{ font-size:1.08rem; font-weight:600; color:#fff; }
.ry-unav-acct .lbl{ flex:1; font-weight:600; color:#fff; font-size:1rem; }
.ry-unav-acct .who + .lbl{ flex:none; margin-left:auto; font-size:.86rem; font-weight:500; color:var(--d-dim); }
.ry-unav-acct .chev{ width:18px; height:18px; color:var(--d-muted); flex:none; }
.ry-unav-acct .chev svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ry-unav-acct:hover .chev{ color:#fff; }

/* D · Quick lanes */
.ry-unav-feat{
  display:flex; align-items:center; gap:14px; padding:15px 20px; color:#fff;
  border-bottom:1px solid var(--d-line-strong); position:relative; overflow:hidden;
}
.ry-unav-feat::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--lane,#fff); }
.ry-unav-feat .fic{
  width:40px; height:40px; border-radius:6px; flex:none; display:flex; align-items:center; justify-content:center;
  /* Solid, clearly-coloured lane tile — a 24% tint over the dark blue-grey
     drawer barely read (esp. blue on blue-grey). Mix ~52% of the lane colour
     into a dark base so each icon tile shows its true hue. */
  background:color-mix(in srgb, var(--lane) 52%, #222a32); color:var(--lane-ic,#fff);
}
.ry-unav-feat .fic svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.ry-unav-feat .ft{ flex:1; display:flex; flex-direction:column; }
.ry-unav-feat .ft .t{ font-weight:600; font-size:1rem; letter-spacing:-.01em; color:#fff; }
.ry-unav-feat .ft .s{ font-size:.78rem; font-weight:300; color:var(--d-muted); margin-top:1px; }
.ry-unav-feat .go{ width:26px; height:26px; flex:none; color:var(--lane-ic,#fff); opacity:.85; transition:transform .16s; }
.ry-unav-feat .go svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ry-unav-feat:hover{ background:rgba(255,255,255,.04); color:#fff; }
.ry-unav-feat:hover .go{ transform:translateX(3px); }
.ry-unav-feat--sauna{ --lane:var(--sauna,#E88050); --lane-ic:#f0a884; }
.ry-unav-feat--ice{ --lane:var(--ice,#3D87C4); --lane-ic:#8fbfe6; }
.ry-unav-feat--wellness{ --lane:var(--wellness,#3A9478); --lane-ic:#7fd3b6; }
.ry-unav-feat--designer{ --lane:var(--d-designer); --lane-ic:#c9a3d6; }

/* E · Category accordions (mega 'mobile' markup, dark +/× variant) */
.ry-unav .ry-mm-acc{ border-top:1px solid var(--d-line-strong); }
.ry-unav .ry-mm-acc .acc{ border-bottom:1px solid var(--d-line-strong); }
.ry-unav .ry-mm-acc .acc-head{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:16px 20px; font-size:1.05rem; font-weight:500; color:#fff; text-align:left;
  background:none; border:0; cursor:pointer; font-family:inherit;
}
.ry-unav .ry-mm-acc .acc-head .pm{
  width:32px; height:32px; padding:8px; flex:none; box-sizing:border-box;
  border:1px solid rgba(255,255,255,.3); border-radius:50%;
  transition:transform .25s ease, background-color .15s, border-color .15s;
}
.ry-unav .ry-mm-acc .acc-head .pm line{ stroke:#fff; stroke-width:1.8; }
.ry-unav .ry-mm-acc .acc-head:hover .pm{ border-color:#fff; }
.ry-unav .ry-mm-acc .acc.open .acc-head .pm{ transform:rotate(45deg); background-color:#fff; border-color:#fff; }
.ry-unav .ry-mm-acc .acc.open .acc-head .pm line{ stroke:#252D35; }
/* The base mega-menu style hides the vertical stroke on open (+ → −); keep both
   strokes so the 45° rotation reads as an × (the CD +/× toggle). */
.ry-unav .ry-mm-acc .acc.open .acc-head .pm .vh{ transform:none; }
.ry-unav .ry-mm-acc .acc-body{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease; }
.ry-unav .ry-mm-acc .acc.open .acc-body{ grid-template-rows:1fr; }
.ry-unav .ry-mm-acc .acc-inner{ overflow:hidden; }
.ry-unav .ry-mm-acc .acc-pad{ padding:0 20px 14px; }
.ry-unav .ry-mm-acc .acc-sub-h{ font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--d-muted); margin:8px 0 4px; }
.ry-unav .ry-mm-acc .acc-link{
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 2px;
  font-size:.92rem; font-weight:300; color:var(--d-dim); border-bottom:1px solid var(--d-line);
}
.ry-unav .ry-mm-acc .acc-link:last-child{ border-bottom:0; }
.ry-unav .ry-mm-acc .acc-link:hover{ color:#fff; }
.ry-unav .ry-mm-acc .acc-link.is-plain{ color:var(--d-dim); cursor:default; }
.ry-unav .ry-mm-acc .acc-link--all{ color:var(--ice,#3D87C4); font-weight:500; }
.ry-unav .ry-mm-acc .acc-link--all:hover{ color:#5fa3dd; }
.ry-unav .ry-mm-acc .acc-link .arr{ color:inherit; }

/* F · Help & info + generic section */
.ry-unav-sec{ padding:18px 20px; border-bottom:1px solid var(--d-line-strong); }
.ry-unav-label{ font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--d-muted); font-weight:600; margin-bottom:12px; }
.ry-unav-row{
  display:flex; align-items:center; gap:14px; padding:13px 2px; color:#eef0f2; font-weight:400; font-size:.95rem;
  border-bottom:1px solid var(--d-line);
}
.ry-unav-row:last-child{ border-bottom:0; }
.ry-unav-row .ic{ width:20px; height:20px; flex:none; color:var(--d-muted); display:flex; align-items:center; justify-content:center; }
.ry-unav-row .ic svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.ry-unav-row .lbl{ flex:1; }
.ry-unav-row .chev{ width:16px; height:16px; color:var(--d-muted); opacity:.7; }
.ry-unav-row .chev svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ry-unav-row:hover{ color:#fff; }
.ry-unav-row:hover .ic{ color:var(--ice,#3D87C4); }
.ry-unav-row--book{ color:#fff; font-weight:500; }
.ry-unav-row--book .ic{ color:var(--peach,#FDBD92); }

/* G · Talk to us — contact rows */
.ry-unav-crow{
  display:flex; align-items:center; gap:14px; padding:13px 2px; color:#eef0f2; font-size:.92rem; font-weight:300;
  border-bottom:1px solid var(--d-line);
}
.ry-unav-crow:last-child{ border-bottom:0; }
/* Line-icon contacts (email / phone) — sauna-tinted stroke icons. */
.ry-unav-crow svg:not(.ry-ic-brand){ width:18px; height:18px; flex:none; color:var(--sauna,#E88050); fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
/* Official brand glyphs (WhatsApp / LINE) — keep their own brand-colour fill. */
.ry-unav-crow .ry-ic-brand{ width:18px; height:18px; flex:none; }
.ry-unav-crow .lbl{ flex:1; }
.ry-unav-crow .tag{ font-size:.6rem; color:var(--d-muted); letter-spacing:.1em; text-transform:uppercase; font-weight:600; }
.ry-unav-crow:hover{ color:#fff; }
/* Brand labels as CSS content so the Elfsight translator can't rewrite them. */
.ry-unav-brandlbl--wa::after{ content:"WhatsApp"; }
.ry-unav-brandlbl--line::after{ content:"LINE"; }

/* Reduced motion — skip slide + backdrop blur */
@media (prefers-reduced-motion: reduce){
  .ry-unav{ transition:none; }
  .ry-unav-scrim{ transition:none; backdrop-filter:none; }
  .ry-unav .ry-mm-acc .acc-body{ transition:none; }
  .ry-unav .ry-mm-acc .acc-head .pm{ transition:border-color .15s, background-color .15s; }
}
