/* Standalone partner page. Colours, type, controls and icon masks inherit the site design system. */
.partner-page { --partner-sage: #edf1ed; }
.partner-page [hidden] { display: none !important; }
.partner-page h1, .partner-page h2 { text-wrap: balance; }
.partner-page p { text-wrap: pretty; }
.partner-page :is(section, article, #devis, #conditions-fiscales) { scroll-margin-top: 74px; }
.partner-page .eyebrow { font-size: 1rem; letter-spacing: .055em; line-height: 1.5; }
.partner-page .button { font-size: 1rem; }
.partner-page .text-button { justify-content: flex-start; }
.partner-header { border-bottom: 1px solid var(--line); }
.partner-header-inner { min-height: 144px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.partner-local { font-size: 1rem; font-weight: 600; letter-spacing: .065em; line-height: 1.4; }
.partner-header-label { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.5; }
.partner-header-label strong { color: var(--ink); font-weight: 600; }
.partner-nav { position: sticky; top: 0; z-index: 30; background: var(--paper); border-bottom: 1px solid var(--line); }
.partner-nav > div { display: flex; gap: 38px; align-items: center; }
.partner-nav a { display: inline-flex; min-height: 66px; align-items: center; font-size: 1rem; font-weight: 600; text-decoration: none; }
.partner-nav a:last-child { margin-left: auto; color: var(--raspberry); }
.partner-nav a:hover { color: var(--raspberry); text-decoration: underline; }
.partner-hero { display: grid; grid-template-columns: 1.2fr 1fr; gap: 58px; align-items: center; padding-block: 70px 86px; }
.partner-hero h1 { font-size: clamp(2.8rem, 5.2vw, 4.5rem); line-height: 1.04; margin-bottom: 28px; }
.partner-hero .eyebrow { max-width: 36ch; }
.partner-lead { font-size: 1.3rem; line-height: 1.5; max-width: 35ch; }
.partner-muted { color: var(--muted); font-size: 1.05rem; max-width: 48ch; }
.partner-hero .actions { margin-top: 28px; gap: 10px 18px; }
.partner-visual { position: relative; margin: 0 0 30px; }
.partner-visual > img { width: 100%; aspect-ratio: .94; object-fit: cover; border-radius: 46% 46% var(--radius) var(--radius); }
.partner-visual figcaption { position: absolute; bottom: -30px; left: -25px; display: flex; align-items: center; gap: 18px; background: var(--paper); border: 1px solid var(--line); padding: 24px 28px; border-radius: var(--radius); font-size: 1.35rem; line-height: 1.35; box-shadow: 0 8px 26px #29222a0c; }
.partner-icon { display: inline-block; flex: 0 0 46px; width: 46px; height: 46px; color: var(--raspberry); background: currentColor; mask: var(--partner-icon) center / contain no-repeat; -webkit-mask: var(--partner-icon) center / contain no-repeat; }
.icon-home { --partner-icon: url('/assets/icons/home-2.svg'); }
.icon-ironing { --partner-icon: url('/assets/icons/ironing-steam.svg'); }
.icon-users { --partner-icon: url('/assets/icons/users.svg'); }
.icon-pin { --partner-icon: url('/assets/icons/flag-pin.svg'); }
.icon-question { --partner-icon: url('/assets/icons/message-circle-question.svg'); }
.partner-section { padding-block: 90px; }
.partner-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 38px; }
.partner-section-heading h2 { margin-bottom: 0; }
.partner-section-heading > p { color: var(--muted); margin: 0; }
.partner-offer { padding-block: 75px; background: var(--pink); }
.partner-price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.partner-price-card { padding: 36px; border-radius: var(--radius); border: 1px solid var(--line); background: var(--paper); display: flex; flex-direction: column; min-width: 0; }
.partner-card-heading { display: flex; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.partner-card-heading .eyebrow { margin-bottom: 8px; font-size: 1rem; letter-spacing: .025em; }
.partner-card-heading h3 { font-size: 1.7rem; margin: 0; }
.partner-price { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin: 22px 0; color: var(--raspberry); line-height: 1.15; }
.partner-price strong { font-size: clamp(3.6rem, 6vw, 5rem); letter-spacing: -.065em; font-weight: 600; }
.partner-price > span { font-size: 1.1rem; color: var(--ink); }
.partner-tax { border-radius: 16px; background: var(--pink); padding: 20px 24px; margin-bottom: 22px; line-height: 1.45; }
.partner-tax strong { font-size: 2.2rem; font-weight: 600; letter-spacing: -.035em; color: var(--raspberry); }
.partner-tax strong > span { font-size: 1rem; font-weight: 500; letter-spacing: 0; white-space: nowrap; }
.partner-tax > span { display: block; font-size: 1rem; }
.partner-tax a { padding-inline: 4px; }
.partner-price-card > p:not(.partner-price, .partner-tax) { font-size: 1.1rem; }
.partner-price-card .service-link { border-top: 1px solid var(--line); padding-top: 20px; margin-top: auto; font-size: 1rem; }
.partner-price-care .partner-icon, .partner-price-care .partner-price strong, .partner-price-care .partner-tax strong { color: var(--green); }
.partner-price-care .partner-tax { background: var(--partner-sage); }
.partner-benefits { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 30px 0; padding: 24px 0; border-block: 1px solid #b1005a30; }
.partner-benefits li { text-align: center; font-size: 1.1rem; padding-inline: 20px; }
.partner-benefits li + li { border-left: 1px solid #b1005a30; }
.partner-benefits strong { display: block; color: var(--raspberry); font-size: 1.3rem; }
.partner-benefits span { display: block; }
.partner-conditions { font-size: 1rem; color: var(--muted); }
.partner-conditions p:last-child { margin-bottom: 0; }
.partner-audience { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: start; }
.partner-audience h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
.partner-prior-support { margin-top: 32px; }
.partner-prior-support h3 { font-size: 1.35rem; line-height: 1.3; margin-bottom: 14px; }
.partner-audience-panel { background: var(--partner-sage); border-radius: var(--radius); padding: 36px; }
.partner-audience-panel h3 { font-size: 1.5rem; }
.partner-audience-panel p { font-size: 1rem; }
.partner-tags { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0 0 26px; }
.partner-tags li { border: 1px solid #244d4233; background: var(--paper); color: var(--green); border-radius: 30px; padding: 6px 16px; font-size: 1rem; }
.partner-services { border-block: 1px solid var(--line); }
.partner-service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.partner-service-grid > article { display: flex; flex-direction: column; min-width: 0; }
.partner-service-grid > article + article { border-left: 1px solid var(--line); padding-left: 60px; }
.partner-service-grid .partner-icon { margin: 6px 0 20px; }
.partner-service-grid h3 { font-size: 1.9rem; }
.partner-service-grid p, .partner-service-grid li { font-size: 1.05rem; }
.partner-service-grid .check-list { margin-bottom: 16px; }
.partner-service-grid .check-list li { padding-left: 27px; margin-block: 12px; }
.partner-complement-title { font-size: 1.1rem; line-height: 1.4; margin: 8px 0 4px; }
.partner-service-grid .partner-detail { font-size: 1rem; color: var(--muted); margin-bottom: 28px; }
.partner-model { background: var(--pink); padding: 26px; border-radius: 16px; margin-top: auto; }
.partner-model .eyebrow { font-size: 1rem; margin-bottom: 8px; color: var(--raspberry); }
.partner-model h4 { margin: 0 0 12px; font-size: 1.2rem; line-height: 1.4; }
.partner-model p:last-child { margin: 0; font-size: 1rem; }
#aide .partner-model { background: var(--partner-sage); }
#aide .partner-icon, #aide .partner-model .eyebrow, #aide .check-list li::before { color: var(--green); }
.partner-service-grid .button { margin-top: 16px; }
.partner-service-note { color: var(--muted); font-size: 1rem; border-top: 1px solid var(--line); padding-top: 28px; margin: 32px 0 0; }
.partner-steps { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; padding: 0; margin: 46px 0 0; gap: 40px; }
.partner-steps li { border-top: 1px solid var(--line); padding-top: 20px; }
.partner-steps li > span { color: var(--raspberry); font-family: Georgia, serif; font-size: 2.5rem; }
.partner-steps h3 { font-size: 1.4rem; line-height: 1.25; margin-block: 18px; }
.partner-steps p { font-size: 1.05rem; margin-bottom: 0; }
.partner-area { background: var(--partner-sage); }
.partner-area-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: start; }
.partner-area .partner-icon { color: var(--green); margin-bottom: 18px; }
.partner-area h2 em { color: var(--green); }
.partner-coverage { background: var(--paper); border-radius: var(--radius); padding: 32px; }
.partner-coverage h3 { font-size: 1.5rem; line-height: 1.25; }
.partner-coverage label { margin: 0; }
.partner-coverage .button { margin-top: 16px; width: 100%; }
.partner-coverage #coverage-hint { font-size: 1rem; line-height: 1.5; }
.partner-coverage #coverage-results { font-size: 1rem; }
.partner-communes { border-top: 1px solid #244d4233; margin-top: 36px; }
.partner-communes summary, .partner-legal summary { cursor: pointer; font-weight: 600; padding-block: 22px; font-size: 1rem; }
.partner-communes ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 0; margin: 0; gap: 10px 26px; list-style: none; font-size: 1rem; }
.partner-communes li { overflow-wrap: anywhere; }
.partner-communes li span { color: var(--muted); white-space: nowrap; }
.partner-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; }
.partner-faq .partner-icon { margin-bottom: 18px; }
.partner-page .faq summary { line-height: 1.5; font-size: 1.1rem; }
.partner-page .faq details p { font-size: 1rem; }
.partner-contact { background: var(--pink); }
.partner-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.partner-contact-grid > * { min-width: 0; }
.partner-contact-copy { padding-block: 16px; }
.partner-contact h2 { font-size: clamp(2.3rem, 4vw, 3.4rem); }
.partner-contact .contact-phone { display: flex; align-items: center; gap: 12px; font-size: clamp(1.4rem, 2.6vw, 2rem); }
.partner-contact .contact-alternatives { gap: 20px; }
.partner-email { display: flex; align-items: center; gap: 12px; font-size: 1rem; }
.partner-email span:last-child { overflow-wrap: anywhere; min-width: 0; }
.partner-email .mail-icon { flex: 0 0 28px; }
.partner-agency { border-top: 1px solid #b1005a30; margin-top: 32px; padding-top: 28px; font-size: 1rem; }
.partner-agency address { font-style: normal; margin-bottom: 20px; }
.partner-contact-note { font-size: 1rem; color: var(--muted); }
.partner-page .callback-form { border: 1px solid var(--line); }
.partner-page .callback-form h3 { font-size: 1.65rem; line-height: 1.2; }
.partner-page .callback-form .form-row { grid-template-columns: 1fr; gap: 0; }
.partner-page .callback-form input, .partner-page .callback-form select { font-size: 1rem; }
.partner-page .callback-form .submit-button { gap: 16px; }
.partner-noscript { background: var(--paper); padding: 32px; border-radius: var(--radius); overflow-wrap: anywhere; }
.partner-footer { padding-block: 44px 32px; font-size: 1rem; }
.partner-footer-top { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.partner-footer-top p { margin-block: 12px; color: var(--muted); }
.partner-print { background: transparent; border: 1px solid var(--line); flex-shrink: 0; }
.partner-legal { border-block: 1px solid var(--line); margin-top: 28px; }
.partner-legal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; padding-block: 12px; }
.partner-legal h3 { font-size: 1.2rem; letter-spacing: -.02em; }
.partner-legal p { overflow-wrap: anywhere; }
.partner-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 26px; margin-top: 26px; }
.partner-footer-bottom > span { font-size: 1.35rem; }
.partner-footer-bottom a { display: flex; align-items: center; gap: 12px; min-height: 48px; }
.partner-footer-bottom .chevron-up-icon { width: 24px; height: 24px; }
@media (max-width: 1100px) {
  .partner-local { display: none; }
  .partner-hero { gap: 36px; }
  .partner-hero h1 { font-size: 3.1rem; }
  .partner-visual figcaption { left: -14px; font-size: 1.15rem; padding: 20px; }
  .partner-price-card { padding: 28px; }
  .partner-card-heading { gap: 12px; }
  .partner-card-heading h3 { font-size: 1.4rem; }
  .partner-card-heading .eyebrow { font-size: 1rem; }
  .partner-audience, .partner-area-grid, .partner-contact-grid, .partner-faq { gap: 36px; }
  .partner-audience-panel { padding: 28px; }
  .partner-service-grid { gap: 32px; }
  .partner-service-grid > article + article { padding-left: 32px; }
}
@media (max-width: 760px) {
  .partner-page :is(section, article, #devis, #conditions-fiscales) { scroll-margin-top: 10px; }
  .partner-header-inner { flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-block: 8px 16px; }
  .partner-header .brand { flex-basis: auto; }
  .partner-header-label { flex-basis: 100%; order: 3; text-align: center; font-size: 1rem; }
  .partner-header-label br { display: none; }
  .partner-header-label strong::before { content: ' '; }
  .partner-header .header-call { padding: 12px 8px; }
  .partner-nav > div { width: 100%; gap: 0; justify-content: space-around; padding-inline: 8px; }
  .partner-nav a { min-height: 58px; font-size: 1rem; padding-inline: 5px; }
  .partner-nav a:last-child { margin-left: 0; }
  .partner-hero { grid-template-columns: 1fr; gap: 30px; padding-block: 40px 62px; }
  .partner-hero h1 { font-size: clamp(2.65rem, 9.8vw, 3.8rem); }
  .partner-hero .eyebrow { max-width: none; letter-spacing: .025em; }
  .partner-lead { font-size: 1.2rem; }
  .partner-visual { max-width: 480px; width: 100%; margin: 4px auto 20px; }
  .partner-visual > img { aspect-ratio: 1.3; border-radius: 42% 42% var(--radius) var(--radius); }
  .partner-visual figcaption { left: 14px; bottom: -20px; padding: 18px 24px; }
  .partner-section, .partner-offer { padding-block: 56px; }
  .partner-section-heading { display: block; margin-bottom: 30px; }
  .partner-section-heading > p { margin-top: 20px; }
  .partner-page h2 { font-size: 2.25rem; }
  .partner-price-grid, .partner-audience, .partner-service-grid, .partner-steps, .partner-area-grid, .partner-faq, .partner-contact-grid, .partner-legal-grid { grid-template-columns: 1fr; }
  .partner-card-heading h3 { font-size: 1.5rem; }
  .partner-price-card { padding: 26px; }
  .partner-price { margin-block: 24px; }
  .partner-price strong { font-size: 4.1rem; }
  .partner-tax { padding: 18px; }
  .partner-benefits { grid-template-columns: 1fr; padding-block: 0; }
  .partner-benefits li { padding-block: 18px; }
  .partner-benefits li + li { border-left: 0; border-top: 1px solid #b1005a30; }
  .partner-service-grid { gap: 36px; }
  .partner-service-grid > article + article { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; padding-top: 36px; }
  .partner-model { margin-top: 0; }
  .partner-steps { gap: 28px; margin-top: 32px; }
  .partner-steps h3 { margin-top: 12px; }
  .partner-coverage { padding: 26px; }
  .partner-communes ul { grid-template-columns: 1fr 1fr; }
  .partner-faq { gap: 16px; }
  .partner-contact-copy { padding-block: 0; }
  .partner-contact .contact-phone { font-size: 1.8rem; }
  .partner-footer-top, .partner-footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }
  .partner-page .mobile-contact a { font-size: 1rem; }
}
@media (max-width: 420px) {
  .partner-header .brand-image { width: 130px; height: 76px; }
  .partner-header .brand-image img { width: 130px; height: 130px; top: -26px; }
  .partner-header-inner { gap: 10px; }
  .partner-nav > div { flex-wrap: wrap; }
  .partner-nav a { min-height: 46px; padding-inline: 10px; }
  .partner-page :is(section, article, #devis, #conditions-fiscales) { scroll-margin-top: 32px; }
  .partner-card-heading { align-items: flex-start; }
  .partner-card-heading .partner-icon { width: 34px; height: 34px; flex-basis: 34px; }
  .partner-price-card { padding: 22px; }
  .partner-tax { padding: 16px; }
  .partner-tax strong { font-size: 1.9rem; }
  .partner-communes ul { grid-template-columns: 1fr; }
  .partner-page .callback-form { padding: 24px 20px; }
  .partner-page .submit-button { padding-inline: 16px; }
  .partner-page .mobile-contact a .arrow-icon { display: none; }
}
@media print {
  @page { margin: 16mm; }
  :root { font-size: 11pt; }
  .partner-page { padding: 0; font-size: 11pt; background: white; }
  .partner-page .wrap { width: 100%; }
  .partner-nav, .partner-print, .partner-page .mobile-contact, .skip-link, .partner-page .actions, .partner-coverage form, #coverage-results, #devis, .partner-footer-bottom a, .partner-service-grid .button, .partner-price-card .service-link { display: none !important; }
  .partner-header-inner { min-height: 90px; }
  .partner-hero { grid-template-columns: 1.2fr 1fr; padding-block: 24px; gap: 30px; }
  .partner-hero h1 { font-size: 2.8rem; }
  .partner-visual { max-width: 230px; }
  .partner-visual figcaption { position: static; padding: 12px; }
  .partner-section, .partner-offer { padding-block: 28px; }
  .partner-page h2 { font-size: 2rem; }
  .partner-price-grid, .partner-service-grid { grid-template-columns: 1fr 1fr; gap: 18px; }
  .partner-price-card { padding: 20px; }
  .partner-price strong { font-size: 3.5rem; }
  .partner-benefits, .partner-steps { grid-template-columns: repeat(3, 1fr); }
  .partner-contact-grid { display: block; }
  .partner-contact-copy { max-width: none; }
  .partner-price-card, .partner-model, .partner-steps li, .partner-contact-copy { break-inside: avoid; }
  .partner-page h2, .partner-page h3 { break-after: avoid; }
  .partner-page p, .partner-page li { orphans: 3; widows: 3; }
  .partner-page a { text-decoration: none; }
}

/* Agency identity and information pages shared by both published copies. */
.partner-official { background: var(--partner-sage); padding-block: 14px; font-size: 1rem; }
.partner-official a { margin-left: 12px; color: var(--green); }
.partner-agency-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: start; border-top: 1px solid var(--line); }
.partner-agency-intro h2 { font-size: clamp(2rem,3.4vw,3rem); }
.partner-agency-identity { background: var(--partner-sage); border-radius: var(--radius); padding: 32px; font-size: 1rem; }
.partner-agency-identity h3 { font-size: 1.5rem; line-height: 1.3; }
.partner-agency-identity address { font-style: normal; margin-block: 22px; }
.partner-agency-identity p:last-child { margin-bottom: 0; }
.partner-footer-links { display: flex; flex-wrap: wrap; gap: 12px 28px; border-top: 1px solid var(--line); padding-top: 26px; margin-top: 26px; }
.partner-footer-links a { min-height: 44px; display: inline-flex; align-items: center; }
.partner-publisher { font-size: 1rem; color: var(--muted); border-bottom: 1px solid var(--line); padding-bottom: 22px; }
.partner-document { max-width: 920px; padding-block: 40px 80px; }
.partner-document h1 { font-size: clamp(2.5rem,5vw,4rem); margin-bottom: 32px; }
.partner-document section { border-top: 1px solid var(--line); padding-top: 30px; margin-top: 36px; }
.partner-document h2 { font-size: 1.8rem; line-height: 1.2; }
.partner-document h3 { font-size: 1.35rem; line-height: 1.3; }
.partner-document address { font-style: normal; }
.partner-document p, .partner-document address { overflow-wrap: anywhere; }
.partner-back { display: inline-flex; align-items: center; min-height: 48px; margin-bottom: 26px; color: var(--muted); font-size: 1rem; }
@media(max-width:760px) {
  .partner-agency-intro { grid-template-columns: 1fr; gap: 30px; }
  .partner-agency-identity { padding: 26px; }
  .partner-official a { display: inline-block; margin-left: 0; }
  .partner-document { padding-bottom: 48px; }
  .partner-document h2 { font-size: 1.7rem; }
  .partner-document section { scroll-margin-top: 40px; }
  .partner-nav > div { flex-wrap: wrap; }
  .partner-nav a { min-height: 46px; padding-inline: 10px; }
}
@media print { .partner-official, .partner-footer-links, .partner-back { display: none; } .partner-document { padding-block: 0; } }

.partner-document .partner-lead { max-width: 62ch; }
.partner-nav a[aria-current="page"] { color: var(--raspberry); text-decoration: underline; }
