
:root{
  --bg:#F7F9FA; --bg2:#E6F3F0; --txt:#222; --muted:#4b5563;
  --brand:#8dc03f; --brand-strong:#7bab38; --card:#fff; --border:#e5e7eb; --radius:24px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--txt);background:linear-gradient(135deg,var(--bg),var(--bg2));}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.site-header{position:sticky;top:0;background:rgba(255,255,255,0.85);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;height:80px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{height:56px;width:auto;display:block}
nav a{margin-left:18px;text-decoration:none;color:var(--txt)}
.btn{padding:10px 14px;border-radius:12px;border:1px solid var(--border);text-decoration:none;display:inline-block;background:#fff}
.btn-primary{background:var(--brand);color:#fff;border:none}
.btn-primary:hover{background:var(--brand-strong)}
.btn-ghost{background:#fff}

.hero{padding:84px 0}
.hero-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center}
.hero-copy h1{font-size:40px;line-height:1.1;margin:0 0 12px}
.hero-copy p{color:var(--muted);margin:0 0 20px}
.hero-art{height:360px;border-radius:24px;border:1px solid var(--border);overflow:hidden}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block}

.usp{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:10px auto 40px}
.usp-item{font-size:18px;padding:18px;background:var(--card);border:1px solid var(--border);padding:14px;border-radius:16px;display:flex;align-items:center;gap:10px}
.catalog{padding:24px 0 60px}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.filters input,.filters select{padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#fff;min-width:180px;flex:1}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.card-img{aspect-ratio: 5/6;background:#fff;display:flex;align-items:center;justify-content:center}
.card-img img{width:100%;height:100%;object-fit:contain;padding:10px;}
.card-body{padding:14px}
.card-title{font-weight:600;margin:0 0 6px}
.card-meta{color:var(--muted);font-size:14px;margin-bottom:10px}
.card-actions{margin-top:auto;display:flex;gap:8px;padding:14px;border-top:1px solid var(--border)}
.faq{padding:40px 0}
.faq details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.contact{background:#fff;border-top:1px solid var(--border)}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:40px 0}
.contact-form input,.contact-form textarea{width:100%;margin-bottom:10px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fff}
.site-footer{border-top:1px solid var(--border);padding:20px 0;color:var(--muted);background:#fff}
@media (max-width:900px){
  /* USP mobile tuned */
  .usp{
    margin: 4px auto 10px;
    grid-template-columns: repeat(2,1fr);
    gap: 12px;
  }
  .usp > .usp-item:nth-child(3){
    grid-column: 1 / -1;
  }
  .usp-item{ padding: 12px; font-size: 16px; }

  .nav{height:72px}
  .brand img{height:44px}
  .hero{padding:64px 0 24px}
  .grid{grid-template-columns:repeat(2,1fr)}
  .hero-inner{grid-template-columns:1fr}
  .usp{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:480px){
  .grid{grid-template-columns:1fr}
}


/* Contact emphasis */
.contact-cards{
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;margin-top:16px
}
.contact-cards .card{
  background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px
}
.contact-cards h3{margin:0 0 8px}
.contact-cards .list{list-style:none;margin:0;padding:0}
.contact-cards .list li{margin:6px 0}
.contact-cards a{text-decoration:none}
.contact-cta{display:flex;gap:12px;margin-top:18px}
@media (max-width:900px){
  .contact-cards{grid-template-columns:1fr}
}


/* Links color normalization */
a{color:var(--txt)}
a:visited{color:var(--txt)}
a:hover,a:focus{color:var(--txt); text-decoration:underline}

/* Contact cards: ensure black links explicitly */
.contact-cards a{color:var(--txt); text-decoration:none}
.contact-cards a:hover,.contact-cards a:focus{color:var(--txt); text-decoration:underline}

.card-img img{max-width:100%;max-height:100%}


/* Ensure primary button text is white (overrides global link styles) */
.btn-primary,
a.btn-primary,
.btn.btn-primary{ color:#fff !important; }
.btn-primary:visited{ color:#fff !important; }
.btn-primary:hover,
.btn-primary:focus{ color:#fff !important; text-decoration:none; }


/* --- Mobile menu (hamburger) --- */
.hamburger{display:none;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:#fff}
.hamburger span{display:block;width:22px;height:2px;background:var(--txt);margin:3px 0;transition:transform .2s ease, opacity .2s ease}
/* open state transforms */
.nav-open .hamburger span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav-open .hamburger span:nth-child(2){opacity:0}
.nav-open .hamburger span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

@media (max-width:900px){
  .hamburger{display:flex}
  /* hide menu by default on mobile */
  #menu{position:absolute;top:72px;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);display:none;flex-direction:column;gap:0;padding:8px 20px}
  #menu a{padding:12px 0;margin:0;border-top:1px solid var(--border)}
  #menu a:first-child{border-top:none}
  .nav{position:relative}
  /* when open */
  .nav-open #menu{display:flex}
}


/* O ApaCare info grid */
.info-grid{display:grid;gap:20px}
@media (min-width:800px){.info-grid.cols-2{grid-template-columns:1fr 1fr}}


/* Longform section readability */
.o-apacare .lead{font-size:1.125rem; color:var(--muted)}
.o-apacare h3{margin-top:8px}
.o-apacare h4{margin:8px 0 4px 0}
.o-apacare ul{padding-left:1.1rem}
.o-apacare ol{padding-left:1.2rem}


/* Illustration under remineralization info */
.illu-remin{margin:16px 0 8px; text-align:center}
.illu-remin img{max-width:680px; width:100%; height:auto; display:inline-block}
