/* ============================
   BlockSpark.pt — Website CSS
   (substitui o ficheiro inteiro)
   ============================ */

/* Reset / base */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
img,svg,video,canvas{max-width:100%;height:auto}

/* Theme */
:root{
  --bg:#0f1115;
  --card:#161a22;
  --muted:#9aa3b2;
  --txt:#eef2ff;
  --line:rgba(255,255,255,.08);
  --accent:#4f8cff;

  --max:1180px;
  --pad:40px;
  --pad-mobile:18px;

  --radius:18px;
}

body{
  font-family: Arial, sans-serif;
  background:var(--bg);
  color:var(--txt);
  overflow-x:hidden;
}

/* Container (margens laterais definitivas) */
.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding-left:var(--pad);
  padding-right:var(--pad);
}
@media (max-width: 768px){
  .container{
    padding-left:var(--pad-mobile);
    padding-right:var(--pad-mobile);
  }
}

/* Links / typography helpers */
a{color:inherit}
.muted{color:var(--muted)}
.small{font-size:11px}

/* ============================
   Header / Topbar
   ============================ */
.topbar{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(15,17,21,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding-top:12px;
  padding-bottom:12px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--txt);
  min-width:0;
}
.brand-logo{
  width:auto;
  height:44px;
  object-fit:contain;
  display:block;
}
.brand-name{
  font-weight:900;
  letter-spacing:.2px;
  font-size:18px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.nav{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.nav a{
  text-decoration:none;
  font-weight:800;
  font-size:12px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
}
.nav a:hover{background:rgba(255,255,255,.07)}

/* icon button (usado no hamburger) */
.icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--txt);
  border-radius:999px;
  cursor:pointer;
  font-weight:900;
  user-select:none;
}
.icon-btn:hover{background:rgba(255,255,255,.07)}
.icon-btn.icon-only{width:44px;height:44px;padding:0}

.nav-toggle{display:none}

/* ============================
   Hero
   ============================ */
.hero{margin:16px 0 10px}
.hero-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:10px;
  box-shadow:0 16px 40px rgba(0,0,0,.35);
}
.hero-title{
  font-size:14px;
  font-weight:900;
  margin:0 0 6px;
}

/* ============================
   Forms / Filters
   ============================ */
.filters{margin:12px 0 18px}
.filter-grid{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr .8fr .8fr 1fr 1fr 1fr auto auto;
  gap:10px;
  align-items:end;
}

.input, input, select, textarea{
  width:100%;
  padding:3px 3px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#0c0e13;
  color:var(--txt);
  outline:none;
}
.input:focus, input:focus, select:focus, textarea:focus{
  border-color:rgba(79,140,255,.6);
  box-shadow:0 0 0 3px rgba(79,140,255,.12);
}
textarea{min-height:110px;resize:vertical}

.btn, button.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 2px 9px;
    border-radius: 12px;
    border: 1px solid rgba(79, 140, 255, .6);
    background: rgba(79, 140, 255, .18);
    color: var(--txt);
    text-decoration: none;
    font-weight: 100;
    cursor: pointer;
    white-space: nowrap;
}
.btn:hover{background:rgba(79,140,255,.26)}
.btn-ghost {
    background: transparent;
    border-color: var(--line);
    color: var(--muted);
    font-size: 14px;
    font-weight: 100;
}
.btn-ghost:hover{background:rgba(255,255,255,.04);color:var(--txt)}

@media (max-width: 980px){
  .filter-grid{grid-template-columns:1fr 1fr}
}

/* ============================
   Meta row + Grid
   ============================ */
.meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:10px 0 12px;
}

.grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
  align-items:stretch;
}

/* Card */
.card{
  display:block;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  text-decoration:none;
  color:var(--txt);
  box-shadow:0 10px 28px rgba(0,0,0,.30);
  transition:transform .14s ease, box-shadow .14s ease;
}
.card:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(0,0,0,.38);
}

