/* ================================================================
   PisciViva — Master Design System v5 (clean rebuild)
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cabinet+Grotesk:wght@400;500;600;700;800;900&family=Sentient:ital,wght@0,400;0,500;0,700;1,400;1,700&display=swap');

/* ── TOKENS ─────────────────────────────────────────────── */
:root {
  --ocean:      #0A4F8C;
  --ocean-mid:  #1669B5;
  --ocean-lt:   #D6EAF8;
  --ocean-pale: #EBF5FC;
  --wave:       #0D8C7D;
  --wave-lt:    #D0F0EB;
  --amber:      #D97706;
  --amber-lt:   #FEF3C7;
  --blue-pale:  #EBF5FC;
  --blue-lt:    #D6EAF8;
  --blue-lt:    #D6EAF8;
  --green-lt:   #DCFCE7;
  --purple-lt:  #F3E8FF;
  --teal-lt:    #CCFBF1;
  --bg2:        #F0F4F8;
  --text:       #0C1220;
  --sun:        #E8911A;
  --sun-lt:     #FEF0DC;
  --coral:      #E05440;
  --coral-lt:   #FDEAE7;
  --violet:     #5B1FDB;
  --violet-lt:  #EEE7FC;
  --sage:       #2D9142;
  --sage-lt:    #E0F4E4;
  --rose:       #C2185B;
  --rose-lt:    #FCE4EC;
  --ink:        #0C1220;
  --ink-mid:    #2D3748;
  --ink-muted:  #5A6477;
  --ink-light:  #8896A7;
  --ink-pale:   #C5CDD8;
  --white:      #FFFFFF;
  --surface:    #F7F9FC;
  --surface2:   #EEF2F7;
  --border:     #DDE3EC;
  --border-mid: #C8D2DE;
  --sh-xs:  0 1px 2px rgba(12,18,32,.06);
  --sh-sm:  0 2px 8px rgba(12,18,32,.07), 0 1px 2px rgba(12,18,32,.04);
  --sh-md:  0 6px 20px rgba(12,18,32,.09), 0 2px 6px rgba(12,18,32,.05);
  --sh-lg:  0 16px 48px rgba(12,18,32,.12), 0 4px 12px rgba(12,18,32,.06);
  --sh-xl:  0 32px 80px rgba(12,18,32,.16), 0 8px 20px rgba(12,18,32,.08);
  --sh-float: 0 24px 60px rgba(10,79,140,.18), 0 6px 16px rgba(10,79,140,.08);
  --font-display: 'Sentient', Georgia, serif;
  --font-body:    'Cabinet Grotesk', system-ui, sans-serif;
  --r-xs:  4px;  --r-sm:  8px;  --r-md: 12px;
  --r-lg: 16px;  --r-xl: 24px;  --r-2xl: 32px;  --r-3xl: 48px;
  --ease:     cubic-bezier(.22,.68,0,1.2);
  --ease-out: cubic-bezier(0,0,.3,1);
}

