/*
 * Maison Albe Photographie — feuille de styles
 * Site créé avec Flixy Studio — 30/10/2026
 */

html,body {
  max-width:100%;
  overflow-x:clip;
}

html {
  scroll-padding-top:84px;
}

:where(img,video,iframe,svg,canvas,embed,object) {
  max-width:100%;
}

:where(img,video) {
  height:auto;
}

:where(h1,h2,h3,h4,h5,p,li,a,span,td,th,dd,dt,label,blockquote) {
  overflow-wrap:break-word;
}

@media (max-width:760px) {
  :where(header,section,footer,main,article,aside,nav) * {
    min-width:0;
  }
  :where(table) {
    display:block;
    overflow-x:auto;
    max-width:100%;
  }
  :where([class*="price"],[class*="prix"],[class*="tarif"],[data-flixy-price],a[href^="tel:"]) {
    white-space:nowrap;
  }
  :where(pre,code) {
    white-space:pre-wrap;
  };
}

@supports (-webkit-touch-callout:none) {
  @media (max-width:760px) {
    input,select,textarea {
      font-size:16px!important;
    };
  };
}

:root {
  --c-bg:#000000;
  --c-surface:#0f0f0f;
  --c-ink:#FFFFFF;
  --c-muted:#9e9e9e;
  --c-accent:#C9A96E;
  --c-on-accent:#16130f;
  --c-accent-2:#F6F1E8;
  --c-line:#242424;
  --f-head:'Onest', system-ui, sans-serif;
  --f-body:'Onest', system-ui, sans-serif;
  --radius:20px;
  --container:1200px;
  --shadow:0 18px 50px -20px rgba(0,0,0,.25);
}

*,*::before,*::after {
  box-sizing:border-box;
}

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

.fxb-nav-classic-013 {
  position:relative;
  z-index:60;
  font-family:var(--f-body);
  color:var(--c-ink);
  background:var(--c-bg);
  border-bottom:1px solid var(--c-line);
}

.fxb-nav-classic-013 .br {
  position:relative;
  display:flex;
  align-items:center;
  gap:20px;
  max-width:var(--container,1200px);
  height:80px;
  margin:0 auto;
  padding:0 clamp(16px,4vw,40px);
}

.fxb-nav-classic-013 .lo {
  display:inline-flex;
  flex-direction:column;
  color:var(--c-ink);
  text-decoration:none;
  font-family:var(--f-head);
  font-size:26px;
  font-style:italic;
  line-height:1;
}

.fxb-nav-classic-013 .lo small {
  font-family:var(--f-body);
  font-style:normal;
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--c-muted);
  margin-top:4px;
}

.fxb-nav-classic-013 nav {
  margin-left:auto;
}

.fxb-nav-classic-013 .ln {
  display:flex;
  gap:4px;
  margin:0;
  padding:0;
  list-style:none;
}

.fxb-nav-classic-013 .ln a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:0 12px;
  color:var(--c-ink);
  text-decoration:none;
  font-weight:600;
  font-size:15px;
  border-radius:999px;
  transition:background .2s;
}

.fxb-nav-classic-013 .ln a:hover {
  background:color-mix(in srgb,var(--c-ink) 6%,transparent);
}

.fxb-nav-classic-013 .st {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 12px;
  border-radius:999px;
  background:color-mix(in srgb,var(--c-ink) 6%,transparent);
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}

.fxb-nav-classic-013 .st i {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--c-muted);
}

.fxb-nav-classic-013 .st.op i {
  background:var(--c-accent);
  animation:fxb-nav-classic-013-pu 2s infinite;
}

.fxb-nav-classic-013 .rv {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:48px;
  padding:0 22px;
  border:0;
  border-radius:999px;
  background:var(--c-ink);
  color:var(--c-bg);
  font:inherit;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s;
}

.fxb-nav-classic-013 .rv:hover {
  transform:translateY(-1px);
}

.fxb-nav-classic-013 .rv svg {
  width:12px;
  height:12px;
  transition:transform .3s;
}

.fxb-nav-classic-013 .rv[aria-expanded=true] svg {
  transform:rotate(180deg);
}

.fxb-nav-classic-013 .bk {
  position:absolute;
  right:clamp(16px,4vw,40px);
  top:calc(100% - 6px);
  width:340px;
  padding:20px;
  border-radius:calc(var(--radius) + 12px);
  background:var(--c-surface);
  border:1px solid var(--c-line);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.4);
  transform-origin:calc(100% - 60px) 0;
  opacity:0;
  visibility:hidden;
  transform:scale(.92) translateY(-8px);
  transition:opacity .2s,transform .45s cubic-bezier(.3,1.5,.4,1),visibility 0s .45s;
}

.fxb-nav-classic-013 .bk.op {
  opacity:1;
  visibility:visible;
  transform:none;
  transition:opacity .2s,transform .45s cubic-bezier(.3,1.5,.4,1),visibility 0s;
}

.fxb-nav-classic-013 .bk h2 {
  margin:0 0 14px;
  font-family:var(--f-head);
  font-size:22px;
  font-weight:500;
}

.fxb-nav-classic-013 .rw {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--c-line);
}

.fxb-nav-classic-013 .rw>span {
  font-size:14px;
  font-weight:600;
}

.fxb-nav-classic-013 .sp {
  display:flex;
  align-items:center;
  gap:12px;
}

