@charset "UTF-8";
/* ================================================================
   COFFRE PRIVÉ — HOMEPAGE (NEW DESIGN)
   Scope : core content of index.php only (header / footer untouched)
   Prefix: cp-hm-
   Built for Bootstrap v5.1.3 grid
   Tokens taken 1:1 from "Coffre Privé - Redesign v6"
   ================================================================ */

/* Self-hosted web fonts (latin, variable). Preloaded in each page head. */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400 900;
    font-display: optional;
    src: url('../fonts/playfair-display-var.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Playfair Display';
    font-style: italic;
    font-weight: 400 900;
    font-display: optional;
    src: url('../fonts/playfair-display-var-italic.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Instrument Sans';
    font-style: normal;
    font-weight: 400 700;
    font-display: optional;
    src: url('../fonts/instrument-sans-var.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*------------------------------------------------*/
/*-----------------[VARIABLES]--------------------*/
/*------------------------------------------------*/
:root {
    --cp-navy-900: #081A30;
    --cp-navy-700: #0E2A4E;
    --cp-navy-500: #123B6D;
    --cp-teal: #1B5A72;
    --cp-gold: #D8BC85;
    --cp-gold-light: #EEDDBB;
    --cp-gold-dark: #96773D;
    --cp-ink: #101826;
    --cp-paper: #FAFAF7;
    --cp-mist: #E8E8E8;
    --cp-white: #FFFFFF;
    --cp-green: #2E7D4F;
    --cp-font-serif: 'Playfair Display', serif;
    --cp-font-sans: 'Instrument Sans', sans-serif;
}

/*------------------------------------------------*/
/*-----------------[LAYOUT SHELL]-----------------*/
/*------------------------------------------------*/
.cp-container {
    max-width: 1290px;
    margin: 0 auto;
    padding: 0 48px;
    box-sizing: border-box;
}

.cp-container-narrow {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0;
    box-sizing: border-box;
}

/*------------------------------------------------*/
/*-----------------[SHARED]-----------------------*/
/*------------------------------------------------*/
.cp-eyebrow {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.4;
    text-transform: uppercase;
    color: var(--cp-gold-dark);
    margin-bottom: 16px;
}

.cp-mark {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-bottom: 22px;
}

.cp-mark img {
    display: block;
    width: auto;
    height: 32px;
}

.cp-mark-name {
    font-family: var(--cp-font-serif);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.22em;
    line-height: 1;
    text-transform: uppercase;
    color: var(--cp-navy-700);
}

.cp-mark-name em {
    font-style: normal;
    color: #C18E3B;
}

/* left-aligned variant for two-column sections */
.cp-mark-start {
    justify-content: flex-start;
}

.cp-fleuron {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 22px 0 0px;
}

.cp-fleuron:before,
.cp-fleuron:after {
    content: "";
    width: 58px;
    height: 1px;
    background: linear-gradient(to right, rgba(193, 142, 59, 0) 0%, rgba(193, 142, 59, 0.55) 100%);
}

.cp-fleuron:after {
    background: linear-gradient(to left, rgba(193, 142, 59, 0) 0%, rgba(193, 142, 59, 0.55) 100%);
}

.cp-fleuron span {
    display: block;
    flex-shrink: 0;
    width: 7px;
    height: 7px;
    transform: rotate(45deg);
    background: #C18E3B;
}

.cp-fleuron-start {
    justify-content: flex-start;
    margin: 18px 0 22px;
}

.cp-fleuron-start:before {
    display: none;
}

.cp-fleuron-start:after {
    width: 76px;
}

.cp-section-title {
    font-family: var(--cp-font-serif);
    font-size: 40px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--cp-ink);
    margin: 0 0 16px;
}

/* the fleuron now has no bottom margin — keep an intro that follows it clear */
.cp-fleuron + .cp-section-intro {
    margin-top: 18px;
}

.cp-section-intro {
    font-family: var(--cp-font-sans);
    font-size: 17px;
    font-weight: 400;
    line-height: 1.7;
    color: rgba(16, 24, 38, 0.6);
    max-width: 690px;
    margin: 0 auto;
}

.cp-section-head {
    text-align: center;
    margin-bottom: 64px;
}

.cp-btn {
    display: inline-block;
    font-family: var(--cp-font-sans);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: 6px;
    padding: 17px 34px;
    cursor: pointer;
    transition: all 0.25s ease 0s;
}

.cp-btn:focus { outline: none; }

.cp-btn-gold {
    background: var(--cp-gold);
    border-color: var(--cp-gold);
    color: var(--cp-ink);
}

.cp-btn-gold:hover {
    background: var(--cp-gold-light);
    border-color: var(--cp-gold-light);
    color: var(--cp-ink);
}

.cp-btn-ghost {
    background: transparent;
    border-color: rgba(250, 250, 247, 0.35);
    color: var(--cp-paper);
    font-weight: 600;
}

.cp-btn-ghost:hover {
    border-color: var(--cp-gold);
    color: var(--cp-gold);
}

.cp-btn-sm {
    padding: 12px 26px;
    font-size: 13px;
    font-weight: 600;
}

.cp-link {
    display: inline-block;
    font-family: var(--cp-font-sans);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--cp-gold);
    text-decoration: none;
    transition: color 0.25s ease 0s;
}

.cp-link:hover {
    color: var(--cp-gold-light);
    text-decoration: none;
}

/*------------------------------------------------*/
/*----------[INNER PAGE HEAD - REUSABLE]----------*/
/*------------------------------------------------*/
/* Drop-in banner for any interior page:
   .cp-page-head > .cp-container > .cp-crumbs + .cp-mark + h1.cp-page-title
   + .cp-fleuron + p.cp-section-intro                                        */
.cp-page-head {
    background: var(--cp-mist);
    padding: 54px 0 60px;
    text-align: center;
}

.cp-crumbs {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 6px;
    padding: 0;
    list-style: none;
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    line-height: 1.5;
    color: rgba(16, 24, 38, 0.55);
}

.cp-crumbs a {
    color: rgba(16, 24, 38, 0.55);
    text-decoration: none;
    transition: color 0.25s ease 0s;
}

.cp-crumbs a:hover {
    color: var(--cp-gold-dark);
}

.cp-crumbs li + li:before {
    content: "/";
    margin-right: 10px;
    color: rgba(16, 24, 38, 0.3);
}

.cp-crumbs li[aria-current] {
    color: var(--cp-navy-700);
    font-weight: 500;
}

.cp-page-title {
    font-family: var(--cp-font-serif);
    font-size: 44px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--cp-navy-700);
    margin: 0;
}

/* generic band for interior page content sitting under the head */
.cp-band {
    padding: 80px 0;
}

.cp-band-soft {
    background: linear-gradient(165deg, #D6D6D6 0%, #EAEAEA 45%, #F5F5F5 100%);
    border-top: 1px solid rgba(16, 24, 38, 0.08);
    border-bottom: 1px solid rgba(16, 24, 38, 0.08);
}

.cp-band-white {
    background: var(--cp-white);
}

/*------------------------------------------------*/
/*-----------------[HERO]-------------------------*/
/*------------------------------------------------*/
.cp-hm-hero {
    position: relative;
    overflow: hidden;
    /* the hero is a rounded card inset from the page edges, not a full-bleed band */
    margin: 0 48px 0;
    border-radius: 20px;
    background-color: var(--cp-mist);
    background-image: url("../img/cp-hm-banner.webp");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: cover;
}

.cp-hm-hero-veil {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    background: linear-gradient(to right, var(--cp-mist) 0%, var(--cp-mist) 26%, rgba(232, 232, 232, 0.92) 38%, rgba(232, 232, 232, 0.55) 50%, rgba(232, 232, 232, 0.14) 62%, rgba(232, 232, 232, 0) 72%);
}

.cp-hm-hero-photo {
    display: none;
}

.cp-hm-hero-inner {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	min-height: 520px;
	padding-top: 52px;
	padding-bottom: 52px;
}

.cp-hm-hero-copy {
    max-width: 590px;
}

.cp-hm-hero-eyebrow {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    font-family: var(--cp-font-sans);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.55;
    text-transform: uppercase;
    color: var(--cp-gold-dark);
    margin: 0 0 26px;
}

.cp-hm-hero-eyebrow:before {
    content: "";
    flex-shrink: 0;
    width: 19px;
    height: 1px;
    margin-top: 9px;
    background: #C99423;
}

.cp-hm-hero-title {
	font-family: var(--cp-font-serif);
	font-size: 46px;
	font-weight: 800;
	line-height: 0.9;
	letter-spacing: -0.01em;
	color: var(--cp-navy-700);
	margin: 0 0 30px;
}

.cp-hm-hero-title em {
    font-style: italic;
    color: #C99423;
}

.cp-hm-hero-partner {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    white-space: nowrap;
    gap: 14px;
    font-family: var(--cp-font-serif);
    font-size: 24px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--cp-navy-700);
    margin: 0 0 34px;
}