/* ── RESET ───────────────────────────────────────────────── */
*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { font-family: var(--font-body); background: var(--white); color: var(--ink); overflow-x: hidden; line-height: 1.6; }
img, video { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
button { cursor: pointer; font-family: inherit; }
input, select, textarea { font-family: inherit; }

/* ── NAVIGATION ──────────────────────────────────────────── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 600;
  height: 64px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 4%;
  background: rgba(255,255,255,.97); backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border); transition: box-shadow .3s;
}
.nav.scrolled { box-shadow: var(--sh-md); }
.nav-logo {
  font-family: var(--font-display); font-size: 1.5rem; font-weight: 700;
  color: var(--ocean); letter-spacing: -.5px;
  display: flex; align-items: center; gap: .4rem; flex-shrink: 0;
}
.nav-logo .dot { color: var(--sun); }
.nav-links { display: flex; gap: .1rem; list-style: none; align-items: center; }
.nav-links a {
  font-size: .82rem; font-weight: 600; color: var(--ink-muted);
  padding: .45rem .85rem; border-radius: var(--r-md);
  transition: all .2s; white-space: nowrap;
}
.nav-links a:hover, .nav-links a.active { color: var(--ocean); background: var(--ocean-pale); }
.nav-right { display: flex; gap: .6rem; align-items: center; }
.lang-pill { display: flex; border: 1.5px solid var(--border); border-radius: 20px; overflow: hidden; }
.lang-btn {
  background: none; border: none; font-size: .72rem; font-weight: 700;
  padding: .3rem .65rem; cursor: pointer; color: var(--ink-muted);
  font-family: var(--font-body); transition: all .15s;
}
.lang-btn.active { background: var(--ocean); color: #fff; }
.nav-cta {
  background: var(--ocean); color: #fff; font-size: .83rem; font-weight: 700;
  padding: .52rem 1.2rem; border-radius: var(--r-md); transition: all .2s; white-space: nowrap;
}
.nav-cta:hover { background: var(--ocean-mid); transform: translateY(-1px); }
.hamburger {
  display: none; flex-direction: column; gap: 5px; cursor: pointer;
  padding: 10px; margin-right: -10px; min-width: 44px; min-height: 44px;
  align-items: center; justify-content: center;
}
.hamburger span { display: block; width: 24px; height: 2.5px; background: var(--ink); border-radius: 2px; transition: all .3s; pointer-events: none; }

/* Mobile nav */
@media(max-width:1080px) {
  .nav { padding: 0 1rem; }
  .nav-links { display: none; }
  .hamburger { display: flex; }
  .lang-pill { display: none; }
  .nav-cta { display: none; }
  #nav-login-btn { display: none; }
}
@media(min-width:1081px) {
  .hamburger { display: none !important; }
}

/* Mobile menu */
.mobile-menu {
  display: none;
  position: fixed; top: 64px; left: 0; right: 0; bottom: 0;
  z-index: 500; background: #fff;
  flex-direction: column; align-items: flex-start;
  padding: .5rem 1.2rem 3rem;
  overflow-y: auto; overflow-x: hidden;
  border-top: 3px solid var(--ocean);
  box-shadow: 0 8px 32px rgba(12,18,32,.15);
  -webkit-overflow-scrolling: touch;
}
.mobile-menu.open { display: flex; }
.mobile-menu a {
  font-size: 1.05rem; font-weight: 600; color: var(--ink);
  padding: .9rem 0; border-bottom: 1px solid var(--border);
  width: 100%; display: flex; align-items: center; min-height: 52px;
}
.mobile-menu a:last-of-type { border-bottom: none; }
.mobile-menu a:active, .mobile-menu a:hover { color: var(--ocean); }

/* ── TYPOGRAPHY ──────────────────────────────────────────── */
.display-xl { font-family: var(--font-display); font-size: clamp(2.2rem,7vw,5.5rem); font-weight: 700; line-height: 1.0; letter-spacing: -.03em; }
.display-lg { font-family: var(--font-display); font-size: clamp(1.8rem,5vw,3.8rem); font-weight: 700; line-height: 1.05; letter-spacing: -.025em; }
.display-md { font-family: var(--font-display); font-size: clamp(1.5rem,3.5vw,2.8rem); font-weight: 700; line-height: 1.1; letter-spacing: -.02em; }
.display-sm { font-family: var(--font-display); font-size: clamp(1.2rem,2.5vw,1.9rem); font-weight: 700; line-height: 1.2; }
em.accent { font-style: italic; color: var(--sun); }
em.ocean  { font-style: italic; color: var(--ocean); }
.eyebrow { font-size: .7rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--ocean); display: block; margin-bottom: .6rem; }
.body-lg  { font-size: 1.05rem; line-height: 1.75; color: var(--ink-muted); }
.body-md  { font-size: .92rem;  line-height: 1.7;  color: var(--ink-muted); }
.body-sm  { font-size: .82rem;  line-height: 1.65; color: var(--ink-muted); }

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: var(--font-body); font-weight: 700; font-size: .88rem;
  border: none; border-radius: var(--r-md); padding: .68rem 1.5rem;
  transition: all .22s; cursor: pointer; white-space: nowrap; text-decoration: none;
}
.btn-ocean  { background: var(--ocean); color: #fff; }
.btn-ocean:hover  { background: var(--ocean-mid); transform: translateY(-2px); box-shadow: var(--sh-float); }
.btn-sun    { background: var(--sun); color: #fff; }
.btn-sun:hover    { background: #D07810; transform: translateY(-2px); }
.btn-wave   { background: var(--wave); color: #fff; }
.btn-wave:hover   { background: #0A7468; transform: translateY(-2px); }
.btn-outline { background: transparent; color: var(--ocean); border: 2px solid var(--ocean); }
.btn-outline:hover { background: var(--ocean-pale); }
.btn-ghost  { background: transparent; color: var(--ink-muted); border: 1.5px solid var(--border); }
.btn-ghost:hover  { border-color: var(--ocean-mid); color: var(--ocean); background: var(--ocean-pale); }
.btn-white  { background: #fff; color: var(--ocean); box-shadow: var(--sh-sm); }
.btn-white:hover  { box-shadow: var(--sh-lg); transform: translateY(-2px); }
.btn-sm  { font-size: .78rem; padding: .44rem 1rem; }
.btn-lg  { font-size: .95rem; padding: .88rem 2rem; }
.btn-xl  { font-size: 1rem; padding: .9rem 2rem; border-radius: var(--r-lg); }
.btn-full { width: 100%; justify-content: center; }

/* ── BADGES ──────────────────────────────────────────────── */
.badge {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .68rem; font-weight: 700; letter-spacing: .6px;
  text-transform: uppercase; padding: .3rem .85rem; border-radius: 20px; white-space: nowrap;
}
.badge-ocean  { background: var(--ocean-lt); color: var(--ocean); }
.badge-sun    { background: var(--sun-lt); color: var(--sun); border: 1px solid rgba(232,145,26,.2); }
.badge-wave   { background: var(--wave-lt); color: var(--wave); }
.badge-sage   { background: var(--sage-lt); color: var(--sage); }
.badge-violet { background: var(--violet-lt); color: var(--violet); }
.badge-coral  { background: var(--coral-lt); color: var(--coral); }
.badge-dark   { background: var(--ink); color: #fff; }
.live-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; animation: pulse-dot 1.8s infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.5)} }

/* ── TAGS ────────────────────────────────────────────────── */
.tag { display: inline-block; background: var(--surface2); border: 1px solid var(--border); color: var(--ink-muted); font-size: .72rem; font-weight: 600; padding: .22rem .65rem; border-radius: 20px; }
.tag-ocean { background: var(--ocean-lt); color: var(--ocean); }
.tag-wave  { background: var(--wave-lt);  color: var(--wave); }
.tag-sun   { background: var(--sun-lt);   color: var(--sun); }

/* ── CARDS ───────────────────────────────────────────────── */
.card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.6rem; transition: box-shadow .25s, transform .25s; }
.card:hover { box-shadow: var(--sh-lg); transform: translateY(-3px); }
.card-flat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.6rem; }
.card-ocean { background: var(--ocean); color: #fff; border-radius: var(--r-xl); padding: 2rem; }

/* ── FORMS ───────────────────────────────────────────────── */
.form-group { margin-bottom: 1.1rem; }
.form-label { display: block; font-size: .82rem; font-weight: 700; color: var(--ink-mid); margin-bottom: .4rem; }
.form-req { color: var(--coral); margin-left: .2rem; }
.form-input, .form-select, .form-textarea {
  width: 100%; background: #fff; border: 2px solid var(--border);
  border-radius: var(--r-md); color: var(--ink); font-family: var(--font-body);
  font-size: .9rem; padding: .7rem 1rem; outline: none; transition: border-color .2s, box-shadow .2s;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  border-color: var(--ocean); box-shadow: 0 0 0 4px rgba(10,79,140,.08);
}
.form-textarea { min-height: 120px; resize: vertical; }
.form-hint { font-size: .75rem; color: var(--ink-light); margin-top: .35rem; }
.form-error { font-size: .77rem; color: var(--coral); margin-top: .3rem; }

/* ── LAYOUT ──────────────────────────────────────────────── */
.container    { max-width: 1280px; margin: 0 auto; padding: 0 4%; }
.container-sm { max-width: 800px;  margin: 0 auto; padding: 0 4%; }
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.g3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.g4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem; }
section { padding: 4rem 4%; }

/* ── PAGE HERO ───────────────────────────────────────────── */
.page-hero { padding: 7.5rem 4% 4rem; background: var(--surface); border-bottom: 1px solid var(--border); }
.page-hero .eyebrow { margin-bottom: .5rem; }
.page-hero h1 { margin: .5rem 0 .8rem; }
.page-hero .sub { font-size: 1rem; color: var(--ink-muted); max-width: 540px; line-height: 1.75; }

/* ── SEARCH BAR ──────────────────────────────────────────── */
.search-bar { display: flex; gap: .8rem; background: #fff; border: 2px solid var(--border); border-radius: var(--r-xl); padding: 1rem 1.3rem; box-shadow: var(--sh-md); }
.search-bar:focus-within { border-color: var(--ocean); box-shadow: 0 0 0 4px rgba(10,79,140,.08), var(--sh-md); }
.search-bar input, .search-bar select { flex: 1; min-width: 0; background: transparent; border: none; color: var(--ink); font-family: var(--font-body); font-size: .88rem; outline: none; }
.search-bar input::placeholder { color: var(--ink-pale); }
.search-btn { background: var(--ocean); color: #fff; border: none; border-radius: var(--r-md); padding: .62rem 1.4rem; font-family: var(--font-body); font-size: .88rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.search-btn:hover { background: var(--ocean-mid); }

/* ── DASHBOARD ───────────────────────────────────────────── */
.dash-layout { display: grid; grid-template-columns: 230px 1fr; min-height: 100vh; padding-top: 64px; }
.dash-sidebar { background: #111827; padding: 1.5rem 0; position: sticky; top: 64px; height: calc(100vh - 64px); overflow-y: auto; }
.ds-user { padding: 1.1rem 1.3rem 1.3rem; border-bottom: 1px solid rgba(255,255,255,.07); margin-bottom: .8rem; }
.ds-av { width: 48px; height: 48px; border-radius: var(--r-md); background: var(--ocean); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; margin-bottom: .75rem; }
.ds-name { font-size: .92rem; font-weight: 700; color: #fff; }
.ds-role { font-size: .73rem; color: rgba(255,255,255,.4); margin-top: .12rem; }
.ds-nav { padding: 0 .7rem; }
.ds-section { font-size: .6rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.2); padding: .7rem .65rem .2rem; }
.ds-link { display: flex; align-items: center; gap: .7rem; padding: .6rem .75rem; border-radius: var(--r-md); text-decoration: none; color: rgba(255,255,255,.5); font-size: .83rem; font-weight: 600; transition: all .2s; margin-bottom: .05rem; }
.ds-link:hover, .ds-link.active { background: rgba(255,255,255,.07); color: #fff; }
.ds-ico { font-size: 1rem; width: 20px; flex-shrink: 0; }
.ds-cnt { margin-left: auto; background: var(--ocean); color: #fff; font-size: .62rem; font-weight: 700; padding: .12rem .45rem; border-radius: 8px; }
.dash-main { background: var(--surface); padding: 2rem; min-height: calc(100vh - 64px); }
.dash-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; }
.dash-header h1 { font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; }
.kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.1rem; margin-bottom: 1.5rem; }
.kpi { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.25rem; display: flex; align-items: flex-start; gap: .9rem; }
.kpi-ico { width: 44px; height: 44px; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; }
.kpi-val { font-family: var(--font-display); font-size: 1.7rem; font-weight: 700; line-height: 1; }
.kpi-label { font-size: .73rem; color: var(--ink-muted); margin-top: .2rem; }
.kpi-change { font-size: .72rem; font-weight: 700; margin-top: .25rem; }
.kpi-change.up { color: var(--sage); }
.dash-section { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.5rem; margin-bottom: 1.3rem; }
.ds-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.2rem; flex-wrap: wrap; gap: .6rem; }
.ds-head h2 { font-size: .98rem; font-weight: 700; }
.dash-table { width: 100%; border-collapse: collapse; }
.dash-table th { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; color: var(--ink-muted); padding: .5rem .8rem; border-bottom: 2px solid var(--border); text-align: left; white-space: nowrap; }
.dash-table td { font-size: .84rem; padding: .85rem .8rem; border-bottom: 1px solid var(--border); color: var(--ink-mid); vertical-align: middle; }
.dash-table tr:last-child td { border-bottom: none; }
.dash-table tr:hover td { background: var(--surface); }
.mob-dash-nav { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 100; background: #fff; border-top: 1px solid var(--border); padding: .45rem 0; justify-content: space-around; }
.mdn-item { display: flex; flex-direction: column; align-items: center; gap: .18rem; text-decoration: none; color: var(--ink-muted); font-size: .58rem; font-weight: 700; padding: .3rem .8rem; border-radius: var(--r-md); }
.mdn-item.active { color: var(--ocean); }
.mdn-ico { font-size: 1.15rem; }

/* ── AI CHAT ─────────────────────────────────────────────── */
.ai-widget { background: #fff; border: 1px solid var(--border); border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-lg); }
.ai-header { background: var(--ocean); padding: 1rem 1.4rem; display: flex; align-items: center; gap: .8rem; }
.ai-header-info h3 { color: #fff; font-size: .92rem; font-weight: 700; }
.ai-header-info p  { color: rgba(255,255,255,.65); font-size: .74rem; }
.ai-online { width: 10px; height: 10px; border-radius: 50%; background: #4ade80; animation: pulse-dot 1.5s infinite; flex-shrink: 0; }
.ai-messages { padding: 1rem; max-height: 340px; overflow-y: auto; display: flex; flex-direction: column; gap: .8rem; }
.msg { max-width: 88%; padding: .72rem 1rem; font-size: .86rem; line-height: 1.6; border-radius: 14px; }
.msg-ai   { background: var(--ocean-pale); border: 1px solid var(--ocean-lt); color: var(--ink-mid); align-self: flex-start; border-radius: 4px 14px 14px 14px; }
.msg-user { background: var(--ocean); color: #fff; align-self: flex-end; border-radius: 14px 4px 14px 14px; }
.msg-typing { display: flex; gap: .35rem; align-items: center; padding: .72rem 1rem; }
.msg-typing span { width: 7px; height: 7px; background: var(--ocean-mid); border-radius: 50%; animation: bounce .9s ease-in-out infinite; }
.msg-typing span:nth-child(2) { animation-delay: .15s; }
.msg-typing span:nth-child(3) { animation-delay: .3s; }
@keyframes bounce { 0%,80%,100%{transform:translateY(0)} 40%{transform:translateY(-7px)} }
.ai-quick { padding: .5rem 1rem .8rem; display: flex; gap: .4rem; flex-wrap: wrap; }
.ai-qbtn { background: var(--ocean-pale); border: 1px solid var(--ocean-lt); color: var(--ocean); font-size: .72rem; font-weight: 700; padding: .32rem .75rem; border-radius: 20px; cursor: pointer; font-family: var(--font-body); transition: all .2s; }
.ai-qbtn:hover { background: var(--ocean-lt); }
.ai-input-row { padding: .8rem 1rem; border-top: 1px solid var(--border); display: flex; gap: .6rem; }
.ai-input-row input { flex: 1; min-width: 0; border: 2px solid var(--border); border-radius: var(--r-md); padding: .58rem .9rem; font-size: .87rem; font-family: var(--font-body); outline: none; transition: border-color .2s; }
.ai-input-row input:focus { border-color: var(--ocean); }
.ai-send { background: var(--ocean); color: #fff; border: none; border-radius: var(--r-md); padding: .58rem 1rem; font-family: var(--font-body); font-size: .85rem; font-weight: 700; transition: background .2s; }
.ai-send:hover { background: var(--ocean-mid); }

/* ── PRODUCT CARDS ───────────────────────────────────────── */
.product-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow .25s, transform .25s; cursor: pointer; }
.product-card:hover { box-shadow: var(--sh-lg); transform: translateY(-3px); }
.product-thumb { height: 180px; display: flex; align-items: center; justify-content: center; font-size: 3.5rem; }
.product-body { padding: 1.1rem; }
.product-cat   { font-size: .72rem; color: var(--ink-muted); margin-bottom: .2rem; text-transform: uppercase; letter-spacing: .5px; font-weight: 600; }
.product-name  { font-size: .92rem; font-weight: 700; color: var(--ink); margin-bottom: .5rem; }
.product-price { font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; }
.add-to-cart   { width: 100%; background: var(--ocean); color: #fff; border: none; padding: .65rem; border-radius: var(--r-md); font-family: var(--font-body); font-size: .84rem; font-weight: 700; cursor: pointer; transition: all .2s; margin-top: .75rem; min-height: 44px; }
.add-to-cart:hover { background: var(--ocean-mid); }

/* ── POOL CARDS ──────────────────────────────────────────── */
.pool-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow .25s, transform .25s; cursor: pointer; }
.pool-card:hover { box-shadow: var(--sh-lg); transform: translateY(-4px); }
.pool-thumb { height: 195px; display: flex; align-items: center; justify-content: center; font-size: 4rem; position: relative; overflow: hidden; }
.pool-badge { position: absolute; top: .7rem; left: .7rem; }
.pool-fav   { position: absolute; top: .7rem; right: .7rem; width: 32px; height: 32px; background: rgba(255,255,255,.92); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .9rem; cursor: pointer; box-shadow: var(--sh-sm); }
.pool-body  { padding: 1.1rem; }
.pool-title { font-size: .9rem; font-weight: 700; color: var(--ink); margin-bottom: .18rem; }
.pool-loc   { font-size: .74rem; color: var(--ink-muted); margin-bottom: .6rem; }
.pool-tags  { display: flex; gap: .3rem; flex-wrap: wrap; margin-bottom: .7rem; }
.pool-foot  { display: flex; justify-content: space-between; align-items: center; }
.pool-price { font-family: var(--font-display); font-size: 1.15rem; font-weight: 700; }
.pool-price small { font-family: var(--font-body); font-size: .7rem; font-weight: 400; color: var(--ink-muted); }
.pool-rating { font-size: .8rem; color: #F59E0B; font-weight: 700; }

/* ── PRO CARDS ───────────────────────────────────────────── */
.pro-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; transition: box-shadow .25s, transform .25s; }
.pro-card:hover { box-shadow: var(--sh-lg); transform: translateY(-3px); }
.pro-head { padding: 1.2rem; display: flex; gap: .9rem; border-bottom: 1px solid var(--border); }
.pro-av   { width: 52px; height: 52px; border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; font-size: 1.3rem; flex-shrink: 0; }
.pro-name { font-size: .92rem; font-weight: 700; color: var(--ink); }
.pro-role { font-size: .75rem; color: var(--ocean); font-weight: 600; }
.pro-body { padding: 1rem 1.2rem; }
.pro-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .4rem; margin: .75rem 0; }
.pro-stat  { background: var(--surface); border-radius: var(--r-sm); padding: .55rem .3rem; text-align: center; }
.pro-stat .v { font-size: .88rem; font-weight: 700; color: var(--ink); }
.pro-stat .l { font-size: .62rem; color: var(--ink-muted); text-transform: uppercase; }
.pro-foot  { display: flex; justify-content: space-between; align-items: center; padding-top: .7rem; }
.pro-rate  { font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; }

/* ── TOAST ───────────────────────────────────────────────── */
.toast { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 9999; background: var(--ink); color: #fff; padding: .85rem 1.4rem; border-radius: var(--r-lg); font-size: .86rem; font-weight: 600; transform: translateY(80px); opacity: 0; transition: all .35s; pointer-events: none; box-shadow: var(--sh-xl); max-width: 340px; }
.toast.show { transform: none; opacity: 1; }

/* ── MODAL ───────────────────────────────────────────────── */
.modal-overlay { display: none; align-items: center; justify-content: center; min-height: 600px; background: rgba(12,18,32,.6); padding: 1.5rem; }
.modal-overlay.open { display: flex; }
.modal { background: #fff; border-radius: var(--r-2xl); width: 100%; max-width: 860px; max-height: 90vh; overflow-y: auto; box-shadow: var(--sh-xl); }

/* ── FOOTER ──────────────────────────────────────────────── */
.footer { background: var(--ink); color: #fff; padding: 4rem 4% 2rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2.5rem; margin-bottom: 3rem; }
.footer-logo { font-family: var(--font-display); font-size: 1.4rem; font-weight: 700; color: #fff; display: block; margin-bottom: .8rem; }
.footer-logo .dot { color: var(--sun); }
.footer-brand p { font-size: .84rem; color: rgba(255,255,255,.4); line-height: 1.75; max-width: 260px; margin-top: .5rem; }
.footer-col h4  { font-size: .68rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.3); margin-bottom: .9rem; }
.footer-col ul  { list-style: none; display: flex; flex-direction: column; gap: .55rem; }
.footer-col ul a { color: rgba(255,255,255,.55); font-size: .83rem; transition: color .2s; }
.footer-col ul a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .8rem; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.07); }
.footer-copy { font-size: .76rem; color: rgba(255,255,255,.22); }

/* ── ANIMATIONS ──────────────────────────────────────────── */
@keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:none} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.a1{opacity:0;animation:fadeUp .6s .08s var(--ease-out) forwards}
.a2{opacity:0;animation:fadeUp .6s .18s var(--ease-out) forwards}
.a3{opacity:0;animation:fadeUp .6s .28s var(--ease-out) forwards}
.a4{opacity:0;animation:fadeUp .6s .38s var(--ease-out) forwards}
.a5{opacity:0;animation:fadeUp .6s .48s var(--ease-out) forwards}
.reveal   {opacity:0;transform:translateY(22px);transition:opacity .65s var(--ease-out),transform .65s var(--ease-out)}
.reveal-l {opacity:0;transform:translateX(-22px);transition:opacity .65s var(--ease-out),transform .65s var(--ease-out)}
.reveal-r {opacity:0;transform:translateX(22px);transition:opacity .65s var(--ease-out),transform .65s var(--ease-out)}
.reveal.visible,.reveal-l.visible,.reveal-r.visible{opacity:1;transform:none}

/* ── WIZARD ──────────────────────────────────────────────── */
.wizard-progress{display:flex;align-items:center;margin-bottom:3rem}
.wiz-step{display:flex;flex-direction:column;align-items:center;gap:.4rem;flex:1;position:relative}
.wiz-step:not(:last-child)::after{content:'';position:absolute;top:16px;left:55%;width:90%;height:2px;background:var(--border);z-index:0}
.wiz-step.done:not(:last-child)::after{background:var(--ocean)}
.wiz-dot{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:var(--ink-muted);z-index:1;position:relative}
.wiz-step.active .wiz-dot,.wiz-step.done .wiz-dot{border-color:var(--ocean);background:var(--ocean);color:#fff}
.wiz-label{font-size:.65rem;font-weight:700;color:var(--ink-muted);text-align:center;white-space:nowrap}
.wiz-step.active .wiz-label{color:var(--ocean)}
.wiz-panel{display:none}
.wiz-panel.active{display:block;animation:fadeUp .35s var(--ease-out)}
.wiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}

/* ── MISC UTILITIES ──────────────────────────────────────── */
.divider{border:none;border-top:1px solid var(--border);margin:1.5rem 0}
.text-center{text-align:center}
.text-ocean{color:var(--ocean)}
.text-muted{color:var(--ink-muted)}
.mt-1{margin-top:1rem} .mt-2{margin-top:2rem} .mt-3{margin-top:3rem}
.mb-1{margin-bottom:1rem} .mb-2{margin-bottom:2rem}
.flex{display:flex}
.flex-center{display:flex;align-items:center;justify-content:center}
.flex-between{display:flex;justify-content:space-between;align-items:center}
.gap-sm{gap:.6rem} .gap-md{gap:1rem} .gap-lg{gap:1.5rem}
.w-full{width:100%}

/* ── RESULT BOXES ────────────────────────────────────────── */
.result-box{background:var(--sage-lt);border:1.5px solid rgba(45,145,66,.18);border-radius:var(--r-lg);padding:1.4rem;margin-top:1rem}
.result-box h4{color:var(--sage);font-size:.88rem;font-weight:700;margin-bottom:.8rem}
.result-row{display:flex;justify-content:space-between;align-items:center;padding:.38rem 0;border-bottom:1px solid rgba(45,145,66,.1);font-size:.84rem}
.result-row:last-child{border-bottom:none}
.result-label{color:var(--ink-muted)}
.result-val{font-weight:700;color:var(--ink)}
.result-val.hi{color:var(--ocean);font-size:1.05rem}

/* ================================================================
   RESPONSIVE — Single clean mobile section, no conflicts
   ================================================================ */

/* Tablet */
@media(max-width:1024px) {
  .g4 { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .kpi-grid { grid-template-columns: 1fr 1fr; }
}

/* Mobile */
@media(max-width:768px) {

  /* Layout */
  section { padding: 2.5rem 1rem; }
  .container, .container-sm { padding: 0 1rem; }
  .g2, .g3, .g4 { grid-template-columns: 1fr; gap: 1rem; }

  /* Page hero */
  .page-hero { padding: 5.5rem 1rem 2rem; }
  .page-hero h1 { font-size: clamp(1.5rem, 6vw, 2rem); }
  .page-hero .sub { font-size: .86rem; }

  /* Typography */
  .display-xl { font-size: clamp(1.9rem,8vw,2.5rem); }
  .display-lg { font-size: clamp(1.6rem,7vw,2rem); }
  .display-md { font-size: clamp(1.35rem,6vw,1.7rem); }
  .body-lg { font-size: .92rem; }

  /* Buttons */
  .btn-xl { font-size: .9rem; padding: .8rem 1.4rem; }
  .hero-btns, .cta-actions { flex-direction: column; align-items: stretch; }
  .hero-btns .btn, .cta-actions .btn { justify-content: center; }

  /* Search bar */
  .search-bar { flex-direction: column; gap: .6rem; padding: .8rem 1rem; border-radius: var(--r-lg); }
  .search-bar input, .search-bar select { min-width: 100%; }
  .search-btn { width: 100%; text-align: center; }

  /* Footer */
  .footer { padding: 2.5rem 1rem 5rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .footer-bottom { flex-direction: column; text-align: center; }

  /* Dashboard */
  .dash-layout { grid-template-columns: 1fr; }
  .dash-sidebar { display: none; }
  .mob-dash-nav { display: flex; }
  .dash-main { padding: 1.2rem 1rem 5rem; }
  .dash-header { flex-direction: column; gap: .8rem; }
  .kpi-grid { grid-template-columns: 1fr 1fr; gap: .8rem; }
  .kpi { padding: .9rem; }
  .kpi-val { font-size: 1.3rem; }
  .dash-section { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .dash-table { min-width: 560px; }

  /* Pool / Pro cards */
  .pool-thumb { height: 160px; }
  .pool-body { padding: .9rem; }

  /* Product cards */
  .product-thumb { height: 140px; }

  /* Wizard pages */
  .wizard-wrap { padding: 5.5rem 1rem 3rem; }
  .legal-layout { padding: 5.5rem 1rem 3rem; }
  .wiz-label { display: none; }

  /* Prevent overflow */
  body { overflow-x: hidden; }
  img { max-width: 100%; }

  /* Overflow: no on sections */
  section, .page-hero, .container { max-width: 100vw; overflow-x: hidden; }

  /* Toast position */
  .toast { bottom: 5rem; right: 1rem; left: 1rem; max-width: 100%; }
}

/* Small phones */
@media(max-width:400px) {
  .footer-grid { grid-template-columns: 1fr; }
  .g2 { grid-template-columns: 1fr; }
}

/* ── SECTION HEADERS (used across many pages) ─────────────── */
.section-center { text-align: center; max-width: 640px; margin: 0 auto 2.5rem; }
.section-label  { font-size: .68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--ocean); display: block; margin-bottom: .6rem; }
.section-title  { font-family: var(--font-display); font-size: clamp(1.6rem, 4vw, 2.6rem); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: var(--ink); margin-bottom: .8rem; }
.section-title em { font-style: italic; color: var(--sun); }
.section-sub    { font-size: .95rem; color: var(--ink-muted); line-height: 1.75; max-width: 560px; margin: 0 auto; }

/* ── COST CARD (build page) ───────────────────────────────── */
.cost-card { background: #fff; border: 1px solid var(--border); border-radius: var(--r-xl); padding: 1.8rem; }
@media(max-width:768px) { .cost-card { padding: 1.2rem 1rem; } }

/* ── FORM ROW (2 columns) ─────────────────────────────────── */
.form-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
@media(max-width:500px) { .form-row2 { grid-template-columns: 1fr; } }

/* ── DIVIDER TEXT ─────────────────────────────────────────── */
.divider-text { text-align: center; font-size: .74rem; color: var(--ink-muted); margin: .5rem 0 1rem; position: relative; }
.divider-text::before, .divider-text::after { content: ''; position: absolute; top: 50%; width: 40%; height: 1px; background: var(--border); }
.divider-text::before { left: 0; } .divider-text::after { right: 0; }

/* ── OPTION CARD (build / join pages) ────────────────────── */
.option-card { border: 1.5px solid var(--border); border-radius: var(--r-lg); padding: .9rem; cursor: pointer; transition: all .2s; background: #fff; display: flex; gap: .7rem; align-items: flex-start; }
.option-card:hover, .option-card.selected { border-color: var(--ocean); background: var(--ocean-pale); }
.option-card .oc-ico { font-size: 1.4rem; flex-shrink: 0; }
.option-card h4 { font-size: .85rem; font-weight: 700; margin-bottom: .15rem; }
.option-card p  { font-size: .75rem; color: var(--ink-muted); }
.option-card .oc-price { font-size: .72rem; font-weight: 600; color: var(--ocean); margin-top: .2rem; }

/* ── PRICING PAGE ─────────────────────────────────────────── */
.price-card { background: #fff; border: 1.5px solid var(--border); border-radius: var(--r-2xl); padding: 2rem 1.8rem; }
.price-card.featured { border-color: var(--ocean); background: var(--ocean-pale); }
.price-num { font-family: var(--font-display); font-size: 3rem; font-weight: 700; color: var(--ink); line-height: 1; }
.price-per { font-size: .8rem; color: var(--ink-muted); font-weight: 400; }
.price-feat { font-size: .84rem; color: var(--ink-mid); padding: .4rem 0; display: flex; align-items: flex-start; gap: .6rem; }
.price-feat::before { content: '✓'; color: var(--sage); font-weight: 700; flex-shrink: 0; }

/* ── HERO ACTIONS ─────────────────────────────────────────── */
.hero-actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.5rem; }
@media(max-width:500px) { .hero-actions { flex-direction: column; } .hero-actions .btn { justify-content: center; } }

/* ── BADGE VARIANTS ───────────────────────────────────────── */
.badge-amber  { background: var(--amber-lt); color: var(--amber); }
.badge-coral  { background: var(--coral-lt); color: var(--coral); }

/* ── KPI LABEL / CHANGE ───────────────────────────────────── */
.kpi-lbl { font-size: .72rem; color: var(--ink-muted); }
.kpi-ch  { font-size: .72rem; font-weight: 700; }
.kpi-ch.up { color: var(--sage); }
.kpi-ch.dn { color: var(--coral); }

/* ── DASH WRAP (dashboards not using dash-layout) ─────────── */
.dash-wrap { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; padding-top: 64px; }
@media(max-width:900px) { .dash-wrap { grid-template-columns: 1fr; } }
.dash-hd { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.8rem; }
.dash-hd h1 { font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; }
.dash-hd p  { font-size: .86rem; color: var(--ink-muted); margin-top: .2rem; }
.ds-verified { display: inline-flex; align-items: center; gap: .3rem; font-size: .7rem; font-weight: 700; color: var(--sage); background: var(--sage-lt); padding: .18rem .55rem; border-radius: 8px; margin-top: .4rem; }
.ds-section-label { font-size: .6rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.22); padding: .8rem .7rem .25rem; }
.ico { font-size: 1rem; width: 20px; flex-shrink: 0; text-align: center; }
.cnt { margin-left: auto; background: var(--ocean); color: #fff; font-size: .62rem; font-weight: 700; padding: .12rem .45rem; border-radius: 8px; }
