:root{
  --color-felt:#0B2B20;
  --color-felt-raised:#123D2E;
  --color-graphite:#1C1F22;
  --color-graphite-deep:#111315;
  --color-bordeaux:#6E1F2A;
  --color-bordeaux-clair:#8C2E3B;
  --color-bois:#3A2A1E;
  --color-or:#C9A227;
  --color-or-clair:#E3C65A;
  --color-ivoire:#F3EFE6;
  --color-ivoire-doux:#D8D2C4;
  --color-ligne:#3B4045;
  --color-erreur:#D96C6C;
  --color-succes:#6FBF8B;
  --font-heading:'Playfair Display','Times New Roman',serif;
  --font-body:'Inter','Helvetica Neue',Arial,sans-serif;
  --text-xs:0.75rem;
  --text-xs-lh:1.4;
  --text-sm:0.875rem;
  --text-sm-lh:1.5;
  --text-base:1rem;
  --text-base-lh:1.65;
  --text-lg:1.125rem;
  --text-lg-lh:1.6;
  --text-xl:1.375rem;
  --text-xl-lh:1.45;
  --text-2xl:1.75rem;
  --text-2xl-lh:1.3;
  --text-3xl:2.25rem;
  --text-3xl-lh:1.2;
  --text-4xl:3rem;
  --text-4xl-lh:1.1;
  --text-5xl:3.75rem;
  --text-5xl-lh:1.05;
  --text-6xl:4.75rem;
  --text-6xl-lh:1;
  --space-1:0.25rem;
  --space-2:0.5rem;
  --space-3:0.75rem;
  --space-4:1rem;
  --space-5:1.5rem;
  --space-6:2rem;
  --space-7:3rem;
  --space-8:4rem;
  --space-9:6rem;
  --space-10:8rem;
  --container-max:1200px;
  --container-pad-mobile:24px;
  --container-pad-desktop:48px;
  --radius-none:0;
  --radius-sm:2px;
  --radius-md:4px;
  --radius-lg:8px;
  --radius-pill:999px;
  --shadow-overlay:0 8px 24px rgba(0,0,0,0.35);
  --transition-fast:200ms ease-out;
  --focus-ring:2px solid var(--color-or);
  --focus-offset:2px;
}

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

*{
  margin:0;
}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  font-family:var(--font-body);
  font-size:var(--text-base);
  line-height:var(--text-base-lh);
  font-weight:400;
  color:var(--color-ivoire);
  background-color:var(--color-felt);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img,picture,video,canvas,svg{
  display:block;
  max-width:100%;
  height:auto;
}

input,button,textarea,select{
  font:inherit;
  color:inherit;
}

button{
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
}

a{
  color:var(--color-or);
  text-decoration:none;
  transition:color var(--transition-fast);
}

a:hover{
  color:var(--color-or-clair);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:var(--focus-ring);
  outline-offset:var(--focus-offset);
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.2;
  color:var(--color-ivoire);
}

h1{
  font-size:clamp(2.5rem,5vw,var(--text-6xl));
  line-height:1;
  font-weight:700;
  margin-block-end:var(--space-5);
}

h2{
  font-size:clamp(1.75rem,3.5vw,var(--text-4xl));
  line-height:1.1;
  font-weight:700;
  margin-block-end:var(--space-4);
}

h3{
  font-size:clamp(1.375rem,2.5vw,var(--text-2xl));
  line-height:1.3;
  margin-block-end:var(--space-3);
}

h4{
  font-size:var(--text-xl);
  line-height:var(--text-xl-lh);
  margin-block-end:var(--space-3);
}

h5{
  font-size:var(--text-lg);
  line-height:var(--text-lg-lh);
  margin-block-end:var(--space-2);
}

h6{
  font-size:var(--text-base);
  line-height:var(--text-base-lh);
  margin-block-end:var(--space-2);
}

p{
  margin-block-end:var(--space-4);
  line-height:var(--text-base-lh);
}

p:last-child{
  margin-block-end:0;
}

