
/* ==========================================================================
   Transform With Kasia — Version 3 (compact single landing page)
   Palette source: color-option-03 "Earthy Harmony"
   (pale sage / dusty sage / tan / deep green / warm cream)
   Display font: Playfair Display  |  Body font: Montserrat
   ========================================================================== */

:root{
  --cream:       #FAFAFA;
  --pale-sage:   #CBDED3;
  --pale-sage-2: #CBDED3;
  --dusty-sage:  #8BA49A;
  --tan:         #D2C49E;
  --tan-light:   #E3D8BC;
  --deep-green:  #3B6255;
  --ink:         #2E4D42;
  --ink-soft:    #5B6E64;
  --charcoal:    #33302B;
  --deep-green-hover: #2C4C41;
  --tan-hover:   #E3D8BC;
  --quote-tint:  #B9D2C7;
  --cta-copy-tint: #C9DCD3;

  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
}

*{ box-sizing: border-box; }

body{
  font-family: var(--font-body);
  color: var(--charcoal);
  background-color: var(--cream);
  font-size: 0.98rem;
  line-height: 1.7;
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}

a{ color: inherit; text-decoration: none; }
img{ max-width: 100%; height: auto; display: block; }
.container{ max-width: 1140px; }

/* ---------- Header ---------- */
.site-header{
  background-color: var(--cream);
  padding: 1rem 0;
}
.header-inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand{
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.2rem;
  letter-spacing: 0.03em;
  color: var(--ink);
}
.btn-cta-outline{
  display: inline-block;
  white-space: nowrap;
  border: 1px solid var(--deep-green);
  color: var(--deep-green);
  border-radius: 999px;
  padding: 0.48rem 1.2rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  transition: background-color .15s ease, color .15s ease;
}
.btn-cta-outline:hover{ background-color: var(--deep-green); color: var(--cream); }

/* ---------- Buttons / links ---------- */
.btn-cta{
  display: inline-block;
  white-space: nowrap;
  background-color: var(--deep-green);
  color: var(--cream);
  border-radius: 999px;
  padding: 0.78rem 1.8rem;
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: background-color .15s ease;
}
.btn-cta:hover{ background-color: var(--deep-green-hover); color: var(--cream); }

.btn-cta-light{
  display: inline-block;
  white-space: nowrap;
  background-color: var(--tan);
  color: var(--ink);
  border-radius: 999px;
  padding: 0.78rem 1.8rem;
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: background-color .15s ease;
}
.btn-cta-light:hover{ background-color: var(--tan-hover); }

.link-underline{
  text-underline-offset: 4px;
  text-decoration: underline;
  text-decoration-color: var(--dusty-sage);
  font-weight: 600;
  font-size: 0.86rem;
  color: var(--ink);
}
.link-light{ color: var(--cream); text-decoration-color: var(--tan); }

.hero-actions{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.4rem;
  margin-top: 1.5rem;
}

/* ---------- Typography ---------- */
.eyebrow{
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--dusty-sage);
  margin-bottom: 0.7rem;
}
.eyebrow-center{ text-align: center; }

.display-headline{
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2rem, 3.8vw, 2.9rem);
  line-height: 1.16;
  color: var(--ink);
  margin-bottom: 0.9rem;
}
.display-headline em{
  font-style: italic;
  font-weight: 400;
  color: var(--deep-green);
}

.reassurance{
  font-family: var(--font-display);
  font-size: 1.02rem;
  color: var(--ink);
  margin: 0.7rem 0 0;
}
.reassurance em{ font-style: italic; color: var(--deep-green); }

.section-title{
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  color: var(--ink);
  margin-bottom: 0.9rem;
  line-height: 1.28;
}

.lead-copy{
  font-size: 1rem;
  color: var(--ink-soft);
  max-width: 28rem;
  margin-bottom: 0;
}

.body-copy{
  color: var(--ink-soft);
  font-size: 0.94rem;
  margin-bottom: 0.6rem;
}

/* ---------- Hero ---------- */
.hero{ padding: 2.5rem 0 2rem; }