.cp-hm-hero-partner-logo {
    display: block;
    flex-shrink: 0;
    width: auto;
    height: 20px;
}

.cp-hm-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 30px;
}

.cp-btn-navy {
    background: var(--cp-navy-500);
    border-color: var(--cp-navy-500);
    color: var(--cp-paper);
    font-weight: 600;
    padding: 18px 36px;
    box-shadow: 0 14px 30px rgba(14, 42, 78, 0.18);
}

.cp-btn-navy:hover {
    background: var(--cp-navy-700);
    border-color: var(--cp-navy-700);
    color: var(--cp-paper);
}

.cp-hm-hero-textlink {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--cp-font-sans);
    font-size: 14.5px;
    font-weight: 600;
    color: var(--cp-navy-700);
    text-decoration: none;
    transition: color 0.25s ease 0s;
}

.cp-hm-hero-textlink svg {
    stroke: currentColor;
    transition: transform 0.25s ease 0s;
}

.cp-hm-hero-textlink:hover {
    color: var(--cp-gold-dark);
}

.cp-hm-hero-textlink:hover svg {
    transform: translateX(5px);
}

/*------------------------------------------------*/
/*-----------------[PILLARS]----------------------*/
/*------------------------------------------------*/
.cp-hm-pillars {
    background: var(--cp-white);
    padding: 62px 0 66px;
}

.cp-hm-pillars-row {
    --bs-gutter-x: 0;
}

.cp-hm-pillar {
    height: 100%;
    padding: 0 42px;
    border-left: 1px solid rgba(16, 24, 38, 0.13);
}

.cp-hm-pillars-row > [class*="col-"]:first-child .cp-hm-pillar {
    padding-left: 0;
    border-left: 0;
}

.cp-hm-pillars-row > [class*="col-"]:last-child .cp-hm-pillar {
    padding-right: 0;
}

.cp-hm-pillar-num {
    display: block;
    font-family: var(--cp-font-serif);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
    color: var(--cp-gold-bright);
    margin-bottom: 18px;
}

.cp-hm-pillar-head {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 18px;
}

.cp-hm-pillar-head svg {
    flex-shrink: 0;
    stroke: var(--cp-navy-700);
}

.cp-hm-pillar-title {
    font-family: var(--cp-font-serif);
    font-size: 23px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--cp-navy-700);
    margin: 0;
}

.cp-hm-pillar-text {
    font-family: var(--cp-font-sans);
    font-size: 15.5px;
    line-height: 1.75;
    color: rgba(16, 24, 38, 0.6);
    margin: 0 0 16px;
}

/*------------------------------------------------*/
/*-----------------[OFFRES]-----------------------*/
/*------------------------------------------------*/
.cp-hm-offers {
    position: relative;
    overflow: hidden;
    background: linear-gradient(165deg, #D6D6D6 0%, #EAEAEA 45%, #F5F5F5 100%);
    padding: 80px 0;
}

/* vault backdrop behind the offer cards */
.cp-hm-offers:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    background: url("../img/cp-offers-bg.webp") no-repeat center center / cover;
    opacity: 0.15;
}

.cp-hm-offers > * {
    position: relative;
    z-index: 2;
}

.cp-hm-offers-row {
    padding-top: 12px;
}

/* row wrapper for any set of cards — equal heights, consistent gutters */
.cp-grid-row {
    --bs-gutter-x: 28px;
    --bs-gutter-y: 28px;
    align-items: stretch;
}

.cp-grid-row > [class*="col-"] {
    display: flex;
}

.cp-offer-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    padding: 52px 38px 44px;
    background: var(--cp-white);
    color: var(--cp-ink);
    border: 1px solid rgba(16, 24, 38, 0.1);
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(14, 42, 78, 0.07);
    transition: transform 0.25s ease 0s, box-shadow 0.25s ease 0s;
}

.cp-offer-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 54px rgba(14, 42, 78, 0.16);
}

/* layout A — centred stack (homepage) */
.cp-offer-card-stack {
    align-items: center;
    text-align: center;
    gap: 16px;
}

/* vault emblem filling the right half of a card — add .cp-offer-card-emblem */
.cp-offer-card-emblem:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 52%;
    pointer-events: none;
    border-radius: 0 16px 16px 0;
    background: url("../img/cp-offer-emblem.webp") no-repeat right center / contain;
    opacity: 0.05;
}

/* lifted slightly on the navy card, where 5% would disappear */
.cp-offer-card-featured.cp-offer-card-emblem:after {
    opacity: 0.09;
}

.cp-offer-card-emblem > * {
    position: relative;
    z-index: 2;
}

/* layout C — title band on top, content below (homepage) */
.cp-offer-card-band {
    padding: 0;
    overflow: hidden;
}

.cp-offer-band-top {
    background: #EFEDE7;
    border-bottom: 1px solid rgba(16, 24, 38, 0.07);
    padding: 24px 30px;
    text-align: center;
}

.cp-offer-band-top .cp-offer-kicker {
    margin-bottom: 8px;
}

.cp-offer-band-top .cp-offer-title {
    color: var(--cp-navy-700);
}

.cp-offer-band-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 1 auto;
    text-align: center;
    gap: 18px;
    padding: 32px 30px 34px;
}

.cp-offer-card-band .cp-offer-media {
    width: 74px;
    height: 74px;
    margin-bottom: 0;
}

.cp-offer-card-band .cp-offer-text {
    margin: 0;
}

.cp-offer-card-band .cp-offer-btn {
    margin-top: 0;
}

.cp-offer-card-band.cp-offer-card-featured {
    background: var(--cp-navy-900);
    border-color: var(--cp-navy-900);
}

.cp-offer-card-band.cp-offer-card-featured .cp-offer-band-top {
    background: var(--cp-navy-700);
    border-bottom-color: transparent;
}

.cp-offer-card-band.cp-offer-card-featured .cp-offer-band-top .cp-offer-title {
    color: var(--cp-paper);
}

/* layout B — icon and title side by side (offers page) */
.cp-offer-card-inline {
    padding: 44px 40px 40px;
}

.cp-offer-card-head {
    display: flex;
    align-items: center;
    gap: 20px;
    padding-bottom: 24px;
    margin-bottom: 24px;
    border-bottom: 1px solid rgba(16, 24, 38, 0.09);
}

.cp-offer-card-inline .cp-offer-media {
    flex-shrink: 0;
    width: 74px;
    height: 74px;
    margin-bottom: 0;
}

.cp-offer-card-inline .cp-offer-kicker {
    margin-bottom: 8px;
}

.cp-offer-card-inline .cp-offer-text {
    margin-bottom: 28px;
    line-height: 1.75;
}

.cp-offer-card-inline .cp-offer-btn {
    align-self: flex-start;
    margin-top: 0;
}

.cp-offer-card-featured .cp-offer-card-head {
    border-bottom-color: rgba(250, 250, 247, 0.18);
}

.cp-offer-media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100px;
    height: 100px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: rgba(18, 59, 109, 0.07);
}

.cp-offer-media svg {
    stroke: var(--cp-navy-500);
}

.cp-offer-media svg .cp-icon-accent {
    stroke: var(--cp-gold);
}

.cp-offer-kicker {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.4;
    text-transform: uppercase;
    color: rgba(16, 24, 38, 0.5);
}

.cp-offer-title {
    font-family: var(--cp-font-serif);
    font-size: 31px;
    font-weight: 700;
    line-height: 1.2;
    color: inherit;
    margin: 0;
}

.cp-offer-text {
    flex: 1;
    font-family: var(--cp-font-sans);
    font-size: 16px;
    line-height: 1.7;
    color: rgba(16, 24, 38, 0.62);
    margin: 0;
}

.cp-offer-btn {
    margin-top: 8px;
    border-color: rgba(16, 24, 38, 0.2);
    color: var(--cp-ink);
}