.card-img{
  position:relative;
  aspect-ratio:16/10;
  background:#0b0d12;
}
.card-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.badge{
  position:absolute;
  top:10px;
  left:10px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}

.card-body{padding:10px 10px 12px}
.card-title{font-weight:900;line-height:1.2;margin:0 0 4px}
.card-sub{color:var(--muted);font-weight:600;font-size:10px;margin:0 0 10px}
.card-price{font-weight:900}

@media (max-width: 980px){
  .grid{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width: 560px){
  .grid{grid-template-columns:repeat(2, minmax(0,1fr))}
  .card-img{aspect-ratio:4/3}
  .grid.grid-big{grid-template-columns:1fr}
}

/* ============================
   Pager / Empty
   ============================ */
.pager{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:20px 0 10px;
}
.empty{
  background:var(--card);
  border:1px dashed var(--line);
  border-radius:var(--radius);
  padding:22px;
  color:var(--muted);
}

/* ============================
   Detail page
   ============================ */
.crumbs{margin:10px 0 12px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--txt)}

.detail-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:18px;
}
.h1{font-size:26px;margin:0 0 8px;font-weight:900}
.price{font-size:38px;font-weight:900;margin:0;letter-spacing:-.02em}
.price-card{text-align:center;padding:22px 18px;margin-bottom:22px;display:flex;align-items:center;justify-content:center;min-height:88px}

.specs{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
  margin:0 0 14px;
}
.specs div{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:10px 12px;
}
.specs span{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  margin-bottom:2px;
}
.specs strong{font-weight:900}

.desc{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  margin:0 0 14px;
  color:var(--txt);
}

.cta{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}

.lead{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
}
.lead-title{font-weight:900;margin:0 0 10px}
.lead-form{display:grid;gap:10px}

@media (max-width: 980px){
  .detail-grid{grid-template-columns:1fr}
}

/* ============================
   Gallery + Modal
   ============================ */
.gallery{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:12px;
}
.gallery-main{
  display:block;
  border-radius:14px;
  overflow:hidden;
  aspect-ratio:16/10;
  background:#0b0d12;
}
.gallery-main img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.gallery-thumbs{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.thumb{
  display:block;
  border-radius:10px;
  overflow:hidden;
  aspect-ratio:1/1;
  background:#0b0d12;
  border:1px solid var(--line);
}
.thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
@media (max-width: 560px){
  .gallery-thumbs{grid-template-columns:repeat(4, minmax(0,1fr))}
}

.modal{position:fixed;inset:0;display:none;z-index:9999}
.modal.open{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7)}
.modal-card{
  position:absolute;
  left:50%; top:50%;
  transform:translate(-50%,-50%);
  max-width:min(92vw,1100px);
  max-height:86vh;
  background:rgba(10,12,16,.92);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);
  padding:10px;
  box-shadow:0 20px 80px rgba(0,0,0,.6);
}
.modal-card img{
  display:block;
  max-width:100%;
  max-height:calc(86vh - 20px);
  border-radius:12px;
}
.modal-close{
  position:absolute;
  top:8px; right:10px;
  border:none;
  background:rgba(255,255,255,.08);
  color:var(--txt);
  border:1px solid rgba(255,255,255,.14);
  width:34px; height:34px;
  border-radius:999px;
  font-size:20px;
  cursor:pointer;
}

/* ============================
   Footer (2 linhas)
   ============================ */