.hero-panel-text{
  background-color: var(--pale-sage);
  border-radius: 24px 70px 24px 24px;
  padding: 2.2rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hero-photo-wrap{
  position: relative;
  height: 100%;
  min-height: 280px;
}
.hero-photo-wrap::before{
  content: "";
  position: absolute;
  top: 6%;
  left: 8%;
  width: 92%;
  height: 92%;
  background-color: var(--tan);
  border-radius: 70px 24px 70px 24px;
  z-index: 0;
}
.hero-photo{
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  border-radius: 70px 24px 70px 24px;
  border: 0;
}

/* ---------- About + signs ---------- */
.about{
  background-color: var(--cream);
  padding: 2.5rem 0;
}
.signs-card{
  background-color: var(--pale-sage);
  border-radius: 30px 90px 30px 30px;
  padding: 2.2rem;
}
.avatar-wrap{
  max-width: 180px;
  margin: 0 auto;
}
.avatar-photo{
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  border-radius: 50%;
  border: 5px solid var(--cream);
  box-shadow: 0 16px 34px -14px rgba(46,77,66,0.35);
}
.signs-list{
  list-style: none;
  padding: 0;
  margin: 0.4rem 0 0;
}
.signs-list li{
  position: relative;
  padding: 0.5rem 0 0.5rem 1.5rem;
  color: var(--ink-soft);
  font-size: 0.9rem;
  border-bottom: 1px solid rgba(59,98,85,0.15);
}
.signs-list li:last-child{ border-bottom: none; }
.signs-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: 1rem;
  width: 6px; height: 6px;
  border-radius: 50%;
  background-color: var(--deep-green);
}

/* ---------- Method ---------- */
.method{
  background-color: var(--pale-sage-2);
  padding: 2.5rem 0;
}
.method-row{
  display: flex;
  flex-wrap: wrap;
  gap: 1.75rem;
  justify-content: center;
  margin-top: 1.5rem;
}
.method-step{
  flex: 1 1 200px;
  max-width: 240px;
  text-align: center;
}
.step-num{
  display: block;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.3rem;
  color: var(--deep-green);
  margin-bottom: 0.4rem;
}
.step-title{
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.02rem;
  color: var(--ink);
  margin-bottom: 0.3rem;
}
.step-copy{
  color: var(--ink-soft);
  font-size: 0.84rem;
}