.fxb-nav-classic-013 .sp button {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid var(--c-line);
  border-radius:50%;
  background:var(--c-bg);
  color:var(--c-ink);
  font:inherit;
  font-size:18px;
  cursor:pointer;
}

.fxb-nav-classic-013 .sp output {
  min-width:4.5em;
  text-align:center;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}

.fxb-nav-classic-013 .ch {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:12px 0;
}

.fxb-nav-classic-013 .ch button,.fxb-nav-classic-013 .tm button {
  min-height:38px;
  padding:0 12px;
  border:1px solid var(--c-line);
  border-radius:999px;
  background:var(--c-bg);
  color:var(--c-ink);
  font:inherit;
  font-size:13.5px;
  font-weight:600;
  cursor:pointer;
  transition:background .2s,color .2s,border-color .2s;
}

.fxb-nav-classic-013 .ch button[aria-pressed=true],.fxb-nav-classic-013 .tm button[aria-pressed=true] {
  background:var(--c-ink);
  color:var(--c-bg);
  border-color:var(--c-ink);
}

.fxb-nav-classic-013 .tm {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin:0 0 16px;
}

.fxb-nav-classic-013 .tm button {
  border-radius:12px;
}

.fxb-nav-classic-013 .tm button:disabled {
  color:var(--c-muted);
  text-decoration:line-through;
  cursor:not-allowed;
  opacity:.7;
}

.fxb-nav-classic-013 .go {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:52px;
  border-radius:999px;
  background:var(--c-accent);
  color:var(--c-on-accent);
  font-weight:800;
  text-decoration:none;
}

.fxb-nav-classic-013 .nt {
  margin:10px 0 0;
  font-size:13px;
  color:var(--c-muted);
  text-align:center;
}

.fxb-nav-classic-013 .mm {
  display:none;
}

.fxb-nav-classic-013 .mm summary {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border:1px solid var(--c-line);
  border-radius:50%;
  cursor:pointer;
  list-style:none;
  font-size:18px;
}

.fxb-nav-classic-013 .mm summary::-webkit-details-marker {
  display:none;
}

.fxb-nav-classic-013 .mm:not([open]) .mp {
  display:none;
}

.fxb-nav-classic-013 .mp {
  position:absolute;
  left:0;
  right:0;
  top:100%;
  padding:8px 16px 16px;
  background:var(--c-bg);
  border-bottom:1px solid var(--c-line);
}

.fxb-nav-classic-013 .mp a {
  display:flex;
  align-items:center;
  min-height:52px;
  border-bottom:1px solid var(--c-line);
  color:var(--c-ink);
  text-decoration:none;
  font-family:var(--f-head);
  font-size:22px;
}

@keyframes fxb-nav-classic-013-pu {
  0%,100% {
    box-shadow:0 0 0 0 color-mix(in srgb,var(--c-accent) 50%,transparent);
  }
  70% {
    box-shadow:0 0 0 7px transparent;
  };
}

@media (prefers-reduced-motion:reduce) {
  .fxb-nav-classic-013 *,.fxb-nav-classic-013 .bk {
    transition:none!important;
    animation:none!important;
  };
}

@media (max-width:920px) {
  .fxb-nav-classic-013 nav {
    display:none;
  }
  .fxb-nav-classic-013 .st {
    margin-left:auto;
  }
  .fxb-nav-classic-013 .mm {
    display:block;
  };
}

@media (max-width:560px) {
  .fxb-nav-classic-013 .lo {
    font-size:21px;
    white-space:nowrap;
  }
  .fxb-nav-classic-013 .st span {
    display:none;
  }
  .fxb-nav-classic-013 .br {
    gap:10px;
    height:72px;
  }
  .fxb-nav-classic-013 .bk {
    left:12px;
    right:12px;
    width:auto;
  }
  .fxb-nav-classic-013 .rv {
    padding:0 16px;
  };
}

.fxb-hero-form-016 {
  position:relative;
  overflow:hidden;
  background:var(--c-bg);
  color:var(--c-ink);
  font-family:var(--f-body);
}

.fxb-hero-form-016 .w {
  max-width:var(--container,1240px);
  margin:0 auto;
  padding:clamp(44px,6vw,90px) clamp(16px,4vw,40px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,5vw,64px);
  align-items:center;
}

.fxb-hero-form-016 .k {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
  padding:6px 14px;
  border-radius:999px;
  background:var(--c-surface);
  border:1px solid var(--c-line);
  font-size:14px;
  font-weight:600;
}

.fxb-hero-form-016 h1 {
  margin:0 0 12px;
  font-family:var(--f-head);
  font-weight:800;
  font-size:clamp(36px,4.8vw,68px);
  line-height:.95;
  letter-spacing:-.045em;
}

.fxb-hero-form-016 .tx {
  margin:0 0 22px;
  max-width:28em;
  font-size:17px;
  line-height:1.55;
  color:var(--c-muted);
}

.fxb-hero-form-016 form {
  display:grid;
  gap:16px;
  padding:20px;
  border-radius:calc(var(--radius) + 18px);
  background:var(--c-surface);
  border:1px solid var(--c-line);
}

.fxb-hero-form-016 .rw {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
}

.fxb-hero-form-016 label.f {
  display:grid;
  gap:6px;
  font-size:14px;
  font-weight:600;
}