.footer{
  margin-top:26px;
  border-top:1px solid var(--line);
  padding:22px 0;
  background:rgba(0,0,0,.12);
}
.footer-inner{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.footer-row{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.footer-title{font-weight:900;margin:0 0 6px}
.footer-contacts{
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}
.livro-logo{
  height:30px;
  width:auto;
  display:block;
}
.footer-row-copy{
  width:100%;
  text-align:center;
  color:var(--muted);
  font-weight:800;
  font-size:13px;
  border-top:1px solid var(--line);
  padding-top:12px;
}

/* ============================
   Offcanvas mobile menu
   ============================ */
.offcanvas-overlay{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.55);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
  z-index:99999;
}
.offcanvas-panel{
  position:fixed;
  top:0;
  right:0;
  height:100vh;
  width:min(86vw,360px);
  background:#0c0e13;
  border-left:1px solid var(--line);
  box-shadow:0 24px 70px rgba(0,0,0,.35);
  transform:translateX(100%);
  transition:transform .22s ease;
  z-index:100000;
  display:flex;
  flex-direction:column;
}
.offcanvas-overlay.open{opacity:1;pointer-events:auto}
.offcanvas-panel.open{transform:translateX(0)}
.offcanvas-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px;
  border-bottom:1px solid var(--line);
}
.offcanvas-title{font-weight:900;font-size:18px}
.offcanvas-close{
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 12px;
  background:rgba(255,255,255,.04);
  color:var(--txt);
  cursor:pointer;
  font-weight:900;
}
.offcanvas-close:hover{background:rgba(255,255,255,.07)}
.offcanvas-body{
  padding:12px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.offcanvas-body a{
  display:block;
  padding:10px 12px;
  border-radius:12px;
  text-decoration:none;
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);
  color:var(--txt);
  font-weight:900;
  margin-bottom:10px;
}
.offcanvas-body a:hover{background:rgba(255,255,255,.07)}
html.no-scroll, html.no-scroll body{overflow:hidden}

/* switch to offcanvas on mobile/tablet */
@media (max-width: 900px){
  .nav{display:none !important}
  .nav-toggle{display:inline-flex !important}
}

/* Small tweaks */
@media (max-width: 560px){
  .brand-logo{height:38px}
  .brand-name{font-size:16px}
  .hero-title{font-size:14px}
}



/* ============================
   Panels (páginas institucionais)
   ============================ */
.panel{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:0 10px 28px rgba(0,0,0,.30);
}
.panel h1,.panel h2,.panel h3{margin:0 0 12px;}
.panel p{margin:0 0 12px; line-height:1.65;}
.panel ul{margin:0; padding-left:20px;}
.panel li{margin:0 0 8px;}
@media (max-width: 768px){
  .panel{padding:18px;}
}

/* ============================
   Gallery Slider (viatura)
   ============================ */
.gallery{position:relative;}
.gallery-main-wrap{position:relative;border-radius:14px;overflow:hidden;}
.gallery-main{display:block;border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:#0b0d12;}
.gallery-main img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .12s ease;}
/* hover zoom (desktop only) */
@media (hover:hover) and (pointer:fine){
  .gallery-main.zoom-ready img{cursor:zoom-in;}
  .gallery-main.zoom-ready img.zooming{transform:scale(1.6);cursor:zoom-out;}
}

.g-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:42px;height:42px;border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.45);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:900;
  cursor:pointer;user-select:none;
}
.g-arrow:hover{background:rgba(0,0,0,.60);}
.g-arrow.left{left:10px;}
.g-arrow.right{right:10px;}
.g-arrow[disabled]{opacity:.35;cursor:not-allowed;}

.g-counter{
  position:absolute;bottom:10px;right:10px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);
  padding:6px 10px;border-radius:999px;
  font-size:12px;font-weight:900;
}

/* thumbs */
.gallery-thumbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:10px;}
.thumb{display:block;border-radius:10px;overflow:hidden;aspect-ratio:1/1;background:#0b0d12;border:1px solid var(--line);opacity:.8;transition:opacity .12s ease, transform .12s ease;}
.thumb:hover{opacity:1;transform:translateY(-1px);}
.thumb.active{opacity:1;outline:2px solid rgba(79,140,255,.7);outline-offset:2px;}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:560px){
  .gallery-thumbs{grid-template-columns:repeat(4,minmax(0,1fr));}
}

