.elementor-kit-4{--e-global-color-primary:#2A1C15;--e-global-color-secondary:#6B4A38;--e-global-color-text:#6B4A38;--e-global-color-accent:#0B4A5A;--e-global-color-chpaper:#F2ECDD;--e-global-color-chink:#2A1C15;--e-global-color-chstone:#6B4A38;--e-global-color-chline:#C7B694;--e-global-color-chaccent:#0B4A5A;--e-global-color-chsun:#FFE782;--e-global-color-chonsun:#221A13;--e-global-color-chverm:#DB4A2C;--e-global-color-chmist:#714530;--e-global-color-chcream:#FBF4E4;--e-global-color-cholive:#5D6737;--e-global-color-chondark:#F5EEDD;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"Glacial Indifference";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Geist Mono";--e-global-typography-accent-font-weight:400;--e-global-typography-chtitle-font-family:"Archivo";--e-global-typography-chtitle-font-weight:600;--e-global-typography-chbody-font-family:"Glacial Indifference";--e-global-typography-chbody-font-weight:400;--e-global-typography-chmono-font-family:"Geist Mono";--e-global-typography-chmono-font-weight:400;color:#2A1C15;font-family:"Glacial Indifference", Sans-serif;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1500px;}.e-con{--container-max-width:1500px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}.page-title-off{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ============================================================
     Cam Harry - page Mariage
     Same folk / coastal identity as the homepage: oat cream,
     oxblood, petrol, marigold; Archivo + a mono metadata layer;
     sharp edges; the photographs carry the page.
     ============================================================ */

  @font-face {
    font-family: "Glacial Indifference";
    src: url("https://preprod.camharry.fr/wp-content/uploads/ch-fonts/glacialindifference-regular.woff2") format("woff2");
    font-weight: 400; font-style: normal; font-display: swap;
  }
  @font-face {
    font-family: "Glacial Indifference";
    src: url("https://preprod.camharry.fr/wp-content/uploads/ch-fonts/glacialindifference-bold.woff2") format("woff2");
    font-weight: 700; font-style: normal; font-display: swap;
  }

  :root {
    --paper:  #F2ECDD;
    --mist:   #714530;
    --cream:  #FBF4E4;
    --ink:    #2A1C15;
    --stone:  #6B4A38;
    --line:   #C7B694;
    --accent: #0B4A5A;
    --sun:    #FFE782;
    --on-sun: #221A13;
    --olive:  #5D6737;
    --vermilion: #DB4A2C;
    --on-dark:#F5EEDD;

    --font: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
    --mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
    --body: "Glacial Indifference", "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;

    --wrap: 1500px;
    --pad: clamp(1.15rem, 4vw, 3.25rem);
    --ease: cubic-bezier(.4, 0, .1, 1);
    --wm: url("https://preprod.camharry.fr/wp-content/uploads/2026/08/signature.png");
    --motif: url("https://preprod.camharry.fr/wp-content/uploads/2026/08/motif-blob.png");
    --soleil: url("https://preprod.camharry.fr/wp-content/uploads/2026/08/soleil.png");
  }

  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --paper:  #201811;
      --mist:   #38281B;
      --cream:  #FBF4E4;
      --ink:    #EEE4D3;
      --stone:  #B79C82;
      --line:   #3A2E23;
      --accent: #5FA0B0;
      --sun:    #FFE782;
      --on-sun: #2B221B;
      --olive:  #7C8A54;
      --vermilion: #E5573A;
      --on-dark:#F5EEDD;
    }
  }
  :root[data-theme="dark"] {
    --paper:  #201811;
    --mist:   #38281B;
    --cream:  #FBF4E4;
    --ink:    #EEE4D3;
    --stone:  #B79C82;
    --line:   #3A2E23;
    --accent: #5FA0B0;
    --sun:    #FFE782;
    --on-sun: #2B221B;
    --olive:  #7C8A54;
    --vermilion: #E5573A;
    --on-dark:#F5EEDD;
  }

  * { box-sizing: border-box; margin: 0; padding: 0; }
  html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

  body {
    background: var(--paper);
    color: var(--ink);
    font-family: var(--body);
    font-size: clamp(1rem, 0.96rem + 0.2vw, 1.08rem);
    line-height: 1.62;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }

  img { display: block; width: 100%; height: 100%; object-fit: cover; }

  .sun-mark { display: inline-flex; align-items: center; gap: .65em; }
  .sun-mark::before {
    content: ""; flex: none; width: 1.05em; height: 1.05em;
    background: var(--vermilion);
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%276%27%20fill%3D%27%23000%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%280%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2845%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2890%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28135%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28180%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28225%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28270%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28315%2020%2020%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%276%27%20fill%3D%27%23000%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%280%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2845%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2890%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28135%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28180%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28225%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28270%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28315%2020%2020%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / contain no-repeat;
  }
  .mono {
    font-family: var(--mono);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .68rem;
    font-weight: 400;
  }

  h1, h2, h3 { font-weight: 600; line-height: 1.04; letter-spacing: -.03em; text-wrap: balance; }
  /* titres, sous-titres & intitulés : Archivo ; le corps de texte passe en Glacial Indifference */
  h1, h2, h3,
  .intro__title, .hero__copy h1,
  .index .t, .steps h3, .duoprose h3,
  .about .pull, .giftcard__title { font-family: var(--font); }

  a { color: inherit; text-decoration: none; }

  .link {
    display: inline-flex; align-items: center; gap: .5em;
    border-bottom: 1px solid var(--ink);
    padding-bottom: 2px;
    transition: border-color .3s var(--ease), color .3s var(--ease);
  }
  .link:hover { color: var(--accent); border-color: var(--accent); }

  :focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

  /* ---------- reveal ---------- */
  .rev { opacity: 0; transform: translateY(18px) scale(.992); transition: opacity 1s var(--ease), transform 1s var(--ease); }
  .rev.in { opacity: 1; transform: none; }
  @media (prefers-reduced-motion: reduce) { .rev { opacity: 1; transform: none; transition: none; } }

  /* ============================================================ top bar */
  .bar {
    position: fixed; inset: 0 0 auto 0; z-index: 40;
    display: flex; align-items: center; justify-content: space-between;
    padding: 1.15rem var(--pad);
    color: var(--on-dark);
    transition: background-color .4s var(--ease), color .4s var(--ease), padding .4s var(--ease);
  }
  .bar.solid {
    background: color-mix(in srgb, var(--paper) 92%, transparent);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    color: var(--ink);
    border-bottom: 1px solid var(--line);
    padding-block: .85rem;
  }
  .bar__name { font-family: var(--mono); text-transform: uppercase; letter-spacing: .22em; font-size: .74rem; font-weight: 500; }
  .bar nav { display: flex; align-items: center; gap: clamp(.65rem, 1.3vw, 1.35rem); }
  .bar nav a { font-family: var(--mono); text-transform: uppercase; letter-spacing: .1em; font-size: .6rem; padding: .3rem 0; position: relative; white-space: nowrap; }
  .bar nav a[data-strong] { font-weight: 500; }
  .bar nav a[aria-current="page"] { color: var(--sun); }
  .bar.solid nav a[aria-current="page"] { color: var(--accent); }
  .bar nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 1px; background: currentColor; transition: right .35s var(--ease); }
  .bar nav a:hover::after { right: 0; }
  .bar nav a[aria-current="page"]::after { right: 0; }

  .nav__sep { width: 1px; align-self: stretch; background: currentColor; opacity: .28; margin-inline: .3rem; }
  .bar nav a.nav__pro {
    border: 1px solid currentColor;
    padding: .5rem .8rem;
    letter-spacing: .16em;
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  }
  .bar nav a.nav__pro::after { display: none; }
  .bar nav a.nav__pro:hover,
  .bar nav a.nav__pro:focus-visible {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--paper);
  }

  .nav__group { position: relative; display: inline-flex; align-items: center; }
  .nav__grouptrigger {
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .1em; font-size: .6rem;
    color: inherit; background: none; border: 0; cursor: pointer;
    padding: .3rem 0; position: relative; display: inline-flex; align-items: center; gap: .45em;
    white-space: nowrap;
  }
  .nav__grouptrigger::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 1px; background: currentColor; transition: right .35s var(--ease); }
  .nav__group:hover .nav__grouptrigger::after,
  .nav__group[data-open] .nav__grouptrigger::after { right: 12px; }
  .nav__caret { width: 0; height: 0; border-left: 3px solid transparent; border-right: 3px solid transparent; border-top: 4px solid currentColor; transition: transform .3s var(--ease); }
  .nav__group:hover .nav__caret,
  .nav__group[data-open] .nav__caret { transform: rotate(180deg); }
  .nav__submenu {
    position: absolute; top: 100%; left: 50%; transform: translate(-50%, 8px);
    display: grid; gap: .1rem; min-width: 13.5rem;
    background: var(--paper); border: 1px solid var(--line); padding: .55rem;
    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
    z-index: 60;
  }
  .nav__group:hover .nav__submenu,
  .nav__group:focus-within .nav__submenu,
  .nav__group[data-open] .nav__submenu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
  .bar nav .nav__submenu a {
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .1em; font-size: .58rem;
    color: var(--ink); text-decoration: none; padding: .6rem .75rem; white-space: nowrap;
    transition: background-color .2s var(--ease), color .2s var(--ease);
  }
  .bar nav .nav__submenu a::after { display: none; }
  .bar nav .nav__submenu a:hover, .bar nav .nav__submenu a:focus-visible { background: var(--sun); color: var(--on-sun); }

  .nav__socials { display: inline-flex; align-items: center; gap: .15rem; margin-left: .35rem; }
  .bar nav a.nav__social { display: inline-flex; align-items: center; padding: .35rem; }
  .bar nav a.nav__social svg { width: 1.05rem; height: 1.05rem; fill: currentColor; display: block; }
  .bar nav a.nav__social::after { display: none; }
  .bar nav a.nav__social:hover { color: var(--accent); }

  .bar__toggle { display: none; }

  @media (max-width: 1150px) {
    .bar nav { position: fixed; inset: 0; z-index: 45; flex-direction: column; justify-content: center; align-items: flex-start; gap: 1.4rem; padding: var(--pad); background: var(--paper); color: var(--ink); transform: translateY(-100%); transition: transform .5s var(--ease); overflow-y: auto; }
    .bar nav a { font-size: 1rem; }
    .bar nav a[aria-current="page"] { color: var(--accent); }
    .nav__sep { width: 3rem; height: 1px; align-self: flex-start; margin: .2rem 0; }
    .nav__group { display: block; width: 100%; }
    .nav__grouptrigger { font-size: 1rem; }
    .nav__submenu {
      position: static; transform: none; min-width: 0; border: 0; background: none;
      padding: .3rem 0 .1rem 1rem; display: none; opacity: 1; visibility: visible; pointer-events: auto;
    }
    .nav__group[data-open] .nav__submenu,
    .nav__group:hover .nav__submenu,
    .nav__group:focus-within .nav__submenu { display: grid; transform: none; }
    .bar nav .nav__submenu a { font-size: .92rem; padding: .5rem 0; }
    .bar nav .nav__submenu a:hover, .bar nav .nav__submenu a:focus-visible { background: none; color: var(--accent); }
    .nav__socials { margin-left: 0; gap: 1rem; margin-top: .4rem; }
    .bar nav a.nav__social svg { width: 1.4rem; height: 1.4rem; }
    .bar nav a.nav__pro { font-size: .95rem; padding: .7rem 1rem; }
    body.nav-open .bar nav { transform: none; }
    body.nav-open { overflow: hidden; }
    .bar__toggle { display: block; background: none; border: 0; color: inherit; font-family: var(--mono); text-transform: uppercase; letter-spacing: .13em; font-size: .64rem; cursor: pointer; z-index: 46; }
  }

  /* ============================================================ hero */
  .hero { position: relative; height: 100svh; min-height: 33rem; overflow: hidden; }
  .hero__img { position: absolute; inset: 0; }
  .hero__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,13,.44) 0%, rgba(10,12,13,.05) 30%, rgba(10,12,13,0) 52%, rgba(10,12,13,.66) 100%); }
  .hero__copy {
    position: absolute; left: var(--pad); right: var(--pad); bottom: clamp(2rem, 7vh, 4.5rem);
    color: var(--on-dark);
    display: grid; gap: 1.1rem;
  }
  .hero__copy .mono { color: var(--on-dark); opacity: .85; }
  .hero__copy h1 { font-size: clamp(2.1rem, 1.1rem + 4.4vw, 5rem); max-width: 15ch; }
  .hero__copy .sub { font-family: var(--mono); text-transform: uppercase; letter-spacing: .13em; font-size: .72rem; opacity: .82; max-width: 44ch; line-height: 1.9; }
  .hero__copy .link { color: var(--on-dark); border-color: var(--on-dark); width: max-content; margin-top: .4rem; }
  .hero__copy .link:hover { color: var(--on-dark); border-color: var(--on-dark); opacity: .7; }

  /* ============================================================ generic section */
  section { padding-block: clamp(4rem, 11vh, 9rem); }
  .wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--pad); }
  .wrap--tight { max-width: 68rem; }

  /* ---- full-bleed single image ---- */
  .bleed { height: clamp(24rem, 82vh, 52rem); overflow: hidden; }
  .bleed img { transition: transform 1.4s var(--ease); }
  .bleed--wide { height: clamp(18rem, 54vh, 34rem); }
  .bleed.rev.in img { transform: scale(1); }
  .bleed.rev img { transform: scale(1.06); }

  /* ============================================================ section head */
  .shead { max-width: 44rem; margin-bottom: clamp(2rem, 5vh, 3.4rem); }
  .shead h2 { font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3.1rem); margin-top: .8rem; }
  .shead p { color: var(--stone); margin-top: .95rem; max-width: 52ch; }
  .shead--center { margin-inline: auto; text-align: center; }
  .shead--center p { margin-inline: auto; }

  /* ============================================================ c'est votre journée — accroche plein cadre */
  .dayhero { position: relative; display: flex; overflow: hidden; padding-block: 0;
    min-height: clamp(34rem, 88vh, 54rem); }
  .dayhero__img { position: absolute; inset: 0; }
  .dayhero__img img { transition: transform 1.6s var(--ease); }
  .dayhero.rev .dayhero__img img { transform: scale(1.06); }
  .dayhero.rev.in .dayhero__img img { transform: scale(1); }
  .dayhero__img::after { content: ""; position: absolute; inset: 0;
    background:
      linear-gradient(180deg, transparent 6%, rgba(15,10,6,.4) 40%, rgba(15,10,6,.85) 100%),
      linear-gradient(270deg, rgba(15,10,6,.46) 0%, transparent 54%); }
  .dayhero__copy { position: relative; align-self: flex-end; width: 100%;
    max-width: var(--wrap); margin-inline: auto;
    padding: var(--pad); padding-bottom: clamp(2.4rem, 7vh, 4.4rem);
    color: var(--on-dark);
    display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 28rem);
    gap: clamp(1.4rem, 5vw, 4rem); align-items: end; }
  .dayhero__head { display: grid; gap: 1rem; max-width: 17ch; }
  .dayhero__copy .mono { color: var(--on-dark); opacity: .85; }
  .dayhero__copy h2 { text-transform: uppercase; letter-spacing: -.03em; line-height: 1;
    font-size: clamp(1.9rem, 1rem + 3.9vw, 4rem); }
  .dayhero__copy h2 em { font-style: italic; text-transform: none; color: var(--sun); }
  .dayhero__copy .link { color: var(--on-dark); border-color: var(--on-dark); width: max-content; margin-top: .35rem; }
  .dayhero__copy .link:hover { color: var(--on-dark); border-color: var(--on-dark); opacity: .68; }
  .dayhero__paras { display: grid; gap: .9rem; }
  .dayhero__paras p { color: var(--on-dark); font-size: .9rem; line-height: 1.6;
    text-shadow: 0 1px 18px rgba(0,0,0,.7), 0 1px 3px rgba(0,0,0,.5); }
  .dayhero__paras strong { font-weight: 700; }
  @media (max-width: 860px) {
    .dayhero__copy { grid-template-columns: 1fr; gap: 1.4rem; }
    .dayhero__head { max-width: 20ch; }
    .dayhero__paras p { font-size: .9rem; }
  }

  .cta-sun {
    display: inline-block;
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .16em; font-size: .68rem;
    background: var(--sun); color: var(--on-sun);
    border: 1px solid var(--sun); padding: .9rem 1.4rem;
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  }
  .cta-sun:hover, .cta-sun:focus-visible { background: var(--ink); color: var(--paper); border-color: var(--ink); }

  /* ============================================================ intro / manifesto (shared with homepage) */
  .strip {
    padding-block: 1rem;
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .18em;
    font-size: clamp(.48rem, .42rem + .26vw, .62rem); line-height: 2.3;
    color: var(--stone);
  }
  .strip__win {
    display: flex; justify-content: center;
    overflow-x: clip;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  }
  .strip__track {
    display: flex; flex: none; flex-wrap: nowrap; white-space: nowrap; width: max-content;
    padding-inline: 1.5rem; will-change: transform;
  }
  .strip__track span { flex: none; display: inline-flex; align-items: center; }
  .strip__track span:not(:last-child)::after {
    content: ""; width: .8em; height: .8em; margin: 0 1em; flex: none;
    background: var(--mist);
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%276%27%20fill%3D%27%23000%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%280%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2845%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2890%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28135%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28180%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28225%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28270%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28315%2020%2020%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%276%27%20fill%3D%27%23000%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%280%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2845%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2890%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28135%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28180%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28225%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28270%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28315%2020%2020%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / contain no-repeat;
  }

  .intro { padding: 0 0 clamp(2rem, 4.5vh, 3rem); position: relative; overflow: clip; background: #FCF7EC; }
  .intro > *:not(.intro__motif) { position: relative; z-index: 1; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .intro { background: #2A2119; } }
  :root[data-theme="dark"] .intro { background: #2A2119; }
  #galerie { background: #FCF7EC; padding-bottom: 0; }
  #galerie .strip--bottom { margin-top: clamp(3.5rem, 9vh, 6.5rem); }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) #galerie { background: #2A2119; } }
  :root[data-theme="dark"] #galerie { background: #2A2119; }
  .intro .intro__motif {
    position: absolute; z-index: 0; pointer-events: none; user-select: none;
    right: -4rem; left: auto; top: auto; bottom: 1rem; transform: none;
    width: clamp(15rem, 26vw, 21rem); aspect-ratio: 1 / 1;
    background: var(--mist);
    -webkit-mask: var(--soleil) center / contain no-repeat;
            mask: var(--soleil) center / contain no-repeat;
    opacity: .13;
  }
  .intro__inner { padding-block: clamp(3.5rem, 9vh, 7rem); }
  .intro__grid {
    max-width: calc(var(--wrap) + 6rem); margin-inline: auto; padding-right: var(--pad);
    display: grid; grid-template-columns: clamp(17rem, 39vw, 33rem) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4.5rem); align-items: center;
  }
  .intro__figure { aspect-ratio: 3 / 4; max-height: 46rem; overflow: hidden; }
  .intro__figure img { transition: transform 1.5s var(--ease); }
  .rev .intro__figure img { transform: scale(1.06); }
  .rev.in .intro__figure img { transform: scale(1); }
  .intro__col { display: grid; justify-items: end; text-align: right; }
  .intro__title { text-transform: uppercase; font-size: clamp(2.1rem, 1rem + 5vw, 5rem);
    font-weight: 600; letter-spacing: -.03em; line-height: .96; text-align: right; }
  .intro__body { max-width: 62ch; margin-top: clamp(1.6rem, 4vh, 2.4rem); }
  .intro__body p { color: var(--stone); text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
  .intro__subtitle {
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .12em; font-weight: 400;
    font-size: clamp(.7rem, .55rem + .38vw, .88rem); line-height: 1.6;
    color: var(--stone); margin-top: clamp(.8rem, 2vw, 1.2rem); text-align: right;
  }
  .intro__body p + p { margin-top: 1.1rem; }
  .intro__body strong { color: var(--ink); font-weight: 700; }
  .intro__body .link { color: var(--ink); }
  .intro__cta { margin-top: clamp(1.3rem, 3vh, 1.9rem); }
  @media (max-width: 900px) {
    .intro__grid { grid-template-columns: 1fr; padding-right: var(--pad); padding-left: var(--pad); }
    .intro__figure { order: -1; aspect-ratio: 4/5; max-height: 30rem; }
    .intro__col { justify-items: start; text-align: left; }
    .intro__title, .intro__subtitle { text-align: left; }
  }

  /* ============================================================ avis — guillemet géant + citation décalée */
  .avis { position: relative; overflow: clip; padding: clamp(3.5rem, 10vh, 7.5rem) var(--pad); }
  .avis__grid { max-width: var(--wrap); margin-inline: auto; position: relative;
    min-height: clamp(9rem, 16vw, 13rem); }
  .avis__mark { position: absolute; z-index: 0; pointer-events: none;
    left: clamp(-3rem, -2vw, -.8rem); top: clamp(-5.5rem, -7vw, -2rem);
    font-family: var(--font); font-weight: 700; line-height: 1;
    font-size: clamp(13rem, 38vw, 28rem); color: var(--vermilion); }
  .avis__inner { position: relative; z-index: 1;
    max-width: min(40rem, 60vw); margin-left: auto; }
  .avis__quote { font-family: var(--body); font-weight: 400;
    font-size: clamp(.98rem, .92rem + .35vw, 1.18rem); line-height: 1.7; color: var(--stone); }
  .avis__foot { margin-top: clamp(1.7rem, 4.5vh, 2.6rem);
    display: flex; align-items: center; gap: .6rem 1.1rem; flex-wrap: wrap; }
  .avis__stars { color: var(--vermilion); letter-spacing: .16em; font-size: 1rem; }
  .avis__name { font-family: var(--mono); text-transform: uppercase; letter-spacing: .18em;
    font-size: .72rem; font-style: normal; color: var(--ink); }
  .avis__src { font-family: var(--mono); text-transform: uppercase; letter-spacing: .13em;
    font-size: .56rem; color: var(--stone); }
  @media (max-width: 760px) {
    .avis__grid { min-height: 0; }
    .avis__mark { position: static; display: block; font-size: 38vw; margin: 0 0 -.12em -.04em; }
    .avis__inner { max-width: none; margin: 0; }
  }

  /* ============================================================ tarifs */
  .pricing { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.9rem, 1.6vw, 1.4rem); }
  .price {
    position: relative;
    display: flex; flex-direction: column; gap: 1.15rem;
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--cream) 45%, transparent);
    padding: clamp(1.35rem, 2.4vw, 2rem);
  }
  .price--feature { border-color: var(--accent); }
  .price__tag {
    position: absolute; top: 0; right: clamp(1.35rem, 2.4vw, 2rem);
    transform: translateY(-50%);
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .14em; font-size: .54rem;
    background: var(--accent); color: var(--paper); padding: .3rem .55rem;
  }
  .price__name { font-family: var(--mono); text-transform: uppercase; letter-spacing: .2em; font-size: .68rem; color: var(--stone); }
  .price--feature .price__name { color: var(--accent); }
  .price__hours { font-family: var(--mono); letter-spacing: .12em; font-size: .82rem; color: var(--stone); }
  .price__fig { font-size: clamp(1.7rem, 1.2rem + 1.5vw, 2.4rem); font-weight: 600; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
  .price__fig span { font-size: .62rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--stone); font-family: var(--mono); display: block; margin-top: .4rem; }
  .price ul { list-style: none; display: grid; gap: .58rem; font-size: .85rem; color: var(--stone); }
  .price li { display: grid; grid-template-columns: .95rem 1fr; gap: .55rem; align-items: start; }
  .price li::before {
    content: ""; width: .72em; height: .72em; margin-top: .42em; flex: none;
    background: var(--vermilion);
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%276%27%20fill%3D%27%23000%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%280%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2845%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2890%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28135%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28180%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28225%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28270%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28315%2020%2020%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Ccircle%20cx%3D%2720%27%20cy%3D%2720%27%20r%3D%276%27%20fill%3D%27%23000%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%280%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2845%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%2890%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28135%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28180%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28225%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28270%2020%2020%29%27%2F%3E%3Cpath%20d%3D%27M20%203l3%2010h-6z%27%20transform%3D%27rotate%28315%2020%2020%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") center / contain no-repeat;
  }
  .price__book {
    margin-top: auto; text-align: center;
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .16em; font-size: .62rem;
    background: var(--sun); color: var(--on-sun);
    border: 1px solid var(--sun); padding: .8rem 1rem;
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  }
  .price__book:hover, .price__book:focus-visible { background: var(--ink); color: var(--paper); border-color: var(--ink); }
  .pricing__note { margin-top: 1.5rem; font-family: var(--mono); text-transform: uppercase; letter-spacing: .12em; font-size: .58rem; color: var(--stone); }
  @media (max-width: 1000px) { .pricing { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 560px) { .pricing { grid-template-columns: 1fr; } }

  /* ============================================================ deux blocs prose */
  .duoprose { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 4.5rem); max-width: 70rem; margin-inline: auto; }
  .duoprose h3 { font-size: clamp(1.2rem, 1rem + .9vw, 1.65rem); margin-bottom: .85rem; }
  .duoprose p { color: var(--stone); }
  .duoprose p + p { margin-top: .85rem; }
  .duoprose strong { color: var(--ink); font-weight: 700; }
  @media (max-width: 780px) { .duoprose { grid-template-columns: 1fr; } }

  /* ============================================================ process 01-05 */
  .steps { border-top: 1px solid var(--line); margin-top: clamp(2rem, 5vh, 3.4rem); }
  .steps li {
    list-style: none;
    display: grid; grid-template-columns: 3.4rem 1fr;
    gap: clamp(1rem, 3vw, 2.5rem);
    padding: clamp(1.5rem, 3.2vh, 2.3rem) 0;
    border-bottom: 1px solid var(--line);
  }
  .steps .n { font-family: var(--mono); font-size: .72rem; color: var(--accent); padding-top: .35rem; }
  .steps h3 { font-size: clamp(1.15rem, 1rem + .7vw, 1.5rem); font-weight: 500; letter-spacing: -.02em; }
  .steps p { color: var(--stone); margin-top: .55rem; max-width: 64ch; }
  @media (max-width: 620px) { .steps li { grid-template-columns: 1fr; gap: .4rem; } }

  .note { margin-top: clamp(2rem, 5vh, 3rem); border-left: 2px solid var(--accent); padding: .3rem 0 .3rem 1.4rem; color: var(--stone); max-width: 62ch; }
  .note b { color: var(--ink); font-weight: 700; display: block; font-family: var(--mono); text-transform: uppercase; letter-spacing: .14em; font-size: .62rem; margin-bottom: .45rem; }

  /* ============================================================ contact + footer (shared with homepage) */
  .contact { display: grid; grid-template-columns: 1fr auto; gap: 2rem 4rem; align-items: end; }
  .contact h2 { font-size: clamp(2rem, 1.3rem + 3.2vw, 4rem); }
  .contact p.lede { color: var(--stone); margin-top: 1rem; max-width: 40ch; }
  .contact__lines { display: grid; gap: .55rem; font-family: var(--mono); text-transform: uppercase; letter-spacing: .1em; font-size: .78rem; margin-top: 1.6rem; }
  .contact__lines a:hover { color: var(--accent); }
  @media (max-width: 680px) { .contact { grid-template-columns: 1fr; } }

  .follow { margin-top: 1.5rem; display: grid; gap: .8rem; }
  .follow__label { color: var(--stone); font-size: .66rem; letter-spacing: .1em; }
  .follow__btns { display: flex; flex-wrap: wrap; gap: .7rem; }
  .social {
    display: inline-flex; align-items: center; gap: .6em;
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .12em; font-size: .68rem;
    background: var(--ink); color: var(--paper);
    border: 1px solid var(--ink); padding: .8rem 1.15rem;
    transition: background-color .28s var(--ease), color .28s var(--ease), border-color .28s var(--ease), transform .28s var(--ease);
  }
  .social svg { width: 1.15em; height: 1.15em; fill: currentColor; flex: none; }
  .social:hover, .social:focus-visible {
    background: var(--sun); color: var(--on-sun); border-color: var(--sun);
    transform: translateY(-2px);
  }

  .footer__social { display: flex; gap: .8rem; align-items: center; }
  .footer__social a {
    display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center;
    border: 1px solid var(--line); color: var(--ink);
    transition: background-color .28s var(--ease), color .28s var(--ease), border-color .28s var(--ease);
  }
  .footer__social svg { width: 1rem; height: 1rem; fill: currentColor; }
  .footer__social a:hover, .footer__social a:focus-visible { background: var(--sun); color: var(--on-sun); border-color: var(--sun); }

  .site-foot { border-top: 1px solid var(--line); }
  .site-foot .wrap { padding-block: 2rem; display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; justify-content: space-between; align-items: center; }
  .site-foot p, .site-foot nav { font-family: var(--mono); text-transform: uppercase; letter-spacing: .1em; font-size: .58rem; color: var(--stone); }
  .site-foot nav { display: flex; flex-wrap: wrap; gap: .9rem; }
  .site-foot nav a:hover { color: var(--accent); }

  .theme {
    position: fixed; right: .9rem; bottom: .9rem; z-index: 50;
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .12em; font-size: .56rem;
    background: var(--paper); color: var(--stone); border: 1px solid var(--line);
    padding: .55rem .7rem; cursor: pointer;
  }
  .theme:hover { color: var(--ink); }
  /* ============================================================ brand marks + folk-sun motif */
  .wordmark {
    display: inline-block; vertical-align: middle; flex: none;
    width: var(--wm-w, 7.5rem); height: var(--wm-h, 1.15rem);
    background: currentColor;
    -webkit-mask: var(--wm) left center / contain no-repeat;
            mask: var(--wm) left center / contain no-repeat;
  }
  .bar__name { display: inline-flex; align-items: center; }
  .bar__name .wordmark { --wm-w: clamp(6rem, 4rem + 4.5vw, 8rem); --wm-h: 1.4rem; }
  .footer__mark { flex-basis: 100%; color: var(--stone); }
  .footer__mark .wordmark { --wm-w: 7rem; --wm-h: 1.1rem; }
  .giftcard__brand .wordmark { --wm-w: 5rem; --wm-h: .8rem; color: var(--on-dark); }

  .has-motif { position: relative; overflow: clip; }
  .has-motif > * { position: relative; }
  .has-motif > .motif { z-index: 0; }
  .has-motif > *:not(.motif) { z-index: 1; }
  .motif {
    position: absolute; pointer-events: none; user-select: none;
    width: clamp(14rem, 30vw, 27rem); aspect-ratio: 900 / 542;
    background: var(--mist);
    -webkit-mask: var(--motif) center / contain no-repeat;
            mask: var(--motif) center / contain no-repeat;
    opacity: .06;
  }
  .motif--tr { top: -3rem; right: -3rem; }
  .motif--bl { bottom: -3rem; left: -3rem; }
  .motif--c  { top: 50%; left: 50%; transform: translate(-50%, -50%); width: clamp(20rem, 46vw, 38rem); opacity: .045; }
  .offer .motif { background: var(--cream); opacity: .09; }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .motif { opacity: .1; } }
  :root[data-theme="dark"] .motif { opacity: .1; }
  /* motif folk sous le titre du manifeste */
  .intro__titlecol { display: flex; flex-direction: column; align-items: flex-start; }
  /* ============================================================ défilé de photos */
  .gallery { display: grid; gap: clamp(1.4rem, 4vh, 2.4rem); }
  .gallery__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 1.1rem; }
  .gallery__head h2 { font-size: clamp(1.5rem, 1.1rem + 1.7vw, 2.5rem); }
  .gallery__track {
    display: grid; grid-auto-flow: column;
    grid-auto-columns: min(76vw, 21rem);
    gap: clamp(.7rem, 1.6vw, 1.2rem);
    overflow-x: auto; overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain;
  }
  .gallery__track::-webkit-scrollbar { display: none; }
  .gallery__track:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  .gallery__fig { scroll-snap-align: start; aspect-ratio: 2 / 3; overflow: hidden; }
  .gallery__fig img { transition: transform 1.2s var(--ease); }
  .gallery__fig:hover img { transform: scale(1.04); }
  .gallery__foot { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; }
  .gallery__nav {
    width: 2.6rem; height: 2.6rem; border: 1px solid var(--line); background: transparent; color: var(--ink);
    font-size: 1.15rem; line-height: 1; cursor: pointer;
    transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  }
  .gallery__nav:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
  .gallery__nav.is-off { opacity: .28; }/* End custom CSS */