.cp-offer-btn:hover {
    background: var(--cp-navy-500);
    border-color: var(--cp-navy-500);
    color: var(--cp-paper);
}

/* Featured card */
.cp-offer-card-featured {
    background: var(--cp-navy-700);
    color: var(--cp-paper);
    border-color: var(--cp-navy-700);
    box-shadow: 0 28px 60px rgba(14, 42, 78, 0.3);
}

/* the lift only belongs to the centred homepage layout */
.cp-offer-card-stack.cp-offer-card-featured {
    transform: scale(1.04);
}

.cp-offer-card-stack.cp-offer-card-featured:hover {
    transform: scale(1.04) translateY(-6px);
}

.cp-offer-card-featured .cp-offer-media {
    background: rgba(216, 188, 133, 0.14);
}

.cp-offer-card-featured .cp-offer-media svg {
    stroke: var(--cp-paper);
}

.cp-offer-card-featured .cp-offer-kicker {
    color: rgba(216, 188, 133, 0.9);
}

.cp-offer-card-featured .cp-offer-text {
    color: rgba(250, 250, 247, 0.72);
}

.cp-offer-card-featured .cp-offer-btn {
    border-color: var(--cp-gold);
    color: var(--cp-gold);
}

.cp-offer-card-featured .cp-offer-btn:hover {
    background: var(--cp-navy-500);
    border-color: var(--cp-navy-500);
    color: var(--cp-paper);
}

.cp-offer-badge {
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    font-family: var(--cp-font-sans);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
    color: var(--cp-ink);
    background: var(--cp-gold);
    padding: 6px 16px;
    border-radius: 100px;
}

.cp-hm-offers-all {
    width: 100%;
    padding-top: 52px;
    text-align: center;
}

/*------------------------------------------------*/
/*-----------------[NEWSLETTER]-------------------*/
/*------------------------------------------------*/
.cp-hm-newsletter {
    background: var(--cp-white);
    padding: 96px 0;
}

.cp-hm-newsletter-card {
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
    border-radius: 20px;
    box-shadow: 0 24px 60px rgba(14, 42, 78, 0.14);
}

.cp-hm-newsletter-left {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 18px;
    flex: 0 0 50%;
    max-width: 50%;
    padding: 72px 64px;
    color: var(--cp-ink);
    background: linear-gradient(150deg, #F0D7A0 0%, #D8BC85 100%);
}

.cp-hm-newsletter-left:after {
    content: "";
    position: absolute;
    top: -60px;
    right: -60px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    border: 32px solid rgba(255, 255, 255, 0.14);
}

.cp-hm-newsletter-rule {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 14px;
}

.cp-hm-newsletter-rule img {
    display: block;
    width: auto;
    height: 34px;
}

.cp-hm-newsletter-rule:after {
    content: "";
    width: 46px;
    height: 2px;
    background: rgba(16, 24, 38, 0.55);
}

.cp-hm-newsletter-title {
    position: relative;
    z-index: 2;
    font-family: var(--cp-font-serif);
    font-size: 30px;
    font-weight: 800;
    line-height: 1.22;
    letter-spacing: -0.005em;
    color: var(--cp-ink);
    max-width: 460px;
    margin: 0;
}

.cp-hm-newsletter-text {
    position: relative;
    z-index: 2;
    font-family: var(--cp-font-sans);
    font-size: 17px;
    font-weight: 500;
    line-height: 1.6;
    color: rgba(16, 24, 38, 0.75);
    max-width: 420px;
    margin: 0;
}

.cp-hm-newsletter-formtitle {
    font-family: var(--cp-font-serif);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--cp-ink);
    margin: 0 0 20px;
}

.cp-hm-newsletter-right {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 0 0 50%;
    max-width: 50%;
    padding: 64px;
    background: var(--cp-white);
}

/* ActiveCampaign form skin — scoped to the homepage block only */
.cp-hm-newsletter-form #_form_5_ ._form-content {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin: 0;
}

.cp-hm-newsletter-form #_form_5_ ._form_element {
    flex: 0 0 100%;
    max-width: 100%;
    margin: 0;
}

.cp-hm-newsletter-form #_form_5_ ._form_element ._form-label {
    display: none;
}

.cp-hm-newsletter-form #_form_5_ ._form_element input[type="text"] {
    box-sizing: border-box;
    width: 100%;
    padding: 17px 18px;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    color: var(--cp-ink);
    background: #F5F5F2;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    outline: none;
    transition: border-color 0.25s ease 0s;
}

.cp-hm-newsletter-form #_form_5_ ._form_element input[type="text"]:focus {
    border-color: var(--cp-gold-dark);
}

.cp-hm-newsletter-form #_form_5_ ._form_element input[type="text"]::placeholder {
    color: rgba(16, 24, 38, 0.45);
}

.cp-hm-newsletter-form #_form_5_ ._form_element._clear {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    clear: none;
    margin-top: 4px;
}

.cp-hm-newsletter-form #_form_5_ ._html-code p {
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    line-height: 1.5;
    color: rgba(16, 24, 38, 0.55);
    margin: 0;
    padding: 0;
}

.cp-hm-newsletter-form #_form_5_ ._button-wrapper {
    flex: 0 0 auto;
    width: auto;
    margin-top: 4px;
    margin-left: auto;
}

.cp-hm-newsletter-form #_form_5_ ._button-wrapper ._submit {
    display: inline-block;
    width: auto;
    margin-top: 0;
    padding: 16px 42px !important;
    font-family: var(--cp-font-sans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: none;
    color: var(--cp-paper) !important;
    background: var(--cp-ink) !important;
    border: 0 !important;
    border-radius: 8px !important;
    cursor: pointer;
    transition: background 0.25s ease 0s;
}

.cp-hm-newsletter-form #_form_5_ ._button-wrapper ._submit:hover {
    background: var(--cp-navy-500) !important;
}

.cp-hm-newsletter-form #_form_5_ ._clear-element {
    display: none;
}

/*------------------------------------------------*/
/*-----------------[CTA BAND]---------------------*/
/*------------------------------------------------*/
.cp-cta {
    background: linear-gradient(115deg, var(--cp-navy-900) 0%, var(--cp-navy-700) 60%, var(--cp-navy-500) 100%);
    padding: 46px 0;
    color: var(--cp-paper);
}

.cp-cta-inner {
    display: flex;
    align-items: center;
    gap: 40px;
}

.cp-cta-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(216, 188, 133, 0.15);
    border: 1px solid rgba(216, 188, 133, 0.5);
}

.cp-cta-icon svg {
    stroke: var(--cp-gold);
}

.cp-cta-copy {
    flex: 1 1 auto;
    min-width: 0;
}

.cp-cta-title {
    font-family: var(--cp-font-serif);
    font-size: 27px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.005em;
    color: var(--cp-paper);
    margin: 0 0 7px;
}

.cp-cta-text {
    font-family: var(--cp-font-sans);
    font-size: 15.5px;
    line-height: 1.6;
    color: rgba(250, 250, 247, 0.7);
    margin: 0;
}

.cp-cta .cp-btn-gold {
    flex-shrink: 0;
    padding: 17px 40px;
    font-size: 14.5px;
    border-radius: 8px;
}

/*------------------------------------------------*/
.cp-cta-boxed {
    background: none;
    padding: 0;
}

.cp-cta-boxed .cp-container {
    padding: 0;
}

.cp-cta-boxed .cp-cta-inner {
    gap: 28px;
    padding: 28px 36px;
    border-radius: 16px;
    background: linear-gradient(115deg, var(--cp-navy-900) 0%, var(--cp-navy-700) 60%, var(--cp-navy-500) 100%);
    box-shadow: 0 20px 46px rgba(14, 42, 78, 0.18);
}

.cp-cta-boxed .cp-cta-icon {
    width: 46px;
    height: 46px;
}

.cp-cta-boxed .cp-cta-title {
    font-size: 23px;
    margin-bottom: 5px;
}

.cp-cta-boxed .cp-cta-text {
    font-size: 14.5px;
}

.cp-cta-boxed .cp-btn-gold {
    padding: 14px 32px;
    font-size: 14px;
}

/* spacing when the boxed CTA sits under a card grid */
.cp-cta-under-grid {
    margin-top: 44px;
}

/*------------------------------------------------*/
/*-----------------[PARTNER BRINK'S]--------------*/
/*------------------------------------------------*/
.cp-hm-partner {
    background: var(--cp-white);
    padding: 80px 0 100px;
}