/* Modal viewer 95% */
.g-modal{position:fixed;inset:0;display:none;z-index:1000000;}
.g-modal.open{display:block;}
.g-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.75);}
.g-modal-card{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(95vw, 1400px);
  height:min(95vh, 900px);
  background:rgba(10,12,16,.92);
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  box-shadow:0 20px 80px rgba(0,0,0,.6);
  display:flex;flex-direction:column;overflow:hidden;
}
.g-modal-top{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.10);
}
.g-modal-title{font-weight:900;font-size:13px;color:var(--txt);opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.g-modal-actions{display:flex;gap:8px;align-items:center;}
.g-ibtn{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:#fff;border-radius:12px;
  padding:8px 10px;font-weight:900;cursor:pointer;
}
.g-ibtn:hover{background:rgba(255,255,255,.10);}
.g-modal-body{position:relative;flex:1;display:flex;align-items:center;justify-content:center;background:#0b0d12;}
.g-modal-imgwrap{position:relative;max-width:100%;max-height:100%;display:flex;align-items:center;justify-content:center;}
.g-modal-img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
  transition:transform .12s ease;
}
@media (hover:hover) and (pointer:fine){
  .g-modal-imgwrap.zoom-ready .g-modal-img{cursor:zoom-in;}
  .g-modal-imgwrap.zoom-ready .g-modal-img.zooming{transform:scale(1.6);cursor:zoom-out;}
}
.g-modal-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;}
.g-modal-arrow.left{left:10px;}
.g-modal-arrow.right{right:10px;}
.g-modal-counter{
  position:absolute;bottom:12px;right:12px;z-index:2;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);
  padding:6px 10px;border-radius:999px;
  font-size:12px;font-weight:900;color:#fff;
}



/* ===== BlockSpark floating actions: Cookies + Top ===== */
:root{
  --bs-primary:#0b3a68;
  --bs-primary-2:#072848;
  --bs-surface: rgba(255,255,255,.92);
  --bs-surface-border: rgba(148,163,184,.35);
  --bs-shadow: 0 10px 28px rgba(15,23,42,.18);
  --bs-shadow-strong: 0 16px 40px rgba(15,23,42,.26);
  --fab-gap:16px;
  --fab-right:16px;
  --fab-bottom:16px;
  --fab-chat-offset:0px;
}

.cc-tab{
  position:fixed;
  right:calc(var(--fab-right) + var(--fab-chat-offset));
  bottom:var(--fab-bottom);
  z-index:999998;
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:999px;
  background:var(--bs-surface);color:#0f172a;
  border:1px solid var(--bs-surface-border);
  font-weight:900;font-size:13px;letter-spacing:.2px;text-decoration:none;
  box-shadow:var(--bs-shadow);backdrop-filter:blur(10px);
  transform:translateY(8px);opacity:0;
  transition:opacity .22s ease, transform .22s ease, box-shadow .22s ease, filter .22s ease;
}
.cc-tab:hover{transform:translateY(0);box-shadow:var(--bs-shadow-strong);filter:brightness(1.02)}
.cc-tab__icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:rgba(11,58,104,.10);color:var(--bs-primary)}
.cc-tab__text{line-height:1}

.scroll-top{
  position:fixed;
  right:calc(var(--fab-right) + var(--fab-chat-offset));
  bottom:calc(var(--fab-bottom) + 54px + var(--fab-gap));
  z-index:999997;
  width:48px;height:48px;border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:var(--bs-primary);color:#fff;
  cursor:pointer;box-shadow:var(--bs-shadow);
  display:inline-flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(10px) scale(.98);pointer-events:none;
  transition:opacity .22s ease, transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.scroll-top:hover{background:var(--bs-primary-2);transform:translateY(0) scale(1);box-shadow:var(--bs-shadow-strong)}
.scroll-top__icon{width:22px;height:22px;fill:currentColor}

.cc-tab.is-visible{opacity:1;transform:translateY(0)}
.scroll-top.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}