ul,ol{
  margin-block-end:var(--space-4);
  padding-inline-start:var(--space-5);
}

ul:last-child,
ol:last-child{
  margin-block-end:0;
}

li{
  line-height:var(--text-base-lh);
}

blockquote{
  margin-block-end:var(--space-4);
  border-inline-start:3px solid var(--color-or);
  padding-inline-start:var(--space-5);
  font-family:var(--font-heading);
  font-style:italic;
  font-size:var(--text-lg);
  line-height:var(--text-lg-lh);
  color:var(--color-ivoire-doux);
}

blockquote:last-child{
  margin-block-end:0;
}

figure{
  margin-block-end:var(--space-4);
}

figure:last-child{
  margin-block-end:0;
}

figcaption{
  font-size:var(--text-sm);
  line-height:var(--text-sm-lh);
  color:var(--color-ivoire-doux);
  margin-block-start:var(--space-2);
}

hr{
  border:none;
  border-block-start:1px solid var(--color-ligne);
  margin-block:var(--space-6);
}

table{
  width:100%;
  border-collapse:collapse;
  margin-block-end:var(--space-4);
  font-size:var(--text-sm);
  line-height:var(--text-sm-lh);
}

table:last-child{
  margin-block-end:0;
}

th,td{
  text-align:start;
  padding:var(--space-3) var(--space-4);
  border-block-end:1px solid var(--color-ligne);
}

th{
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:var(--text-xs);
  color:var(--color-ivoire-doux);
}

label{
  display:block;
  font-size:var(--text-sm);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--color-ivoire-doux);
  margin-block-end:var(--space-2);
}

input,
textarea,
select{
  width:100%;
  background-color:var(--color-graphite);
  border:1px solid var(--color-ligne);
  border-radius:var(--radius-md);
  padding:var(--space-3) var(--space-4);
  color:var(--color-ivoire);
  font-size:var(--text-base);
  line-height:var(--text-base-lh);
  transition:border-color var(--transition-fast), background-color var(--transition-fast);
}

input::placeholder,
textarea::placeholder{
  color:var(--color-ivoire-doux);
  opacity:0.7;
}

input:focus,
textarea:focus,
select:focus{
  border-color:var(--color-or);
  outline:none;
}

textarea{
  min-height:120px;
  resize:vertical;
}

select{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C9A227' stroke-width='2' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right var(--space-4) center;
  padding-inline-end:var(--space-8);
}

fieldset{
  border:1px solid var(--color-ligne);
  border-radius:var(--radius-md);
  padding:var(--space-5);
  margin-block-end:var(--space-4);
}

fieldset:last-child{
  margin-block-end:0;
}

legend{
  font-size:var(--text-sm);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--color-ivoire-doux);
  padding-inline:var(--space-2);
}

.container{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:var(--container-pad-mobile);
}

@media (min-width:768px){
  .container{
    padding-inline:var(--container-pad-desktop);
  }
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding-inline:var(--space-6);
  border-radius:var(--radius-md);
  font-family:var(--font-body);
  font-size:var(--text-sm);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  line-height:1;
  transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
  cursor:pointer;
  white-space:nowrap;
}

.btn-primary{
  background-color:var(--color-or);
  color:var(--color-graphite-deep);
  border:1px solid var(--color-or);
}

.btn-primary:hover{
  background-color:var(--color-or-clair);
  border-color:var(--color-or-clair);
  color:var(--color-graphite-deep);
}

.btn-secondary{
  background-color:transparent;
  color:var(--color-or);
  border:1px solid var(--color-or);
}

.btn-secondary:hover{
  border-color:var(--color-or-clair);
  color:var(--color-or-clair);
}

.section{
  padding-block:var(--space-7);
}

@media (min-width:768px){
  .section{
    padding-block:var(--space-8);
  }
}

@media (min-width:1024px){
  .section{
    padding-block:var(--space-9);
  }
}

