:root{
  --bg:#FBF7F2; /* off-white/creme */
  --muted:#F6EFEA;
  --text:#222222;
  --accent:#8DAAA7; /* subtle teal-ish */
  --accent-dark:#6b8f8b;
  --card:#ffffff;
  --shadow: 0 6px 18px rgba(34,34,34,0.06);
  --radius:14px;
  --max-width:1100px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.5;
}
.container{max-width:var(--max-width);margin:0 auto;padding:1rem}
.grid{display:grid;gap:1rem}

/* Typography scaling */
h1{font-size:clamp(1.4rem,2.6vw,2.6rem);line-height:1.05;margin:0 0 .5rem}
h2{font-size:clamp(1.1rem,2vw,1.6rem);margin:0 0 .6rem}
h3{font-size:1.05rem;margin:0 0 .4rem}
p{font-size:clamp(.95rem,1.6vw,1rem);color:#444}

.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#fff;padding:.5rem;border-radius:6px}

/* Header */
.site-header{position:static;background:rgba(251,247,242,0.98);z-index:40;border-bottom:1px solid rgba(0,0,0,0.04)}
.header-inner{display:flex;gap:1rem;align-items:center;justify-content:space-between}
.brand{font-weight:600;flex:0 0 auto}
/* Logo image in header: keep natural aspect, constrain height */
.brand img{height:48px;display:block;width:auto}
.brand{display:inline-block}
.primary-nav{display:none;flex:1 1 auto}
.nav-toggle{background:none;border:0;padding:.5rem}
.hamburger{display:block;width:28px;height:2px;background:var(--text);position:relative}
.hamburger::before,.hamburger::after{content:'';position:absolute;left:0;width:28px;height:2px;background:var(--text)}
.hamburger::before{top:-8px}.hamburger::after{top:8px}
.cta .btn{display:inline-block}

/* Mobile navigation (opened) */
.primary-nav.open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--bg);padding:1.25rem;border-bottom-left-radius:12px;border-bottom-right-radius:12px;box-shadow:var(--shadow);}
.primary-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.primary-nav ul li a{display:block;padding:.6rem .8rem;border-radius:8px}

/* Focus styles for accessibility */
:focus{outline: none}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.nav-toggle:focus-visible{outline:3px solid rgba(139,168,164,0.3);border-radius:8px}
.nav-link:focus-visible{outline:3px solid rgba(139,168,164,0.25);border-radius:6px}
.btn:focus-visible{box-shadow:0 0 0 4px rgba(141,170,167,0.18)}
.form-row input:focus-visible,.form-row textarea:focus-visible{outline:3px solid rgba(139,168,164,0.12)}

/* prevent horizontal overflow (images/long words) */
html,body{overflow-x:hidden}