/* ---------- Testimonial + Final CTA ---------- */
.final-cta{
  background-color: var(--deep-green);
  padding: 3rem 0;
}
.quote{
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.15rem, 1.9vw, 1.4rem);
  color: var(--cream);
  line-height: 1.45;
  max-width: 34rem;
  margin: 0 auto 0.6rem;
}
.quote-attr{
  color: var(--quote-tint);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.cta-title{ color: var(--cream); }
.cta-copy{
  color: var(--cta-copy-tint);
  max-width: 30rem;
  margin: 0 auto 0.5rem;
  font-size: 0.92rem;
}
.final-cta .hero-actions{ margin-top: 1.4rem; }

/* ---------- Footer ---------- */
.site-footer{
  background-color: var(--cream);
  color: var(--ink-soft);
  padding: 1.1rem 0;
  border-top: 1px solid rgba(59,98,85,0.15);
}
.footer-inner{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1.5rem;
}
.brand-footer{
  font-family: var(--font-display);
  font-size: 1rem;
  color: var(--ink);
}
.footer-copy{ font-size: 0.8rem; color: var(--ink-soft); }
.footer-copy a{ color: var(--ink); text-decoration: underline; text-decoration-color: var(--dusty-sage); }
.footer-fine{ font-size: 0.76rem; color: var(--dusty-sage); }

/* ---------- Responsive ---------- */
@media (max-width: 991.98px){
  .hero-panel-text{ padding: 1.8rem; border-radius: 20px; }
  .hero-photo-wrap{ min-height: 240px; }
  .hero-photo{ min-height: 240px; border-radius: 20px; }
  .hero-photo-wrap::before{ border-radius: 20px; }
  .signs-card{ padding: 1.8rem; border-radius: 20px; }
  .about, .method{ padding: 2rem 0; }
  .final-cta{ padding: 2.25rem 0; }
  .footer-inner{ flex-direction: column; text-align: center; }
}



/* ---------- Navigation (multi-page) ---------- */
.header-inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.navbar-toggler{ border:1px solid var(--dusty-sage); border-radius:8px; padding:.35rem .6rem; background:none; }
.navbar-toggler:focus{ box-shadow:none; outline:2px solid var(--deep-green); }
.navbar-collapse{ display:flex; flex:1; flex-wrap:wrap; align-items:center; gap:1.6rem; justify-content:flex-end; }
.nav-links{ list-style:none; display:flex; gap:1.4rem; margin:0; padding:0; align-items:center; }
.nav-links .nav-link{ color:var(--ink-soft); font-size:.85rem; font-weight:500; letter-spacing:.02em; padding:0; }
.nav-links .nav-link:hover{ color:var(--deep-green); }
.nav-links .nav-link.active{ color:var(--ink); font-weight:700; border-bottom:2px solid var(--deep-green); }
.lang-switch{ display:flex; gap:.4rem; align-items:center; }
.lang-switch a{ font-size:.72rem; font-weight:700; letter-spacing:.05em; color:var(--dusty-sage); padding:.25rem .5rem; border-radius:999px; }
.lang-switch a:hover{ color:var(--deep-green); }
.lang-switch a.active{ color:var(--cream); background-color:var(--deep-green); }
@media (max-width: 991.98px){
  .navbar-collapse{ width:100%; margin-top:1rem; flex-direction:column; align-items:flex-start; }
  .nav-links{ flex-direction:column; align-items:flex-start; gap:.9rem; }
}

/* ---------- Page intro header (non-home pages) ---------- */
.page-intro{ background-color:var(--pale-sage); padding:2.5rem 0; border-radius:0 0 60px 0; margin-bottom:0.5rem; }
.page-intro .section-title{ margin-bottom:0; }

/* ---------- About page ---------- */
.about-page{ padding:2.5rem 0; }

/* ---------- Signs section (home) ---------- */
.signs-section{ background-color:var(--cream); padding:2.5rem 0; }
.signs-card-flat{ background-color:var(--pale-sage-2); border-radius:30px 90px 30px 30px; padding:2.2rem; }
.signs-links{ display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:1.2rem; }

/* ---------- Blog empty state ---------- */
.blog-page{ padding:3rem 0; }
.blog-empty{ background-color:var(--pale-sage-2); border-radius:30px 90px 30px 30px; padding:3rem 2.2rem; text-align:center; max-width:40rem; margin:0 auto; }
.blog-empty p{ color:var(--ink-soft); margin-bottom:1.4rem; }

/* ---------- Credentials ---------- */
.cred-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:1.2rem; margin-top:1.2rem; }
.cred-item{ background-color:var(--pale-sage-2); border-radius:16px; padding:0.6rem; cursor:zoom-in; }
.cred-item img{ width:100%; border-radius:10px; display:block; }