.cp-hm-partner-inner {
    max-width: 1280px;
    margin: 0 auto;
}

.cp-hm-partner-row {
    --bs-gutter-x: 96px;
    align-items: center;
}

.cp-hm-partner-brand {
    font-family: var(--cp-font-serif);
    font-size: 46px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
    color: var(--cp-navy-700);
    margin: 0 0 22px;
}

.cp-hm-partner-lead {
    font-family: var(--cp-font-serif);
    font-size: 25px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--cp-ink);
    max-width: 520px;
    margin: 0 0 20px;
}

.cp-hm-partner-text {
    font-family: var(--cp-font-sans);
    font-size: 17.5px;
    line-height: 1.75;
    color: rgba(16, 24, 38, 0.62);
    max-width: 480px;
    margin: 0 0 28px;
}

.cp-hm-partner-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cp-hm-partner-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--cp-font-sans);
    font-size: 16.5px;
    font-weight: 500;
    line-height: 1.5;
    color: rgba(16, 24, 38, 0.75);
}

.cp-hm-partner-list svg {
    flex-shrink: 0;
    stroke: var(--cp-green);
}

.cp-hm-partner-media {
    position: relative;
}

/* the four figures, laid over the photo */
.cp-hm-partner-media-over:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: 14px;
    pointer-events: none;
    background: linear-gradient(160deg, rgba(8, 26, 48, 0.5) 0%, rgba(8, 26, 48, 0) 62%);
}

.cp-hm-partner-tiles {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 2;
    width: 92%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.cp-hm-partner-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 16px 12px;
    border-radius: 10px;
    background: rgba(8, 26, 48, 0.85);
}

.cp-hm-partner-tile b {
    font-family: var(--cp-font-serif);
    font-size: 21px;
    font-weight: 800;
    line-height: 1;
    color: var(--cp-gold);
}

.cp-hm-partner-tile span {
    font-family: var(--cp-font-sans);
    font-size: 15px;
    line-height: 1.4;
    color: rgba(250, 250, 247, 0.8);
    margin-top: 6px;
}

.cp-hm-partner-img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3.2;
    object-fit: cover;
    border-radius: 14px;
    box-shadow: 0 28px 60px rgba(14, 42, 78, 0.18);
}

.cp-hm-partner-badge {
    position: absolute;
    left: 32px;
    bottom: -24px;
    padding: 18px 24px;
    background: var(--cp-navy-700);
    border-radius: 12px;
    box-shadow: 0 18px 44px rgba(14, 42, 78, 0.25);
}

.cp-hm-partner-badge-value {
    display: block;
    font-family: var(--cp-font-serif);
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
    color: var(--cp-gold);
}

.cp-hm-partner-badge-label {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 13px;
    line-height: 1.4;
    color: rgba(250, 250, 247, 0.75);
    margin-top: 6px;
}

/*------------------------------------------------*/
/*-----------------[STATS BAND]-------------------*/
/*------------------------------------------------*/
.cp-hm-stats {
    background: linear-gradient(180deg, #F0F0F0 0%, #DCDCDC 55%, #CFCFCF 100%);
    color: var(--cp-ink);
}

.cp-hm-stats-row {
    --bs-gutter-x: 0;
}

.cp-hm-stat {
    padding: 44px 28px;
    text-align: center;
    border-left: 1px solid rgba(16, 24, 38, 0.12);
}

.cp-hm-stats-row > [class*="col-"]:first-child .cp-hm-stat {
    border-left: 0;
}

.cp-hm-stat-value {
    display: block;
    font-family: var(--cp-font-serif);
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
    color: var(--cp-navy-700);
}

.cp-hm-stat-label {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    line-height: 1.5;
    color: rgba(16, 24, 38, 0.6);
    margin-top: 10px;
}

/*------------------------------------------------*/
/*-----------------[RESPONSIVE]-------------------*/
/*------------------------------------------------*/
@media (max-width: 1399.98px) {
    .cp-hm-hero-title { font-size: 44px; }
    .cp-hm-hero-copy { max-width: 540px; }
    .cp-hm-partner-row { --bs-gutter-x: 64px; }
    .cp-hm-partner-brand { font-size: 40px; }
    .cp-hm-newsletter-left,
    .cp-hm-newsletter-right { padding: 56px 48px; }
}

@media (max-width: 1199.98px) {
    .cp-container { padding: 0 32px; }
    .cp-page-title { font-size: 38px; }
    .cp-offer-card-inline { padding: 38px 30px 34px; }
    .cp-offer-card-inline .cp-offer-media { width: 64px; height: 64px; }
    .cp-hm-hero-title { font-size: 38px; }
    .cp-hm-hero-inner { min-height: 500px; }
    .cp-hm-hero-copy { max-width: 480px; }
    .cp-section-title { font-size: 34px; }
    .cp-hm-offers { padding: 90px 0; }
    .cp-offer-card-stack { padding: 44px 26px 38px; }
    .cp-offer-media { width: 84px; height: 84px; }
    .cp-offer-text { font-size: 15px; }
    .cp-hm-partner { padding: 90px 0; }
    .cp-hm-partner-lead { font-size: 24px; }
    .cp-hm-partner-text { font-size: 16px; }
    .cp-hm-pillars-row { --bs-gutter-x: 32px; }
}

@media (max-width: 991.98px) {
    .cp-container { padding: 0 24px; }
    .cp-page-head { padding: 42px 0 48px; }
    .cp-page-title { font-size: 33px; }
    .cp-band { padding: 60px 0; }
    .cp-hm-hero { margin: 12px 24px 0; border-radius: 16px; background-position: 74% center; }
    .cp-hm-hero-veil { background: linear-gradient(to right, var(--cp-mist) 0%, var(--cp-mist) 34%, rgba(232, 232, 232, 0.88) 52%, rgba(232, 232, 232, 0.35) 72%, rgba(232, 232, 232, 0) 88%); }
    .cp-hm-hero-inner { min-height: 430px; padding-top: 52px; padding-bottom: 52px; }
    .cp-hm-hero-title { font-size: 33px; }
    .cp-hm-hero-copy { max-width: 460px; }
    .cp-hm-pillars { padding: 46px 0 20px; }
    .cp-hm-pillar { padding: 0 0 30px; border-left: 0; border-bottom: 1px solid rgba(16, 24, 38, 0.13); margin-bottom: 30px; }
    .cp-hm-pillars-row > [class*="col-"]:last-child .cp-hm-pillar { border-bottom: 0; margin-bottom: 0; }
    .cp-hm-offers { padding: 70px 0; }

    .cp-offer-card-stack.cp-offer-card-featured,
    .cp-offer-card-stack.cp-offer-card-featured:hover { transform: none; }
    .cp-hm-newsletter { padding: 70px 0; }
    .cp-hm-newsletter-left,
    .cp-hm-newsletter-right { flex: 0 0 100%; max-width: 100%; }
    .cp-cta-inner { gap: 28px; }
    .cp-cta-title { font-size: 24px; }
    .cp-cta-boxed .cp-cta-inner { padding: 26px 28px; }
    .cp-cta-boxed .cp-cta-title { font-size: 21px; }
    .cp-hm-partner { padding: 70px 0; }
    .cp-hm-partner-media { margin-top: 56px; }
    .cp-hm-partner-tiles { width: auto; left: 16px; right: 16px; top: 16px; gap: 10px; }
    .cp-hm-partner-tile b { font-size: 19px; }
    .cp-hm-stat { border-left: 0; border-top: 1px solid rgba(16, 24, 38, 0.12); padding: 34px 20px; }
}

@media (max-width: 767.98px) {
    /* photo moves out of the background and becomes its own strip */
    .cp-hm-hero { margin: 10px 16px 0; border-radius: 14px; background-image: none; background-color: var(--cp-mist); }
    .cp-hm-hero-veil { display: none; }
    .cp-hm-hero-photo { display: block; }
    .cp-hm-hero-photo img { display: block; width: 100%; height: auto; border-radius: 0 0 14px 14px; }
    .cp-hm-hero-inner { min-height: 0; padding-top: 40px; padding-bottom: 36px; }
    .cp-hm-hero-copy { max-width: 100%; }
    .cp-hm-hero-eyebrow { font-size: 11.5px; gap: 12px; margin-bottom: 20px; }
    .cp-hm-hero-eyebrow:before { width: 24px; }
    .cp-hm-hero-title { font-size: 28px; margin-bottom: 24px; }
    .cp-hm-hero-partner { font-size: 16px; gap: 11px; margin-bottom: 28px; }
    .cp-hm-hero-partner-logo { height: 16px; }
    .cp-hm-hero-actions { gap: 20px; }
    .cp-btn-navy { flex: 1 1 100%; }
    .cp-section-title { font-size: 28px; }
    .cp-section-intro { font-size: 16px; }
    .cp-section-head { margin-bottom: 44px; }
    .cp-page-head { padding: 34px 0 40px; }
    .cp-page-title { font-size: 27px; }
    .cp-band { padding: 44px 0; }
    .cp-offer-card-inline { padding: 32px 24px 30px; }
    .cp-offer-card-band { padding: 0; }
    .cp-offer-band-top { padding: 16px 20px; }
    .cp-offer-band-body { gap: 14px; padding: 22px 22px 24px; }
    .cp-offer-card-band .cp-offer-media { width: 58px; height: 58px; }
    .cp-offer-card-band .cp-offer-media svg { width: 28px; height: 28px; }
    .cp-offer-card-band .cp-offer-title { font-size: 20px; }
    .cp-offer-card-band .cp-offer-text { font-size: 14.5px; line-height: 1.65; }
    .cp-hm-offers { padding: 52px 0 56px; }
    .cp-hm-offers-row { padding-top: 4px; }
    .cp-grid-row { --bs-gutter-y: 18px; }
    .cp-offer-card-inline .cp-offer-card-head { gap: 16px; padding-bottom: 20px; margin-bottom: 20px; }
    .cp-offer-card-inline .cp-offer-media { width: 56px; height: 56px; }
    .cp-offer-card-inline .cp-offer-media svg { width: 28px; height: 28px; }
    .cp-offer-card-inline .cp-offer-btn { align-self: stretch; }
    .cp-mark img { height: 27px; }
    .cp-mark-name { font-size: 13px; letter-spacing: 0.18em; }
    .cp-fleuron:before, .cp-fleuron:after { width: 40px; }
    .cp-hm-newsletter-rule img { height: 29px; }
    .cp-hm-newsletter-left,
    .cp-hm-newsletter-right { padding: 40px 28px; }
    .cp-hm-newsletter-title { font-size: 24px; }
    .cp-hm-newsletter-formtitle { font-size: 17px; margin-bottom: 16px; }
    .cp-hm-offers-all { padding-top: 36px; }
    .cp-hm-offers-all .cp-btn-navy { width: 100%; }
    .cp-hm-newsletter-text { font-size: 15px; }
    .cp-hm-newsletter-form #_form_5_ ._form_element._clear,
    .cp-hm-newsletter-form #_form_5_ ._button-wrapper { flex: 0 0 100%; width: 100%; margin-left: 0; }
    .cp-hm-newsletter-form #_form_5_ ._button-wrapper ._submit { width: 100%; }
    .cp-cta { padding: 38px 0; }
    .cp-cta-inner { flex-wrap: wrap; gap: 18px; }
    .cp-cta-boxed { padding: 0; }
    .cp-cta-boxed .cp-cta-inner { padding: 26px 22px; border-radius: 14px; }
    .cp-cta-under-grid { margin-top: 32px; }
    .cp-cta-icon { order: 1; }
    .cp-cta-copy { flex: 1 1 100%; order: 2; }
    .cp-cta .cp-btn-gold { order: 3; width: 100%; }
    .cp-cta-title { font-size: 22px; }
    .cp-cta-text { font-size: 14.5px; }
    .cp-hm-partner-brand { font-size: 34px; }
    .cp-hm-partner-lead { font-size: 21px; }
    .cp-hm-partner-list li { font-size: 15px; }
    .cp-hm-partner-badge { left: 20px; bottom: -20px; padding: 14px 18px; }
}

/*------------------------------------------------*/
/*-----------------[LEGACY OVERRIDES]-------------*/
/*------------------------------------------------*/
.body_home .newsletter {
    display: none;
}

/*------------------------------------------------*/
/*----------[OFFER DETAIL PAGE - REUSABLE]--------*/
/*------------------------------------------------*/
/* Product block: visual on one side, spec sheet on the other.
   Used by coffre-fort-*.php                                    */
.cp-fiche-row {
    --bs-gutter-x: 64px;
    --bs-gutter-y: 40px;
    align-items: flex-start;
}

.cp-fiche-media {
    position: sticky;
    top: 30px;
}

.cp-fiche-img {
    display: block;
    width: 100%;
    background: var(--cp-white);
    border: 1px solid rgba(16, 24, 38, 0.1);
    border-radius: 16px;
    padding: 34px;
    box-shadow: 0 10px 30px rgba(14, 42, 78, 0.07);
}

.cp-fiche-img img {
    display: block;
    width: 100%;
    height: auto;
}

.cp-fiche-note {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    font-style: italic;
    color: rgba(16, 24, 38, 0.5);
    text-align: right;
    margin-top: 12px;
}

/* section sub-heading inside a page */
.cp-block-title {
    font-family: var(--cp-font-serif);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--cp-navy-700);
    margin: 0 0 8px;
}