@media (max-width:420px){.cc-tab__text{display:none}.cc-tab{padding:10px}}
@supports(padding:max(0px)){
  .cc-tab{bottom:max(var(--fab-bottom), env(safe-area-inset-bottom))}
  .scroll-top{bottom:max(calc(var(--fab-bottom) + 54px + var(--fab-gap)), env(safe-area-inset-bottom))}
}


/* ===== Fix padding interno páginas institucionais ===== */
.page-card, .policy-card, .content-card, .hero-card{
  padding:24px;
}
.page-card h1, .page-card h2, .policy-card h2, .content-card h2, .hero-card h2{margin:0 0 14px}
.page-card p, .policy-card p, .content-card p, .hero-card p{margin:0 0 14px;line-height:1.6}
.page-card ul, .policy-card ul, .content-card ul, .hero-card ul{padding-left:20px;margin:10px 0 14px}
.page-card li, .policy-card li, .content-card li, .hero-card li{margin-bottom:8px}
.page-card > * + *, .policy-card > * + *, .content-card > * + *, .hero-card > * + *{margin-top:14px}
@media (max-width:768px){.page-card, .policy-card, .content-card, .hero-card{padding:18px}}


/* ============================
   Cookie marker (left, icon-only)
   ============================ */
.cc-marker{
  position:fixed;
  right: 12px;
  bottom:18px;
  z-index:999998;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.35);
  background:rgba(255,255,255,.85);
  color:#0b3a68;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(15,23,42,.12);
  backdrop-filter: blur(10px);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.cc-marker:hover{
  transform: translateY(-2px);
  box-shadow:0 16px 34px rgba(15,23,42,.18);
  filter: brightness(1.02);
}
@supports(padding: max(0px)){
  .cc-marker{
  right:12px; bottom: max(18px, env(safe-area-inset-bottom)); }
}

/* ============================
   Floating actions (Cookie + Top)
   ============================ */
:root{
  --fab-right: 18px;
  --fab-bottom: 18px;
  --fab-gap: 12px;
  --fab-chat-offset: 0px; /* reservado para widgets no canto inferior direito */
}

/* Cookie marker (icon-only) */
.cc-marker{
  position:fixed;
  right: calc(var(--fab-right) + var(--fab-chat-offset));
  left: auto;
  bottom: var(--fab-bottom);
  z-index:999998;

  width:40px;
  height:40px;
  border-radius:999px;

  border:1px solid rgba(148,163,184,.30);
  background:rgba(255,255,255,.78);
  color:#0b3a68;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  cursor:pointer;

  box-shadow:0 10px 22px rgba(15,23,42,.12);
  backdrop-filter: blur(10px);

  transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.cc-marker:hover{
  transform: translateY(-2px);
  background:rgba(255,255,255,.86);
  box-shadow:0 16px 34px rgba(15,23,42,.18);
}

/* Top button aligned above cookie */
.scroll-top{
  right: calc(var(--fab-right) + var(--fab-chat-offset));
  bottom: calc(var(--fab-bottom) + 40px + var(--fab-gap));
}

/* Hide when footer visible */
.fab-hidden{
  opacity:0 !important;
  transform: translateY(8px) scale(.98) !important;
  pointer-events:none !important;
}

@supports(padding: max(0px)){
  .cc-marker{ bottom: max(var(--fab-bottom), env(safe-area-inset-bottom)); }
  .scroll-top{ bottom: max(calc(var(--fab-bottom) + 40px + var(--fab-gap)), calc(env(safe-area-inset-bottom) + 40px + var(--fab-gap))); }
}


/* WhatsApp button */
.wa-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.25);
  background:rgba(255,255,255,.06);
  color:var(--txt);
  text-decoration:none;
  font-weight:900;
  font-size:13px;
}
.wa-btn:hover{background:rgba(255,255,255,.10)}
.wa-btn svg{width:18px;height:18px;fill:currentColor}