/* ---------- Credential lightbox ---------- */
.cred-lightbox{ position:fixed; inset:0; background-color:rgba(28,38,32,0.88); z-index:1000; display:none; align-items:center; justify-content:center; padding:1rem; box-sizing:border-box; }
.cred-lightbox.open{ display:flex; }
.cred-lightbox-stage{ position:relative; width:100%; height:100%; max-width:1200px; overflow:auto; display:flex; align-items:center; justify-content:center; touch-action:pan-x pan-y pinch-zoom; -webkit-overflow-scrolling:touch; }
.cred-lightbox-stage img{ max-width:none; transition:width .15s ease; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,0.4); touch-action:pan-x pan-y pinch-zoom; }
.cred-lightbox-controls{ position:absolute; top:1rem; right:1rem; display:flex; gap:.6rem; z-index:1001; }
.cred-lightbox-controls button{ width:44px; height:44px; min-width:44px; min-height:44px; border-radius:50%; border:none; background-color:var(--cream); color:var(--ink); font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.cred-lightbox-controls button:hover{ background-color:var(--tan); }
@media (max-width:600px){
  .cred-lightbox-controls{ top:.6rem; right:.6rem; }
}

/* ---------- Contact page ---------- */
.contact-page{ padding:3rem 0; text-align:center; }
.contact-card{ max-width:34rem; margin:0 auto; background-color:var(--pale-sage); border-radius:30px 90px 30px 30px; padding:2.6rem 2.2rem; }

/* ---------- Appointment form ---------- */
.appointment-form{ max-width:34rem; margin:2rem auto 0; background-color:#fff; border:1px solid var(--pale-sage); border-radius:24px; padding:2.2rem; text-align:left; }
.form-row{ margin-bottom:1.1rem; }
.form-row label{ display:block; font-size:.85rem; font-weight:600; margin-bottom:.35rem; color:var(--ink); }
.form-row input, .form-row select, .form-row textarea{ width:100%; padding:.65rem .9rem; border:1px solid var(--dusty-sage); border-radius:12px; font-family:var(--font-body); font-size:.92rem; background-color:#fff; color:var(--ink); box-sizing:border-box; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ outline:2px solid var(--deep-green); outline-offset:1px; border-color:var(--deep-green); }
.form-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-hint{ font-size:.78rem; color:var(--ink-soft); margin-top:.35rem; margin-bottom:1rem; }
@media (max-width:600px){ .form-grid-2{ grid-template-columns:1fr; } }

/* ---------- Production additions: accessibility ---------- */
.skip-link{ position:absolute; left:-9999px; top:0; z-index:2000; background:var(--deep-green); color:var(--cream); padding:.7rem 1.1rem; border-radius:0 0 12px 0; font-weight:600; }
.skip-link:focus{ left:0; }
a:focus-visible, button:focus-visible, .cred-item:focus-visible{ outline:2px solid var(--deep-green); outline-offset:3px; border-radius:6px; }
@media (prefers-reduced-motion: reduce){ *{ transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
.header-inner{ padding-left:.75rem; padding-right:.75rem; }
.cred-item{ align-self:start; }
@media (max-width: 991.98px){ .brand{ flex:1 1 0; min-width:0; font-size:1.02rem; line-height:1.3; } .navbar-toggler{ flex:0 0 auto; } }

/* Header alignment: brand and menu share the same left edge as the page content */
.brand{ padding:0; margin:0; }
.nav-links .nav-link{ padding:0; }
@media (min-width: 992px){
  .navbar-collapse{ flex-basis:100%; justify-content:flex-start; }
  .navbar-collapse .lang-switch{ margin-left:auto; }
}

/* ---------- Contact form ---------- */
.form-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-consent{ display:flex; gap:.7rem; align-items:flex-start; }
.form-consent input{ width:auto; margin-top:.3rem; flex:0 0 auto; }
.form-consent label{ font-weight:400; margin:0; }
.form-status{ max-width:34rem; margin:1.5rem auto 0; padding:1rem 1.3rem; border-radius:16px; text-align:center; font-weight:500; }
.form-ok{ background-color:var(--pale-sage-2); color:var(--ink); }
.form-err{ background-color:#f6e3e0; color:#7a2e25; }
.form-status[hidden], .appointment-form[hidden]{ display:none; }

/* ---------- Testimonials ---------- */
.testimonial-card{ background-color:var(--pale-sage); border-radius:30px 90px 30px 30px; padding:2.2rem; text-align:center; }
.testimonial-card .quote{ color:var(--ink); }
.testimonial-card .quote-attr{ color:var(--ink-soft); margin:0; }
.section-title + .testimonial-card{ margin-top:1.4rem; }

/* ---------- Sage content boxes on all pages ---------- */
.about-page{ padding:1.25rem 0; }
main > .about-page:first-child{ padding-top:2.5rem; }
.content-box{ background-color:var(--pale-sage); border-radius:30px 90px 30px 30px; padding:2.2rem; }
.content-box > :last-child{ margin-bottom:0; }
.content-box .testimonial-card{ background:transparent; padding:0; border-radius:0; }
.content-box .cred-item{ background-color:var(--cream); }
.content-box-inner{ }
@media (max-width: 991.98px){ .content-box{ border-radius:20px 50px 20px 20px; padding:1.6rem; } }
main{ padding-bottom:1.5rem; }

/* ---------- Palette for multi-box pages (sage / blush pink / warm cream) ---------- */
:root{ --box-sage:#AAB597; --box-pink:#F4CAD0; --box-cream:#F7F0E6; --box-text:#1F2A24; }
.box-sage{ background-color:var(--box-sage) !important; }
.box-pink{ background-color:var(--box-pink) !important; }
.box-cream{ background-color:var(--box-cream) !important; border:1px solid rgba(31,42,36,0.12); }
.box-sage .body-copy, .box-pink .body-copy, .box-cream .body-copy,
.box-sage p, .box-pink p, .box-cream p,
.box-sage li, .box-pink li, .box-cream li,
.box-sage .section-title, .box-pink .section-title, .box-cream .section-title,
.box-sage .display-headline, .box-pink .display-headline, .box-cream .display-headline,
.box-sage label, .box-pink label, .box-cream label,
.box-sage .eyebrow, .box-pink .eyebrow, .box-cream .eyebrow{ color:var(--box-text); }
.box-sage .signs-list li, .box-pink .signs-list li, .box-cream .signs-list li{ border-bottom-color:rgba(31,42,36,0.2); }
.box-sage .signs-list li::before, .box-pink .signs-list li::before, .box-cream .signs-list li::before{ background-color:var(--box-text); }
.box-sage .btn-cta{ background-color:var(--box-text); }
.box-sage .btn-cta:hover{ background-color:#000; }
.box-pink .btn-cta, .box-cream .btn-cta{ background-color:var(--deep-green); }
.appointment-form.box-pink, .appointment-form.box-cream, .appointment-form.box-sage{ border-color:rgba(31,42,36,0.12); }
.box-pink .form-row input, .box-pink .form-row textarea, .box-cream .form-row input, .box-cream .form-row textarea{ background-color:#fff; }
.box-sage .testimonial-card .quote, .box-sage .testimonial-card .quote-attr, .box-sage.blog-empty p{ color:var(--box-text); }

/* ---------- Book a free call button: identical everywhere ---------- */
.btn.btn-call{
  display:inline-block; white-space:nowrap;
  background-color:var(--cream); color:#000; border:1px solid #000; border-radius:999px;
  padding:.62rem 1.5rem; font-size:.8rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; line-height:1.4;
  transition:background-color .15s ease, color .15s ease;
}
.btn.btn-call:hover, .btn.btn-call:focus-visible{ background-color:#000; color:var(--cream); border-color:#000; }

/* ---------- Header, menu, language switch, footer: same font as the content boxes, black, a little bolder ---------- */
.brand, .brand-footer,
.nav-links .nav-link, .nav-links .nav-link:hover, .nav-links .nav-link.active,
.footer-copy, .footer-copy a, .footer-fine{
  font-family: var(--font-body);
  color:#000;
}
.brand, .brand-footer, .nav-links .nav-link, .footer-copy, .footer-copy a, .footer-fine{ font-weight:500; }
.nav-links .nav-link.active{ font-weight:700; border-bottom-color:#000; }
.brand{ font-size:1.05rem; letter-spacing:.01em; }
.brand-footer{ font-size:.95rem; }
@media (max-width: 991.98px){ .brand{ font-size:.95rem; } }

.lang-switch a, .lang-switch a:hover{ background-color:#000; color:#fff; }
.lang-switch a.active{ background-color:#000; color:#fff; box-shadow:0 0 0 2px var(--cream), 0 0 0 3.5px #000; }

/* ---------- Home hero: logo + photo ---------- */
.hero-logo-box{ border-radius:24px 70px 24px 24px; padding:2rem; min-height:560px; height:100%; display:flex; align-items:center; justify-content:center; }
.hero-logo{ width:100%; max-width:520px; height:auto; }
.hero-photo-wrap{ min-height:560px; }
.intro-section{ padding-top:0; }
.intro-section .signs-card-flat{ border-radius:30px 90px 30px 30px; }
@media (max-width: 991.98px){ .hero-logo-box{ min-height:0; padding:1.5rem; border-radius:20px 40px 20px 20px; } .hero-photo-wrap{ min-height:420px; } }
.hero-photo-wrap{ height:620px; min-height:0; }
.hero-photo{ object-position:center 25%; }
.hero-logo-box{ min-height:0; height:100%; }
@media (max-width: 991.98px){ .hero-photo-wrap{ height:460px; } .hero-logo-box{ height:auto; } }
.intro-section{ padding-bottom:0; }

/* ---------- Boxes with a photo beside them ---------- */
.photo-row{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:1.5rem; align-items:stretch; }
.photo-row.photo-left{ grid-template-columns:340px minmax(0,1fr); }
.photo-frame{ border-radius:24px 70px 24px 24px; overflow:hidden; min-height:320px; }
.photo-left .photo-frame{ border-radius:70px 24px 24px 24px; }
.photo-frame img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; }
.photo-row .contact-card, .photo-row .appointment-form{ max-width:none; margin:0; }
.photo-row .contact-card{ display:flex; flex-direction:column; justify-content:center; }
#formRow{ margin-top:1.5rem; }
.photo-row[hidden]{ display:none; }
@media (max-width: 991.98px){
  .photo-row, .photo-row.photo-left{ grid-template-columns:1fr; }
  .photo-frame{ min-height:0; height:420px; border-radius:20px 40px 20px 20px; }
  .photo-left .photo-frame{ order:2; }
}
.photo-frame{ position:relative; }
.photo-frame img{ position:absolute; inset:0; }
.contact-page .photo-frame{ min-height:380px; }
.photo-row .cred-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:.8rem; align-items:start; }
@media (max-width: 600px){ .photo-row .cred-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- Logo beside a box (pages without a photo) ---------- */
.photo-row .hero-logo-box{ min-height:260px; padding:1.5rem; }
.photo-row .hero-logo-box .hero-logo{ max-width:100%; max-height:100%; object-fit:contain; }
.photo-row .hero-logo-box.logo-left{ border-radius:70px 24px 24px 24px; }
.photo-row .blog-empty{ max-width:none; margin:0; display:flex; flex-direction:column; justify-content:center; align-items:center; }
@media (max-width: 991.98px){ .photo-left .hero-logo-box.logo-left{ order:2; border-radius:20px 40px 20px 20px; } .photo-row .hero-logo-box{ min-height:0; } }

/* ---------- Mobile menu: full-screen overlay, everything centred ---------- */
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(0,0,0,0.85)' stroke-linecap='round' stroke-width='2.5' d='M6 6l18 18M24 6L6 24'/%3E%3C/svg%3E");
}
body.menu-open{ overflow:hidden; }
@media (max-width: 991.98px){
  .site-header{ position:relative; z-index:1600; }
  .navbar-collapse.show, .navbar-collapse.collapsing{
    position:fixed; inset:0; z-index:1500; width:100%; height:100% !important; margin:0;
    background-color:var(--cream);
    display:flex !important; flex-direction:column; align-items:center; justify-content:flex-start;
    gap:1.6rem; padding:5.2rem 1.5rem 2.5rem; text-align:center; overflow-y:auto;
    transition:none !important;
  }
  .navbar-collapse.show .nav-links, .navbar-collapse.collapsing .nav-links{ flex-direction:column; align-items:center; gap:1.2rem; }
  .navbar-collapse .nav-links .nav-link{ font-size:1.15rem; }
  .navbar-collapse .nav-links .nav-link.active{ border-bottom-width:2px; }
  .navbar-collapse .lang-switch{ justify-content:center; margin:0; }
  .navbar-collapse .btn-call{ margin-top:.4rem; }
}
@media (max-width: 991.98px){ .navbar > .brand, .navbar > .navbar-toggler{ position:relative; z-index:1600; } }
@media (max-width: 480px){ .btn.btn-call{ white-space:normal; text-align:center; } }
.photo-row.photo-single{ grid-template-columns:minmax(0,1fr); }

/* multiple testimonials: spacing between cards */
.content-box .testimonial-card + .testimonial-card{ margin-top:1.8rem; padding-top:1.8rem; border-top:1px solid rgba(0,0,0,.15); }
.content-box .testimonial-card{ text-align:left; }
.content-box .testimonial-card .quote-attr{ margin-top:.6rem; font-weight:600; }
.content-box .testimonial-card .quote{ margin-left:0; margin-right:0; padding-left:0; }