.cp-block-head {
    margin-bottom: 26px;
}

.cp-block-head .cp-fleuron {
    margin: 14px 0 0;
    justify-content: flex-start;
}

.cp-block-head .cp-fleuron:before {
    display: none;
}

.cp-block-head .cp-fleuron:after {
    width: 76px;
}

/* label / value spec sheet — two columns, as on the live pages */
.cp-spec {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cp-spec-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 30px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(16, 24, 38, 0.12);
}

.cp-spec-row:first-child {
    padding-top: 0;
}

.cp-spec-row:last-child {
    border-bottom: 0;
}

.cp-spec-label {
    flex: 0 0 44%;
    font-family: var(--cp-font-sans);
    font-size: 15.5px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--cp-navy-700);
    margin: 0;
}

.cp-spec-value {
    flex: 1 1 auto;
    font-family: var(--cp-font-sans);
    font-size: 15.5px;
    line-height: 1.6;
    color: rgba(16, 24, 38, 0.68);
    text-align: right;
    margin: 0;
}

.cp-spec-value strong {
    font-weight: 700;
    color: var(--cp-navy-700);
}

/* boxed spec sheet, for a secondary list such as "Les prestations" */
.cp-spec-boxed {
    background: var(--cp-white);
    border: 1px solid rgba(16, 24, 38, 0.1);
    border-radius: 16px;
    padding: 10px 30px;
    box-shadow: 0 10px 30px rgba(14, 42, 78, 0.06);
}

/* price + call to action */
.cp-price-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 30px;
    padding: 26px 30px;
    border: 1px solid rgba(150, 119, 61, 0.4);
    border-radius: 16px;
    background: var(--cp-white);
}

.cp-price-amount {
    display: block;
    font-family: var(--cp-font-serif);
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
    color: var(--cp-navy-700);
}

.cp-price-amount span {
    font-family: var(--cp-font-sans);
    font-size: 15px;
    font-weight: 600;
}

.cp-price-note {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 13px;
    font-style: italic;
    line-height: 1.5;
    color: rgba(16, 24, 38, 0.6);
    max-width: 340px;
    margin: 10px 0 0;
}

/* checklist */
.cp-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cp-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-family: var(--cp-font-sans);
    font-size: 16px;
    line-height: 1.6;
    color: rgba(16, 24, 38, 0.7);
}

.cp-list svg {
    flex-shrink: 0;
    margin-top: 4px;
    stroke: var(--cp-gold-dark);
}