/* Buttons */
.btn{display:inline-block;padding:.6rem 1rem;border-radius:10px;text-decoration:none;font-weight:600}
.btn-primary{background:var(--accent);color:#fff}
.btn-outline{background:transparent;border:1px solid rgba(34,34,34,0.06);color:var(--text)}
.btn-sm{padding:.4rem .6rem;border-radius:8px}
.btn-phone{background:#fff;border:1px solid rgba(0,0,0,0.06)}

/* Hero */
.hero{padding:2.5rem 0}
.hero-inner{display:grid;grid-template-columns:1fr;gap:1rem;align-items:center;min-height:62vh}
.eyebrow{font-size:.85rem;color:var(--accent-dark);letter-spacing:.06em;margin:0}
.hero-left{max-width:60ch}
.lead{color:#555;margin-top:.6rem}
.hero-actions{display:flex;gap:.75rem;margin-top:1.1rem}
.photo-placeholder{background:linear-gradient(180deg,#fff 0%,var(--muted) 100%);border-radius:18px;box-shadow:0 10px 30px rgba(34,34,34,0.08);padding:0;overflow:hidden}
.photo-placeholder img{width:100%;height:100%;display:block;object-fit:cover}

/* Make primary CTA slightly larger and elevated */
.btn-primary{background:var(--accent);color:#fff;padding:.75rem 1.1rem;border-radius:12px;box-shadow:0 6px 18px rgba(141,170,167,0.12);transition:transform .18s ease,box-shadow .18s ease}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(141,170,167,0.14)}
.btn-outline{padding:.65rem .95rem}


/* Presentation */
.presentation .card{background:var(--card);padding:1rem;border-radius:var(--radius);box-shadow:var(--shadow)}

/* Services */
.services{padding:1.5rem 0}
.services-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:1rem}
.service-card{background:var(--card);padding:1rem;border-radius:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;transition:transform .18s ease,box-shadow .18s ease}
.service-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(34,34,34,0.08)}
.service-card .icon{font-size:1.4rem;width:44px;height:44px;border-radius:10px;background:linear-gradient(180deg,rgba(141,170,167,0.12),rgba(141,170,167,0.06));display:flex;align-items:center;justify-content:center;margin-bottom:.6rem}
.service-card h3{margin:.3rem 0}
.service-card p{flex:1;color:#555;margin-bottom:.75rem}

/* Service / Bilans thumbnails */
.service-thumb,.bilans-thumb{width:100%;height:140px;object-fit:cover;border-radius:10px;margin-bottom:.6rem;display:block}
@media(min-width:600px){.service-thumb,.bilans-thumb{height:120px}}

/* Categories */
.categories{display:grid;gap:1rem}
.category-card{background:var(--card);padding:1rem;border-radius:12px;box-shadow:var(--shadow);min-height:120px}

.bilans-grid{display:grid;gap:1rem}

.about .large img{max-width:320px}

/* Domains grid */
.domains-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-top:1rem}
.domain-card{background:var(--card);padding:.6rem;border-radius:10px;box-shadow:var(--shadow);text-align:center;font-weight:600}
@media(min-width:600px){.domains-grid{grid-template-columns:repeat(4,1fr)}}

.cabinet-gallery{display:grid;gap:1rem}
.map-placeholder{background:#fff;border-radius:10px;padding:2rem;text-align:center;color:#888}

/* Contact */
.contact-list{list-style:none;padding:0;margin:0}
.contact-form{background:var(--card);padding:1rem;border-radius:12px;box-shadow:var(--shadow)}
.form-row{margin-bottom:.75rem}
.form-row label{display:block;font-weight:600;margin-bottom:.25rem}
.form-row input,.form-row textarea{width:100%;padding:.5rem;border:1px solid rgba(0,0,0,0.06);border-radius:8px}
.form-feedback{margin-top:.5rem;color:var(--accent-dark)}

/* Footer */
.site-footer{padding:1.5rem 0;border-top:1px solid rgba(0,0,0,0.04);background:transparent}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.footer-inner a{display:inline-block;margin-right:1rem;color:var(--text)}
.footer-inner .copyright{margin-top:.6rem;color:#666}

@media(max-width:599px){
  .footer-inner{flex-direction:column;gap:.75rem}
}

/* Active nav link */
.nav-link{color:var(--text);font-weight:600;text-decoration:none}
.nav-link.active{font-weight:600;color:var(--accent-dark)}
.primary-nav ul li a:hover{background:transparent}

/* Scroll top */
.scroll-top{position:fixed;right:1rem;bottom:1rem;background:var(--accent);color:#fff;border:0;padding:.6rem;border-radius:50%;display:none}

/* Responsive: tablet and up */
@media(min-width:600px){
  .hero h1{font-size:2rem}
  .hero-inner{grid-template-columns:1fr 1fr}
  .primary-nav{display:flex;justify-content:center}
  /* Stable horizontal nav: fixed gap, stable link boxes, no layout jumps on hover/active */
  .primary-nav ul{flex-direction:row;gap:28px;align-items:center}
  .primary-nav ul li{position:relative}
  /* separators removed for a simple, normal horizontal nav */
  .primary-nav ul li a{display:inline-flex;align-items:center;height:40px;padding:0 8px;white-space:nowrap;position:relative;color:var(--text);font-weight:600}
  /* remove background-on-hover that could feel jumpy */
  .primary-nav ul li a:hover{background:transparent}
  /* underline as an absolutely positioned visual hint (does not affect layout) */
  .primary-nav ul li a::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:6px;width:0;height:2px;background:var(--accent);transition:width .18s ease}
  .primary-nav ul li a:hover::after,.primary-nav ul li a.active::after{width:60%}
  /* ensure active does not change font-weight or layout */
  .primary-nav ul li a.active{font-weight:600;color:var(--accent-dark)}
  /* add separators between nav items for desktop */
  /* second separator removed to avoid visual clutter */
  .nav-toggle{display:none}
  .services-grid{grid-template-columns:repeat(3,1fr)}
  .categories{grid-template-columns:repeat(3,1fr)}
  .bilans-grid{grid-template-columns:repeat(2,1fr)}
  .cabinet-gallery{grid-template-columns:repeat(3,1fr)}
  .footer-inner{align-items:center}
}

/* Bilans layout: steps left, image right */
.bilans-layout{display:flex;flex-direction:column;gap:1rem;align-items:stretch}
.bilans-steps{display:flex;flex-direction:column;gap:1rem;flex:1}
.bilans-step{background:var(--card);padding:1rem;border-radius:12px;box-shadow:var(--shadow);display:flex;gap:1rem;align-items:flex-start}
.bilans-step .num{font-weight:700;color:var(--accent-dark);background:var(--muted);padding:.6rem .8rem;border-radius:8px;min-width:48px;display:flex;align-items:center;justify-content:center}
.bilans-image{margin-top:0}
@media(min-width:600px){
  .bilans-layout{flex-direction:row;gap:2rem}
  .bilans-steps{flex:1}
  .bilans-image{flex:0 0 40%;display:flex;align-items:center}
  .bilans-image img{width:100%;height:auto;border-radius:12px;object-fit:cover}
}

@media(min-width:980px){
  .container{padding:2rem}
  .hero h1{font-size:2.6rem}
}

/* gentle entrance animation */
.reveal{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}
.reveal.visible{opacity:1;transform:none}
