     /* Base styling */
     :root {
       --color-primary: #9c7137;
       /* golden accent taken from the logo (#9c7137) */
       --color-secondary: #fde9a3;
       /* lighter gold from the logo gradient (#fde9a3) */
       --color-dark: #0a0a0a;
       /* deepest background */
       --color-light: #faf6ef;
       /* off white for text on dark backgrounds */
       --color-text: #e7e3d7;
       /* slightly muted white for readability */
       --padding: 2rem;
     }

     * {
       box-sizing: border-box;
       margin: 0;
       padding: 0;
     }

     html {
       scroll-behavior: smooth;
     }

     body {
       font-family: 'Open Sans', sans-serif;
       background: var(--color-dark);
       color: var(--color-text);
       line-height: 1.6;
       overflow-x: hidden;
     }

     a {
       color: inherit;
       text-decoration: none;
       transition: color 0.3s;
     }

     img {
       max-width: 100%;
       display: block;
     }

     h1,
     h2,
     h3,
     h4 {
       font-family: 'Montserrat', sans-serif;
       color: var(--color-light);
       line-height: 1.2;
       margin-bottom: 0.5rem;
     }

     h1 {
       font-size: clamp(2rem, 5vw + 1rem, 3.5rem);
       font-weight: 700;
     }

     h2 {
       font-size: clamp(1.5rem, 4vw + 1rem, 2.5rem);
       font-weight: 600;
     }

     h3 {
       font-size: 1.25rem;
       font-weight: 600;
     }

     p,
     li {
       font-size: 1rem;
       margin-bottom: 1rem;
     }

     /* Utility classes */
     .container {
       width: 90%;
       max-width: 1100px;
       margin: 0 auto;
     }

     .section {
       padding: 4rem 0;
       /* ensure each section takes at least full viewport height */
       min-height: 100vh;
       display: flex;
       justify-content: center;
       align-items: center;

       &.first {
         padding-top: 6rem;
       }
     }

     /* Center the content within each section vertically */
     .section .container {
       /* Fill available height and center content vertically */
       height: 100%;
       display: flex;
       flex-direction: column;
       justify-content: center;
       /* Do not set horizontal centering here; individual elements control their own alignment */
     }

     .section-title {
       text-align: center;
       margin-bottom: 2rem;
       position: relative;
     }

     .section-title span {
       color: var(--color-primary);
     }

     /* Header & Navigation */
     header {
       position: fixed;
       top: 0;
       width: 100%;
       z-index: 1000;
       background: rgba(0, 0, 0, 0.75);
       backdrop-filter: blur(6px);
     }

     .nav {
       display: flex;
       justify-content: space-between;
       align-items: center;
       padding: 1rem 0;
     }

     .nav-logo {
       display: flex;
       align-items: center;
       gap: 0.5rem;
     }

     .nav-logo img {
       height: 40px;
     }

     .nav-menu {
       display: flex;
       gap: 2rem;
     }

     .nav-menu a {
       font-size: 0.9rem;
       font-weight: 600;
       color: var(--color-text);
       position: relative;
     }

     .nav-menu a:hover,
     .nav-menu a:focus {
       color: var(--color-primary);
     }

     /* Hero */
     .hero {
       display: flex;
       align-items: center;
       min-height: 100vh;
       background: linear-gradient(rgba(10, 10, 10, 0.8),
           rgba(10, 10, 10, 0.8)),
         url('/img/offre-signature_01.jpg') center/cover no-repeat;
       color: var(--color-light);
       padding-top: 5rem;
       /* offset for fixed header */
     }

     .hero .hero-content {
       max-width: 650px;
       padding: 2rem;
       animation: fadeInUp 1s ease forwards;
       opacity: 0;
     }

     .hero h1 {
       font-size: clamp(2.5rem, 6vw + 1rem, 4rem);
       margin-bottom: 1rem;

       span {
         color: var(--color-primary)
       }
     }

     .hero p {
       font-size: 1.2rem;
       margin-bottom: 2rem;
     }

     .btn-primary {
       display: inline-block;
       padding: 0.75rem 1.5rem;
       border-radius: 30px;
       font-weight: 600;
       letter-spacing: 0.05em;
       color: #0a0a0a;
       background: linear-gradient(135deg, #9c7137, #fde9a3);
       box-shadow: 0 4px 12px rgba(156, 113, 55, 0.3);
       transition: transform 0.3s ease, box-shadow 0.3s ease;
     }

     .btn-primary:hover,
     .btn-primary:focus {
       transform: translateY(-3px);
       box-shadow: 0 8px 16px rgba(156, 113, 55, 0.5);
     }

     /* Section: Differentiator */
     #differentiator .features {
       display: grid;
       grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
       gap: 1.5rem;
     }

     #differentiator .feature {
       background: rgba(255, 255, 255, 0.02);
       border: 1px solid rgba(255, 255, 255, 0.05);
       border-radius: 12px;
       padding: 1.5rem;
       text-align: center;
       backdrop-filter: blur(4px);
       transition: transform 0.3s ease;
     }

     #differentiator .feature:hover {
       transform: translateY(-4px);
     }

     /* Section: Objectifs */
     #objectifs ul {
       columns: 2;
       column-gap: 2rem;
       list-style: none;
       padding-left: 0;
     }

     #objectifs li {
       position: relative;
       padding-left: 1.25rem;
       margin-bottom: 0.75rem;
     }

     #objectifs li::before {
       content: '✔';
       position: absolute;
       left: 0;
       color: var(--color-primary);
     }

     /* Section: Expertise */
     #expertise .columns {
       display: grid;
       grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
       gap: 2rem;
     }

     #expertise .expertise-block {
       background: rgba(255, 255, 255, 0.03);
       border-radius: 12px;
       padding: 1.5rem;
       transition: background 0.3s ease;
       /* stack children vertically so images or lists appear below headings */
       display: flex;
       flex-direction: column;
       gap: 0.75rem;
     }

     #expertise .expertise-block:hover {
       background: rgba(255, 255, 255, 0.06);
     }

     /* Section: Programme */
     #programme .programme-items {
       display: grid;
       grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
       gap: 1.5rem;
     }

     #programme .programme-item {
       background: rgba(255, 255, 255, 0.02);
       border: 1px solid rgba(255, 255, 255, 0.05);
       border-radius: 12px;
       padding: 1.5rem;
       position: relative;
     }

     #programme .programme-item h3 {
       margin-bottom: 0.5rem;
       /* use lighter gold from the logo palette to improve contrast on coloured backgrounds */
       color: var(--color-secondary);
     }

     /* Section: Benefices */
     #benefices .grid {
       display: grid;
       grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
       gap: 1.5rem;
     }

     #benefices .card {
       background: rgba(255, 255, 255, 0.02);
       border: 1px solid rgba(255, 255, 255, 0.05);
       border-radius: 12px;
       padding: 1.5rem;
       position: relative;
       transition: transform 0.3s ease;
     }

     #benefices .card:hover {
       transform: translateY(-5px);
     }

     #benefices .card h3 {
       color: var(--color-primary);
       margin-bottom: 0.75rem;
     }

     /* Testimonials */
     #testimonials .testimonials {
       display: grid;
       grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
       gap: 2rem;
     }

     #testimonials .testimonial {
       background: rgba(255, 255, 255, 0.03);
       border-radius: 12px;
       padding: 1.5rem;
       position: relative;
       box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
     }

     #testimonials .testimonial .name {
       font-weight: 600;
       color: var(--color-primary);
       margin-bottom: 0.25rem;
     }

     #testimonials .testimonial .role {
       font-size: 0.9rem;
       opacity: 0.8;
       margin-bottom: 0.75rem;
     }

     /* FAQ */
     /*
     * The FAQ items are presented using <details> elements. To ensure that the
     * items in both the FAQ and "Pourquoi Well‑In‑You" sections share the
     * same width and are centered consistently, we set an explicit maximum
     * width and force them to occupy the full available space up to that
     * limit.  The margins on the left and right are set to auto to center
     * the block horizontally within its container.  Note: the same sizing
     * rules are applied below to the #why section to guarantee parity.
     */
     #faq details {
       background: rgba(255, 255, 255, 0.02);
       /* base border color will be overridden below for collapsed/expanded state */
       border: 1px solid transparent;
       border-radius: 8px;
       margin-bottom: 1rem;
       padding: 1rem;
       /*
       * Use a shared width for all FAQ and why items.  We set the width to
       * occupy the full container up to a defined maximum.  Increasing the
       * max-width slightly (900px) ensures parity between sections on wide
       * displays while still allowing graceful shrinking on narrow screens.
       */
       width: 100%;
       max-width: 900px;
       margin-left: auto;
       margin-right: auto;
     }

     #faq summary {
       cursor: pointer;
       font-weight: 600;
       color: var(--color-primary);
       list-style: none;
       position: relative;
       display: block;
       /* extra space on the right to accommodate our custom plus icon */
       padding-right: 1.5rem;
     }

     #faq summary::-webkit-details-marker {
       display: none;
     }

     #faq summary::after {
       content: '+';
       position: absolute;
       right: 0;
       top: 50%;
       transform: translateY(-50%);
       transition: transform 0.3s ease;
     }

     #faq details[open] summary::after {
       transform: translateY(-50%) rotate(45deg);
     }

     /* FAQ collapsed details have a visible border */
     #faq details:not([open]) {
       border-color: rgba(156, 113, 55, 0.4);
     }

     /* FAQ expanded details: stronger border and subtle background */
     #faq details[open] {
       border-color: rgba(156, 113, 55, 0.7);
       background: rgba(255, 255, 255, 0.05);
     }

     /* Styling for collapsible blocks in the Why section */
     #why details {
       background: rgba(255, 255, 255, 0.05);
       border: 1px solid rgba(255, 255, 255, 0.1);
       border-radius: 8px;
       margin-bottom: 1rem;
       padding: 1rem;
       transition: background 0.3s ease, border-color 0.3s ease;
       /*
       * Keep the why section details the same width as the FAQ details.
       * We match the max-width to 900px and force full width up to that
       * limit, centering the block within its container.  This guarantees
       * consistent sizing between the two sections.
       */
       width: 100%;
       max-width: 900px;
       margin-left: auto;
       margin-right: auto;
     }

     #why summary {
       cursor: pointer;
       font-weight: 600;
       color: var(--color-primary);
       list-style: none;
       position: relative;
       /* add padding for spacing and better alignment */
       padding: 0.5rem 0;
       display: block;
       /* allow the plus icon to be positioned absolutely */
       padding-right: 1.5rem;
     }

     /* hide native disclosure triangle to rely on our custom plus symbol */
     #why summary::-webkit-details-marker {
       display: none;
     }

     #why summary::after {
       content: '+';
       position: absolute;
       right: 0;
       top: 50%;
       transform: translateY(-50%);
       transition: transform 0.3s ease;
     }

     #why details[open] summary::after {
       transform: rotate(45deg);
     }

     #why details[open] {
       background: rgba(255, 255, 255, 0.1);
       border-color: rgba(255, 255, 255, 0.2);
       /* subtle shadow to distinguish expanded block */
       box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
     }

     #why details p {
       margin-top: 0.5rem;
       line-height: 1.5;
     }

     /* Pricing */
     #pricing .price-box {
       background: rgba(255, 255, 255, 0.02);
       border: 1px solid rgba(255, 255, 255, 0.05);
       border-radius: 12px;
       padding: 2rem;
       text-align: center;
       max-width: 480px;
       margin: 0 auto;
     }

     #pricing .price {
       font-size: 2.5rem;
       font-weight: 700;
       color: var(--color-primary);
       margin: 1rem 0;
     }

     #pricing .benefits {
       text-align: left;
       margin: 1.5rem 0;
       list-style: none;
       padding-left: 0;
     }

     #pricing .benefits li {
       position: relative;
       padding-left: 1.25rem;
       margin-bottom: 0.5rem;
     }

     #pricing .benefits li::before {
       content: '✔';
       position: absolute;
       left: 0;
       color: var(--color-primary);
     }

     /* Footer */
     footer {
       background: #000;
       color: var(--color-text);
       padding: 2rem 0;
       text-align: center;
     }

     footer .socials {
       margin-bottom: 1rem;
     }

     footer .socials a {
       margin: 0 0.5rem;
       font-size: 1.2rem;
       color: var(--color-primary);
     }

     footer p {
       font-size: 0.9rem;
     }

     /* Animations */
     @keyframes fadeInUp {
       from {
         opacity: 0;
         transform: translateY(20px);
       }

       to {
         opacity: 1;
         transform: translateY(0);
       }
     }

     /* Override alignment for internal cards and lists so they remain left‑aligned despite the parent centering */
     #differentiator .feature,
     #expertise .expertise-block,
     #programme .programme-item,
     #benefices .card,
     #testimonials .testimonial,
     #faq details,
     #why details {
       text-align: left;
     }

     /* Alternate section backgrounds */
     /* Dark background (default) */
     .bg-dark {
       background: var(--color-dark);
     }

     /* Subtle dark gradient */
     .bg-gradient-dark {
       background: linear-gradient(#684b25, #1a1a1a);
     }

     /* Light background for contrast */
     .bg-light {
       background: #faf6ef;
       color: #1a1a1a;
     }

     .bg-light h2,
     .bg-light h3,
     .bg-light p,
     .bg-light li,
     .bg-light summary {
       color: #1a1a1a;
     }

     .bg-light .card {
       background: rgba(0, 0, 0, 0.05);
       border-color: rgba(0, 0, 0, 0.1);
       color: #1a1a1a;
     }

     /* Card styling on cream backgrounds */
     .bg-cream .card {
       background: rgba(0, 0, 0, 0.05);
       border-color: rgba(0, 0, 0, 0.1);
       color: #1a1a1a;
     }

     /* Gold gradient background */
     .bg-gold {
       background: linear-gradient(135deg, #9c7137, #fde9a3);
       color: #0a0a0a;
     }

     .bg-gold h2,
     .bg-gold h3 {
       color: #0a0a0a;
     }

     .bg-gold .card {
       background: rgba(255, 255, 255, 0.4);
       border-color: rgba(255, 255, 255, 0.5);
       color: #0a0a0a;
     }

     /* Image background section */
     .bg-image {
       background: linear-gradient(rgba(10, 10, 10, 0.8),
           rgba(10, 10, 10, 0.8)),
         url('img/abstract-bg.png') center/cover no-repeat;
       color: var(--color-light);
       /* parallax effect so the image moves slower than the scroll */
       background-attachment: fixed;
     }

     /* New image background for objectifs section with lighter overlay */
     .bg-image-objectifs {
       background: linear-gradient(rgba(10, 10, 10, 0.5),
           rgba(10, 10, 10, 0.5)),
         url('img/abstract-bg.png') center/cover no-repeat;
       color: var(--color-light);
       /* parallax effect */
       background-attachment: fixed;
     }

     /* Charcoal gradient for deeper contrast between dark sections */
     .bg-gradient-charcoal {
       background: linear-gradient(#0e0e0e, #262626);
       color: var(--color-text);
     }

     .bg-gradient-charcoal h2,
     .bg-gradient-charcoal h3,
     .bg-gradient-charcoal p,
     .bg-gradient-charcoal li,
     .bg-gradient-charcoal summary {
       color: var(--color-light);
     }

     /* Cream gradient for softer pricing section */
     .bg-cream {
       background: linear-gradient(#f7efe5, #f5e6ce);
       color: #1a1a1a;
     }

     .bg-cream h2,
     .bg-cream h3 {
       color: #1a1a1a;
     }

     .bg-cream .price-box {
       /* apply a slight dark tint to stand out on the light background */
       background: rgba(0, 0, 0, 0.05);
       border: 1px solid rgba(0, 0, 0, 0.1);
       color: #1a1a1a;
       box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
     }

     .bg-cream .price {
       color: var(--color-primary);
     }

     /* Override list styling on dark image backgrounds */
     .bg-image-objectifs li::before {
       color: var(--color-primary);
     }

     /* Override text colours in programme items on gold background */
     /* on gold backgrounds, keep paragraphs dark and headings light gold for readability */
     .bg-gold .programme-item p {
       color: #0a0a0a;
     }

     .bg-gold .programme-item h3 {
       color: var(--color-secondary);
     }

     /* Adapt elements inside light and gold backgrounds */
     /* Programme items on gold background */
     .bg-gold .programme-item {
       /* Use a higher opacity for better contrast on the warm gradient */
       background: rgba(255, 255, 255, 0.8);
       border-color: rgba(255, 255, 255, 0.9);
       color: #0a0a0a;
     }

     /* Price box on gold background */
     .bg-gold .price-box {
       background: rgba(255, 255, 255, 0.8);
       border-color: rgba(255, 255, 255, 0.9);
       color: #0a0a0a;
     }

     /* FAQ and details adjustments for light and gold backgrounds */
     .bg-light details,
     .bg-light #faq details {
       background: rgba(0, 0, 0, 0.05);
       border-color: rgba(0, 0, 0, 0.1);
       color: #1a1a1a;
     }

     .bg-light summary {
       color: var(--color-primary);
     }

     .bg-light details[open] summary::after {
       color: var(--color-primary);
     }

     .bg-gold details,
     .bg-gold #faq details {
       background: rgba(255, 255, 255, 0.4);
       border-color: rgba(255, 255, 255, 0.5);
       color: #0a0a0a;
     }

     .bg-gold summary {
       color: #0a0a0a;
     }

     .bg-gold details[open] summary::after {
       color: #0a0a0a;
     }

     /* Vignette style for expertise section */
     .expertise-vignette {
       /* ensure the vignette (photo and text) is centered horizontally within the section */
       margin-bottom: 2rem;
       display: flex;
       justify-content: center;
       width: 100%;
     }

     /* previously default image rules removed; see vignette-photo for new styling */

     /* Style for the expertise vignette link to align image and text */
     .expertise-vignette .vignette-link {
       display: flex;
       align-items: center;
       text-decoration: none;
       color: inherit;
     }

     .expertise-vignette .vignette-photo {
       width: 120px;
       height: 120px;
       overflow: hidden;
       border-radius: 50%;
       margin-right: 1rem;
       position: relative;
     }

     .expertise-vignette .vignette-photo img {
       width: 100%;
       height: 100%;
       object-fit: cover;
       object-position: center center;
     }

     .expertise-vignette .vignette-info h3 {
       margin: 0;
       font-size: 1.5rem;
       font-weight: 600;
       color: var(--color-primary);
     }

     .expertise-vignette .vignette-info p {
       margin: 0.25rem 0 0 0;
       font-size: 1rem;
       color: var(--color-primary);
     }

     /* Expertise list styling with custom hat icon bullets */
     #expertise .expertise-list {
       list-style: none;
       padding-left: 0;
       margin: 0;
     }

     #expertise .expertise-list li {
       display: flex;
       align-items: flex-start;
       gap: 0.5rem;
       margin-bottom: 1.5rem;
     }

     #expertise .expertise-list li .bullet-icon {
       width: 20px;
       height: 20px;
       flex-shrink: 0;
       margin-top: 2px;
       color: var(--color-primary);
     }

     #expertise .expertise-list li span {
       display: block;
     }

     /* Style synergy image to sit nicely below its heading */
     #expertise .expertise-block img.synergy-image {
       width: 100%;
       height: auto;
       border-radius: 8px;
     }

     /* Responsive tweaks */
     @media (max-width: 768px) {
       #objectifs ul {
         columns: 1;
       }



       /* On small screens, stack the expertise vignette vertically */
       .expertise-vignette .vignette-link {
         flex-direction: column;
         align-items: center;
       }

       .expertise-vignette .vignette-photo {
         margin-right: 0;
         margin-bottom: 0.5rem;
       }

       .expertise-vignette .vignette-info {
         text-align: center;
       }
     }