/* accordion (uses the Bootstrap 5 collapse already loaded on the site) */
.cp-acc {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cp-acc-item {
    background: var(--cp-white);
    border: 1px solid rgba(16, 24, 38, 0.1);
    border-radius: 12px;
    overflow: hidden;
}

.cp-acc-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
    padding: 20px 26px;
    font-family: var(--cp-font-sans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: left;
    color: var(--cp-navy-700);
    background: none;
    border: 0;
    cursor: pointer;
    transition: color 0.25s ease 0s;
}

.cp-acc-btn:hover {
    color: var(--cp-gold-dark);
}

.cp-acc-btn svg {
    flex-shrink: 0;
    stroke: var(--cp-gold-dark);
    transition: transform 0.25s ease 0s;
}

.cp-acc-btn[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.cp-acc-body {
    padding: 0 26px 24px;
    font-family: var(--cp-font-sans);
    font-size: 15.5px;
    line-height: 1.75;
    color: rgba(16, 24, 38, 0.68);
}

.cp-acc-body ul {
    margin: 0;
    padding-left: 20px;
}

.cp-acc-body p {
    margin: 0 0 10px;
}

.cp-acc-body p:last-child {
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .cp-fiche-row { --bs-gutter-x: 32px; }
    .cp-fiche-media { position: static; }
    .cp-fiche-img { padding: 26px; }
}

@media (max-width: 767.98px) {
    .cp-block-title { font-size: 22px; }
    .cp-spec-row { flex-direction: column; gap: 4px; padding: 14px 0; }
    .cp-spec-label { flex: 0 0 auto; font-size: 15px; }
    .cp-spec-value { text-align: left; font-size: 15px; }
    .cp-spec-boxed { padding: 6px 20px; }
    .cp-price-box { padding: 22px; }
    .cp-price-box .cp-btn { width: 100%; }
    .cp-price-note { max-width: none; }
    .cp-acc-btn { padding: 16px 20px; font-size: 13px; }
    .cp-acc-body { padding: 0 20px 20px; font-size: 15px; }
}

/* tighter band + two blocks side by side (offer detail pages) */
.cp-band-tight {
    padding: 54px 0 60px;
}

.cp-split-row {
    --bs-gutter-x: 56px;
    --bs-gutter-y: 40px;
}

/* price box sits under the visual, so the CTA stays high on the page */
.cp-fiche-media .cp-price-box {
    margin-top: 18px;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 22px 24px;
}

.cp-fiche-media .cp-price-box .cp-btn {
    width: 100%;
}

.cp-fiche-media .cp-price-note {
    max-width: none;
}

@media (max-width: 991.98px) {
    .cp-band-tight { padding: 42px 0 46px; }
    .cp-split-row { --bs-gutter-x: 32px; }
}

@media (max-width: 767.98px) {
    .cp-band-tight { padding: 34px 0 38px; }
    /* the visual is decorative — keep the price and CTA near the top on phones */
    .cp-fiche-img { padding: 16px; }
    .cp-fiche-img img { max-height: 240px; width: auto; margin: 0 auto; }
}

/* offer icon used as the page-head mark */
.cp-mark-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(18, 59, 109, 0.07);
}

.cp-mark-icon svg {
    stroke: var(--cp-navy-500);
}

/* product visual */
.cp-fiche-img {
    position: relative;
}

.cp-fiche-badge {
    position: absolute;
    top: -16px;
    left: -16px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: var(--cp-navy-700);
    box-shadow: 0 12px 26px rgba(14, 42, 78, 0.24);
}

.cp-fiche-badge svg {
    stroke: var(--cp-paper);
}

.cp-fiche-badge svg .cp-icon-accent {
    stroke: var(--cp-gold);
}

/* dimension strip under the photo */
.cp-fiche-dims {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    margin-top: 4px;
    background: rgba(16, 24, 38, 0.12);
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 12px;
    overflow: hidden;
}

.cp-fiche-dims span {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 14px 8px;
    background: var(--cp-white);
    font-family: var(--cp-font-sans);
    font-size: 13px;
    color: rgba(16, 24, 38, 0.6);
}

.cp-fiche-dims b {
    font-family: var(--cp-font-serif);
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    color: var(--cp-navy-700);
}

.cp-fiche-dims small {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(16, 24, 38, 0.45);
}

@media (max-width: 767.98px) {
    .cp-fiche-badge { width: 52px; height: 52px; top: -12px; left: -12px; }
    .cp-fiche-dims b { font-size: 18px; }
    .cp-fiche-dims span { padding: 12px 6px; font-size: 12px; }
}

/* "A partir de" kicker above a price */
.cp-price-from {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(16, 24, 38, 0.5);
    margin-bottom: 6px;
}

/* intro paragraphs on an offer page */
.cp-lead {
    font-family: var(--cp-font-sans);
    font-size: 16px;
    line-height: 1.75;
    color: rgba(16, 24, 38, 0.68);
    margin: 0 0 14px;
}

.cp-lead:last-of-type {
    margin-bottom: 0;
}

/* small caption above a boxed spec table */
.cp-spec-caption {
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(16, 24, 38, 0.5);
    margin: 20px 0 10px;
}

/* tarif estimator (offre Or/Argent) */
.cp-calc {
    margin-top: 14px;
    padding: 22px 24px;
    background: var(--cp-white);
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 16px;
}

.cp-calc-label {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(16, 24, 38, 0.5);
    margin-bottom: 12px;
}

.cp-calc-field {
    position: relative;
}

.cp-calc-field input {
    width: 100%;
    box-sizing: border-box;
    padding: 15px 44px 15px 18px;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    color: var(--cp-ink);
    background: #F5F5F2;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    outline: none;
    transition: border-color 0.25s ease 0s, background 0.25s ease 0s;
}

.cp-calc-field input::placeholder {
    color: rgba(16, 24, 38, 0.45);
}

.cp-calc-field input:focus {
    background: var(--cp-white);
    border-color: var(--cp-gold-dark);
}

.cp-calc-unit {
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%);
    font-family: var(--cp-font-sans);
    font-size: 15px;
    color: rgba(16, 24, 38, 0.45);
    pointer-events: none;
}

.cp-calc-out {
    display: none;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    line-height: 1.5;
    color: rgba(16, 24, 38, 0.68);
    margin: 14px 0 0;
    padding-top: 14px;
    border-top: 1px solid rgba(16, 24, 38, 0.1);
}

.cp-calc-out.is-on {
    display: block;
}


.cp-calc-out a {
    color: var(--cp-gold-dark);
    font-weight: 600;
}

/* estimator: key-holding options */
.cp-calc-opts {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 14px;
}

.cp-calc-opts label {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-family: var(--cp-font-sans);
    font-size: 13.5px;
    line-height: 1.4;
    color: rgba(16, 24, 38, 0.68);
    cursor: pointer;
}

.cp-calc-opts input {
    flex-shrink: 0;
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: var(--cp-navy-500);
    cursor: pointer;
}

.cp-calc-opts b {
    font-weight: 700;
    color: var(--cp-navy-700);
}


/* estimator: cost breakdown rows */
.cp-calc-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 9px 0;
    font-family: var(--cp-font-sans);
    font-size: 14px;
    line-height: 1.45;
    color: rgba(16, 24, 38, 0.68);
    border-bottom: 1px dotted rgba(16, 24, 38, 0.16);
}

.cp-calc-row i {
    font-style: normal;
    color: rgba(16, 24, 38, 0.45);
}

.cp-calc-row b {
    flex-shrink: 0;
    font-weight: 600;
    color: var(--cp-navy-700);
}

.cp-calc-row.is-total {
    padding-top: 13px;
    border-bottom: 0;
    font-weight: 700;
    color: var(--cp-navy-700);
}

.cp-calc-row.is-total b {
    font-family: var(--cp-font-serif);
    font-size: 23px;
    font-weight: 800;
}

.cp-calc-row.is-extra {
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid rgba(16, 24, 38, 0.1);
    border-bottom: 0;
    font-size: 13.5px;
    color: rgba(16, 24, 38, 0.55);
}

.cp-calc-row.is-extra b {
    font-weight: 600;
    color: rgba(16, 24, 38, 0.7);
}

/* estimator: duration select */
.cp-calc-dur {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
}

.cp-calc-dur label {
    font-family: var(--cp-font-sans);
    font-size: 13.5px;
    font-weight: 600;
    color: rgba(16, 24, 38, 0.6);
}

.cp-calc-dur select {
    flex: 1 1 auto;
    padding: 11px 14px;
    font-family: var(--cp-font-sans);
    font-size: 14.5px;
    color: var(--cp-ink);
    background: #F5F5F2;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    outline: none;
    cursor: pointer;
    transition: border-color 0.25s ease 0s;
}

.cp-calc-dur select:focus {
    border-color: var(--cp-gold-dark);
    background: var(--cp-white);
}

/*------------------------------------------------*/
/*----------[EDITORIAL PAGES - REUSABLE]----------*/
/*------------------------------------------------*/
/* long-form content: à propos, CGV, mentions, FAQ, contact… */
.cp-prose {
    font-family: var(--cp-font-sans);
    font-size: 16px;
    line-height: 1.8;
    color: rgba(16, 24, 38, 0.7);
}

