
/* CONSTANZA / EDITION 06 — refinements */
html { scroll-padding-top: 122px; }
main section[id] { scroll-margin-top: 118px; }
body { background:#fffaf7; }
.hero { min-height: min(980px, 100svh); align-items:stretch; }
.hero-text { padding-top: 72px; }
.hero-photo-wrap { background:linear-gradient(180deg,#f2e3da 0%,#f7efe9 100%); overflow:hidden; }
.hero-photo-wrap img { object-position:center 18%; transform:scale(1.01); }
.hero-photo-wrap::before { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.12),transparent 28%, rgba(89,56,67,.12) 100%); z-index:1; pointer-events:none; }
.hero-side-note { z-index:2; }
.hero-note { max-width:360px; }
.situations-grid { align-items:stretch; }
.situation { min-height: 100%; }
.situation:hover { background:rgba(252,219,217,.2); }
.situation:hover .situation-counter { color:#8e3a55; }
.benefits { background:#f6dede; }
.benefits .section-head { margin-bottom:clamp(34px,4vw,58px); }
.benefit-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:clamp(22px,2.7vw,42px); border:none; }
.benefit-pane { background:rgba(255,250,247,.55); border:1px solid rgba(119,70,87,.12); padding:28px !important; }
.benefit-pane + .benefit-pane { padding-left:28px !important; border-left:1px solid rgba(119,70,87,.12); }
.benefit-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px, 210px); gap:28px; align-items:start; }
.benefit-pane h3 { margin-top:22px; margin-bottom:10px; }
.benefit-intro { font: 19px/1.55 var(--serif); color:#694753; margin:0 0 18px; }
.benefit-note { background:#fff7f3; border:1px solid rgba(119,70,87,.12); padding:18px 18px 16px; }
.benefit-note p { margin:10px 0 0; font: 20px/1.45 var(--serif); color:#583c47; }
.process .section-head { margin-bottom:40px; }
.process-map { margin-top:24px; }
.process-grid { gap:clamp(18px,2vw,30px); }
.process-step { padding:16px 0 0; border-top:1px solid var(--v5-line); }
.process-step:first-child { border-top:none; }
.process-detail h3 { min-height:0; }
.practical-layout { display:grid; grid-template-columns:minmax(300px, 40%) minmax(0, 60%); gap:clamp(22px,2.5vw,34px); align-items:start; border:none; }
.tarif-panel { min-height:0; border:1px solid rgba(119,70,87,.12); box-shadow:0 18px 38px rgba(88,61,72,.06); position:relative; }
.tarif-intro { margin:16px 0 18px; font: 22px/1.45 var(--serif); max-width:24ch; }
.tarif-points { list-style:none; padding:0; margin:24px 0 0; display:grid; gap:12px; }
.tarif-points li { padding-top:12px; border-top:1px solid rgba(95,62,72,.14); font-size:14px; line-height:1.65; }
.practical-stack { display:grid; gap:20px; }
.practical-item, .practical-map { background:#fffdfb; border:1px solid rgba(119,70,87,.12); padding:clamp(24px,2.3vw,34px); }
.practical-item:hover { transform:none; }
.practical-map .data-tag { display:block; margin-bottom:14px; }
.map-frame { aspect-ratio: 16 / 9; overflow:hidden; border-radius:10px; border:1px solid rgba(95,62,72,.12); background:#f4ece7; }
.map-frame iframe { width:100%; height:100%; border:0; display:block; }
.about-layout { align-items:center; }
.about-pictures { min-height:720px; }
.about-copy { padding-left:clamp(32px,5vw,78px); }
.about-copy h3 { margin-top:28px; }
.about-socials, .contact-socials { display:flex; flex-wrap:wrap; gap:16px 22px; margin-top:22px; }
.about-socials a, .contact-socials a, .footer-socials a { text-decoration:none; border-bottom:1px solid rgba(88,61,72,.35); padding-bottom:4px; }
.about-credentials { margin-top:clamp(34px,4.2vw,62px); border-top:1px solid var(--v5-line); padding-top:clamp(26px,3vw,38px); }
.about-credentials-head { display:grid; grid-template-columns:minmax(180px, 280px) minmax(0, 1fr); gap:20px; align-items:start; margin-bottom:26px; }
.about-credentials-head p { margin:0; font: 20px/1.55 var(--serif); color:#5a404b; max-width:54ch; }
.credentials-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.credential-card { background:#fffdfb; border:1px solid rgba(119,70,87,.12); padding:20px 22px 18px; min-height:154px; }
.credential-card h3 { font-size:26px; line-height:1.15; margin:10px 0 8px; }
.credential-card p { margin:0; font-size:14px; line-height:1.65; }
.credential-index { font: italic 22px/1 var(--serif); color:#ad5b75; }
.credential-card-wide { grid-column:1 / -1; min-height:0; }
.review-band { padding:clamp(40px,5vw,70px) 0; }
.reviews-shell { display:grid; grid-template-columns:minmax(250px, 310px) minmax(0,1fr); gap:clamp(22px,3vw,36px); align-items:start; }
.reviews-strip { position:sticky; top:122px; padding:22px; background:#fff7f3; border:1px solid rgba(119,70,87,.12); }
.reviews-strip p { margin:14px 0 18px; font-size:14px; line-height:1.7; color:#6f5a63; }
.reviews-score { margin-top:14px; font: 700 36px/1.1 var(--sans); color:#2f2329; display:flex; flex-wrap:wrap; gap:10px 12px; align-items:baseline; }
.reviews-score .stars { color:#e1ab2d; letter-spacing:.08em; font-size:26px; }
.reviews-score small { font-size:14px; color:#7b6871; }
.reviews-widget-wrap { min-width:0; background:#fffdfb; border:1px solid rgba(119,70,87,.12); padding:18px; }
.elfsight-app-e8cc7a67-f744-429f-bb55-ba2920147fca { min-height:420px; }
.contact::before, .contact::after { opacity:.6; }
.contact-inner { padding-block:clamp(72px,8vw,110px); display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); gap:30px 56px; align-items:end; }
.contact-inner .section-num, .contact-inner .overline, .contact-inner h2, .contact-inner>p, .contact-number { grid-column:1; }
.contact-actions, .contact-location, .contact-socials { grid-column:2; }
.contact-inner h2 { font-size:clamp(54px,7vw,94px); margin-bottom:18px; }
.contact-inner > p:not(.contact-location) { font-size:clamp(17px,1.5vw,22px); max-width:30ch; }
.contact-number { font-size:clamp(36px,4.8vw,62px); margin-top:8px; }
.contact-actions { justify-content:flex-start; align-self:start; margin-top:20px; }
.contact-location { margin:0; color:#e0ced6; max-width:28ch; }
.footer { background:#3f2e39; color:#f6ebe7; }
.footer-main, .footer-bottom { max-width:var(--max); margin:0 auto; padding-inline:var(--gutter); }
.footer-main { display:grid; grid-template-columns:minmax(180px,.95fr) repeat(3,minmax(0,1fr)); gap:30px; align-items:start; padding-top:38px; padding-bottom:28px; }
.footer-brand { align-self:start; }
.footer-col span { display:block; font-size:11px; letter-spacing:.18em; color:#d6aab6; margin-bottom:12px; }
.footer-col p { margin:0; line-height:1.8; }
.footer-col a { color:inherit; }
.footer-bottom { display:grid; grid-template-columns:1fr auto auto; gap:20px; align-items:center; padding-top:24px; padding-bottom:24px; border-top:1px solid rgba(255,245,240,.13); }
.footer-bottom div { display:flex; gap:24px; }
.footer-bottom button, .footer-bottom a { color:#f4e7e2; }
@media (max-width: 1120px) {
  .benefit-body { grid-template-columns:1fr; }
  .practical-layout { grid-template-columns:1fr; }
  .reviews-shell { grid-template-columns:1fr; }
  .reviews-strip { position:static; }
  .contact-inner { grid-template-columns:1fr; }
  .contact-actions, .contact-location, .contact-socials { grid-column:1; }
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 790px) {
  .benefit-grid { grid-template-columns:1fr; }
  .benefit-pane + .benefit-pane { padding-left:28px !important; border-left:1px solid rgba(119,70,87,.12); }
  .about-credentials-head { grid-template-columns:1fr; }
  .credentials-grid { grid-template-columns:1fr; }
  .review-band { padding-top:32px; }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 92px; }
  main section[id] { scroll-margin-top: 88px; }
  .hero-photo-wrap { height:auto; min-height:420px; }
  .hero-photo-wrap img { object-position:center 22%; }
  .benefit-pane, .benefit-pane + .benefit-pane { padding:22px !important; }
  .tarif-panel, .practical-item, .practical-map, .reviews-strip, .reviews-widget-wrap { padding:20px; }
  .tarif-intro { font-size:20px; }
  .map-frame { aspect-ratio: 4 / 3; }
  .contact-inner { padding-bottom:88px; }
  .contact-inner h2 { font-size:clamp(46px,14vw,70px); }
  .contact-number { font-size:clamp(32px,10vw,46px); }
  .footer-main { grid-template-columns:1fr; gap:22px; }
  .footer-bottom { grid-template-columns:1fr; }
  .footer-bottom div { flex-wrap:wrap; gap:14px 18px; }
}