.fxb-hero-form-016 input[type=text] {
  min-height:50px;
  padding:0 14px;
  border-radius:12px;
  border:1.5px solid var(--c-line);
  background:var(--c-bg);
  color:var(--c-ink);
  font:inherit;
  font-size:16px;
  min-width:0;
}

.fxb-hero-form-016 input[type=text]:focus {
  outline:none;
  border-color:var(--c-ink);
}

.fxb-hero-form-016 fieldset {
  margin:0;
  padding:0;
  border:0;
  min-width:0;
}

.fxb-hero-form-016 legend {
  margin-bottom:6px;
  padding:0;
  font-size:14px;
  font-weight:600;
}

.fxb-hero-form-016 .sg {
  display:flex;
  gap:4px;
  padding:4px;
  border-radius:14px;
  background:var(--c-bg);
  border:1.5px solid var(--c-line);
}

.fxb-hero-form-016 .sg label {
  position:relative;
  display:grid;
  place-items:center;
  min-width:72px;
  min-height:40px;
  padding:0 12px;
  border-radius:10px;
  font-size:14.5px;
  font-weight:700;
  cursor:pointer;
}

.fxb-hero-form-016 .sg input {
  position:absolute;
  inset:0;
  opacity:0;
  margin:0;
  cursor:pointer;
}

.fxb-hero-form-016 .sg label:has(input:checked) {
  background:var(--c-ink);
  color:var(--c-bg);
}

.fxb-hero-form-016 .sg label:has(input:focus-visible) {
  outline:2px solid var(--c-accent);
  outline-offset:2px;
}

.fxb-hero-form-016 .ag {
  display:grid;
  gap:6px;
  font-size:14px;
  font-weight:600;
}

.fxb-hero-form-016 .ag span {
  display:flex;
  justify-content:space-between;
}

.fxb-hero-form-016 .ag output {
  font-variant-numeric:tabular-nums;
}

.fxb-hero-form-016 input[type=range] {
  width:100%;
  accent-color:var(--c-accent);
  min-height:28px;
}

.fxb-hero-form-016 .pl {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}

.fxb-hero-form-016 .pl label {
  position:relative;
  display:grid;
  gap:2px;
  padding:10px 12px;
  border-radius:12px;
  border:1.5px solid var(--c-line);
  background:var(--c-bg);
  font-size:14.5px;
  font-weight:700;
  cursor:pointer;
}

.fxb-hero-form-016 .pl label small {
  font-size:13px;
  font-weight:500;
  color:var(--c-muted);
}

.fxb-hero-form-016 .pl input {
  position:absolute;
  inset:0;
  opacity:0;
  margin:0;
  cursor:pointer;
}

.fxb-hero-form-016 .pl label:has(input:checked) {
  border-color:var(--c-ink);
  box-shadow:inset 0 0 0 1px var(--c-ink);
}

.fxb-hero-form-016 .pl label:has(input:focus-visible) {
  outline:2px solid var(--c-accent);
  outline-offset:2px;
}

.fxb-hero-form-016 form>button {
  min-height:54px;
  border:0;
  border-radius:999px;
  background:var(--c-ink);
  color:var(--c-bg);
  font:inherit;
  font-weight:700;
  font-size:16px;
  cursor:pointer;
}

.fxb-hero-form-016 .art {
  position:relative;
  display:grid;
  justify-items:center;
}

.fxb-hero-form-016 .art::before {
  content:"";
  position:absolute;
  left:50%;
  top:52%;
  width:min(440px,92%);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:color-mix(in srgb,var(--c-accent) 20%,var(--c-surface));
}

.fxb-hero-form-016 .bb {
  position:relative;
  z-index:2;
  justify-self:center;
  margin:0 0 -10px;
  padding:10px 16px;
  border-radius:18px 18px 18px 4px;
  background:var(--c-ink);
  color:var(--c-bg);
  font-weight:700;
  font-size:15.5px;
  transform:translateX(40px);
}

.fxb-hero-form-016 .pet {
  position:relative;
  width:min(380px,90%);
  height:auto;
  overflow:visible;
}

.fxb-hero-form-016 .pet .bd {
  transform-origin:200px 360px;
  transform:scale(var(--sc,1));
  transition:transform .5s cubic-bezier(.3,1.4,.4,1);
}

.fxb-hero-form-016 .pet .fur {
  fill:color-mix(in srgb,var(--c-accent) 45%,var(--c-bg));
}

.fxb-hero-form-016 .pet .fur2 {
  fill:color-mix(in srgb,var(--c-accent) 70%,var(--c-ink));
}