.cp-prose > *:first-child {
    margin-top: 0;
}

.cp-prose h2 {
    font-family: var(--cp-font-serif);
    font-size: 26px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--cp-navy-700);
    margin: 42px 0 16px;
}

.cp-prose h3 {
    font-family: var(--cp-font-serif);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--cp-navy-700);
    margin: 32px 0 12px;
}

.cp-prose h4 {
    font-family: var(--cp-font-sans);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--cp-navy-700);
    margin: 26px 0 10px;
}

.cp-prose p {
    margin: 0 0 18px;
}

.cp-prose ul,
.cp-prose ol {
    margin: 0 0 18px;
    padding-left: 22px;
}

.cp-prose li {
    margin-bottom: 8px;
}

.cp-prose a {
    color: var(--cp-gold-dark);
    text-decoration: underline;
}

.cp-prose a:hover {
    color: var(--cp-navy-500);
}

.cp-prose strong,
.cp-prose b {
    color: var(--cp-navy-700);
}

.cp-prose img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}

.cp-prose table {
    width: 100%;
    margin-bottom: 20px;
    border-collapse: collapse;
}

.cp-prose th,
.cp-prose td {
    padding: 12px 14px;
    text-align: left;
    border: 1px solid rgba(16, 24, 38, 0.12);
}

.cp-prose th {
    background: rgba(18, 59, 109, 0.05);
    font-weight: 700;
    color: var(--cp-navy-700);
}

/* pull-quote used on the "à propos" page */
.cp-prose .a-propos-intro {
    font-family: var(--cp-font-serif);
    font-size: 20px;
    line-height: 1.6;
    color: var(--cp-navy-700);
    background: var(--cp-white);
    border-left: 3px solid var(--cp-gold);
    border-radius: 0 12px 12px 0;
    padding: 26px 30px;
    margin-bottom: 34px;
}

/* form fields inside an editorial page (contact, RDV) */
.cp-prose input[type="text"],
.cp-prose input[type="email"],
.cp-prose input[type="tel"],
.cp-prose select,
.cp-prose textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    color: var(--cp-ink);
    background: #F5F5F2;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    outline: none;
}

.cp-prose input[type="text"]:focus,
.cp-prose input[type="email"]:focus,
.cp-prose input[type="tel"]:focus,
.cp-prose select:focus,
.cp-prose textarea:focus {
    background: var(--cp-white);
    border-color: var(--cp-gold-dark);
}

.cp-prose input[type="submit"],
.cp-prose button[type="submit"] {
    font-family: var(--cp-font-sans);
    font-size: 15px;
    font-weight: 700;
    color: var(--cp-paper);
    background: var(--cp-navy-500);
    border: 0;
    border-radius: 8px;
    padding: 15px 36px;
    cursor: pointer;
    transition: background 0.25s ease 0s;
}

.cp-prose input[type="submit"]:hover,
.cp-prose button[type="submit"]:hover {
    background: var(--cp-navy-700);
}

@media (max-width: 767.98px) {
    .cp-prose { font-size: 15px; }
    .cp-prose h2 { font-size: 22px; margin-top: 32px; }
    .cp-prose h3 { font-size: 19px; }
    .cp-prose .a-propos-intro { font-size: 17px; padding: 20px 22px; }
}

/*------------------------------------------------*/
/*----------[CONTACT FORM - REUSABLE]-------------*/
/*------------------------------------------------*/
.cp-form-card {
    background: var(--cp-white);
    border: 1px solid rgba(16, 24, 38, 0.1);
    border-radius: 16px;
    padding: 36px 38px 34px;
    box-shadow: 0 10px 30px rgba(14, 42, 78, 0.07);
}

.cp-form-intro {
    font-family: var(--cp-font-serif);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--cp-navy-700);
    margin: 0 0 26px;
}

.cp-form-error {
    font-family: var(--cp-font-sans);
    font-size: 14.5px;
    line-height: 1.5;
    color: #8A2B2B;
    background: rgba(138, 43, 43, 0.07);
    border: 1px solid rgba(138, 43, 43, 0.25);
    border-radius: 8px;
    padding: 14px 18px;
    margin: 0 0 24px;
}

.cp-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 22px;
    margin-bottom: 18px;
}

.cp-form-field {
    display: flex;
    flex-direction: column;
    margin-bottom: 18px;
}

.cp-form-row .cp-form-field {
    margin-bottom: 0;
}

.cp-form-field label,
.cp-form-captcha label {
    font-family: var(--cp-font-sans);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--cp-navy-700);
    margin-bottom: 8px;
}

.cp-form-field label span,
.cp-form-captcha label span {
    color: var(--cp-gold-dark);
}

.cp-form input[type="text"],
.cp-form input[type="email"],
.cp-form select,
.cp-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    color: var(--cp-ink);
    background: #F5F5F2;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    outline: none;
    transition: border-color 0.25s ease 0s, background 0.25s ease 0s;
}

.cp-form input[type="text"]:focus,
.cp-form input[type="email"]:focus,
.cp-form select:focus,
.cp-form textarea:focus {
    background: var(--cp-white);
    border-color: var(--cp-gold-dark);
}

.cp-form textarea {
    resize: vertical;
    min-height: 130px;
    line-height: 1.6;
}

.cp-form-select {
    position: relative;
}

.cp-form-select select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 42px;
    cursor: pointer;
}

.cp-form-select:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border-right: 2px solid var(--cp-navy-500);
    border-bottom: 2px solid var(--cp-navy-500);
    transform: rotate(45deg);
    pointer-events: none;
}

/* captcha sits under the message */
.cp-form-captcha {
    display: flex;
    flex-direction: column;
    margin-bottom: 24px;
}

.cp-captcha-row {
    display: flex;
    align-items: center;
    gap: 14px;
}

.cp-captcha-row img {
    flex-shrink: 0;
    height: 46px;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    background: var(--cp-white);
    cursor: pointer;
}

.cp-captcha-row input {
    max-width: 240px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.cp-form-submit input[type="submit"] {
    font-family: var(--cp-font-sans);
    font-size: 16px;
    font-weight: 700;
    color: var(--cp-paper);
    background: var(--cp-navy-500);
    border: 1px solid var(--cp-navy-500);
    border-radius: 8px;
    padding: 16px 44px;
    cursor: pointer;
    transition: background 0.25s ease 0s;
}

.cp-form-submit input[type="submit"]:hover {
    background: var(--cp-navy-700);
    border-color: var(--cp-navy-700);
}

/* contact details card */
.cp-contact-card {
    background: var(--cp-mist);
    border-radius: 16px;
    padding: 32px 30px;
}

.cp-contact-title {
    font-family: var(--cp-font-serif);
    font-size: 20px;
    font-weight: 700;
    color: var(--cp-navy-700);
    margin: 0 0 20px;
}

.cp-contact-list {
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
}

.cp-contact-list li {
    font-family: var(--cp-font-sans);
    font-size: 15.5px;
    line-height: 1.7;
    color: rgba(16, 24, 38, 0.7);
    padding: 12px 0;
    border-bottom: 1px solid rgba(16, 24, 38, 0.1);
}

.cp-contact-list li:first-child {
    padding-top: 0;
}

.cp-contact-list li:last-child {
    border-bottom: 0;
}

.cp-contact-list strong {
    display: block;
    color: var(--cp-navy-700);
    margin-bottom: 4px;
}

.cp-contact-list a {
    color: rgba(16, 24, 38, 0.7);
    text-decoration: none;
}

.cp-contact-list a:hover {
    color: var(--cp-gold-dark);
}

.cp-contact-social {
    display: flex;
    gap: 10px;
}

.cp-contact-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--cp-navy-700);
    background: var(--cp-white);
    text-decoration: none;
    transition: all 0.25s ease 0s;
}

.cp-contact-social a:hover {
    color: var(--cp-paper);
    background: var(--cp-navy-500);
}

@media (max-width: 767.98px) {
    .cp-form-card { padding: 26px 22px 24px; }
    .cp-form-intro { font-size: 17px; }
    .cp-form-row { grid-template-columns: 1fr; gap: 0; margin-bottom: 0; }
    .cp-form-row .cp-form-field { margin-bottom: 18px; }
    .cp-captcha-row { flex-wrap: wrap; }
    .cp-captcha-row input { max-width: none; width: 100%; }
    .cp-form-submit input[type="submit"] { width: 100%; }
    .cp-contact-card { padding: 26px 22px; }
}

