/* =====================================================================
   LES COURTIÈRES — Design system
   Univers rosé, éditorial, premium & rassurant.
   ===================================================================== */

/* ---------- Fonts ---------- */
/* Polices AUTO-HÉBERGÉES (RGPD) → assets/fonts.css (enqueue avant ce fichier).
   Plus aucun appel à fonts.googleapis.com / fonts.gstatic.com. */

/* ---------- Tokens ---------- */
:root{
  /* palette (overridable by Tweaks) */
  --rose:        #e35d92;
  --rose-deep:   #c43c74;
  --rose-soft:   #f7d8e5;
  --rose-wash:   #fbeaf1;
  --rose-tint:   #fef5f8;

  --dark:        #221c20;
  --dark-2:      #2e2429;
  --dark-3:      #3a2f35;

  --paper:       #fffdf9;
  --cream:       #fbf6ef;

  --ink:         #221c20;
  --ink-2:       #4f4750;
  --ink-soft:    #837a80;
  --line:        #ece3dc;
  --line-2:      #e3d3da;

  --on-dark:     #f6eef1;
  --on-dark-soft:#b6a9af;

  /* type */
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'Mulish', system-ui, sans-serif;
  --font-script:  'Caveat', cursive;

  /* shape */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 34px;
  --r-pill: 999px;

  /* shadow */
  --sh-sm: 0 2px 8px rgba(110,40,70,.06);
  --sh-md: 0 14px 40px -18px rgba(120,40,75,.28);
  --sh-lg: 0 40px 90px -40px rgba(90,25,55,.40);
  --sh-rose: 0 16px 30px -14px rgba(196,60,116,.55);

  /* decor intensity (Tweakable) */
  --decor-opacity: 1;

  --maxw: 1200px;
  --gut: clamp(20px, 5vw, 56px);
}

/* ---------- Reset ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  font-size:17px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
}
html{overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--rose-soft);color:var(--rose-deep)}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.section{padding-block:clamp(56px,8vw,108px);position:relative}
.section--tight{padding-block:clamp(40px,5vw,64px)}
.section--wash{background:var(--rose-wash)}
.section--tint{background:var(--rose-tint)}
.section--cream{background:var(--cream)}
.section--dark{background:var(--dark);color:var(--on-dark)}
.section--dark .eyebrow{color:var(--rose-soft)}

/* ---------- Typography ---------- */
.display{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.02;
  letter-spacing:-.01em;
  color:var(--ink);
  text-wrap:balance;
}
h1.display{font-size:clamp(2.6rem,5.4vw,4.35rem)}
h2.display{font-size:clamp(2rem,3.8vw,3.1rem);line-height:1.06}
h3.display{font-size:clamp(1.4rem,2.2vw,1.9rem);line-height:1.1}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--ink-2);line-height:1.62;text-wrap:pretty}
.section--dark .lead{color:var(--on-dark-soft)}

.script{
  font-family:var(--font-script);
  color:var(--rose);
  font-weight:600;
  line-height:1.04;
  font-size:clamp(1.9rem,3.4vw,2.9rem);
  text-wrap:balance;
}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--font-body);
  font-weight:700;
  font-size:.8rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--rose-deep);
  margin-bottom:1rem;
}
.eyebrow::before{
  content:"";width:26px;height:2px;border-radius:2px;
  background:var(--rose);display:inline-block;
}
.eyebrow--center{justify-content:center}

.muted{color:var(--ink-soft)}
.tiny{font-size:.82rem;line-height:1.5}
.measure{max-width:60ch}
.center{text-align:center}