.fxb-hero-form-016 .pet .ln {
  fill:none;
  stroke:var(--c-ink);
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.fxb-hero-form-016 .pet .ink {
  fill:var(--c-ink);
}

.fxb-hero-form-016 .pet .wh {
  fill:rgba(255,255,255,1);
}

.fxb-hero-form-016 .pet .grey {
  fill:color-mix(in srgb,var(--c-bg) 70%,var(--c-muted));
  opacity:var(--gr,0);
  transition:opacity .4s;
}

.fxb-hero-form-016 .pet .cat,.fxb-hero-form-016 .art.c .pet .dog {
  display:none;
}

.fxb-hero-form-016 .art.c .pet .cat {
  display:inline;
}

.fxb-hero-form-016 .pet .ey {
  transform-box:fill-box;
  transform-origin:center;
  animation:fxb-hero-form-016-bl 4.2s infinite;
}

.fxb-hero-form-016 .pet .tl {
  transform-box:view-box;
  transform-origin:300px 320px;
  animation:fxb-hero-form-016-wg .5s ease-in-out infinite alternate;
}

.fxb-hero-form-016 .pr {
  position:relative;
  z-index:2;
  display:flex;
  align-items:baseline;
  gap:6px;
  margin:-6px 0 0;
  padding:12px 20px;
  border-radius:18px;
  background:var(--c-bg);
  border:1px solid var(--c-line);
  box-shadow:0 18px 40px rgba(0,0,0,.1);
}

.fxb-hero-form-016 .pr b {
  font-family:var(--f-head);
  font-size:40px;
  letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}

.fxb-hero-form-016 .pr span {
  font-size:14.5px;
  color:var(--c-muted);
}

.fxb-hero-form-016 .sr {
  position:absolute;
  left:0;
  top:0;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  font-size:12px;
  margin:0;
}

@keyframes fxb-hero-form-016-bl {
  0%,92%,100% {
    transform:scaleY(1);
  }
  95% {
    transform:scaleY(.1);
  };
}

@keyframes fxb-hero-form-016-wg {
  from {
    transform:rotate(-12deg);
  }
  to {
    transform:rotate(14deg);
  };
}

@media (prefers-reduced-motion:reduce) {
  .fxb-hero-form-016 * {
    animation:none!important;
    transition:none!important;
  };
}

@media (max-width:900px) {
  .fxb-hero-form-016 .w {
    grid-template-columns:minmax(0,1fr);
  }
  .fxb-hero-form-016 .art {
    order:-1;
  }
  .fxb-hero-form-016 .pet {
    width:min(260px,80%);
  };
}

@media (max-width:440px) {
  .fxb-hero-form-016 .rw {
    grid-template-columns:minmax(0,1fr);
  }
  .fxb-hero-form-016 .pl {
    grid-template-columns:minmax(0,1fr);
  };
}

.fxb-services-cards-016 {
  --mu:color-mix(in srgb,var(--c-bg) 66%,var(--c-ink));
  --ln:color-mix(in srgb,var(--c-bg) 12%,transparent);
  --a1:color-mix(in srgb,var(--c-accent) 75%,var(--c-bg));
  --a2:color-mix(in srgb,var(--c-accent-2) 65%,var(--c-bg));
  background:var(--c-ink);
  color:var(--c-bg);
  font-family:var(--f-body);
  padding:clamp(64px,9vw,120px) 0;
  overflow:hidden;
}

.fxb-services-cards-016 .wrap {
  max-width:var(--container,1200px);
  margin:0 auto;
  padding:0 clamp(16px,4vw,40px);
}

.fxb-services-cards-016 .hd {
  text-align:center;
  max-width:700px;
  margin:0 auto clamp(32px,5vw,56px);
}

.fxb-services-cards-016 .ey.ey {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 16px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid var(--ln);
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--mu);
}

.fxb-services-cards-016 .ey i {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--a2);
  box-shadow:0 0 10px var(--a2);
}

.fxb-services-cards-016 h2 {
  margin:0 0 12px;
  font-family:var(--f-head);
  font-weight:700;
  font-size:clamp(34px,4.8vw,62px);
  line-height:1;
  letter-spacing:-.04em;
}

.fxb-services-cards-016 h2 em {
  font-style:normal;
  background:linear-gradient(90deg,var(--a1),var(--a2));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.fxb-services-cards-016 .hd p {
  margin:0;
  font-size:16px;
  line-height:1.6;
  color:var(--mu);
}

.fxb-services-cards-016 ul.gr {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}

.fxb-services-cards-016 .sv {
  position:relative;
  padding:1.5px;
  border-radius:calc(var(--radius,14px) + 12px);
  background:var(--ln);
  isolation:isolate;
}

.fxb-services-cards-016 .sv:hover,.fxb-services-cards-016 .sv.ft {
  box-shadow:0 30px 80px -30px color-mix(in srgb,var(--c-accent) 55%,transparent);
}

.fxb-services-cards-016 .sv {
  overflow:hidden;
}

.fxb-services-cards-016 .sv::before {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:200%;
  aspect-ratio:1;
  margin:-100% 0 0 -100%;
  background:conic-gradient(transparent 0 55%,var(--a1) 72%,var(--a2) 84%,transparent 96%);
  opacity:0;
  transition:opacity .4s;
}

.fxb-services-cards-016 .glow {
  position:absolute;
  inset:10%;
  z-index:-1;
  border-radius:inherit;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--c-accent) 40%,transparent),transparent);
  filter:blur(30px);
  opacity:0;
  transition:opacity .4s;
  pointer-events:none;
}

.fxb-services-cards-016 .sv:hover::before,.fxb-services-cards-016 .sv.ft::before {
  opacity:1;
  animation:fxb-services-cards-016-sp 4s linear infinite;
}

@keyframes fxb-services-cards-016-sp {
  to {
    transform:rotate(360deg);
  };
}

.fxb-services-cards-016 .in {
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  height:100%;
  padding:26px;
  border-radius:calc(var(--radius,14px) + 11px);
  background:color-mix(in srgb,var(--c-bg) 4%,var(--c-ink));
}