/*------------------------------------------------*/
/*----------[CONTACT PAGE - REUSABLE]-------------*/
/*------------------------------------------------*/
/* --- form card --- */
.cp-form-card {
    background: var(--cp-white);
    border: 1px solid rgba(16, 24, 38, 0.1);
    border-radius: 16px;
    padding: 36px 38px 34px;
    box-shadow: 0 10px 30px rgba(14, 42, 78, 0.07);
}

.cp-form-intro {
    font-family: var(--cp-font-serif);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--cp-navy-700);
    margin: 0 0 26px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(16, 24, 38, 0.1);
}

.cp-form-error {
    font-family: var(--cp-font-sans);
    font-size: 14.5px;
    line-height: 1.5;
    color: #8A2B2B;
    background: rgba(138, 43, 43, 0.07);
    border: 1px solid rgba(138, 43, 43, 0.25);
    border-radius: 8px;
    padding: 14px 18px;
    margin: 0 0 24px;
}

.cp-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 22px;
    margin-bottom: 18px;
}

.cp-form-field {
    display: flex;
    flex-direction: column;
    margin-bottom: 18px;
}

.cp-form-row .cp-form-field {
    margin-bottom: 0;
}

.cp-form-field label,
.cp-form-captcha label {
    font-family: var(--cp-font-sans);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--cp-navy-700);
    margin-bottom: 8px;
}

.cp-form-field label span,
.cp-form-captcha label span {
    color: var(--cp-gold-dark);
}

.cp-form input[type="text"],
.cp-form input[type="email"],
.cp-form select,
.cp-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    color: var(--cp-ink);
    background: #F5F5F2;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    outline: none;
    transition: border-color 0.25s ease 0s, background 0.25s ease 0s;
}

.cp-form input[type="text"]:focus,
.cp-form input[type="email"]:focus,
.cp-form select:focus,
.cp-form textarea:focus {
    background: var(--cp-white);
    border-color: var(--cp-gold-dark);
}

.cp-form textarea {
    resize: vertical;
    min-height: 130px;
    line-height: 1.6;
}

.cp-form-select {
    position: relative;
}

.cp-form-select select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 42px;
    cursor: pointer;
}

.cp-form-select:after {
    content: "";
    position: absolute;
    top: 50%;
    right: 18px;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border-right: 2px solid var(--cp-navy-500);
    border-bottom: 2px solid var(--cp-navy-500);
    transform: rotate(45deg);
    pointer-events: none;
}

/* captcha, under the message */
.cp-form-captcha {
    display: flex;
    flex-direction: column;
    margin-bottom: 24px;
}

.cp-captcha-row {
    display: flex;
    align-items: center;
    gap: 14px;
}

.cp-captcha-row img {
    flex-shrink: 0;
    height: 46px;
    border: 1px solid rgba(16, 24, 38, 0.12);
    border-radius: 8px;
    background: var(--cp-white);
    cursor: pointer;
}

.cp-captcha-row input {
    max-width: 240px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.cp-form-submit input[type="submit"] {
    font-family: var(--cp-font-sans);
    font-size: 16px;
    font-weight: 700;
    color: var(--cp-paper);
    background: var(--cp-navy-500);
    border: 1px solid var(--cp-navy-500);
    border-radius: 8px;
    padding: 16px 46px;
    cursor: pointer;
    transition: background 0.25s ease 0s;
}

.cp-form-submit input[type="submit"]:hover {
    background: var(--cp-navy-700);
    border-color: var(--cp-navy-700);
}

/* --- contact details card --- */
.cp-contact-card {
    display: block;
    background: var(--cp-mist);
    border-radius: 16px;
    padding: 32px 30px;
}

.cp-contact-title {
    font-family: var(--cp-font-serif);
    font-size: 20px;
    font-weight: 700;
    color: var(--cp-navy-700);
    margin: 0 0 22px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(16, 24, 38, 0.12);
}

.cp-contact-list {
    margin: 0 0 26px;
    padding: 0;
    list-style: none;
}

.cp-contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    font-family: var(--cp-font-sans);
    font-size: 15px;
    line-height: 1.65;
    color: rgba(16, 24, 38, 0.7);
    margin-bottom: 20px;
}

.cp-contact-list li:last-child {
    margin-bottom: 0;
}

.cp-contact-ico {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--cp-white);
    color: var(--cp-gold-dark);
    font-size: 14px;
}

.cp-contact-list strong {
    display: block;
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cp-navy-700);
    margin-bottom: 3px;
}

.cp-contact-list a {
    color: rgba(16, 24, 38, 0.7);
    text-decoration: none;
}

.cp-contact-list a:hover {
    color: var(--cp-gold-dark);
}

.cp-contact-follow {
    font-family: var(--cp-font-sans);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(16, 24, 38, 0.5);
    margin: 0 0 12px;
}

.cp-contact-social {
    display: flex;
    gap: 10px;
}

.cp-contact-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--cp-navy-700);
    background: var(--cp-white);
    text-decoration: none;
    transition: all 0.25s ease 0s;
}

.cp-contact-social a:hover {
    color: var(--cp-paper);
    background: var(--cp-navy-500);
}

@media (max-width: 1450px) {
.cp-hm-hero-inner {
	min-height: 0;
	padding-top: 52px;
	padding-bottom: 52px;
}
}

@media (max-width: 991.98px) {
    .cp-contact-card { margin-bottom: 30px; }
}

@media (max-width: 767.98px) {
    .cp-form-card { padding: 26px 22px 24px; }
    .cp-form-intro { font-size: 17px; }
    .cp-form-row { grid-template-columns: 1fr; gap: 0; margin-bottom: 0; }
    .cp-form-row .cp-form-field { margin-bottom: 18px; }
    .cp-captcha-row { flex-wrap: wrap; }
    .cp-captcha-row input { max-width: none; width: 100%; }
    .cp-form-submit input[type="submit"] { width: 100%; }
    .cp-contact-card { padding: 26px 22px; }
}


/*------------------------------------------------*/
/*-----------------[404 PAGE]---------------------*/
/*------------------------------------------------*/
.cp-404 {
    padding: 90px 0 100px;
}

.cp-404-code {
    display: block;
    font-family: var(--cp-font-serif);
    font-size: 96px;
    font-weight: 800;
    line-height: 1;
    color: var(--cp-gold);
    margin: 18px 0 10px;
}

.cp-404 .cp-fleuron + .cp-section-intro {
    margin-top: 18px;
}

.cp-404-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
    margin-top: 34px;
}

@media (max-width: 767.98px) {
    .cp-404 { padding: 56px 0 64px; }
    .cp-404-code { font-size: 72px; }
    .cp-404-actions .cp-btn { width: 100%; }
	
	.cp-hm-pillar-head {
	gap: 7px;
	margin-bottom: 10px;
}
.cp-hm-pillar-text {
	line-height: 22px;
}
.cp-hm-pillar-num {
	display: none;
}
.cp-hm-pillar {
	padding: 19px 0 19px;
	margin-bottom: 0;
}
.cp-hm-pillars {
	padding: 16px 0 20px;
}
.cp-hm-offers {
	background: #eee!important;
}

}


@media (max-width: 550px) {
  .cp-hm-hero {
    margin: 10px 15px 0;
  }
  .cp-hm-hero-inner {
	padding-top: 25px;
	padding-bottom: 26px;
}
.cp-hm-hero-title {
	line-height: 30px;
	font-size: 26px;
}
.cp-hm-offers {
	padding: 32px 0 56px;
}
.cp-offer-card-band .cp-offer-title {
	font-size: 25px;
}
.cp-container {
	padding: 0 15px;
}.cp-hm-newsletter {
	padding: 30px 0;
}
.cp-hm-partner {
	padding: 30px 0;
}
.cp-hm-partner-media {
	margin-top: 6px;
}
.cp-container.cp-hm-hero-inner {
	padding: 30px 17px;
}

}

/*------------------------------------------------*/
/*-----------[HEADER LOGO: RESERVE SPACE]---------*/
/*------------------------------------------------*/
/* The logo <img> has no width/height attributes. Fixing its box here
   stops the header growing when the image loads (layout shift). */
#navigation .nav-brand img {
    width: 180px;
    height: 71px;
}

@media (max-width: 767.98px) {
    #navigation .nav-brand img {
        width: 90px;
        height: 36px;
    }
}