/* ---------- Buttons ---------- */
.btn{
  --bsh: var(--sh-sm);
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-body);font-weight:700;font-size:1rem;
  padding:.85em 1.5em;border-radius:var(--r-pill);
  border:1.6px solid transparent;background:#fff;color:var(--ink);
  box-shadow:var(--bsh);
  transition:transform .25s cubic-bezier(.2,.8,.3,1), box-shadow .25s, background .2s, color .2s, border-color .2s;
  white-space:nowrap;
}
.btn .arr{transition:transform .25s}
.btn:hover{transform:translateY(-2px)}
.btn:hover .arr{transform:translateX(3px)}
.btn:active{transform:translateY(0)}
.btn--lg{padding:1.02em 1.85em;font-size:1.06rem}
.btn--sm{padding:.6em 1.1em;font-size:.9rem}
.btn--block{width:100%}

.btn--primary{background:var(--rose);color:#fff;border-color:var(--rose);box-shadow:var(--sh-rose)}
.btn--primary:hover{background:var(--rose-deep);border-color:var(--rose-deep)}
.btn--outline{background:transparent;border-color:var(--line-2);color:var(--ink)}
.btn--outline:hover{border-color:var(--rose);color:var(--rose-deep)}
.btn--dark{background:var(--dark);color:var(--on-dark);border-color:var(--dark)}
.btn--dark:hover{background:#000}
.btn--ghost{background:transparent;box-shadow:none;color:var(--ink)}
.btn--ghost:hover{color:var(--rose-deep)}
.section--dark .btn--outline{border-color:rgba(255,255,255,.28);color:#fff}
.section--dark .btn--outline:hover{border-color:#fff;background:rgba(255,255,255,.06)}

.txtlink{display:inline-flex;align-items:center;gap:.4em;font-weight:700;color:var(--rose-deep);white-space:nowrap}
/* equal-width CTA pair (hero buttons) — both size to the wider button */
.btn-pair{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;width:max-content;max-width:100%}
.btn-pair .btn{width:100%}
@media(max-width:560px){.btn-pair{grid-template-columns:1fr;width:auto;max-width:340px}}
/* equal-width CTA stack (inner-page heroes — keeps left column narrow) */
.btn-stack{display:grid;grid-template-columns:max-content;gap:.85rem;justify-items:start}
.btn-stack .btn{width:100%}
@media(max-width:560px){.btn-stack{grid-template-columns:minmax(0,1fr);max-width:340px}}
/* avis / review cards (global so agency + hub pages render) */
.avis-card{display:flex;flex-direction:column;gap:.9rem;height:100%}
.avis-card .stars{color:var(--rose);font-size:1.1rem;letter-spacing:.08em}
.avis-card p{font-size:1.02rem;color:var(--ink);line-height:1.6;flex:1}
.avis-card .who{display:flex;align-items:center;gap:.7rem}
.avis-card .who .av{width:44px;height:44px;flex:none;border-radius:50%;background:linear-gradient(150deg,var(--rose-soft),var(--rose-wash));display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--rose-deep)}
.avis-card .who b{font-size:.96rem}
.avis-card .who small{display:block;color:var(--ink-soft);font-size:.82rem}
.avis-card .avis-more{color:var(--rose-deep);font-weight:700;text-decoration:none;letter-spacing:.06em;padding:0 .12em;border-radius:3px}
.avis-card .avis-more:hover,.avis-card .avis-more:focus-visible{color:var(--rose);text-decoration:underline}
.avis-leave{margin-top:.4rem}
.txtlink .arr{transition:transform .25s}
.txtlink:hover .arr{transform:translateX(3px)}

/* ---------- Badges / chips ---------- */
.badge{
  display:inline-flex;align-items:center;gap:.5em;white-space:nowrap;
  font-weight:700;font-size:.86rem;
  padding:.45em .9em;border-radius:var(--r-pill);
  background:#fff;color:var(--ink);
  border:1.5px solid var(--line-2);box-shadow:var(--sh-sm);
}
.badge .stars{color:var(--rose);letter-spacing:.05em}
.chip{
  display:inline-flex;align-items:center;gap:.4em;
  font-weight:600;font-size:.92rem;
  padding:.5em 1.05em;border-radius:var(--r-pill);
  background:#fff;border:1.5px solid var(--line-2);color:var(--ink-2);
  transition:.2s;
}
.chip--rose{background:var(--rose);border-color:var(--rose);color:#fff}
.chip[data-toggle]:hover{border-color:var(--rose);color:var(--rose-deep);cursor:pointer}
.chip--rose[data-toggle]:hover{background:var(--rose-deep);border-color:var(--rose-deep);color:#fff}

/* ---------- Cards ---------- */
.card{
  background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(20px,2.4vw,30px);
  box-shadow:var(--sh-sm);
  transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s, border-color .3s;
}
.card--hover:hover{transform:translateY(-5px);box-shadow:var(--sh-md);border-color:var(--rose-soft)}
.card--flat{box-shadow:none;background:var(--cream);border-color:transparent}

/* ---------- Forms ---------- */
.field{display:flex;flex-direction:column;gap:.4em}
.field label,.field>.lbl{font-weight:600;font-size:.92rem;color:var(--ink-2)}
.field .req{color:var(--rose-deep)}
.input,.select,textarea.input{
  font-family:inherit;font-size:1rem;color:var(--ink);
  background:#fff;border:1.6px solid var(--line-2);border-radius:var(--r-sm);
  padding:.78em 1em;width:100%;transition:border-color .2s, box-shadow .2s;
}
.input:focus,.select:focus,textarea.input:focus{
  outline:none;border-color:var(--rose);box-shadow:0 0 0 3px var(--rose-wash);
}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c43c74' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1em center;padding-right:2.6em;cursor:pointer}

/* dark variant (sim card) */
.field--dark .lbl,.field--dark label{color:var(--on-dark-soft)}
.input--dark,.select--dark{
  background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);color:#fff;
}
.input--dark::placeholder{color:rgba(255,255,255,.4)}
.input--dark:focus,.select--dark:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(227,93,146,.25)}
.select--dark{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f7d8e5' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}

/* segmented control */
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--cream);border-radius:var(--r-pill);border:1px solid var(--line)}
.seg button{
  border:none;background:transparent;color:var(--ink-2);
  font-weight:700;font-size:.92rem;padding:.55em 1.1em;border-radius:var(--r-pill);
  transition:.2s;
}
.seg button.is-active{background:var(--rose);color:#fff;box-shadow:var(--sh-rose)}
.seg--dark{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.seg--dark button{color:var(--on-dark-soft)}
.seg--dark button.is-active{background:var(--rose);color:#fff}

/* range slider */
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:var(--rose-soft);cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--rose);border:3px solid #fff;box-shadow:var(--sh-rose)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--rose);border:3px solid #fff;box-shadow:var(--sh-rose)}

/* ---------- Stat ---------- */
.stat .num{font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,2.6vw,2.3rem);color:var(--ink);line-height:1}
.stat .lab{font-size:.86rem;color:var(--ink-soft);line-height:1.3;margin-top:.25em}
.section--dark .stat .num{color:#fff}
.section--dark .stat .lab{color:var(--on-dark-soft)}

/* ---------- Header ---------- */
/* Le wrapper FSE du template-part header ne doit pas borner le sticky : display:contents
   le retire du flux pour que .site-header colle sur toute la hauteur de page. */
.cmc-header-slot{display:contents}
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,253,249,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-header.scrolled{box-shadow:0 8px 24px -16px rgba(120,40,75,.4)}
.nav{display:flex;align-items:center;gap:1.9rem;height:76px}
.nav-links{display:flex;align-items:center;gap:2.05rem;margin-left:auto;font-weight:600;font-size:.97rem}
.nav-links a{padding:.3em 0;position:relative;color:var(--ink-2);transition:color .2s;white-space:nowrap}
.nav-links a:hover,.nav-links a.is-current{color:var(--rose-deep)}
.nav-item{position:relative}
.nav-item>a{display:inline-flex;align-items:center;gap:.3em}
.nav-item .caret{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65;transition:transform .25s}
.nav-item:hover .caret{transform:rotate(225deg) translateY(-2px)}
.dropdown{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:.6rem;
  min-width:248px;box-shadow:var(--sh-md);opacity:0;visibility:hidden;transition:.22s;z-index:5;
}
.nav-item:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dropdown a{display:block;padding:.62em .8em;border-radius:var(--r-sm);font-size:.95rem;color:var(--ink-2);white-space:nowrap}
.dropdown a:hover{background:var(--rose-wash);color:var(--rose-deep)}
.dropdown a small{display:block;font-weight:500;font-size:.8rem;color:var(--ink-soft)}
.nav-cta{margin-left:.4rem}
.nav-actions{display:flex;align-items:center;gap:.6rem;margin-left:.6rem}
.nav-actions .btn{padding:.62em 1.15em;font-size:.95rem}
.nav-cta.is-current{background:var(--rose-wash);border-color:var(--rose);color:var(--rose-deep)}
.burger{display:none;margin-left:auto;width:46px;height:46px;border-radius:var(--r-sm);border:1.5px solid var(--line-2);background:#fff;flex-direction:column;gap:5px;align-items:center;justify-content:center}
.burger span{width:20px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:70;background:rgba(34,28,32,.4);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:.25s}
.drawer.open{opacity:1;visibility:visible}
.drawer-panel{position:absolute;top:0;right:0;height:100%;width:min(88vw,380px);background:var(--paper);box-shadow:var(--sh-lg);transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.3,1);padding:1.4rem;overflow-y:auto;display:flex;flex-direction:column;gap:.3rem}
.drawer.open .drawer-panel{transform:none}
.drawer-panel .d-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.drawer-panel .d-close{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line-2);background:#fff;font-size:1.3rem;line-height:1;color:var(--ink)}
.drawer-panel a.d-link{padding:.85em .4em;border-bottom:1px solid var(--line);font-weight:700;font-size:1.1rem;color:var(--ink);font-family:var(--font-display)}
.drawer-panel a.d-sub{padding:.5em .4em .5em 1.2em;font-size:.97rem;color:var(--ink-2);font-weight:600}

/* ---------- Logo ---------- */
.logo{display:inline-flex;flex-direction:column;line-height:.82;font-family:var(--font-display);color:var(--ink)}
.logo .l-top{font-size:.74rem;font-weight:700;letter-spacing:.30em;text-transform:lowercase;color:var(--ink-2);margin-left:.18em}
.logo .l-main{font-size:1.62rem;font-weight:700;font-style:italic;position:relative;display:inline-block}
.logo .l-main .fr{font-style:normal;color:var(--rose);font-weight:600}
.logo .l-main::after{content:"";position:absolute;left:0;right:30%;bottom:-3px;height:2px;border-radius:2px;background:var(--rose);opacity:.85}
.section--dark .logo,.site-footer .logo{color:#fff}
.section--dark .logo .l-top,.site-footer .logo .l-top{color:var(--on-dark-soft)}
.scroll-top{position:fixed;right:clamp(16px,2.4vw,32px);bottom:clamp(16px,2.4vw,32px);z-index:55;width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:50%;color:#fff;background:var(--rose);box-shadow:0 8px 24px rgba(196,60,116,.32);cursor:pointer;opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s,background .2s}
.scroll-top.is-visible{opacity:1;transform:none}
.scroll-top:hover{background:var(--rose-deep)}
.scroll-top:focus-visible{outline:2px solid var(--rose-deep);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.scroll-top{transition:opacity .2s}}
.header-logo{display:inline-flex;align-items:center;line-height:0}
.site-header .header-logo img{height:46px;width:auto;display:block}
.drawer .d-head .header-logo img{height:42px;width:auto;display:block}
.site-footer .footer-logo{display:inline-block;line-height:0}
.site-footer .footer-logo img{display:block;width:190px;height:auto;max-width:60vw}

/* ---------- Footer ---------- */
.site-footer{background:var(--dark);color:var(--on-dark-soft);padding-block:clamp(48px,6vw,76px) 0}
.site-footer a{color:var(--on-dark-soft);transition:color .2s}
.site-footer a:hover{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:clamp(28px,4vw,52px)}
.footer-col h4{color:#fff;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.1rem;font-weight:800}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem;font-size:.95rem}
.footer-socials{display:flex;gap:.6rem;margin-top:1.3rem}
.footer-socials a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;color:var(--on-dark-soft);transition:color .2s,border-color .2s,background .2s,transform .2s}
.footer-socials a:hover{color:#fff;border-color:var(--rose);background:var(--rose);transform:translateY(-2px)}
.footer-socials svg{width:18px;height:18px}
.footer-legal{border-top:1px solid rgba(255,255,255,.1);margin-top:clamp(40px,5vw,60px);padding-block:1.6rem 2rem;display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;align-items:center;justify-content:space-between;font-size:.82rem;color:#8c8088}
.footer-legal .fl-links{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center}
.footer-legal .sep{opacity:.4}
.footer-legal .fl-credit{font-weight:400;letter-spacing:.02em;color:#8c8088;white-space:nowrap;transition:color .2s}
.footer-legal .fl-credit:hover{color:#fff}
.orias{font-size:.8rem;color:#8c8088;line-height:1.6;max-width:62ch;margin-top:.4rem}
.orias--full{max-width:none;text-align:center;margin-top:clamp(36px,5vw,56px);font-size:.72rem}

/* ---------- Decorative blobs & line-art ---------- */
.decor{position:absolute;pointer-events:none;z-index:0;opacity:var(--decor-opacity)}
.blob{position:absolute;border-radius:46% 54% 60% 40%/50% 44% 56% 50%;pointer-events:none;z-index:0;opacity:var(--decor-opacity)}
.leaf{opacity:calc(.5*var(--decor-opacity));pointer-events:none}
.section>.wrap{position:relative;z-index:1}

/* photo frames */
.photo{position:relative;overflow:hidden;background:linear-gradient(150deg,var(--rose-soft),var(--rose-wash));border-radius:var(--r-xl)}
.photo image-slot{width:100%;height:100%;display:block}

/* ---------- Reveal animations ----------
   Opacity is ALWAYS 1 (content can never capture blank in any renderer).
   The reveal is a subtle upward translate only, played once when .in is
   added. Safe for screenshots, print, reduced-motion and JS-off. */
[data-reveal]{opacity:1}
[data-reveal].in{animation:revealIn .65s cubic-bezier(.2,.7,.3,1) both}
[data-reveal][data-delay="1"].in{animation-delay:.07s}
[data-reveal][data-delay="2"].in{animation-delay:.14s}
[data-reveal][data-delay="3"].in{animation-delay:.21s}
[data-reveal][data-delay="4"].in{animation-delay:.28s}
[data-reveal][data-delay="5"].in{animation-delay:.35s}
@keyframes revealIn{from{transform:translateY(24px)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal].in{animation:none!important;transform:none!important}
  html{scroll-behavior:auto}
  .float,.float-2{animation:none!important}
  .logo-track{animation:none!important}
}
.float{animation:floaty 9s ease-in-out infinite}
.float-2{animation:floaty 11s ease-in-out infinite reverse}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}

/* ---------- Utility grids ---------- */
.grid{display:grid;gap:clamp(16px,2vw,26px)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.g-6{grid-template-columns:repeat(6,1fr)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
.flexrow{display:flex;gap:1rem;flex-wrap:wrap}
.flexrow--center{align-items:center}
.stack{display:flex;flex-direction:column}
.gap-xs{gap:.5rem}.gap-s{gap:.85rem}.gap-m{gap:1.4rem}.gap-l{gap:2.2rem}
.mt-s{margin-top:1rem}.mt-m{margin-top:1.8rem}.mt-l{margin-top:2.8rem}
.divider{height:1px;background:var(--line);border:0;margin-block:clamp(28px,4vw,48px)}

/* ---------- Accordion ---------- */
.acc{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2em 0;font-weight:700;font-size:1.08rem;color:var(--ink);font-family:var(--font-display)}
.acc summary::-webkit-details-marker{display:none}
.acc .pm{flex:none;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;color:var(--rose-deep);transition:.25s;position:relative}
.acc .pm::before,.acc .pm::after{content:"";position:absolute;background:currentColor;border-radius:2px}
.acc .pm::before{width:13px;height:2px}
.acc .pm::after{width:2px;height:13px;transition:transform .25s}
.acc[open] .pm{background:var(--rose);border-color:var(--rose);color:#fff;transform:rotate(90deg)}
.acc[open] .pm::after{transform:scaleY(0)}
.acc .acc-body{padding-bottom:1.4em;color:var(--ink-2);line-height:1.65;max-width:72ch}

/* ---------- Misc helpers ---------- */
.pill-note{display:inline-flex;align-items:center;gap:.55em;font-size:.86rem;color:var(--ink-soft);background:var(--cream);border:1px solid var(--line);border-radius:var(--r-pill);padding:.5em 1em}
.disclaimer{font-size:.84rem;color:var(--ink-soft);line-height:1.6;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-md);padding:1em 1.2em}
.section--dark .disclaimer{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12);color:var(--on-dark-soft)}
.icon-tile{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:var(--rose-wash);color:var(--rose-deep);flex:none}
.icon-tile svg{width:27px;height:27px}
.tag-num{font-family:var(--font-script);font-size:2.2rem;color:var(--rose);font-weight:700;line-height:1}

/* ---------- Shared composite blocks (used by chrome.js includes) ---------- */
.ag-card{display:flex;flex-direction:column;gap:.5rem}
.ag-card .ag-photo{height:150px;border-radius:var(--r-md);overflow:hidden;background:linear-gradient(150deg,var(--rose-soft),var(--rose-wash));margin-bottom:.3rem}
.ag-card .ag-photo image-slot{width:100%;height:100%}
.ag-card h3{font-family:var(--font-display);font-size:1.28rem}
.ag-card .ag-meta{font-size:.9rem;color:var(--ink-soft)}
.cta-final{position:relative;overflow:hidden;text-align:center;background:linear-gradient(125deg,var(--dark) 0%,#3a2230 42%,var(--rose-deep) 140%)}
.cta-final .blob{opacity:calc(.4*var(--decor-opacity))}
.hero-blob{position:absolute;z-index:0;border-radius:46% 54% 60% 40%/50% 44% 56% 50%;opacity:var(--decor-opacity);pointer-events:none}
.consent{display:flex;gap:.6rem;align-items:flex-start;font-size:.86rem;color:var(--ink-2);line-height:1.5}
.consent input{margin-top:.25rem;width:18px;height:18px;accent-color:var(--rose);flex:none}
.captcha{display:flex;align-items:center;gap:.7rem;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:12px 14px;background:var(--cream);font-size:.9rem;color:var(--ink-2);max-width:320px}
.captcha .box{width:24px;height:24px;border:2px solid var(--line-2);border-radius:5px;background:#fff;flex:none}

/* ---------- Inner-page patterns (service / agence / contact pages) ---------- */
.page-hero{background:linear-gradient(168deg,var(--rose-tint) 0%,var(--paper) 60%,var(--cream) 100%);position:relative;overflow:hidden}
.section.page-hero{padding-block:clamp(34px,4.4vw,64px)}
.page-hero .photo{min-height:clamp(320px,42vh,440px);max-height:62vh;height:100%}
.page-hero .crumbs{font-size:.85rem;color:var(--ink-soft);font-weight:600;margin-bottom:1rem}
.page-hero .crumbs a:hover{color:var(--rose-deep)}
.checklist{list-style:none;display:flex;flex-direction:column;gap:.85rem}
.checklist li{display:flex;gap:.75rem;align-items:flex-start;line-height:1.5}
.checklist li::before{content:"";flex:none;width:24px;height:24px;border-radius:50%;background:var(--rose-wash);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23c43c74' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;margin-top:.05em}
.steps-v{display:flex;flex-direction:column;gap:0}
.steps-v .sv{position:relative;padding:0 0 1.8rem 3.2rem}
.steps-v .sv::before{content:"";position:absolute;left:17px;top:6px;bottom:-6px;width:2px;background:var(--rose-soft)}
.steps-v .sv:last-child::before{display:none}
.steps-v .sv .dot{position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;background:var(--rose);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;box-shadow:var(--sh-rose)}
.steps-v .sv h4{font-family:var(--font-display);font-size:1.2rem;margin-bottom:.25rem}
.steps-v .sv p{color:var(--ink-2);font-size:.96rem}
.feature{display:flex;flex-direction:column;gap:.5rem;height:100%}
.feature .icon-tile{margin-bottom:.4rem}
.feature h3{font-family:var(--font-display);font-size:1.22rem}
.feature p{color:var(--ink-2);font-size:.95rem}
.kpi-band{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,30px);text-align:center}
@media(max-width:860px){.kpi-band{grid-template-columns:1fr 1fr}}

/* ---------- Agency team (flex, always centered rows) ---------- */
.team-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:clamp(18px,2vw,26px);max-width:1088px;margin-inline:auto}
.team-grid>.card{flex:0 0 auto;width:calc((100% - 3*26px)/4);min-width:210px}
@media(max-width:900px){.team-grid>.card{width:calc((100% - 26px)/2)}}
@media(max-width:560px){.team-grid>.card{width:100%;max-width:300px}}

/* ---------- Blog : post cards ---------- */
.post-card{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm);transition:transform .3s cubic-bezier(.2,.8,.3,1),box-shadow .3s,border-color .3s;color:inherit}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--sh-md);border-color:var(--rose-soft)}
.post-thumb{position:relative;height:200px;background:linear-gradient(150deg,var(--rose-soft),var(--rose-wash));overflow:hidden}
.post-thumb image-slot{width:100%;height:100%;display:block}
.post-cat{position:absolute;top:14px;left:14px;z-index:2;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:rgba(34,28,32,.72);backdrop-filter:blur(4px);padding:.42em .85em;border-radius:var(--r-pill)}
.post-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.post-body h3{font-family:var(--font-display);font-weight:700;font-size:1.3rem;line-height:1.16;margin-bottom:.5rem;text-wrap:balance}
.post-card:hover .post-body h3{color:var(--rose-deep)}
.post-body .excerpt{color:var(--ink-2);font-size:.95rem;line-height:1.55;flex:1;margin-bottom:1.1rem}
.post-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.82rem;color:var(--ink-soft)}
.post-meta .author{font-weight:700;color:var(--ink-2)}
.post-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--line-2);flex:none}

/* ---------- Blog : archive ---------- */
.blog-filter{display:flex;flex-wrap:wrap;gap:.6rem}

/* ---------- Article template ---------- */
.article-hero{background:linear-gradient(168deg,var(--rose-tint) 0%,var(--paper) 70%);position:relative;overflow:hidden}
.article-head{max-width:820px;margin-inline:auto;text-align:center}
.article-head .crumbs{font-size:.85rem;color:var(--ink-soft);font-weight:600;margin-bottom:1rem}
.article-head .crumbs a:hover{color:var(--rose-deep)}
.article-head h1{font-size:clamp(2rem,4vw,3.2rem)}
.article-cat{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--rose-deep);background:var(--rose-wash);padding:.45em 1em;border-radius:var(--r-pill);margin-bottom:1.2rem}
.article-byline{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;margin-top:1.6rem;font-size:.92rem;color:var(--ink-2)}
.article-byline .av{width:44px;height:44px;border-radius:50%;background:linear-gradient(150deg,var(--rose-soft),var(--rose-wash));display:grid;place-items:center;font-family:var(--font-display);font-weight:700;color:var(--rose-deep);flex:none}
.article-byline .who b{display:block;font-weight:700;color:var(--ink)}
.article-byline .who small{color:var(--ink-soft);font-size:.84rem}
.article-byline .sep{width:4px;height:4px;border-radius:50%;background:var(--line-2)}
.article-thumb{max-width:1000px;margin:clamp(28px,4vw,48px) auto 0;height:clamp(260px,42vw,460px);border-radius:var(--r-xl);overflow:hidden;background:linear-gradient(150deg,var(--rose-soft),var(--rose-wash));box-shadow:var(--sh-md)}
.article-thumb image-slot{width:100%;height:100%;display:block}

.article-wrap{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(30px,5vw,64px);align-items:start;max-width:1040px;margin-inline:auto}
.toc{position:sticky;top:100px;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 20px 22px}
.toc h4{font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.8rem}
.toc ul{list-style:none;display:flex;flex-direction:column;gap:.1rem}
.toc a{display:block;padding:.5em .7em;font-size:.92rem;font-weight:600;color:var(--ink-2);border-radius:var(--r-sm);line-height:1.35;transition:.2s}
.toc a:hover{background:#fff;color:var(--rose-deep)}
.toc a.is-active{background:var(--rose);color:#fff}

.article-body{font-size:1.06rem}
.article-body>p:first-of-type{font-size:1.18rem;color:var(--ink);line-height:1.6}
.article-body h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,2.4vw,1.95rem);margin:2.2rem 0 .8rem;scroll-margin-top:100px}
.article-body h3{font-family:var(--font-display);font-weight:700;font-size:1.25rem;margin:1.4rem 0 .5rem}
.article-body p{margin-bottom:1.05rem;color:var(--ink-2);line-height:1.72}
.article-body ul,.article-body ol{margin:0 0 1.2rem 1.3rem;color:var(--ink-2);line-height:1.7;display:flex;flex-direction:column;gap:.45rem}
.article-body strong{color:var(--ink);font-weight:700}
.article-body a{color:var(--rose-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.article-callout{background:var(--rose-wash);border:1px solid var(--rose-soft);border-radius:var(--r-md);padding:clamp(18px,2.4vw,26px);margin:1.6rem 0}
.article-callout .ttl{font-family:var(--font-display);font-weight:700;font-size:1.15rem;margin-bottom:.3rem;color:var(--ink)}
.article-callout p{margin-bottom:0;color:var(--ink-2)}
.article-share{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--line);font-size:.9rem;color:var(--ink-soft)}
.article-share .s-btn{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;color:var(--ink-2);transition:.2s}
.article-share .s-btn:hover{border-color:var(--rose);color:var(--rose-deep)}
@media(max-width:880px){
  .article-wrap{grid-template-columns:1fr}
  .toc{position:relative;top:0}
}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .g-6{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .nav-links{display:none}
  .nav-cta,.nav-actions{display:none}
  .burger{display:flex}
  .split{grid-template-columns:1fr}
  .g-4{grid-template-columns:repeat(2,1fr)}
  .g-3{grid-template-columns:1fr}
  .g-2{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:16px}
  .g-4,.g-6{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .footer-legal{justify-content:center;text-align:center;flex-direction:column}
  .footer-legal .fl-links{justify-content:center}
  .orias--full{text-align:left}
  .flexrow>.btn{flex:1 1 100%}
  input,select,textarea,.input,.select{font-size:16px}
  :root{--gut:20px}
}