.fxb-services-cards-016 .ic {
  width:52px;
  height:52px;
  margin:0 0 20px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:color-mix(in srgb,var(--c-bg) 8%,transparent);
  border:1px solid var(--ln);
}

.fxb-services-cards-016 .ic svg {
  width:28px;
  height:28px;
}

.fxb-services-cards-016 .ic path {
  fill:var(--a1);
  transition:d .6s cubic-bezier(.3,1.4,.5,1);
}

.fxb-services-cards-016 h3 {
  margin:0 0 8px;
  font-family:var(--f-head);
  font-weight:700;
  font-size:23px;
  letter-spacing:-.02em;
}

.fxb-services-cards-016 .in>p {
  margin:0 0 18px;
  font-size:15px;
  line-height:1.6;
  color:var(--mu);
}

.fxb-services-cards-016 .ch {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:4px 14px;
  align-items:end;
  margin:0 0 18px;
  padding:14px;
  border-radius:14px;
  background:color-mix(in srgb,var(--c-bg) 5%,transparent);
  border:1px solid var(--ln);
}

.fxb-services-cards-016 .ch b {
  font-family:var(--f-head);
  font-size:30px;
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1;
}

.fxb-services-cards-016 .ch small {
  grid-column:1;
  font-size:12.5px;
  color:var(--mu);
}

.fxb-services-cards-016 .ch svg {
  grid-row:1/3;
  grid-column:2;
  width:100%;
  height:46px;
  overflow:visible;
}

.fxb-services-cards-016 .ch path {
  fill:none;
  stroke:var(--a2);
  stroke-width:2.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:1;
  stroke-dashoffset:0;
  transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1);
}

.fxb-services-cards-016.is-js:not(.go) .ch path {
  stroke-dashoffset:1;
}

.fxb-services-cards-016 .dl {
  list-style:none;
  margin:0 0 22px;
  padding:0;
  display:grid;
  gap:8px;
  font-size:14.5px;
}

.fxb-services-cards-016 .dl li {
  display:flex;
  gap:10px;
  align-items:center;
}

.fxb-services-cards-016 .dl li::before {
  content:"";
  flex:none;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--a1);
}

.fxb-services-cards-016 .in>a {
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  min-height:48px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid var(--ln);
  color:var(--c-bg);
  font-weight:700;
  font-size:14.5px;
  text-decoration:none;
  transition:background .25s,color .25s;
}

.fxb-services-cards-016 .in>a:hover,.fxb-services-cards-016 .ft .in>a {
  background:var(--c-bg);
  color:var(--c-ink);
}

.fxb-services-cards-016 .tg {
  position:absolute;
  right:20px;
  top:20px;
  padding:5px 12px;
  border-radius:999px;
  background:var(--c-accent);
  color:var(--c-on-accent);
  font-size:12px;
  font-weight:800;
}

.fxb-services-cards-016 a:focus-visible {
  outline:3px solid var(--a1);
  outline-offset:3px;
}

@media (max-width:980px) {
  .fxb-services-cards-016 ul.gr {
    grid-template-columns:minmax(0,1fr);
    max-width:520px;
    margin:0 auto;
  };
}

@media (prefers-reduced-motion:reduce) {
  .fxb-services-cards-016 .sv::before {
    animation:none!important;
  }
  .fxb-services-cards-016 .ic path,.fxb-services-cards-016 .ch path {
    transition:none;
  };
}

.fxb-contact-quote-005 {
  background:var(--c-ink);
  color:var(--c-bg);
  font-family:var(--f-body);
  padding:clamp(72px,10vw,130px) 0;
}

.fxb-contact-quote-005 .wrap {
  max-width:var(--container,1160px);
  margin:0 auto;
  padding:0 clamp(16px,4vw,40px);
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(32px,5vw,72px);
  align-items:start;
}

.fxb-contact-quote-005 .ey {
  margin:0 0 12px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:13px;
  color:color-mix(in srgb,var(--c-bg) 70%,var(--c-ink));
}

.fxb-contact-quote-005 h2 {
  margin:0 0 16px;
  font-family:var(--f-head);
  font-weight:700;
  font-size:clamp(34px,4.6vw,56px);
  line-height:1.02;
  letter-spacing:-.025em;
}

.fxb-contact-quote-005 .lead {
  margin:0 0 28px;
  font-size:17px;
  line-height:1.6;
  color:color-mix(in srgb,var(--c-bg) 80%,var(--c-ink));
}

.fxb-contact-quote-005 .pk {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
  font-size:15.5px;
}

.fxb-contact-quote-005 .pk li::before {
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:22px;
  height:22px;
  margin-right:10px;
  border-radius:50%;
  background:var(--c-accent);
  color:var(--c-on-accent);
  font-size:12px;
  font-weight:800;
}

.fxb-contact-quote-005 form {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:clamp(20px,3vw,32px);
  border-radius:20px;
  background:color-mix(in srgb,var(--c-bg) 6%,var(--c-ink));
  border:1px solid color-mix(in srgb,var(--c-bg) 14%,transparent);
}

.fxb-contact-quote-005 fieldset {
  grid-column:1/-1;
  margin:0;
  padding:0;
  border:0;
  min-width:0;
}