.section-title{
  font-family:var(--font-heading);
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--color-ivoire);
  position:relative;
  padding-block-end:var(--space-4);
  margin-block-end:var(--space-5);
}

.section-title::after{
  content:'';
  display:block;
  width:48px;
  height:2px;
  background-color:var(--color-or);
  margin-block-start:var(--space-3);
}

.card{
  background-color:var(--color-felt-raised);
  border:1px solid var(--color-ligne);
  border-radius:var(--radius-md);
  padding:var(--space-6);
}

.card > :last-child{
  margin-block-end:0;
}

.panel{
  background-color:var(--color-graphite);
  border:1px solid var(--color-ligne);
  border-radius:var(--radius-md);
  padding:var(--space-6);
}

.panel > :last-child{
  margin-block-end:0;
}

.badge{
  display:inline-block;
  background-color:var(--color-bordeaux);
  color:var(--color-ivoire);
  border-radius:var(--radius-sm);
  padding:var(--space-1) var(--space-3);
  font-size:var(--text-xs);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  line-height:var(--text-xs-lh);
}

.meta{
  font-size:var(--text-xs);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--color-ivoire-doux);
  line-height:var(--text-xs-lh);
}

.quote{
  border-inline-start:3px solid var(--color-or);
  padding-inline-start:var(--space-5);
  font-family:var(--font-heading);
  font-style:italic;
  font-size:var(--text-lg);
  line-height:var(--text-lg-lh);
  color:var(--color-ivoire-doux);
}

.quote > :last-child{
  margin-block-end:0;
}

.divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-3);
  margin-block:var(--space-6);
}

.divider::before,
.divider::after{
  content:'';
  flex:1;
  height:1px;
  background-color:var(--color-ligne);
}

.divider::after{
  content:'';
}

.divider-diamond{
  width:8px;
  height:8px;
  background-color:var(--color-or);
  transform:rotate(45deg);
  flex-shrink:0;
}

.overlay{
  background-color:var(--color-graphite-deep);
  box-shadow:var(--shadow-overlay);
  border-radius:var(--radius-md);
}

.image-frame{
  position:relative;
  border-radius:var(--radius-md);
  overflow:hidden;
}

.image-frame::before{
  content:'';
  position:absolute;
  inset:0;
  border-block-start:1px solid var(--color-or);
  border-inline-start:1px solid var(--color-or);
  pointer-events:none;
  z-index:1;
  border-start-start-radius:var(--radius-md);
}

.image-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(0.2);
}

.image-veil{
  position:relative;
}

.image-veil::after{
  content:'';
  position:absolute;
  inset:0;
  background-color:var(--color-felt);
  opacity:0.2;
  pointer-events:none;
}

.flex{
  display:flex;
  gap:var(--space-4);
}

.flex > *{
  min-width:0;
}

.flex-wrap{
  flex-wrap:wrap;
}

.flex-center{
  align-items:center;
  justify-content:center;
}

.flex-between{
  align-items:center;
  justify-content:space-between;
}

.flex-column{
  flex-direction:column;
}

.flex-1{
  flex:1;
}

.flex-auto{
  flex:0 0 auto;
}

@media (max-width:767px){
  .flex-responsive{
    flex-direction:column;
  }
}

@media (min-width:768px){
  .flex-row-md{
    flex-direction:row;
  }
}

@media (min-width:1024px){
  .flex-row-lg{
    flex-direction:row;
  }
}

.grid-auto{
  display:grid;
  gap:var(--space-5);
  grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));
}

.grid-auto > *{
  min-width:0;
}

.grid-2{
  display:grid;
  gap:var(--space-5);
  grid-template-columns:1fr;
}

.grid-2 > *{
  min-width:0;
}

@media (min-width:768px){
  .grid-2{
    grid-template-columns:repeat(2,1fr);
  }
}

.grid-3{
  display:grid;
  gap:var(--space-5);
  grid-template-columns:1fr;
}

.grid-3 > *{
  min-width:0;
}

