/* =========================================================
   ZYNERA HEALTHCARE ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â BASE STYLES
   ========================================================= */

*, *::before, *::after{ box-sizing: border-box; }

html{ scroll-behavior: smooth; }

body{
  margin:0;
  font-family: var(--font-body);
  color: var(--zy-ink);
  background: var(--zy-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img{ max-width: 100%; height: auto; display:block; }

a{ text-decoration:none; color: inherit; }

.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--zy-navy); color:#fff;
  padding:12px 20px; z-index:2000; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

::selection{ background: var(--zy-orange); color:#fff; }

/* --- Typography scale --- */
h1,h2,h3,h4,h5,h6{
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.12;
  margin: 0 0 0.5em;
  color: var(--zy-navy-deep);
  letter-spacing: -0.01em;
}

.zy-h0{font-size: 70px;font-weight: 800;letter-spacing: -0.02em;font-family: 'Playfair Display', serif; text-align:center; }
.zy-h1{ font-size: clamp(2.2rem, 4.2vw, 3.4rem); font-weight: 800; }
.zy-h2{font-size: 40px;font-weight: 700;font-family: 'Playfair Display', serif;}
.zy-h3{ font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 700; }

p{ line-height: 1.5; color: var(--zy-grey-600); margin:0 0 1em; }

.zy-lead{font-size: clamp(1.05rem, 1.6vw, 1.25rem);text-align: center;}

.zy-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--zy-orange);
  margin-bottom: 18px;
}
.zy-eyebrow::before{
  content:""; width:26px; height:2px; background: var(--zy-orange); display:inline-block;
}

.zy-eyebrow.on-dark{ color: var(--zy-orange); }

/* --- Section rhythm --- */
.zy-section{ padding: 50px 0px; position:relative; }
.zy-section-tight{ padding-block: clamp(48px, 6vw, 80px); }
.zy-section-dark{ background: var(--zy-navy-deep); color: rgba(255,255,255,0.92); }
.zy-section-dark h1, .zy-section-dark h2, .zy-section-dark h3{color: var(--zy-navy-deep);font-family: 'Playfair Display', serif;}
.zy-section-dark p{color: rgb(52 50 50 / 72%);}
.zy-section-tint{background: #f7f7f7;}

.container{ max-width: 1272px; }

/* --- Reveal-on-scroll utility (used by main.js) --- */
.zy-reveal{
  opacity:0; transform: translateY(24px);
  transition: opacity var(--dur-slow) var(--ease-premium), transform var(--dur-slow) var(--ease-premium);
}
.zy-reveal.is-visible{ opacity:1; transform:none; }
.zy-reveal-stagger > *{ transition-delay: calc(var(--i, 0) * 90ms); }

/* --- Buttons --- */
.btn-zy{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 15px 30px;
  border-radius: 100px;
  border: 1.5px solid transparent;
  transition: all var(--dur-fast) var(--ease-premium);
  white-space: nowrap;
}
.btn-zy i{ transition: transform var(--dur-fast) var(--ease-premium); }
.btn-zy:hover i{ transform: translateX(4px); }

.btn-zy-primary{ background: var(--zy-orange); color:#fff; }
.btn-zy-primary:hover{ background: var(--zy-orange-dark); color:#fff; }

.btn-zy-outline{ background: transparent; border-color: rgba(255,255,255,0.35); color:#fff; }
.btn-zy-outline:hover{ background: rgba(255,255,255,0.1); border-color:#fff; color:#fff; }

.btn-zy-outline-dark{ background: transparent; border-color: var(--zy-border-strong); color: var(--zy-navy-deep); }
.btn-zy-outline-dark:hover{ background: var(--zy-navy-deep); border-color: var(--zy-navy-deep); color:#fff; }

.btn-zy-navy{ background: var(--zy-navy); color:#fff; }
.btn-zy-navy:hover{ background: var(--zy-navy-deep); color:#fff; }

.btn-zy-block{ width:100%; }

@media (max-width: 767.98px){
  .btn-sm-full{ width:100%; }
}

/* --- Focus visibility --- */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 2px solid var(--zy-orange);
  outline-offset: 3px;
}

/* --- Misc utilities --- */
.zy-divider{ height:1px; background: var(--zy-border); border:0; margin: 0; }
.text-orange{ color: var(--zy-orange) !important; }
.zy-num{
  font-family: var(--font-display); font-weight: 800;
  color: var(--zy-orange);
  font-size: 1rem;
  letter-spacing: 0.05em;
}