.fxb-contact-quote-005 legend,.fxb-contact-quote-005 label {
  font-size:13px;
  font-weight:600;
  color:color-mix(in srgb,var(--c-bg) 85%,var(--c-ink));
}

.fxb-contact-quote-005 legend {
  padding:0;
  margin:0 0 8px;
}

.fxb-contact-quote-005 .ch {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.fxb-contact-quote-005 .ch label {
  position:relative;
  padding:9px 14px;
  border-radius:999px;
  border:1px solid color-mix(in srgb,var(--c-bg) 25%,transparent);
  cursor:pointer;
  font-size:14px;
  color:var(--c-bg);
}

.fxb-contact-quote-005 .ch input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
}

.fxb-contact-quote-005 .ch label:has(input:checked) {
  background:var(--c-bg);
  color:var(--c-ink);
  border-color:var(--c-bg);
}

.fxb-contact-quote-005 .ch label:has(input:focus-visible) {
  outline:2px solid var(--c-accent);
  outline-offset:2px;
}

.fxb-contact-quote-005 label.f {
  display:grid;
  gap:6px;
}

.fxb-contact-quote-005 .w {
  grid-column:1/-1;
}

.fxb-contact-quote-005 .bg {
  display:flex;
  justify-content:space-between;
  font-size:13px;
  font-weight:600;
}

.fxb-contact-quote-005 .bg output {
  color:var(--c-bg);
  font-weight:700;
}

.fxb-contact-quote-005 input[type=range] {
  width:100%;
  accent-color:var(--c-accent);
}

.fxb-contact-quote-005 .f input,.fxb-contact-quote-005 select,.fxb-contact-quote-005 textarea {
  font:inherit;
  font-size:15.5px;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid color-mix(in srgb,var(--c-bg) 22%,transparent);
  background:var(--c-ink);
  color:var(--c-bg);
  width:100%;
  box-sizing:border-box;
}

.fxb-contact-quote-005 textarea {
  min-height:100px;
  resize:vertical;
}

.fxb-contact-quote-005 [aria-invalid=true] {
  border-color:var(--c-accent);
}

.fxb-contact-quote-005 button {
  grid-column:1/-1;
  font:700 16px var(--f-body);
  padding:15px;
  border:0;
  border-radius:12px;
  background:var(--c-bg);
  color:var(--c-ink);
  cursor:pointer;
}

.fxb-contact-quote-005 .msg {
  grid-column:1/-1;
  margin:0;
  min-height:1.3em;
  font-weight:600;
}

@media (max-width:860px) {
  .fxb-contact-quote-005 .wrap {
    grid-template-columns:minmax(0,1fr);
  };
}

@media (max-width:480px) {
  .fxb-contact-quote-005 form {
    grid-template-columns:minmax(0,1fr);
  };
}

.fxb-footer-columns-004 {
  background:var(--c-ink);
  color:var(--c-bg);
  font-family:var(--f-body);
  padding:clamp(64px,9vw,120px) 0 0;
  overflow:hidden;
}

.fxb-footer-columns-004 .wrap {
  max-width:var(--container,1280px);
  margin:0 auto;
  padding:0 clamp(20px,4vw,40px);
}

.fxb-footer-columns-004 .top {
  display:grid;
  grid-template-columns:minmax(0,1.9fr) repeat(4,minmax(0,1fr));
  gap:clamp(24px,3vw,48px);
  padding:0 0 clamp(40px,6vw,64px);
}

.fxb-footer-columns-004 .tg {
  font-family:var(--f-head);
  font-weight:400;
  font-size:clamp(26px,2.5vw,36px);
  max-width:12em;
  line-height:1.1;
  margin:0 0 22px;
}

.fxb-footer-columns-004 .bk {
  color:var(--c-bg);
  text-decoration:none;
  font-size:12.5px;
  letter-spacing:.24em;
  text-transform:uppercase;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}

.fxb-footer-columns-004 h3 {
  margin:0 0 16px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:color-mix(in srgb,var(--c-bg) 68%,var(--c-ink));
}

.fxb-footer-columns-004 ul {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}

.fxb-footer-columns-004 a {
  color:var(--c-bg);
}

.fxb-footer-columns-004 ul a,.fxb-footer-columns-004 address a {
  text-decoration:none;
  font-size:15px;
}

.fxb-footer-columns-004 ul a:hover,.fxb-footer-columns-004 address a:hover {
  text-decoration:underline;
  text-underline-offset:4px;
}

.fxb-footer-columns-004 address,.fxb-footer-columns-004 .hr {
  font-style:normal;
  font-size:15px;
  line-height:1.75;
  margin:0;
}

.fxb-footer-columns-004 .lg {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  padding:20px 0;
  border-top:1px solid color-mix(in srgb,var(--c-bg) 22%,transparent);
  font-size:14px;
  color:color-mix(in srgb,var(--c-bg) 70%,var(--c-ink));
}

.fxb-footer-columns-004 .lg a {
  color:inherit;
}

.fxb-footer-columns-004 .wm {
  margin:0;
  font-family:var(--f-head);
  font-weight:400;
  font-size:clamp(64px,19vw,300px);
  line-height:.78;
  letter-spacing:-.04em;
  text-align:center;
  white-space:nowrap;
  transform:translateY(.1em);
}

