/* ===== Design tokens and base =====
 *
 * Every colour in the product resolves to a variable defined here. Change --green and the
 * whole site follows. Prefer editing a token over hard-coding a hex further down the stack.
 */

:root{
 /* Refined, restrained palette (Apple: Simplicity §6 + Craft §7). Neutral grays carry the
    surfaces; a single deep-green accent does the emphasis. The old cream/peach warmth and
    neon green are gone — that warmth read as generic. */
 --green:#1E7A54;--green-dark:#14563B;--green-soft:#E9F3ED;
 --ink:#1D1D1F;            /* near-black, Apple text */
 --sub:#6E6E73;            /* secondary gray */
 --line:#E5E5E9;           /* hairline separator */
 --line-strong:#D2D2D7;
 --bg:#FFFFFF;
 --surface:#F5F5F7;        /* Apple light-gray section ground (replaces cream/peach) */
 --cream:#F5F5F7;          /* legacy alias → neutral, so old references de-warm too */
 --chipb:#F1F1F4;--orange:#B65420;
 /* Precise, neutral depth — tighter and quieter than before (Craft §7, Materials §12) */
 --shadow-1:0 1px 2px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.03);
 --shadow-2:0 2px 8px rgba(0,0,0,.05),0 8px 22px rgba(0,0,0,.06);
 --shadow-3:0 4px 14px rgba(0,0,0,.06),0 22px 44px rgba(0,0,0,.11);
 --ease-soft:cubic-bezier(.32,.72,0,1); /* spring-like settle for reversible transitions §7 */
 --r-sm:8px;--r-md:12px;--r-lg:16px}   /* less bubbly than before */
*{box-sizing:border-box;margin:0;padding:0}
/* Keyboard focus is visible (mouse clicks stay clean via :focus-visible). Every interactive
   element — including the runtime-enhanced onclick divs/spans — gets a clear focus ring. */
:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:4px}
/* System font first (§15): it ships optical sizing + tracking tables; Nunito stays as brand fallback */
body{font-family:system-ui,-apple-system,'SF Pro Text','Nunito','Avenir Next','Segoe UI',sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* Typography scale (§15): tighten tracking as text grows, loosen leading as it shrinks. Hierarchy = weight+size+leading as a set. */
h1,h2,h3,h4{letter-spacing:-.021em;line-height:1.12}
h1{letter-spacing:-.03em;line-height:1.06}
h2{letter-spacing:-.024em}
small,.chip,.pchip,label{letter-spacing:.006em} /* small text wants a touch of positive tracking */
a{text-decoration:none;color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
/* Translucent chrome (§12): the header floats as a material; content scrolls under it,
   a soft scroll-edge replaces the hard 1px divider. Bright top edge = light on glass. */
header{position:sticky;top:0;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.07);box-shadow:0 1px 0 rgba(255,255,255,.5) inset,0 1px 12px -8px rgba(0,0,0,.14);z-index:60}
.nav{display:flex;align-items:center;height:64px;gap:28px}
.logo{display:flex;align-items:center;gap:9px;font-size:21px;font-weight:800;letter-spacing:-.02em;cursor:pointer}
.logo .mark{width:auto;height:32px;display:block}
.logo b{color:var(--green)}
.navlinks{display:flex;gap:26px;margin:0 auto;font-size:15px;font-weight:500;color:var(--ink)}
.navlinks a{cursor:pointer;padding:6px 2px;opacity:.72;transition:opacity .15s ease}
.navlinks a:hover{opacity:1}
.navlinks a.on{color:var(--green);opacity:1;font-weight:600}
.navright{display:flex;align-items:center;gap:18px}
.getstarted{background:var(--ink);color:#fff;font-weight:600;padding:10px 20px;border-radius:var(--r-sm);font-size:14.5px;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.signin{font-size:14.5px;font-weight:500;color:var(--ink);cursor:pointer}
/* ===== Apple design pass: feedback, motion, materials, accessibility ===== */

/* §1 Response — feedback lives on the press and it's instant. Applied to every tappable
   surface so the whole UI feels direct (respond on pointer-down, not release). */
button,.btn,.getstarted,.signin,.pchip,.chip,.icat,.searchrow button,.booknow,.spa .btn,
.ms-save,.askbtn,.ask-cta,.dchip,.tchip,.fchip,.vGrid,.vList,.vMap,.catcard,.pchip{
  transition:transform .11s var(--ease-soft), box-shadow .18s var(--ease-soft), background-color .15s ease, color .15s ease;
}
button:active,.btn:active,.getstarted:active,.pchip:active,.icat:active,.searchrow button:active,
.booknow:active,.spa .btn:active,.ms-save:active,.askbtn:active,.ask-cta:active,.catcard:active{
  transform:scale(.97);
}

/* §12 Materials & depth — cards lift with a soft, layered shadow that inherits the current
   value smoothly (no hard snap on hover). Bigger surfaces read as thicker. */
.spa{box-shadow:var(--shadow-1);transition:transform .2s var(--ease-soft),box-shadow .2s var(--ease-soft)}
.spa:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}

/* §14 Reduced motion — a gentler, non-vestibular equivalent, not "no feedback". */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.12s!important;scroll-behavior:auto!important}
  .spa:hover{transform:none}
  button:active,.btn:active,.getstarted:active,.spa .btn:active{transform:none}
}
/* §14 Reduced transparency — make the glass chrome frosty/solid instead of see-through. */
@media (prefers-reduced-transparency: reduce){
  header{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
}
/* §14 More contrast — near-solid chrome with a defined border. */
@media (prefers-contrast: more){
  header{background:#fff;border-bottom-color:var(--ink)}
}

/* hero — restrained, typographic. No warm gradient; the headline and whitespace carry it.
   (Apple: Simplicity §6 — strip decoration so the core purpose shines.) */
.hero{background:var(--bg);text-align:center;padding:112px 0 84px;position:relative;overflow:hidden}
/* one very faint, neutral bloom for depth — not a colored wash */
.hero:before{content:'';position:absolute;top:-40%;left:50%;transform:translateX(-50%);width:1100px;height:600px;background:radial-gradient(ellipse at center,rgba(30,122,84,.05),transparent 62%);pointer-events:none}
.hero>*{position:relative;z-index:1}
.hero h1{font-size:clamp(40px,6vw,68px);font-weight:700;letter-spacing:-.045em;line-height:1.0;font-optical-sizing:auto;color:var(--ink)}
.hero h1 span{color:var(--green)}
.hero .sub{color:var(--sub);font-size:19px;line-height:1.5;letter-spacing:-.01em;margin:22px auto 36px;max-width:560px;font-weight:400}
.searchrow{display:flex;gap:8px;max-width:600px;margin:0 auto}
.searchrow .box{flex:1;display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:0 18px;height:54px;color:var(--sub)}
.searchrow .box:focus-within{border-color:var(--line-strong);background:#fff;box-shadow:0 0 0 4px rgba(30,122,84,.08)}
.searchrow input{border:none;outline:none;flex:1;font-size:15.5px;font-family:inherit;background:transparent;color:var(--ink)}
.searchrow button{background:var(--ink);color:#fff;border:none;border-radius:var(--r-md);padding:0 28px;font-weight:600;font-size:15px;cursor:pointer;font-family:inherit}
.popchips{display:flex;gap:8px;justify-content:center;margin-top:24px;flex-wrap:wrap;align-items:center}
.popchips small{color:var(--sub);font-size:13.5px}
.pchip{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 15px;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--ink)}
.pchip:hover{border-color:var(--line-strong);background:#fff}
section{padding:64px 0}
.sec-title{font-size:28px;font-weight:700;letter-spacing:-.028em;color:var(--ink)}
.sec-sub{color:var(--sub);font-size:15.5px;margin:6px 0 28px;font-weight:400}

/* featured & popular cards on home */
.hgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.tcard{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);overflow:hidden;cursor:pointer;background:#fff;box-shadow:var(--shadow-1);transition:transform .2s var(--ease-soft),box-shadow .2s var(--ease-soft)}
.tcard:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.tcard .img{height:130px;background:linear-gradient(135deg,#F2F2F4,#E8E8EC);position:relative;display:flex;align-items:center;justify-content:center;font-size:34px;background-size:cover;background-position:center}
.tcard .bubble{position:absolute;top:10px;left:10px;width:32px;height:32px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.tcard .body{padding:12px 14px}
.tcard .body b{font-size:15px}
.tcard .body small{display:block;color:var(--sub);font-size:12.5px}
.how{display:flex;justify-content:space-around;text-align:center;flex-wrap:wrap;gap:26px;padding-top:8px}
.how .step{max-width:260px}
.how .ico{color:var(--green);display:flex;justify-content:center;margin-bottom:2px}
.how b{display:block;margin:8px 0 4px;font-size:16.5px}
.how p{color:var(--sub);font-size:13.5px}
/* explore */
.exp-search{background:var(--surface);border-bottom:1px solid var(--line);padding:20px 0}
.exp-search .row{display:flex;gap:10px}
.exp-search .box{flex:1;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:0 18px;height:52px;color:var(--sub);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.exp-search input{border:none;outline:none;flex:1;font-size:15px;font-family:inherit}
.exp-search button{background:var(--ink);color:#fff;border:none;border-radius:var(--r-md);padding:0 28px;font-weight:600;cursor:pointer;font-family:inherit;font-size:15px}
.exp-head{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 20px;flex-wrap:wrap;gap:12px}
.exp-head h2{font-size:28px;font-weight:800;letter-spacing:-.024em}
.exp-head .browse{color:var(--sub);font-size:14px}
.exp-tools{display:flex;gap:10px;align-items:center}
.sortwrap{position:relative}
.sortbtn{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:var(--r-sm);padding:11px 15px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.sortmenu{position:absolute;right:0;top:48px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-3);min-width:172px;display:none;overflow:hidden;z-index:40}
.sortmenu.open{display:block}
.sortmenu div{padding:11px 15px;font-size:14px;font-weight:600;cursor:pointer}
.sortmenu div.sel{background:var(--orange);color:#fff}
.viewtog{display:flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.viewtog button{border:none;background:#fff;padding:11px 13px;cursor:pointer;font-size:14px}
.viewtog button.on{background:var(--green-soft);color:var(--green)}
.catbar{display:flex;gap:8px;overflow-x:auto;padding:4px 0 16px;scrollbar-width:none}
.catbar::-webkit-scrollbar{display:none}
.cat{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;color:#4B5563;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}
.cat:hover{border-color:#CBD3D8}
.cat.on{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 6px 14px -8px rgba(30,122,84,.6)}
.spagrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}
.spagrid.list{grid-template-columns:1fr}
.spa{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);overflow:hidden;background:#fff;display:flex;flex-direction:column;content-visibility:auto;contain-intrinsic-size:auto 380px}
.spa .cover{height:164px;background:linear-gradient(135deg,#F2F2F4,#E8E8EC);position:relative;display:flex;align-items:center;justify-content:center}
.spa .cover .init{font-size:44px;font-weight:700;color:rgba(29,29,31,.14)}
.spa .heart{position:absolute;top:13px;right:13px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(16,24,40,.14);font-size:15px;color:#9CA3AF}
.spa .heart.fav{color:#E11D48}
.spa .ratebadge{position:absolute;bottom:11px;left:13px;background:rgba(20,25,20,.78);color:#fff;border-radius:9px;padding:4px 10px;font-size:12.5px;font-weight:700}
.spa .body{padding:17px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.spa h3{font-size:17px;font-weight:800;letter-spacing:-.015em;display:flex;align-items:center;gap:6px}
.spa h3 .ver{color:var(--green);font-size:14px}
.spa .addr{color:var(--sub);font-size:13px}
.spa .rate{font-size:13.5px;font-weight:700}
.spa .rate small{color:var(--sub);font-weight:600}
.spa .rate .none{color:#9CA3AF;font-weight:600;font-style:italic}
.spa .desc{color:var(--sub);font-size:13px}
.spa .chips{display:flex;flex-wrap:wrap;gap:6px}
.spa .chip{background:var(--chipb);border-radius:8px;padding:4px 10px;font-size:11.5px;font-weight:600;color:#4B5563}
.spa .from{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line)}
.spa .from small{color:var(--sub);font-size:11.5px;display:block}
.spa .from b{font-size:19px;letter-spacing:-.02em}
.spa .from .na{color:#9CA3AF;font-size:12.5px;font-style:italic}
.spa .actions{display:flex;gap:8px}
.spa .btn{flex:1;text-align:center;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 0;font-size:13px;font-weight:700;cursor:pointer;background:#fff}
.spa .btn.primary{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 6px 16px -8px rgba(30,122,84,.55)}
/* treatments page */
.tp-hero{text-align:center;padding:46px 0 8px}
.tp-hero h2{font-size:30px;font-weight:800}
.tp-hero p{color:var(--sub);margin-top:6px}
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;padding:34px 0 60px}
.catcard{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);padding:20px;display:flex;gap:14px;cursor:pointer;background:#fff;box-shadow:var(--shadow-1);transition:transform .2s var(--ease-soft),box-shadow .2s var(--ease-soft);align-items:flex-start}
.catcard:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.catcard .ico{width:46px;height:46px;border-radius:var(--r-md);background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.catcard .ico svg{width:23px;height:23px;stroke-width:1.6}
.catcard:hover .ico{background:var(--green-soft);color:var(--green-dark)}
.catcard .inf{flex:1}
.catcard b{font-size:16px}
.catcard .d{color:var(--sub);font-size:13px;margin:2px 0 8px}
.catcard .subs{display:flex;flex-wrap:wrap;gap:5px}
.catcard .subs span{background:var(--chipb);border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600;color:#4B5563}
.catcard .n{font-size:12px;color:var(--green);font-weight:700;margin-top:8px}
.catcard .chev{color:#9CA3AF;font-size:18px}
footer{border-top:1px solid var(--line);background:#fff;padding:44px 0 30px;margin-top:20px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:24px}
.fgrid h4{font-size:14.5px;margin-bottom:12px}
.fgrid a{display:block;color:var(--sub);font-size:13.5px;margin-bottom:8px;cursor:pointer}
.fgrid .tag{color:var(--sub);font-size:13.5px;max-width:230px;margin-top:10px}
.fbottom{display:flex;justify-content:space-between;color:var(--sub);font-size:12.5px;margin-top:34px;flex-wrap:wrap;gap:8px}
.legal{color:#9CA3AF;font-size:11.5px;line-height:1.7;margin-top:18px}
dialog{border:none;border-radius:var(--r-lg);padding:0;max-width:440px;width:92vw;box-shadow:var(--shadow-3);position:fixed;inset:0;margin:auto;height:fit-content;max-height:90vh;overflow:auto}
dialog[open]{animation:sheetIn .34s var(--ease-soft)}          /* materialize: scale + settle, not a flat fade (§12) */
@keyframes sheetIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){dialog[open]{animation:none}}
dialog::backdrop{background:rgba(15,20,30,.4);backdrop-filter:saturate(120%) blur(3px);-webkit-backdrop-filter:saturate(120%) blur(3px)}
.modal{padding:26px}
.modal h3{margin-bottom:4px;font-size:18px}
.modal p{color:var(--sub);font-size:13px;margin-bottom:12px}
.modal label{display:block;font-size:12.5px;font-weight:700;margin:10px 0 4px}
.modal input,.modal select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit}
.modal .go{width:100%;margin-top:16px;padding:13px;background:var(--green);color:#fff;border:none;border-radius:10px;font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit}
.modal .cancel{width:100%;margin-top:8px;padding:11px;background:#fff;border:1px solid var(--line);border-radius:10px;font-weight:600;cursor:pointer;font-family:inherit}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 22px;border-radius:11px;font-size:14px;opacity:0;transition:.3s;pointer-events:none;z-index:99;max-width:90vw;text-align:center}
.toast.show{opacity:1}
.page{display:none}.page.on{display:block}
@media(max-width:820px){.navlinks{display:none}.fgrid{grid-template-columns:1fr 1fr}}

/* detail page */
.det-banner{height:250px;background:linear-gradient(120deg,#EEEEF1,#E6E6EA 70%,#E0E0E5);position:relative}
.det-banner .init{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:88px;font-weight:700;color:rgba(29,29,31,.12)}
.det-back{position:absolute;top:22px;left:24px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:10px 19px;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 2px 10px rgba(16,24,40,.1)}
.det-card{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:30px 32px;margin-top:16px;position:relative;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
@media(min-width:1280px){.det-card{margin-top:-68px}}
.det-card h2{font-size:30px;font-weight:800;letter-spacing:-.028em;line-height:1.08}
.det-card .addr{color:var(--sub);font-size:14px;margin-top:8px}
.det-card .rate{margin-top:9px;font-weight:800;font-size:15px}
.det-card .rate small{color:var(--sub);font-weight:600}
.det-card .rate .src{font-size:11px;color:#9CA3AF;font-weight:600;margin-left:6px}
.det-card .desc{color:var(--sub);font-size:14px;margin-top:12px;max-width:640px;line-height:1.6}
.det-actions{display:flex;flex-direction:column;gap:10px;min-width:158px}
.det-actions a{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:var(--r-md);padding:11px 20px;font-weight:500;font-size:14px;cursor:pointer;background:#fff;color:var(--ink);transition:border-color .15s ease,background .15s ease}
.det-actions a:hover{border-color:var(--line-strong);background:var(--surface)}
.det-actions a .ico{opacity:.55;flex:0 0 auto}
.det-actions a.db-primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.det-actions a.db-primary:hover{background:var(--green-dark);border-color:var(--green-dark)}
/* reassurance at the booking decision point — reinforces the no-commission USP */
.bk-trust{font-size:12px;color:var(--sub);text-align:center;line-height:1.6;margin:8px 4px 4px;letter-spacing:.002em}
.det-tabs{display:flex;gap:6px;background:#F3F5F7;border:1px solid var(--line);border-radius:var(--r-md);padding:5px;margin:28px 0 22px;width:fit-content}
.det-tabs button{border:none;background:transparent;border-radius:var(--r-sm);padding:10px 20px;font-weight:700;font-size:14px;cursor:pointer;color:var(--sub);font-family:inherit;transition:color .15s ease}
.det-tabs button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(16,24,40,.09)}
.trow{border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;background:#fff;transition:border-color .15s ease,box-shadow .18s var(--ease-soft)}
.trow:hover{border-color:rgba(203,227,213,.9);box-shadow:var(--shadow-1)}
.trow .cchip{display:inline-block;background:var(--green-soft);color:var(--green-dark);border-radius:7px;padding:3px 10px;font-size:11.5px;font-weight:700;margin-bottom:7px}
.trow b{font-size:16px;display:block}
.trow .note{color:var(--sub);font-size:12.5px;margin-top:3px}
.trow .right{text-align:right;flex:0 0 auto}
.trow .price{font-size:21px;font-weight:800;color:var(--green-dark)}
.trow .price.quote{font-size:13px;color:#9CA3AF;font-weight:600;font-style:italic}
.trow .booknow{display:inline-block;background:var(--green);color:#fff;border-radius:var(--r-sm);padding:10px 19px;font-weight:700;font-size:13.5px;cursor:pointer;margin-top:8px;box-shadow:0 6px 14px -8px rgba(30,122,84,.6)}
.rev-sum{display:flex;gap:26px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin-bottom:16px;flex-wrap:wrap}
.rev-sum .big{font-size:40px;font-weight:800}
.rev-sum .stars{color:#F5A623;font-size:17px}
.rev-sum .cnt{color:var(--sub);font-size:13px}
.rev-sum .glabel{font-size:11.5px;color:#9CA3AF}
.rev{border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:10px}
.rev .head{display:flex;justify-content:space-between;font-size:13.5px;font-weight:700}
.rev .head .stars{color:#F5A623}
.rev .txt{color:#374151;font-size:14px;margin-top:6px}
.rev .when{color:#9CA3AF;font-size:11.5px;font-weight:500}
.rev-empty{color:var(--sub);font-size:14px;border:1px dashed var(--line);border-radius:14px;padding:22px;text-align:center;margin-bottom:14px}
.wform{border:1px solid var(--line);border-radius:14px;padding:20px;background:#FBFCFD;margin-top:6px}
.wform h4{font-size:15px;margin-bottom:10px}
.wform label{display:block;font-size:12.5px;font-weight:700;margin:10px 0 4px}
.wform input,.wform textarea,.wform select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit}
.wform textarea{min-height:80px;resize:vertical}
.starpick{display:flex;gap:4px;font-size:24px;cursor:pointer;color:#D1D5DB}
.starpick span.on{color:#F5A623}
.wform .submit{margin-top:14px;background:var(--green);color:#fff;border:none;border-radius:10px;padding:11px 20px;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit}


.cover,.det-banner{background-size:cover !important;background-position:center !important}
.cover.haspic .init,.det-banner.haspic .init{display:none}
.gattr{position:absolute;bottom:8px;right:10px;background:rgba(20,25,20,.6);color:#fff;font-size:10px;border-radius:5px;padding:2px 7px;font-weight:600;display:none}
.haspic .gattr{display:block}
.det-banner.haspic{cursor:pointer}
.pcount{position:absolute;bottom:8px;left:10px;background:rgba(20,25,20,.6);color:#fff;font-size:11px;border-radius:5px;padding:2px 8px;font-weight:600;display:none}
.det-banner.haspic .pcount{display:block}
#lightbox{position:fixed;inset:0;background:rgba(10,14,11,.93);z-index:300;display:none;align-items:center;justify-content:center}
#lightbox.on{display:flex}
#lbImg{max-width:88vw;max-height:80vh;border-radius:10px;box-shadow:0 10px 50px rgba(0,0,0,.5)}
.lb-x{position:absolute;top:14px;right:18px;color:#fff;font-size:22px;cursor:pointer;background:rgba(255,255,255,.14);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:30px;cursor:pointer;background:rgba(255,255,255,.14);border-radius:50%;width:46px;height:46px;display:flex;align-items:center;justify-content:center;user-select:none}
.lb-prev{left:16px}.lb-next{right:16px}
.lb-meta{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#fff;font-size:13px;opacity:.85}
@media(max-width:600px){.lb-nav{width:38px;height:38px;font-size:24px}}

/* community */
.cm-head{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 16px;flex-wrap:wrap;gap:10px}
.cm-head h2{font-size:28px;font-weight:800;letter-spacing:-.024em}
.cm-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.cm-write{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);padding:20px;background:#fff;margin-bottom:22px;box-shadow:var(--shadow-1)}
.cm-write textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-family:inherit;font-size:14px;min-height:70px;resize:vertical}
.cm-write .row{display:flex;gap:10px;margin-top:10px;align-items:center}
.cm-write select{padding:10px 13px;border:1px solid var(--line);border-radius:var(--r-sm);font-family:inherit;font-size:13.5px}
.cm-write .go{margin-left:auto;background:var(--green);color:#fff;border:none;border-radius:999px;padding:11px 24px;font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;box-shadow:0 6px 16px -8px rgba(30,122,84,.55)}
.post{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);background:#fff;padding:20px;margin-bottom:14px;box-shadow:var(--shadow-1);transition:box-shadow .18s var(--ease-soft)}
.post:hover{box-shadow:var(--shadow-2)}
.post .top{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.post .ava{width:36px;height:36px;border-radius:50%;background:var(--green-soft);color:var(--green-dark);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:0 0 auto}
.post .who b{font-size:13.5px;display:block}
.post .who small{color:var(--sub);font-size:11.5px}
.post .ptag{margin-left:auto;background:var(--chipb);border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700;color:#4B5563}
.post .ptag.official{background:var(--green-soft);color:var(--green-dark)}
.post h4{font-size:15.5px;margin-bottom:5px}
.post .body{font-size:13.5px;color:#374151;white-space:pre-line}
.post .acts{display:flex;gap:16px;margin-top:12px;color:var(--sub);font-size:12.5px;font-weight:600}
.post .acts span{cursor:pointer}
.post .acts span.liked{color:#E11D48}
.post .cmts{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;display:none}
.post .cmts.open{display:block}
.post .cmt{font-size:13px;padding:7px 0;border-bottom:1px dashed var(--line)}
.post .cmt b{font-size:12.5px}
.post .cmtrow{display:flex;gap:8px;margin-top:8px}
.post .cmtrow input{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px 11px;font-size:13px;font-family:inherit}
.post .cmtrow button{background:var(--green);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-weight:700;font-size:12.5px;cursor:pointer;font-family:inherit}
/* my page */
.mp-card{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);background:#fff;padding:26px;display:flex;gap:18px;align-items:center;margin:30px 0 18px;flex-wrap:wrap;box-shadow:var(--shadow-1)}
.mp-ava{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#3F9463,#256B41);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800}
.mp-card h2{font-size:21px;font-weight:800}
.mp-card .sub{color:var(--sub);font-size:13px;margin-top:3px}
.mp-stats{display:flex;gap:0;border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);overflow:hidden;margin-bottom:24px;background:#fff;box-shadow:var(--shadow-1)}
.mp-stat{flex:1;text-align:center;padding:18px 8px;cursor:pointer;transition:background .15s ease}
.mp-stat:hover{background:#FAFBFC}
.mp-stat+.mp-stat{border-left:1px solid var(--line)}
.mp-stat b{display:block;font-size:22px;color:var(--green-dark);letter-spacing:-.02em}
.mp-stat small{color:var(--sub);font-size:12px}
.mp-sec{margin-bottom:26px}
.mp-sec h3{font-size:17px;font-weight:800;margin-bottom:12px;letter-spacing:-.01em}
.mp-empty{border:1px dashed var(--line);border-radius:var(--r-md);padding:24px;color:var(--sub);font-size:13.5px;text-align:center;background:#FCFCFD;line-height:1.6}
.mp-cta{margin-top:13px;background:var(--green);color:#fff;border:none;border-radius:999px;padding:10px 20px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;box-shadow:0 6px 16px -8px rgba(30,122,84,.55)}
.mp-item{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-md);background:#fff;padding:15px 17px;margin-bottom:9px;display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:13.5px;box-shadow:var(--shadow-1)}
.mp-item b{font-size:14px}
.mp-item small{color:var(--sub);display:block;margin-top:2px}
.mp-item .st{background:#FDF1E3;color:#A15C00;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700;white-space:nowrap}


.authmodal .hint{background:var(--green-soft);border-radius:10px;padding:12px 14px;font-size:12.5px;color:var(--green-dark);margin-top:12px}
.userchip{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;cursor:pointer}
.userchip .ua{width:30px;height:30px;border-radius:50%;background:var(--green-soft);color:var(--green-dark);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}

.oauthbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;margin-top:8px}
.oauthbtn:hover{background:#F8F9FB}
.authdivider{display:flex;align-items:center;gap:10px;color:#9CA3AF;font-size:11.5px;margin:16px 0 4px}
.authdivider:before,.authdivider:after{content:'';flex:1;height:1px;background:var(--line)}

.cp-head{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 16px;flex-wrap:wrap;gap:10px}
.cp-head h2{font-size:25px;font-weight:800}
.cp-head .sw{border:1px solid var(--line);border-radius:9px;padding:9px 15px;font-size:13px;font-weight:700;cursor:pointer;background:#fff}
.cptable{width:100%;border-collapse:collapse;background:#fff;border:1px solid rgba(232,234,240,.8);border-radius:var(--r-md);overflow:hidden;font-size:13.5px;box-shadow:var(--shadow-1)}
.cptable th{background:#F4F6FA;text-align:left;padding:10px 14px;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--sub);cursor:pointer}
.cptable td{padding:10px 14px;border-top:1px solid var(--line);vertical-align:top}
.cptable .cl{font-weight:700;cursor:pointer;color:var(--green-dark)}
.cptable .pr{font-weight:800;white-space:nowrap}
.cptable .bk{background:var(--green);color:#fff;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.cptable tr.best td{background:#F2F9F6}
.cp-quote{margin-top:16px;border:1px dashed var(--line);border-radius:12px;padding:14px 16px;font-size:13px;color:var(--sub)}
.cp-quote a{color:var(--green);font-weight:700;cursor:pointer}
@media(max-width:640px){.cptable .notecol{display:none}}

.tabbar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:none;z-index:80;padding-bottom:env(safe-area-inset-bottom)}
.tabbar a{flex:1;text-align:center;padding:8px 0 9px;font-size:10.5px;font-weight:700;color:#9CA3AF;cursor:pointer}
.tabbar a .ic{display:flex;justify-content:center;margin-bottom:3px}
.tabbar a .ic svg{width:23px;height:23px}
.tabbar a.on{color:var(--green)}
@media(max-width:820px){.tabbar{display:flex}.page{padding-bottom:64px}footer{padding-bottom:80px}}

.ls-wrap{max-width:640px}
.ls-card{border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);background:#fff;padding:28px;margin:26px 0 40px;box-shadow:var(--shadow-2)}
.ls-card h2{font-size:24px;font-weight:800;margin-bottom:4px}
.ls-card .sub{color:var(--sub);font-size:14px;margin-bottom:18px}
.ls-card label{display:block;font-size:12.5px;font-weight:700;margin:12px 0 4px}
.ls-card input,.ls-card select,.ls-card textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit}
.ls-card textarea{min-height:70px;resize:vertical}
.ls-card .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ls-card .go{width:100%;margin-top:18px;padding:14px;background:var(--green);color:#fff;border:none;border-radius:999px;font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit;box-shadow:0 8px 20px -8px rgba(30,122,84,.55)}
.ls-perks{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:18px 0 6px}
.ls-perk{background:var(--green-soft);border-radius:11px;padding:12px;font-size:12.5px;color:var(--green-dark);font-weight:600}
.claimlink{font-size:12.5px;color:var(--sub);margin-top:8px}
.claimlink a{color:var(--green);font-weight:700;cursor:pointer}

.pr-rows{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.pr-row{display:grid;grid-template-columns:150px 1fr 110px 30px;gap:8px;align-items:center}
.pr-row select,.pr-row input{padding:10px 10px;font-size:13.5px}
.pr-row .rm{border:none;background:none;color:#C4C9D4;font-size:17px;cursor:pointer;text-align:center}
.pr-row .rm:hover{color:#E11D48}
.pr-add{margin-top:10px;background:var(--green-soft);color:var(--green-dark);border:none;border-radius:9px;padding:9px 16px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}
.pr-hint{font-size:11.5px;color:#9CA3AF;margin-top:6px}
@media(max-width:640px){.pr-row{grid-template-columns:1fr;gap:4px;border:1px solid var(--line);border-radius:10px;padding:10px}.pr-row .rm{text-align:right}}


/* clinic claim (B2B) flow */
.cl-kicker{font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--green);margin-bottom:6px}
.cl-head{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin-bottom:16px}
.cl-head h1{font-size:26px;margin:0 0 8px;line-height:1.25}
.cl-meta{font-size:13.5px;color:var(--sub);line-height:1.9}
.cl-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:6px 0 2px}
.cl-step{background:var(--green-soft);border-radius:12px;padding:14px 16px;font-size:13.5px;color:#28563c}
.cl-step b{display:block;font-size:14px;color:var(--green-dark);margin-bottom:3px}
.cl-form label{display:block;font-size:12.5px;font-weight:700;color:#374151;margin:12px 0 5px}
.cl-form input,.cl-form select,.cl-form textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:14px;font-family:inherit;background:#fff}
.cl-form textarea{min-height:80px;resize:vertical}
.cl-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:600px){.cl-row2{grid-template-columns:1fr}}
.cl-hint{font-size:12px;color:var(--sub);margin-top:5px}
.cl-submit{width:100%;margin-top:18px;padding:14px;background:var(--green);color:#fff;border:none;border-radius:12px;font-weight:800;font-size:15px;cursor:pointer;font-family:inherit}
.cl-find{display:flex;flex-direction:column;gap:2px;margin-top:10px}
.cl-hit{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:#fff;margin-bottom:8px}
.cl-hit:hover{border-color:var(--green);box-shadow:0 3px 12px rgba(30,122,84,.1)}
.cl-hit .nm{font-weight:700;font-size:14.5px}
.cl-hit .ad{font-size:12.5px;color:var(--sub);margin-top:2px}
.cl-hit .go{margin-left:auto;color:var(--green);font-weight:800;font-size:13px;white-space:nowrap}
.cl-hit .badge{background:var(--green-soft);color:var(--green-dark);border-radius:6px;padding:2px 7px;font-size:10.5px;font-weight:800;margin-left:auto}
.cl-price{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px dashed var(--line);font-size:13.5px}
.cl-price b{white-space:nowrap}
.cl-warn{background:#FDF1E3;border:1px solid #F0D9B8;color:#8A5200;border-radius:12px;padding:13px 15px;font-size:13.5px;margin:14px 0}
.cl-ok{background:var(--green-soft);border:1px solid #BFE0CC;color:#22553a;border-radius:14px;padding:22px;text-align:center}
/* fresha-pass 2: header + legal */
@media(max-width:600px){.exp-search .row{flex-wrap:nowrap}.exp-search .box{min-width:0;flex:1}.exp-search button{flex:0 0 auto;padding:10px 14px;font-size:13px}
.searchrow{flex-wrap:nowrap}.searchrow .box{min-width:0;flex:1}.searchrow button{flex:0 0 auto;padding:0 16px;font-size:14px}}
.listbiz{background:var(--ink);color:#fff;border-radius:var(--r-sm);padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.listbiz:hover{opacity:.88}
.menubtn{display:flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:#fff;border-radius:var(--r-sm);padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;color:var(--ink)}
.menubtn:hover{background:var(--surface)}
.menuwrap{position:relative}
.megamenu{position:absolute;top:calc(100% + 10px);right:0;width:250px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 44px rgba(0,0,0,.14);padding:10px 0;display:none;z-index:120}
.megamenu.open{display:block}
.megamenu .mh{padding:9px 18px 4px;font-size:10.5px;font-weight:800;letter-spacing:.8px;color:#9CA3AF;text-transform:uppercase}
.megamenu a{display:block;padding:9px 18px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;text-decoration:none}
.megamenu a:hover{background:var(--green-soft);color:var(--green)}
.megamenu .sep{height:1px;background:var(--line);margin:7px 0}
/* tablet header: the full nav + CTA row stops fitting below ~1024 */
@media(max-width:1023px){
  .nav{gap:16px}
  .navlinks{gap:16px;font-size:14px}
  .navright{gap:12px}
  .listbiz{display:none}   /* still reachable in Menu → For clinics */
}
@media(max-width:860px){ .navlinks{gap:11px;font-size:13.5px} .logo{font-size:19px} }
/* Below 820px the center nav links are hidden (see 05-treatments.css), which removes the
   auto-margin spacer that pushed the actions right. Pin Sign in + Menu to the right corner. */
@media(max-width:820px){ .navright{margin-left:auto} }
@media(max-width:600px){.megamenu{position:fixed;top:60px;right:10px;left:10px;width:auto}.getstarted{display:none}
.listbiz{display:none}
.signin{white-space:nowrap}
.menubtn{padding:7px 10px;font-size:12px}
.navright{gap:8px}}
.legalpage{max-width:760px;margin:0 auto;padding:36px 24px 70px;font-size:14.5px;line-height:1.75;color:#374151}
.legalpage h2{font-size:26px;color:var(--ink);margin:0 0 4px}
.legalpage .upd{color:var(--sub);font-size:12.5px;margin-bottom:26px}
.legalpage h3{font-size:16.5px;color:var(--ink);margin:26px 0 8px}
.legalpage p{margin:0 0 12px}
.legalpage ul{margin:0 0 12px 20px;padding:0}
.legalpage li{margin-bottom:6px}
/* fresha-pass */
.spa .cbadge{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.95);color:#1F2937;border-radius:8px;padding:3px 9px;font-size:10.5px;font-weight:800;box-shadow:0 2px 8px rgba(0,0,0,.12);letter-spacing:.3px}
.spa .cbadge.deal{background:#FDF1E3;color:#A15C00}
.svclist{border-top:1px dashed var(--line);margin-top:9px;padding-top:4px}
.svcrow{display:flex;justify-content:space-between;gap:10px;padding:4.5px 0;font-size:13px}
.svcrow .sn{color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.svcrow .sp{font-weight:800;white-space:nowrap}
.svcmore{color:var(--green);font-weight:700;font-size:12.5px;padding-top:4px}
.hrs .open{color:var(--green);font-weight:800}
.hrs .closed{color:#B4231F;font-weight:800}
.hrs details{margin-top:4px}
.hrs summary{cursor:pointer;font-size:12.5px;color:var(--sub)}
.hrs table{font-size:12.5px;color:#374151;border-collapse:collapse;margin-top:6px}
.hrs td{padding:2px 10px 2px 0;white-space:nowrap}
#dRail{display:none;background:#fff;border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:22px}
#dRail h3{font-size:18px;margin:0 0 8px;letter-spacing:-.02em}
#dRail .rl-rate{font-size:13px;margin-bottom:8px}
#dRail .rl-addr{font-size:12.5px;color:var(--sub);margin-bottom:12px}
#dRail button{width:100%;background:var(--green);color:#fff;border:none;border-radius:999px;padding:13px 0;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;box-shadow:0 8px 20px -8px rgba(30,122,84,.55)}
#dRail .rl-links{display:flex;gap:14px;justify-content:center;margin-top:11px;font-size:12.5px}
#dRail .rl-links a{color:var(--green);font-weight:700;cursor:pointer;text-decoration:none}
@media(min-width:1280px){
 #page-detail .wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:28px;align-items:start}
 #page-detail .wrap>*{grid-column:1}
 #page-detail .wrap>#dRail{display:block;grid-column:2;grid-row:1/span 30;position:sticky;top:84px}
 #stickyBook{display:none !important}
}
/* search suggest */
.sugwrap{position:relative}
.suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.1);z-index:60;overflow:hidden;display:none;text-align:left}
.suggest.open{display:block}
.suggest .sg{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;font-size:13.5px}
.suggest .sg:hover{background:var(--green-soft)}
.suggest .sg .t{background:var(--chipb);border-radius:5px;padding:2px 7px;font-size:10.5px;font-weight:700;color:var(--sub);flex:0 0 auto}
.suggest .sg b{font-weight:700}
.suggest .sg small{color:var(--sub);margin-left:auto;font-size:11.5px}
/* filter chips */
.fchips{display:flex;gap:9px;flex-wrap:wrap;margin:2px 0 12px;align-items:center}
.fchip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font-size:13px;font-weight:600;color:#4B5563;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}
.fchip:hover{border-color:#CBD3D8}
.fchip.on{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 6px 14px -8px rgba(30,122,84,.6)}
.fchips select{height:38px;padding:0 34px 0 15px!important;border-radius:999px!important;font-size:13px!important;font-weight:600;background:#fff;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%236B7280' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center}
/* treatment guide */
.guide{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:18px;overflow:hidden}
.guide summary{padding:14px 18px;font-weight:700;font-size:14.5px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}
.guide summary::after{content:'▾';margin-left:auto;color:var(--sub)}
.guide[open] summary::after{content:'▴'}
.guide .gbody{padding:0 18px 16px;font-size:13.5px;color:#374151}
.guide .grow{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:10px}
.guide .gcell{background:#F8F9FB;border-radius:10px;padding:10px}
.guide .gcell small{display:block;color:var(--sub);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.guide .gdisc{font-size:11px;color:#9CA3AF;margin-top:10px}

.dstrip{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.dstrip::-webkit-scrollbar{display:none}
.dchip{flex:0 0 auto;width:52px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:7px 0;cursor:pointer;background:#fff}
.dchip small{display:block;font-size:10px;color:var(--sub);font-weight:700;text-transform:uppercase}
.dchip b{font-size:15px}
.dchip.on{background:var(--green);border-color:var(--green)}
.dchip.on small,.dchip.on b{color:#fff}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:4px}
.tchip{border:1px solid var(--line);border-radius:8px;padding:8px 0;text-align:center;font-size:12.5px;font-weight:600;cursor:pointer;background:#fff}
.tchip.on{background:var(--green);border-color:var(--green);color:#fff}
.bm-note{font-size:11.5px;color:#9CA3AF;margin-top:10px}

.modal{position:relative}
.modal h3{padding-right:44px}
.mclose{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:none;background:#F3F4F6;color:#6B7280;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;z-index:5}
.mclose:hover{background:#E5E7EB;color:#111}

/* ===== mobile proportions (<=600px) ===== */
@media(max-width:600px){
  /* header */
  .logo{font-size:18px;gap:7px}
  .logo .mark img,.logo img.mark{width:24px;height:24px}
  .signin{font-size:13.5px}
  header .wrap.nav{padding-left:14px;padding-right:14px}

  /* hero */
  .hero{padding:38px 0 34px}
  .hero h1{font-size:29px;line-height:1.14;letter-spacing:-.02em}
  .hero .sub{font-size:15px;margin:12px auto 20px;max-width:none}
  .searchrow .box{height:46px;padding:0 14px}
  .searchrow input{font-size:14px}
  .searchrow button{font-size:14px;padding:0 15px}
  .popchips{gap:7px}
  .popchips small{width:100%;margin-bottom:2px}
  .pchip{font-size:13px;padding:7px 13px}

  /* sections */
  section{padding:34px 0}
  .sec-title{font-size:21px}
  .sec-sub{font-size:14px;margin:3px 0 16px}
  .wrap{padding-left:16px;padding-right:16px}

  /* explore header + filters */
  .exp-search{padding:12px 0}
  .exp-search .box{height:44px}
  .exp-search input{font-size:14px}
  .exp-head h2{font-size:21px}
  .exp-head .browse{font-size:13px}
  .fchips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;margin-right:-16px;padding-right:16px}
  .fchips::-webkit-scrollbar{display:none}
  .fchips>*{flex:0 0 auto}
  .icat span{font-size:20px}
  .icat small{font-size:11px}

  /* treatments / portal heroes */
  .tp-hero{padding:26px 0 4px}
  .tp-hero h2{font-size:23px}
  .tp-hero p{font-size:14px}
  .ms-hero h2{font-size:23px}
  .ms-hero p{font-size:14px}
  .cl-head h1{font-size:21px}
  .legalpage h2{font-size:22px}

  /* clinic detail */
  .det-banner{height:170px}
  .det-card{padding:18px 16px;margin-top:12px;gap:12px}
  .det-card h2{font-size:20px;line-height:1.25}
  .det-card .addr{font-size:13px}
  .det-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0;width:100%}
  .det-actions a{padding:11px 8px;font-size:13px}
  .det-actions a:nth-last-child(-n+3){grid-column:1/-1}
  .stickybook .nm{font-size:14px;max-width:42%}
  .stickybook .pr{display:none}
  .stickybook button{padding:9px 16px;font-size:13px}
  .det-tabs button{font-size:13.5px;padding:9px 12px}
  .trow{padding:11px 12px}
  .trow .price{font-size:15px}

  /* community + post */
  .cm-head h2{font-size:21px}
  .post .ava,.feedcard .ava{width:32px;height:32px;font-size:13px}

  /* forms & remaining headings */
  .ls-card{padding:18px 16px;margin:18px 0 30px}
  .ls-card h2{font-size:20px;line-height:1.25}
  .ls-card p{font-size:14px}
  .row2{grid-template-columns:1fr 1fr;gap:10px}
  .row2 select,.row2 input{font-size:13.5px}
  .ls-perk{font-size:13px;padding:9px 12px}
  #page-about h2,#page-contact h2,#page-mypage h2{font-size:21px}
  #page-about p,#page-contact p{font-size:14.5px}
  .mp-card{padding:16px}
  .mp-stats{gap:8px}
  .cm-write textarea{font-size:14px}
  .cm-write input{font-size:14px}
  .cm-write .row{gap:8px}
  .cm-write .row select{font-size:13px}
  .cm-write .row button{font-size:12.5px;padding:9px 10px}
  .cm-sort,.cm-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .cm-sort::-webkit-scrollbar,.cm-tabs::-webkit-scrollbar{display:none}
  .cm-sort>*,.cm-tabs>*{flex:0 0 auto}
  /* misc */
  .catcard .inf b{font-size:15px}
  .how .step b{font-size:15px}
  footer .fgrid{gap:18px}
}
@media(max-width:360px){
  .hero h1{font-size:25px}
  .det-actions{grid-template-columns:1fr}
  .det-actions a:nth-last-child(-n+3){grid-column:auto}
}



/* ===== clinic owner dashboard ===== */
.ms-top{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:6px 0 16px}
.ms-kicker{font-size:11.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--green)}
.ms-top h2{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:2px 0 0}
.ms-topact span{cursor:pointer;font-size:13.5px;font-weight:700;color:var(--green);border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;white-space:nowrap}
.ms-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:10px;margin-bottom:14px}
.ms-kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 15px}
.ms-kpi b{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.ms-kpi small{display:block;color:var(--sub);font-size:11.5px;margin-top:3px;font-weight:600}
.ms-kpi.hot{background:var(--green-soft);border-color:#BFE0CC}
.ms-kpi.hot b{color:var(--green-dark)}
.ms-comp{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:14px}
.ms-comp .hd{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px}
.ms-comp .hd small{color:var(--sub);font-size:12px}
.ms-comp .bar{height:7px;background:#EEF1EE;border-radius:99px;margin:9px 0 10px;overflow:hidden}
.ms-comp .bar i{display:block;height:100%;background:var(--green);border-radius:99px}
.ms-comp .todo{display:flex;gap:7px;flex-wrap:wrap}
.ms-comp .todo span{font-size:12.5px;font-weight:700;color:var(--green-dark);background:var(--green-soft);border-radius:999px;padding:6px 12px;cursor:pointer}
.ms-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);margin-bottom:16px}
.ms-tabs::-webkit-scrollbar{display:none}
.ms-tabs button{flex:0 0 auto;border:none;background:none;padding:11px 14px;font-size:14px;font-weight:700;color:var(--sub);cursor:pointer;font-family:inherit;border-bottom:2.5px solid transparent;display:flex;align-items:center;gap:6px}
.ms-tabs button.on{color:var(--ink);border-bottom-color:var(--green)}
.ms-tabs button i{background:#E11D48;color:#fff;border-radius:99px;font-style:normal;font-size:10.5px;font-weight:800;padding:1px 6px}
.ms-fchips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:6px}
.ms-fchip{font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer;color:#4B5563;background:#fff}
.ms-fchip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.ms-bkcard{border-top:1px solid var(--line);padding:14px 0}
.ms-bkcard .hd{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:15px}
.ms-bkcard .hd .ago{margin-left:auto;color:var(--sub);font-size:12px;font-weight:600}
.ms-bkcard .tx{font-size:13.5px;color:#374151;margin-top:5px;line-height:1.55}
.ms-bkcard .ct{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px}
.ms-bkcard .ct a{font-size:12.5px;font-weight:700;color:var(--green-dark);background:var(--green-soft);border-radius:8px;padding:6px 11px;text-decoration:none}
.ms-bkcard .stbtns{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.ms-bkcard .stbtns button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;color:var(--ink)}
.ms-bkcard .stbtns button:hover{border-color:var(--green);color:var(--green-dark)}
.ms-bkcard .stbtns button.confirm{background:var(--green);border-color:var(--green);color:#fff}
.ms-bkcard .stbtns button.confirm:hover{filter:brightness(1.07);color:#fff}
.ms-bkcard .stbtns button.cancel{color:#B91C1C}
.ms-bkcard .stbtns button.cancel:hover{border-color:#B91C1C;color:#B91C1C}
.ms-bkcard .note{display:flex;gap:7px;margin-top:9px}
.ms-bkcard .note input{flex:1;border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:12.5px;font-family:inherit}
.ms-bkcard .note button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 13px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.ms-reply{background:var(--green-soft);border-radius:10px;padding:10px 12px;margin-top:9px;font-size:13px;color:#28563c}
.ms-reply b{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;color:var(--green-dark)}
.ms-mhead,.ms-mrow{display:grid;grid-template-columns:1.1fr 1.7fr 1fr 1.3fr 36px;gap:8px;align-items:center}
.ms-mhead{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#9CA3AF;padding:10px 0 6px;border-bottom:1px solid var(--line)}
.ms-mrow{padding:7px 0;border-bottom:1px solid #F3F4F6}
.ms-mrow input{border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:13px;font-family:inherit;min-width:0;width:100%}
.ms-mrow button.del{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 0;font-size:12px;color:#B91C1C;cursor:pointer;font-family:inherit;font-weight:800}
.ms-mrow.add{border-bottom:none;padding-top:12px}
.ms-mrow button.add{border:none;background:var(--green);color:#fff;border-radius:8px;padding:9px 0;font-size:12px;font-weight:800;cursor:pointer;font-family:inherit}
.ms-hint{font-size:12.5px;color:var(--sub);line-height:1.6;margin-top:12px}
@media(max-width:720px){
  .ms-mhead{display:none}
  .ms-mrow{grid-template-columns:1fr 1fr;gap:7px;padding:12px 0;position:relative}
  .ms-mrow .n{grid-column:1/-1;order:-1;font-weight:700}
  .ms-mrow .o{grid-column:1/-1}
  .ms-mrow button.del,.ms-mrow button.add{grid-column:1/-1;padding:10px 0}
}


@media(max-width:600px){
  .ms-top{margin:2px 0 12px;align-items:flex-start}
  .ms-top h2{font-size:20px;line-height:1.25}
  .ms-topact span{padding:8px 13px;font-size:12.5px}
  .ms-kpis{grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}
  .ms-kpi{padding:10px 9px;border-radius:12px}
  .ms-kpi b{font-size:19px}
  .ms-kpi small{font-size:10.5px;line-height:1.3}
  .ms-comp{padding:12px 13px}
  .ms-comp .hd{font-size:13px}
  .ms-comp .todo{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .ms-comp .todo::-webkit-scrollbar{display:none}
  .ms-comp .todo span{flex:0 0 auto;font-size:12px;padding:6px 11px}
  .ms-tabs button{font-size:13px;padding:10px 11px}
  .ms-sec{padding:15px 14px}
  .ms-bkcard .hd{font-size:14.5px}
  .ms-bkcard .hd .ago{margin-left:0;width:100%}
  .ms-bkcard .ct a{font-size:12px;padding:7px 10px}
  .ms-bkcard .stbtns button{padding:9px 12px;font-size:12px}
}

/* compare sub-type filters + mobile table */
#cpSubs{display:none;gap:7px;flex-wrap:wrap;margin:12px 0 4px}
.cp-sub{font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;color:#4B5563;background:#fff;white-space:nowrap}
.cp-sub.on{background:var(--green);border-color:var(--green);color:#fff}
.cptable-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:640px){
  #cpSubs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  #cpSubs::-webkit-scrollbar{display:none}
  #cpSubs>*{flex:0 0 auto}
  .cptable{font-size:13px}
  .cptable td,.cptable th{padding:9px 8px}
}

@media(max-width:640px){
  /* plain block stacking beats flex here — a nowrap chip row was forcing the flex item wider than the screen */
  .cp-head{display:block}
  .cp-head>div{width:100%;max-width:100%;min-width:0}
  #page-compare h2{font-size:21px;line-height:1.25}
  #cpSubs{margin:10px 0 12px;width:100%;max-width:100%;min-width:0;overflow-x:auto;flex-wrap:nowrap}
}

.signout{font-size:13px;font-weight:700;color:#6B7280;cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;white-space:nowrap}
.signout:hover{color:#B91C1C;border-color:#F0C9C9}
@media(max-width:820px){.signout{display:none !important}}

/* ===== Newer components =====
 *
 * Price-request buttons, price-provenance trust badges, the homepage price-spread strip,
 * the hours-aware booking picker, and My Page reservation cards.
 *
 * One thing here is product logic wearing a CSS costume: `.tb.price` (green, "published by
 * the clinic") versus `.tb.src` (grey, "from their website"). Those two states mean
 * genuinely different things about where a price came from. Restyle them freely, but keep
 * them visually distinct — collapsing them would make scraped prices look clinic-verified.
 */
/* price-request affordance */
.askbtn{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:800;color:var(--green-dark);background:var(--green-soft);border:1px solid #CBE3D5;border-radius:999px;padding:7px 13px;cursor:pointer}
.askbtn:hover{background:#DCEEE3}
.askbtn.done{background:#F3F4F6;border-color:var(--line);color:#6B7280;cursor:default}
.ask-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#FFF9F0;border:1px solid #F0DFC6;border-radius:14px;padding:15px 17px;margin:14px 0}
.ask-txt{flex:1;min-width:200px;font-size:13.5px;color:#7A5518;line-height:1.55}
.ask-txt b{display:block;color:#5E4110;font-size:14.5px;margin-bottom:2px}
.ask-cta{background:var(--green);color:#fff;border:none;border-radius:999px;padding:11px 20px;font-weight:800;font-size:13.5px;cursor:pointer;font-family:inherit;white-space:nowrap}
.ask-cta.done{background:#EDEFEC;color:#6B7280;cursor:default}
@media(max-width:600px){.ask-cta{width:100%}}
.bk-card{border:1px solid var(--line);border-radius:14px;padding:15px 17px;margin-bottom:11px;background:#fff}
.bk-card.dead{opacity:.62}
.bk-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.bk-hd b{font-size:15.5px;font-weight:800;cursor:pointer}
.bk-hd b:hover{color:var(--green)}
.bk-hd b.nolink{cursor:default}
.bk-hd b.nolink:hover{color:inherit}
.bk-hd small{display:block;color:var(--sub);font-size:12.5px;margin-top:3px;font-weight:500}
.bk-hd small b{font-size:12.5px;color:var(--ink);cursor:default}
.bk-steps{display:flex;gap:0;margin:14px 0 12px}
.bk-step{flex:1;position:relative;text-align:center}
.bk-step i{display:block;width:11px;height:11px;border-radius:50%;background:#E3E6E4;margin:0 auto 6px;position:relative;z-index:1}
.bk-step.on i{background:var(--green)}
.bk-step:not(:last-child):after{content:'';position:absolute;top:5px;left:50%;width:100%;height:2px;background:#E3E6E4}
.bk-step.on:not(:last-child):after{background:var(--green)}
.bk-step span{font-size:11px;font-weight:700;color:#9CA3AF}
.bk-step.on span{color:var(--green-dark)}
.bk-next{font-size:13px;color:#4B5563;line-height:1.55;background:#F7F9F8;border-radius:10px;padding:10px 13px}
.bk-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}
.bk-act{font-size:12.5px;font-weight:700;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;text-decoration:none;white-space:nowrap}
.bk-act:hover{background:#F5F7F6}
.bk-act.danger{color:#B91C1C;border-color:#F1D5D5}
@media(max-width:600px){.bk-acts .bk-act{flex:1 1 auto;text-align:center}}
.dchip.off{opacity:.4;cursor:not-allowed;background:#F5F6F5;border-color:var(--line)}
.dchip.off u{display:block;text-decoration:none;font-size:9px;font-weight:700;color:#9CA3AF;margin-top:1px}
.dchip u{display:none}
.bm-hrs{font-size:12.5px;color:var(--green-dark);background:var(--green-soft);border-radius:9px;padding:7px 11px;margin:0 0 8px}
.tnone{grid-column:1/-1;font-size:13px;color:var(--sub);background:#F7F8F7;border-radius:10px;padding:12px 14px;line-height:1.5}
.proof{max-width:940px;margin:34px auto 4px;text-align:left}
.proof-hd{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8A9490;text-align:center;margin-bottom:16px}
.proof-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.proof-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;cursor:pointer;transition:transform .18s var(--ease-soft),box-shadow .18s var(--ease-soft),border-color .15s ease}
.proof-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}
.proof-card .pl{font-size:13.5px;font-weight:800;color:#111827}
.proof-card .pl small{display:block;font-weight:600;color:#9CA3AF;font-size:11.5px;margin-top:1px}
.proof-card .pv{font-size:22px;font-weight:800;color:var(--green-dark);margin:9px 0 5px;letter-spacing:-.02em}
.proof-card .pv i{font-style:normal;color:#C4CCC6;margin:0 2px}
.proof-card .pn{font-size:12px;color:#6B7280}
.proof-card .pn b{color:#B45309}
.proof-ft{text-align:center;font-size:12px;color:#8A9490;margin-top:11px}
@media(max-width:760px){.proof-row{grid-template-columns:1fr}.proof{margin-top:18px}.proof-card{padding:13px 14px}.proof-card .pv{font-size:20px;margin:6px 0 4px}}
.tb.src{background:#fff;color:#6B7280}
.tb.src em{font-style:normal;color:#9CA3AF;font-weight:600}
.vprice{color:var(--green);font-weight:800;margin-left:5px;font-size:12px}
.psrc{font-size:12.5px;color:#6B7280;line-height:1.6;background:#FAFBFA;border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin-top:14px}
.psrc.own{background:var(--green-soft);border-color:#CBE3D5;color:var(--green-dark)}
.psrc span{display:block;margin-top:6px;color:var(--green);font-weight:700;cursor:pointer}
.psrc span:hover{text-decoration:underline}
.tbs{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 2px}
.tb{font-size:11.5px;font-weight:700;color:#4B5563;background:#F4F6F4;border:1px solid var(--line);border-radius:999px;padding:3px 9px;white-space:nowrap}
.tb.price{background:var(--green-soft);border-color:#CBE3D5;color:var(--green-dark)}
.tb.ver{background:#EFF6FF;border-color:#BFDBFE;color:#1D4ED8}
#dRate .tbs{margin-top:7px}
.rl-rate+.tbs{margin-bottom:8px}
.ms-src{font-size:13px;line-height:1.6;color:#4B5563;background:#F7F9F8;border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin:0 0 14px}
.ms-src.own{background:var(--green-soft);border-color:#CBE3D5;color:var(--green-dark)}
.ms-imp{display:block;margin-top:10px;background:var(--green);color:#fff;border:none;border-radius:999px;padding:10px 18px;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit}
.ms-imp:hover{filter:brightness(1.06)}
.ms-demand{background:linear-gradient(135deg,#fff7ed,#fffbeb);border:1px solid #fed7aa;border-radius:14px;padding:14px 16px;margin:0 0 16px}
.ms-demand b{display:block;font-size:15px;color:#9a3412;margin-bottom:4px}
.ms-demand span{display:block;font-size:13px;color:#7c2d12;line-height:1.5}
.ms-demand .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.ms-demand .tags i{font-style:normal;font-size:12px;background:#fff;border:1px solid #fed7aa;color:#9a3412;border-radius:999px;padding:4px 10px}


/* reddit-style community + contact page */
.post{display:flex;gap:12px;padding:14px 16px}
.vrail{display:flex;flex-direction:column;align-items:center;gap:2px;flex:0 0 34px;padding-top:2px}
.vrail b{font-size:13.5px}
.varrow{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#9CA3AF;font-size:15px;background:#F6F7F9;transition:all .15s}
.varrow:hover{color:var(--green);background:var(--green-soft)}
.varrow.on{color:#fff;background:var(--green)}
.pmain{flex:1;min-width:0}
.cm-sort{display:flex;gap:8px;margin-bottom:10px}
.cm-sort .srt{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer;color:#4B5563}
.cm-sort .srt.on{background:var(--ink);border-color:var(--ink);color:#fff}
.pmedia{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:10px 0 4px}
.pmedia.single{grid-template-columns:1fr}
.pimg{width:100%;max-height:420px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer}
.pmedia:not(.single) .pimg{height:150px}
.pvid{width:100%;max-height:420px;border-radius:10px;border:1px solid var(--line);background:#000}
.contact-card{background:#fff;border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);padding:30px;text-align:center;margin:18px 0;box-shadow:var(--shadow-1)}
.contact-mail{font-size:clamp(20px,4vw,30px);font-weight:800;color:var(--green-dark);letter-spacing:-.01em;user-select:all}
.copybtn{display:inline-flex;align-items:center;gap:7px;background:var(--green);color:#fff;border:none;border-radius:999px;padding:11px 22px;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;margin-top:14px}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:22px}
.contact-grid .cg{background:#fff;border:1px solid rgba(232,234,240,.8);border-radius:var(--r-md);padding:18px;text-align:left;box-shadow:var(--shadow-1)}
.contact-grid .cg b{display:block;margin-bottom:6px}
.contact-grid .cg p{color:var(--sub);font-size:13.5px;line-height:1.6;margin:0}


/* promotions */
.chip.offer{background:#FDF1E3;color:#A15C00;font-weight:700}
.promobox{background:linear-gradient(120deg,#FFF9F0,#FDF1E3);border:1px solid #F3DFC2;border-radius:14px;padding:16px 18px;margin:18px 0 4px}
.promobox .ptop{font-weight:800;font-size:15px;color:#8a5a00;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.promobox .psub{font-weight:600;font-size:12px;color:#A15C00;opacity:.85}
.promobox .prow{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid #F3DFC2;border-radius:11px;padding:12px 14px;margin-top:8px}
.promobox .prow b{font-size:14.5px}
.promobox .prow small{display:block;color:var(--sub);font-size:12.5px;margin-top:2px}
.promobox .prow button{border:none;background:var(--orange);color:#fff;border-radius:9px;padding:9px 16px;font-weight:700;font-size:12.5px;cursor:pointer;font-family:inherit;white-space:nowrap}
.pfirst{display:inline-block;background:#FDE8D4;color:#A15C00;font-size:10.5px;font-weight:800;border-radius:6px;padding:2px 7px;margin-left:7px;vertical-align:1px}


/* == UIUX round: airbnb-style upgrades == */
/* photo grid */
.det-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:170px 170px;gap:8px;max-width:1180px;margin:0 auto;padding:14px 24px 0;position:relative}
.det-grid .dg{background-size:cover;background-position:center;border-radius:12px;cursor:pointer;background-color:#EFEAE2;transition:filter .2s}
.det-grid .dg:hover{filter:brightness(.94)}
.det-grid .dg-main{grid-row:1/3;border-radius:16px}
.dg-all{position:absolute;right:38px;bottom:14px;background:#fff;border:1px solid var(--ink);border-radius:9px;padding:7px 13px;font-weight:700;font-size:12.5px;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.dg-back{position:absolute;left:38px;top:26px;background:rgba(255,255,255,.94);border-radius:999px;padding:7px 14px;font-weight:700;font-size:13px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.14)}
.dg-attr{position:absolute;left:38px;bottom:14px;background:rgba(20,25,20,.6);color:#fff;font-size:10px;border-radius:5px;padding:2px 7px;font-weight:600}
@media(max-width:760px){.det-grid{grid-template-columns:1fr;grid-template-rows:230px;padding:0}.det-grid .dg{border-radius:0}.det-grid .dg:not(.dg-main){display:none}.dg-back{left:14px;top:14px}.dg-all{right:14px;bottom:12px}.dg-attr{left:14px;bottom:12px}}
/* sticky booking bar */
.stickybook{position:sticky;top:64px;z-index:45;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:10px 0;display:none}
.stickybook.show{display:block}
.stickybook .in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:14px}
.stickybook .nm{font-weight:800;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stickybook .pr{font-size:13px;color:var(--sub);white-space:nowrap}
.stickybook .pr b{color:var(--ink);font-size:15px}
.stickybook .offer{background:#FDF1E3;color:#A15C00;border-radius:7px;padding:3px 9px;font-size:11.5px;font-weight:800;white-space:nowrap}
.stickybook button{margin-left:auto;background:var(--green);color:#fff;border:none;border-radius:999px;padding:10px 22px;font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;white-space:nowrap}
/* icon category bar */
#catbar{display:flex;gap:4px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}
#catbar::-webkit-scrollbar{display:none}
/* Clean text pills — no emoji. Selected = solid ink pill (Apple segmented feel). */
.icat{display:flex;align-items:center;justify-content:center;padding:8px 15px;border-radius:999px;cursor:pointer;color:var(--sub);border:1px solid var(--line);background:#fff;transition:all .15s var(--ease-soft);flex:0 0 auto}
.icat small{font-size:13px;font-weight:500;white-space:nowrap;letter-spacing:-.005em}
.icat:hover{border-color:var(--line-strong);color:var(--ink)}
.icat.on{color:#fff;background:var(--ink);border-color:var(--ink)}
.icat.on small{font-weight:600}
/* skeleton shimmer */
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.cover.skl:not(.haspic)::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.55) 50%,rgba(255,255,255,0) 100%);background-size:400px 100%;animation:shimmer 1.4s infinite}
/* split map view */
#expBody.split{display:grid;grid-template-columns:minmax(300px,440px) 1fr;gap:18px;align-items:start}
#expBody.split #grid{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
#expBody.split #mapBox{display:block !important;position:sticky;top:76px;height:min(calc(100vh - 130px),660px) !important;border-radius:14px;border:1px solid var(--line)}
@media(max-width:980px){
 #expBody.split{display:flex;flex-direction:column;gap:14px}
 #expBody.split #mapBox{order:-1;position:static;height:420px !important}
 #expBody.split #grid{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
}
.gmpl{font-weight:800 !important}
/* review summary */
.rev-dist{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 14px;display:grid;grid-template-columns:1fr 1fr;gap:4px 26px}
.rev-dist .db{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sub)}
.rev-dist .bar{flex:1;height:6px;background:#EFF1F4;border-radius:3px;overflow:hidden}
.rev-dist .bar i{display:block;height:100%;background:var(--green);border-radius:3px}
.rev-strip{display:flex;gap:8px;overflow-x:auto;margin:0 0 16px;padding-bottom:4px}
.rev-strip img{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer;flex:0 0 auto}
/* home offers row */
.hscroll{display:grid;grid-auto-flow:column;grid-auto-columns:320px;gap:16px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:thin}
@media(max-width:600px){.hscroll{grid-auto-columns:82vw}}


#page-detail.hasgrid .det-card{margin-top:16px}
/* catbar arrows */
.catwrap{position:relative}
.catwrap .cnav{position:absolute;top:50%;transform:translateY(-62%);width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 2px 10px rgba(0,0,0,.12);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;font-size:15px;color:#374151;user-select:none}
.catwrap .cnav:hover{border-color:var(--ink)}
.catwrap .cnav.l{left:-8px}
.catwrap .cnav.r{right:-8px}
.catwrap .cnav.hide{display:none}
#catbar{cursor:grab}
#catbar.drag{cursor:grabbing}


/* medspa portal */
.ms-hero{text-align:center;padding:16px 0 8px}
.ms-hero h2{font-size:34px;font-weight:800;letter-spacing:-.028em;line-height:1.06}
.ms-hero p{color:var(--sub);margin-top:12px;font-size:15.5px;max-width:560px;margin-left:auto;margin-right:auto;line-height:1.55}
.ms-benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:28px 0}
.ms-benefits .b{background:#fff;border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-1);transition:transform .2s var(--ease-soft),box-shadow .2s var(--ease-soft)}
.ms-benefits .b:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}
.ms-benefits .b b{display:block;margin-bottom:6px}
.ms-benefits .b p{color:var(--sub);font-size:13.5px;line-height:1.6;margin:0}
.ms-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.ms-cta .g{background:var(--green);color:#fff;border:none;border-radius:999px;padding:12px 26px;font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit}
.ms-cta .o{background:#fff;border:1px solid var(--line);border-radius:999px;padding:12px 26px;font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit;color:#374151}
.ms-sec{background:#fff;border:1px solid rgba(232,234,240,.8);border-radius:var(--r-lg);padding:22px 24px;margin-bottom:16px;box-shadow:var(--shadow-1)}
.ms-sec h3{font-size:17px;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.ms-bk{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 0;flex-wrap:wrap}
.ms-bk:first-of-type{border-top:none}
.ms-bk small{color:var(--sub);display:block;font-size:12.5px}
.ms-bk .stbtns{display:flex;gap:6px;flex-wrap:wrap}
.ms-bk .stbtns button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.ms-bk .stbtns button.confirm{background:var(--green);border-color:var(--green);color:#fff}
.ms-bk .stbtns button.cancel{color:#B91C1C}
.ms-price-row{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:9px 0}
.ms-price-row:first-of-type{border-top:none}
.ms-price-row .nm{flex:1;font-size:13.5px}
.ms-price-row .nm small{display:block;color:var(--sub);font-size:11.5px}
.ms-price-row input{width:130px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}
.ms-save{background:var(--green);color:#fff;border:none;border-radius:10px;padding:11px 22px;font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;margin-top:12px}
.ms-promo-form{display:grid;gap:8px;margin-top:12px;border-top:1px dashed var(--line);padding-top:14px}
.ms-promo-form input{border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:13.5px}
.ms-tag{font-size:11px;font-weight:800;border-radius:6px;padding:2px 8px}


/* post modal + comments v2 */
.post.feedcard{cursor:pointer;transition:border-color .15s}
.post.feedcard:hover{border-color:#C9D6CD}
.post .body.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
#postModal{width:min(660px,94vw);border:none;border-radius:16px;padding:0}
#postModal::backdrop{background:rgba(15,20,16,.45)}
#postModal .inner{padding:22px 24px;max-height:82vh;overflow-y:auto}
#postModal .mclose2{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:50%;border:none;background:#F3F4F6;font-size:15px;cursor:pointer;z-index:2}
.cmt2{padding:10px 0 2px;border-top:1px solid #F1F3F5}
.cmt2.child{margin-left:30px;border-top:none;background:#FAFBFC;border-radius:10px;padding:10px 12px;margin-top:8px}
.cmt2 .chead{display:flex;align-items:center;gap:7px;font-size:13px}
.cmt2 .cava{width:24px;height:24px;border-radius:50%;background:var(--green-soft);color:var(--green-dark);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:11px}
.cmt2 .cbody{font-size:13.5px;color:#374151;margin:4px 0 4px 31px;line-height:1.55}
.cmt2 .cacts{display:flex;gap:14px;margin-left:31px;font-size:12px;color:var(--sub);font-weight:700}
.cmt2 .cacts span{cursor:pointer}
.cmt2 .clike.on{color:#E11D48}

/* prerender progressive-enhancement: hide the crawler-only facts block once JS runs */
html.js .pf-block{display:none!important}