@media (min-width:768px){
  .grid-3{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (min-width:1024px){
  .grid-3{
    grid-template-columns:repeat(3,1fr);
  }
}

.grid-4{
  display:grid;
  gap:var(--space-5);
  grid-template-columns:1fr;
}

.grid-4 > *{
  min-width:0;
}

@media (min-width:768px){
  .grid-4{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (min-width:1024px){
  .grid-4{
    grid-template-columns:repeat(4,1fr);
  }
}

.content-list{
  list-style:none;
  padding-inline-start:0;
  margin-block-end:var(--space-4);
}

.content-list:last-child{
  margin-block-end:0;
}

.content-list li{
  padding-block-end:var(--space-3);
  margin-block-end:var(--space-3);
  border-block-end:1px solid var(--color-ligne);
}

.content-list li:last-child{
  padding-block-end:0;
  margin-block-end:0;
  border-block-end:none;
}

.surface-felt{
  background-color:var(--color-felt);
}

.surface-felt-raised{
  background-color:var(--color-felt-raised);
}

.surface-graphite{
  background-color:var(--color-graphite);
}

.surface-graphite-deep{
  background-color:var(--color-graphite-deep);
}

.surface-bordeaux{
  background-color:var(--color-bordeaux);
}

.surface-bois{
  background-color:var(--color-bois);
}

.text-ivoire{
  color:var(--color-ivoire);
}

.text-ivoire-doux{
  color:var(--color-ivoire-doux);
}

.text-or{
  color:var(--color-or);
}

.text-or-clair{
  color:var(--color-or-clair);
}

.text-center{
  text-align:center;
}

.text-uppercase{
  text-transform:uppercase;
  letter-spacing:0.08em;
}

.text-small{
  font-size:var(--text-sm);
  line-height:var(--text-sm-lh);
}

.text-xs{
  font-size:var(--text-xs);
  line-height:var(--text-xs-lh);
}

.text-lg{
  font-size:var(--text-lg);
  line-height:var(--text-lg-lh);
}

.text-xl{
  font-size:var(--text-xl);
  line-height:var(--text-xl-lh);
}

.font-heading{
  font-family:var(--font-heading);
}

.font-body{
  font-family:var(--font-body);
}

.mt-1{margin-block-start:var(--space-1);}
.mt-2{margin-block-start:var(--space-2);}
.mt-3{margin-block-start:var(--space-3);}
.mt-4{margin-block-start:var(--space-4);}
.mt-5{margin-block-start:var(--space-5);}
.mt-6{margin-block-start:var(--space-6);}
.mt-7{margin-block-start:var(--space-7);}
.mt-8{margin-block-start:var(--space-8);}

.mb-1{margin-block-end:var(--space-1);}
.mb-2{margin-block-end:var(--space-2);}
.mb-3{margin-block-end:var(--space-3);}
.mb-4{margin-block-end:var(--space-4);}
.mb-5{margin-block-end:var(--space-5);}
.mb-6{margin-block-end:var(--space-6);}
.mb-7{margin-block-end:var(--space-7);}
.mb-8{margin-block-end:var(--space-8);}

.p-1{padding:var(--space-1);}
.p-2{padding:var(--space-2);}
.p-3{padding:var(--space-3);}
.p-4{padding:var(--space-4);}
.p-5{padding:var(--space-5);}
.p-6{padding:var(--space-6);}
.p-7{padding:var(--space-7);}
.p-8{padding:var(--space-8);}

.radius-none{border-radius:var(--radius-none);}
.radius-sm{border-radius:var(--radius-sm);}
.radius-md{border-radius:var(--radius-md);}
.radius-lg{border-radius:var(--radius-lg);}
.radius-pill{border-radius:var(--radius-pill);}

.shadow-overlay{
  box-shadow:var(--shadow-overlay);
}

.border-ligne{
  border:1px solid var(--color-ligne);
}

.border-or{
  border:2px solid var(--color-or);
}

.border-top-or{
  border-block-start:1px solid var(--color-or);
}

.border-left-or{
  border-inline-start:1px solid var(--color-or);
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}