@media (max-width:980px) {
  .fxb-footer-columns-004 .top {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .fxb-footer-columns-004 .top>div:first-child {
    grid-column:1/-1;
  };
}

.fxb-footer-columns-004 {
  --p:1;
}

.fxb-footer-columns-004 .tg em {
  font-style:italic;
  color:color-mix(in srgb,var(--c-accent) 50%,var(--c-bg));
}

.fxb-footer-columns-004 .tg .w {
  display:inline-block;
  transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .6s;
}

.fxb-footer-columns-004 .bk {
  position:relative;
  border-bottom:0;
  padding-bottom:6px;
  font-size:14px;
}

.fxb-footer-columns-004 .bk::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:currentColor;
  transform-origin:100% 50%;
  transition:transform .5s cubic-bezier(.7,0,.2,1);
}

.fxb-footer-columns-004 .bk:hover::after {
  animation:fxb-footer-columns-004-ul .8s cubic-bezier(.7,0,.2,1);
}

@keyframes fxb-footer-columns-004-ul {
  0% {
    transform:scaleX(1);
    transform-origin:100% 50%;
  }
  45% {
    transform:scaleX(0);
    transform-origin:100% 50%;
  }
  46% {
    transform:scaleX(0);
    transform-origin:0 50%;
  }
  100% {
    transform:scaleX(1);
    transform-origin:0 50%;
  };
}

.fxb-footer-columns-004 ul a {
  position:relative;
  display:inline-block;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}

.fxb-footer-columns-004 ul a::before {
  content:"→";
  position:absolute;
  left:-18px;
  opacity:0;
  transform:translateX(-6px);
  color:color-mix(in srgb,var(--c-accent) 55%,var(--c-bg));
  transition:opacity .3s,transform .4s;
}

.fxb-footer-columns-004 ul a:hover {
  text-decoration:none;
  transform:translateX(16px);
}

.fxb-footer-columns-004 ul a:hover::before {
  opacity:1;
  transform:none;
}

.fxb-footer-columns-004 a:focus-visible {
  outline:2px solid var(--c-accent);
  outline-offset:3px;
}

.fxb-footer-columns-004 .hr span {
  display:block;
  margin:0 -8px;
  padding:0 8px;
  border-radius:6px;
}

.fxb-footer-columns-004 .hr span.td {
  background:color-mix(in srgb,var(--c-bg) 10%,transparent);
  font-weight:600;
}

.fxb-footer-columns-004 .wm {
  clip-path:inset(calc((1 - var(--p)) * 100%) 0 0 0);
}

.fxb-footer-columns-004 .wm span {
  display:inline-block;
  transition:transform .4s cubic-bezier(.3,1.5,.5,1);
}

.fxb-footer-columns-004 .wm span:hover {
  font-style:italic;
  transform:translateY(-4%);
}

.fxb-footer-columns-004.is-js .tg .w {
  transform:translateY(.6em);
  opacity:0;
}

.fxb-footer-columns-004.in .tg .w {
  transform:none;
  opacity:1;
}

html.fxm .fxm-s {
  opacity:0;
  transform:translateY(26px);
  transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);
}

html.fxm .fxm-s.fxm-in {
  opacity:1;
  transform:none;
}

html.fxm .fxm-s .fxm-i {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--fxm-d,0) * 90ms + 120ms);
}

html.fxm .fxm-s.fxm-in .fxm-i {
  opacity:1;
  transform:none;
}

html.fxm .fxm-s .fxm-img {
  clip-path:inset(0 0 100% 0 round var(--radius,10px));
  transition:clip-path 1.1s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--fxm-d,0) * 90ms + 150ms);
}

html.fxm .fxm-s.fxm-in .fxm-img {
  clip-path:inset(0 0 0 0 round var(--radius,10px));
}

.fxm-shine {
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.fxm-shine::after {
  content:"";
  position:absolute;
  top:0;
  left:-70%;
  width:45%;
  height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);
  transform:skewX(-20deg);
  animation:fxm-shine 5.5s ease-in-out infinite 1.5s;
  pointer-events:none;
  z-index:1;
}

@keyframes fxm-shine {
  0%,72% {
    left:-70%;
  }
  100% {
    left:140%;
  };
}