/* ============================
   Proteção básica + Marca de água
   Nota: isto desencoraja cópia, mas não impede 100% (limitações do browser).
   ============================ */
:root{
  --wm-url: url('assets/blockspark_symbol_transparent.png');
  --wm-opacity: .10;
}

/* Desencorajar seleção/cópia (mantém inputs utilizáveis) */
body{
  -webkit-user-select:none;
  -moz-user-select:none;
  user-select:none;
}
input, textarea, select, button, a{
  -webkit-user-select:auto;
  -moz-user-select:auto;
  user-select:auto;
}

/* Evitar arrastar imagens */
img{ -webkit-user-drag:none; user-drag:none; }

/* Watermark overlay em imagens de cards/galeria */
.card-img, .gallery-main, .thumb{
  position:relative;
  overflow:hidden;
}
.card-img::after,
.gallery-main::after,
.thumb::after{
  content:'';
  position:absolute;
  inset:0;
  background-image: var(--wm-url);
  background-repeat:no-repeat;
  background-position:center;
  background-size: 40%;
  opacity: var(--wm-opacity);
  pointer-events:none;
  mix-blend-mode: normal;
}

/* Watermark também no modal de imagem (se existir) */
.modal-card::after{
  content:'';
  position:absolute;
  inset:10px;
  background-image: var(--wm-url);
  background-repeat:no-repeat;
  background-position:center;
  background-size: 28%;
  opacity: var(--wm-opacity);
  pointer-events:none;
}



.cf-turnstile{margin:10px 0 6px;}

/* Equipment block (vehicle detail) */
.equip{margin-top:18px;padding-top:14px;border-top:1px solid rgba(0,0,0,.08)}
/* Stronger title */
.equip-title{font-weight:900;font-size:34px;letter-spacing:-.02em;margin-bottom:14px;color:var(--txt)}

/* Category card with subtle different background */
.equip-cat{margin-bottom:14px;padding:12px 14px;border-radius:16px;background:rgba(0,0,0,.035);border:1px solid rgba(0,0,0,.06)}
html.dark .equip-cat{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.10)}

/* Subtitle with more contrast */
.equip-cat-title{font-weight:900;margin-bottom:10px;color:#ffffff);font-size:18px}
html.dark .equip-cat-title{color:#ffffff}


/* 1 col mobile, 2 cols tablet/desktop, 3 cols wide */
.equip-list{display:grid;grid-template-columns:1fr;gap:8px 14px}
@media (min-width: 820px){
  .equip-list{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media (min-width: 1140px){
  .equip-list{grid-template-columns:repeat(3, minmax(0,1fr));}
}
.equip-item{display:flex;gap:10px;align-items:center}
.equip-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:rgba(16,185,129,.14);color:rgba(6,95,70,1);font-weight:900;flex:0 0 18px}

/* Public description HTML */
.desc p{margin:0 0 10px 0}
.desc ul,.desc ol{margin:8px 0 8px 18px}
.desc a{text-decoration:underline}


/* Status ribbons (Reservado / Vendido) */
.ribbon{
  position:absolute;
  top:18px;
  left:-56px;
  transform:rotate(-45deg);
  width:210px;
  text-align:center;
  font-weight:800;
  font-size:14px;
  padding:7px 0;
  z-index:20;
  color:#fff;
  letter-spacing:.4px;
  box-shadow: 0 10px 30px rgba(0,0,0,.35);
}
.ribbon-reserved{ background:#c62828; }
.ribbon-sold{ background:#8b0000; }

/* Blur sold */
.media-sold img{
  filter: blur(2.5px) grayscale(30%);
  transform: scale(1.02);
  opacity: .85;
}

/* Sold card: disable hover affordance */
.card-sold{
  cursor:not-allowed;
}

/* Filters: checkbox inline */
.chk{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}
.chk input{accent-color:#c62828}
.chk span{font-weight:700;font-size:13px;color:rgba(255,255,255,.92)}