@media (prefers-reduced-motion:reduce) {
  html.fxm .fxm-s,html.fxm .fxm-s .fxm-i {
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  html.fxm .fxm-s .fxm-img {
    clip-path:none!important;
  }
  .fxm-shine::after {
    display:none;
  };
}

html {
  scroll-behavior:smooth;
}

body {
  margin:0;
  font-family:var(--f-body,'Onest',sans-serif);
  font-size:17px;
  line-height:1.65;
  color:var(--c-ink,#000);
  background:var(--c-bg,#fff);
  overflow-x:hidden;
}

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

a {
  color:inherit;
}

:focus-visible {
  outline:2px solid var(--c-accent,#C9A96E);
  outline-offset:3px;
}

.sec {
  padding:120px 20px;
}

.ct {
  max-width:var(--container,1200px);
  margin:0 auto;
}

.eb {
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#8a6d3b;
  margin:0 0 14px;
  text-align:center;
}

.h2 {
  font-size:clamp(28px,4vw,46px);
  font-weight:500;
  line-height:1.15;
  text-align:center;
  margin:0 auto 18px;
  max-width:720px;
}

.h2 span {
  background:linear-gradient(var(--c-accent,#C9A96E),var(--c-accent,#C9A96E)) no-repeat 0 100%/100% 3px;
}

html.js .reveal.in .h2 span {
  animation:ud 1.2s ease;
}

@keyframes ud {
  from {
    background-size:0 3px;
  }
  to {
    background-size:100% 3px;
  };
}

.lead {
  max-width:620px;
  margin:0 auto 56px;
  text-align:center;
  color:#555;
}

.orn {
  display:block;
  margin:0 auto 18px;
  color:var(--c-accent,#C9A96E);
}

.orn path {
  stroke-dasharray:600;
  animation:dr 2s ease both;
}

@keyframes dr {
  from {
    stroke-dashoffset:var(--len,600);
  }
  to {
    stroke-dashoffset:0;
  };
}

/* galerie */
.gal {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:260px;
  gap:16px;
}

.gal button {
  all:unset;
  cursor:zoom-in;
  border-radius:20px;
  overflow:hidden;
  position:relative;
  min-width:0;
}

.gal button:focus-visible {
  outline:2px solid var(--c-accent,#C9A96E);
}

.gal img {
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.85) brightness(1.04);
  transition:transform .8s ease;
}

.gal button:hover img {
  transform:scale(1.06);
}

.gal .t {
  grid-row:span 2;
}

.gal .w {
  grid-column:span 2;
}

.lb {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:200;
  padding:20px;
}

.lb.on {
  display:flex;
}

.lb img {
  max-height:84vh;
  border-radius:14px;
}

.lb button {
  position:absolute;
  background:none;
  border:1px solid rgba(255,255,255,.4);
  color:#fff;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:20px;
  cursor:pointer;
}

.lb .x {
  top:20px;
  right:20px;
}

.lb .p {
  left:20px;
}

.lb .n {
  right:20px;
}

/* à propos */
.ab {
  background:#F6F1E8;
  position:relative;
  overflow:hidden;
}

.ab::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.25;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='12'%3E%3Cpath d='M0 6q10-8 20 0t20 0' fill='none' stroke='%23C9A96E' stroke-width='1'/%3E%3C/svg%3E");
}

.abg {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:72px;
  align-items:center;
}

.abg img {
  border-radius:20px;
  aspect-ratio:4/5;
  object-fit:cover;
  width:100%;
}

.abg .h2,.abg .eb {
  text-align:left;
  margin-left:0;
}

.fig {
  display:flex;
  gap:36px;
  margin-top:28px;
  flex-wrap:wrap;
}

.fig b {
  display:block;
  font-size:34px;
  font-weight:500;
  color:#8a6d3b;
}

.fig span {
  font-size:14px;
  color:#555;
}

.ex {
  margin-top:24px;
  padding:18px 22px;
  border-radius:20px;
  background:#fff;
  font-size:15px;
}

/* faq */
.fq {
  max-width:760px;
  margin:0 auto;
}

.fq details {
  border-bottom:1px solid #e6dfd2;
  padding:6px 0;
}

.fq summary {
  cursor:pointer;
  list-style:none;
  padding:16px 36px 16px 0;
  font-weight:500;
  position:relative;
  min-height:44px;
}

.fq summary::after {
  content:"+";
  position:absolute;
  right:6px;
  top:14px;
  color:#8a6d3b;
  font-size:22px;
}

.fq details[open] summary::after {
  content:"−";
}

.fq p {
  margin:0 0 18px;
  color:#555;
}

/* flottants & légal */
.fl {
  position:fixed;
  right:18px;
  bottom:18px;
  display:flex;
  flex-direction:column;
  gap:10px;
  z-index:90;
}

.fl a {
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#000;
  color:var(--c-accent,#C9A96E);
  box-shadow:0 8px 24px rgba(0,0,0,.2);
}

.lgm {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.6);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:210;
  padding:20px;
}

.lgm:target {
  display:flex;
}

.lgm>div {
  background:#fff;
  color:#000;
  border-radius:20px;
  max-width:560px;
  padding:32px;
  max-height:80vh;
  overflow:auto;
  font-size:15px;
}

.lgm a.cl {
  display:inline-block;
  margin-top:12px;
  padding:10px 22px;
  border-radius:99px;
  background:#000;
  color:#fff;
  text-decoration:none;
}

html.js .reveal {
  opacity:0;
  transform:translateY(24px);
  transition:.9s ease;
}

html.js .reveal.in {
  opacity:1;
  transform:none;
}

@media (max-width:1024px) {
  .gal {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .abg {
    gap:40px;
  };
}

@media (max-width:720px) {
  .sec {
    padding:64px 20px;
  }
  .gal {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:180px;
    gap:10px;
  }
  .gal .w {
    grid-column:span 1;
  }
  .abg {
    grid-template-columns:minmax(0,1fr);
  }
  .lead {
    margin-bottom:36px;
  };
}

@media (prefers-reduced-motion:reduce) {
  * {
    animation:none!important;
    transition:none!important;
  }
  html {
    scroll-behavior:auto;
  };
}

/* Page 404 */
.fx-404{min-height:70vh;display:grid;place-items:center;text-align:center;padding:80px 24px}
.fx-404 h1{font-size:clamp(64px,12vw,140px);line-height:1;margin:0 0 12px}
.fx-404 p{margin:0 0 28px;opacity:.75}
