/* ==========================================================================
   L'Orchidée & Maral Events — Design system
   Salle de réception, traiteur et décoration événementielle à Antony (92)
   ========================================================================== */

:root{
  /* Palette — inspirée du logo (or) et de l'ambiance de la salle (blush, ivoire) */
  --gold:        #a97e3b;
  --gold-light:  #cda76a;
  --gold-dark:   #8a6429;
  --gold-soft:   #e9d9b8;

  --ink:         #2b2620;
  --ink-soft:    #5c554c;
  --ink-faint:   #8a8074;

  --cream:       #faf6ef;
  --cream-alt:   #f3ebdd;
  --white:       #ffffff;

  --blush:       #f1ddd6;
  --blush-soft:  #f8ece8;
  --mauve:       #b98c8c;

  --border:      #e7dcc8;
  --border-soft: #eee5d4;

  --success:     #4a7a5a;
  --error:       #b3453f;

  --font-heading: Georgia, 'Times New Roman', Times, serif;
  --font-body:    Avenir, 'Avenir Next', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

  --container:    1280px;
  --container-nr: 860px;

  --radius-sm: 3px;
  --radius:    6px;
  --radius-lg: 8px;

  --shadow-soft: 0 10px 40px -14px rgba(43,38,32,.22);
  --shadow-lift: 0 20px 60px -20px rgba(43,38,32,.32);

  --nav-h: 152px;
  --ease: cubic-bezier(.4,0,.2,1);
}

/* ==========================================================================
   Reset
   ========================================================================== */
*, *::before, *::after{ box-sizing: border-box; }
*{ margin: 0; }
html{ scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body{
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.65;
  font-weight: 400;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img, picture, video{ max-width: 100%; display: block; }
img{ height: auto; }
input, button, textarea, select{ font: inherit; color: inherit; }
button{ cursor: pointer; }
a{ color: inherit; text-decoration: none; }
ul, ol{ list-style: none; padding: 0; }
h1,h2,h3,h4{
  font-family: var(--font-heading);
  font-weight: 600;
  line-height: 1.18;
  color: var(--ink);
  text-wrap: balance;
  letter-spacing: 0;
}
p{ text-wrap: pretty; }
table{ border-collapse: collapse; }

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

:focus-visible{
  outline: 2px solid var(--gold-dark);
  outline-offset: 3px;
  border-radius: 2px;
}

.skip-link{
  position: absolute;
  left: 1rem;
  top: -60px;
  background: var(--ink);
  color: var(--white);
  padding: .75rem 1.25rem;
  border-radius: var(--radius-sm);
  z-index: 999;
  transition: top .2s var(--ease);
}
.skip-link:focus{ top: 1rem; }

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.container{
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 1.5rem;
}
.container-narrow{
  width: 100%;
  max-width: var(--container-nr);
  margin-inline: auto;
  padding-inline: 1.5rem;
}
.section{ padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.section-alt{ background: var(--cream-alt); }
.section-soft{
  background:
    linear-gradient(90deg, rgba(169,126,59,.08), transparent 28%, transparent 72%, rgba(185,140,140,.1)),
    var(--cream);
}
.section-ink{ background: var(--ink); color: var(--blush-soft); }
.section-ink h2, .section-ink h3{ color: var(--white); }

.section-head{
  max-width: 720px;
  margin-bottom: clamp(2rem, 4vw, 3.25rem);
}
.section-head.center{ margin-inline: auto; text-align: center; }

.eyebrow{
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold-dark);
  margin-bottom: 1rem;
}
.eyebrow::before{
  content: "";
  width: 28px;
  height: 1px;
  background: var(--gold);
}
.section-head.center .eyebrow{ justify-content: center; }
.section-head.center .eyebrow::before{ display: none; }

h2.section-title{ font-size: clamp(1.9rem, 3.4vw, 2.75rem); }
h3.card-title{ font-size: 1.3rem; }

.lead{
  font-size: 1.1rem;
  color: var(--ink-soft);
  margin-top: 1rem;
  max-width: 62ch;
}

.divider-flower{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  color: var(--gold);
  margin-block: 1.5rem;
}
.divider-flower::before, .divider-flower::after{
  content: "";
  width: 48px;
  height: 1px;
  background: var(--border);
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-width: 0;
  padding: .9rem 1.9rem;
  border-radius: 999px;
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .02em;
  border: 1px solid transparent;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  white-space: nowrap;
}
.btn:hover{ transform: translateY(-2px); }
.btn:active{ transform: translateY(0); }

.btn-gold{
  background: linear-gradient(135deg, var(--gold-light), var(--gold-dark));
  color: var(--white);
  box-shadow: var(--shadow-soft);
}
.btn-gold:hover{ box-shadow: var(--shadow-lift); }

.btn-outline{
  background: transparent;
  color: var(--ink);
  border-color: var(--ink);
}
.btn-outline:hover{ background: var(--ink); color: var(--white); }

.btn-outline-light{
  background: transparent;
  color: var(--white);
  border-color: rgba(255,255,255,.55);
}
.btn-outline-light:hover{ background: var(--white); color: var(--ink); }

.btn-ghost{
  background: rgba(169,126,59,.1);
  color: var(--gold-dark);
}
.btn-ghost:hover{ background: rgba(169,126,59,.18); }

.btn-block{ width: 100%; }
.btn-sm{ padding: .65rem 1.3rem; font-size: .85rem; }

.btn-row{
  display: flex;
  flex-wrap: wrap;
  gap: .9rem;
}

/* ==========================================================================
   Header / Navigation
   ========================================================================== */
.site-header{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 500;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  background: rgba(250,246,239,.96);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid transparent;
  transition: background-color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease), height .3s var(--ease);
}
.site-header.is-scrolled{
  background: rgba(250,246,239,.96);
  border-color: var(--border);
  box-shadow: 0 8px 30px -18px rgba(43,38,32,.35);
  height: 140px;
}

/* Homepage uses the same premium light header shown in the reference. */
.site-header.is-home{
  background: rgba(250,246,239,.96);
  border-color: var(--border);
}
.nav-wrap{
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  position: relative;
}
.site-logo{
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  text-decoration: none;
}
.site-logo a,
.site-logo img{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.site-logo img{
  display: block;
  width: 220px;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  object-position: left center;
  image-rendering: auto;
  opacity: 1;
  filter: none;
  transform: none;
}
@media (max-width: 1320px){
  .nav-wrap{
    padding-inline: 1rem;
    gap: .9rem;
  }
  .nav-main{ gap: .72rem; }
  .nav-main a{ font-size: .8rem; }
  .nav-cta-desktop{ padding-inline: .95rem; }
}
@media (max-width: 1040px){
  :root{ --nav-h: 132px; }
  .site-header.is-scrolled{ height: 124px; }
  .site-logo img{
    width: 180px;
  }
}
@media (max-width: 520px){
  :root{ --nav-h: 112px; }
  .site-header.is-scrolled{ height: 104px; }
  .nav-wrap{ padding-inline: 1rem; gap: .6rem; }
  .nav-actions{
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
  }
  .site-logo{
    max-width: calc(100vw - 80px);
  }
  .site-logo img{
    width: 120px;
  }
}
@media (max-width: 380px){
  :root{ --nav-h: 104px; }
  .site-header.is-scrolled{ height: 98px; }
  .nav-wrap{ padding-inline: .75rem; gap: .5rem; }
  .nav-actions{ right: .75rem; }
  .site-logo{ max-width: calc(100vw - 70px); }
  .site-logo img{
    width: 100px;
  }
}

.nav-main{
  display: flex;
  align-items: center;
  gap: clamp(1rem, 1.8vw, 1.8rem);
}
.nav-main a{
  font-size: .92rem;
  font-weight: 500;
  color: var(--ink-soft);
  position: relative;
  padding-block: .3rem;
  transition: color .2s var(--ease);
}
.nav-main a::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s var(--ease);
}
.nav-main a:hover, .nav-main a[aria-current="page"]{ color: var(--ink); }
.nav-main a:hover::after, .nav-main a[aria-current="page"]::after{ transform: scaleX(1); }

.nav-actions{ display: flex; align-items: center; gap: .9rem; }

@media (max-width: 1160px){
  .nav-main{ gap: .95rem; }
  .nav-main a{ font-size: .86rem; }
  .nav-cta-desktop{ padding-inline: 1.2rem; }
}

.nav-toggle{
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--white);
  flex-shrink: 0;
}
.nav-toggle span{
  display: block;
  width: 18px;
  height: 2px;
  margin-inline: auto;
  background: var(--ink);
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1240px){
  .nav-main{
    position: fixed;
    inset: var(--nav-h) 0 0 0;
    background: var(--cream);
    z-index: 520;
    min-height: calc(100dvh - var(--nav-h));
    height: calc(100dvh - var(--nav-h));
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    gap: 0;
    padding: 1rem 1.5rem 2rem;
    transform: translateX(100%);
    transition: transform .35s var(--ease);
    overflow-y: auto;
  }
  .nav-main.is-open{ transform: translateX(0); }
  .nav-main a{
    padding: 1rem 0;
    border-bottom: 1px solid var(--border-soft);
    font-size: 1.05rem;
  }
  .nav-main a::after{ display: none; }
  .nav-main .btn{ margin-top: 1.25rem; }
  .nav-toggle{ display: flex; }
  .nav-actions .btn-gold.nav-cta-desktop{ display: none; }
}
.nav-phone{ display: none; }
@media (max-width: 1240px){
  .nav-phone{
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1rem;
    font-weight: 600;
    color: var(--ink) !important;
  }
  .nav-phone::after{ display: none; }
}
@media (min-width: 1241px){
  .nav-main .btn{ display: none; }
}

body.nav-open{ overflow: hidden; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position: relative;
  min-height: calc(100svh - var(--nav-h));
  margin-top: var(--nav-h);
  display: flex;
  align-items: flex-end;
  color: var(--white);
  overflow: hidden;
}
.hero-media{
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-media video, .hero-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-fallback-img{ display: none; }
.hero-media.show-fallback video{ display: none; }
.hero-media.show-fallback .hero-fallback-img{ display: block; }
.hero-media::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 35%, rgba(169,126,59,.2), transparent 30%),
    linear-gradient(90deg, rgba(20,16,10,.58) 0%, rgba(20,16,10,.34) 44%, rgba(20,16,10,.22) 100%),
    linear-gradient(180deg, rgba(20,16,10,.22) 0%, rgba(20,16,10,.38) 48%, rgba(20,16,10,.88) 100%);
}
.hero-content{
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding: 0 1.5rem clamp(3rem, 8vw, 6rem);
}
.hero-content .eyebrow{ color: var(--gold-light); }
.hero-content .eyebrow::before{ background: var(--gold-light); }
.hero-content h1{
  font-size: clamp(2.35rem, 5.15vw, 4.55rem);
  line-height: 1.1;
  max-width: 14ch;
  color: var(--white);
}
.hero-content p{
  max-width: 54ch;
  margin-top: 1.25rem;
  font-size: 1.1rem;
  color: rgba(255,255,255,.88);
}
.hero-content .btn-row{ margin-top: 2.25rem; }
@media (max-width: 520px){
  .hero-content{
    padding-inline: 1.5rem;
    padding-right: 2.25rem;
    padding-bottom: 4.6rem;
  }
  .hero-content .eyebrow{
    max-width: calc(100vw - 4.5rem);
    flex-wrap: wrap;
    gap: .45rem;
    font-size: .7rem;
    letter-spacing: .12em;
  }
  .hero-content .eyebrow::before{
    width: 24px;
  }
  .hero-content h1{
    max-width: 10.2ch;
    font-size: clamp(2rem, 9.7vw, 2.65rem);
    line-height: 1.08;
  }
  .hero-content p{
    max-width: calc(100vw - 4.5rem);
    font-size: .98rem;
    line-height: 1.7;
    overflow-wrap: break-word;
  }
  .hero-content .btn-row{
    flex-direction: column;
    align-items: stretch;
    max-width: calc(100vw - 4.5rem);
    gap: .75rem;
  }
  .hero-content .btn{
    width: 100%;
    flex: 0 0 auto;
    padding-inline: 1.15rem;
  }
}
.hero-scroll{
  position: absolute;
  bottom: 1.75rem;
  right: 1.75rem;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
}
.hero-scroll .line{
  width: 1px;
  height: 34px;
  background: rgba(255,255,255,.5);
  overflow: hidden;
}
.hero-scroll .line::after{
  content: "";
  display: block;
  width: 100%;
  height: 40%;
  background: var(--gold-light);
  animation: scrollLine 1.8s infinite var(--ease);
}
@keyframes scrollLine{
  0%{ transform: translateY(-100%); }
  100%{ transform: translateY(250%); }
}

/* Page header (inner pages, no video) */
.page-hero{
  position: relative;
  margin-top: var(--nav-h);
  min-height: 56vh;
  display: flex;
  align-items: flex-end;
  color: var(--white);
  overflow: hidden;
}
.page-hero img{
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; z-index: 0;
}
.page-hero::after{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,16,10,.3) 10%, rgba(20,16,10,.82) 100%);
  z-index: 0;
}
.page-hero-content{
  position: relative; z-index: 1;
  width: 100%; max-width: var(--container);
  margin-inline: auto;
  padding: 2rem 1.5rem 3.5rem;
}
.maral-content-logo{
  display: block;
  width: clamp(170px, 20vw, 250px);
  height: auto;
  margin: 0 0 1.5rem;
  object-fit: contain;
  opacity: 1;
  filter: none;
  transform: none;
}
.page-hero-content h1{ color: var(--white); font-size: clamp(2.1rem, 4.6vw, 3.4rem); max-width: 20ch; }
.page-hero-content p{ max-width: 58ch; margin-top: 1rem; color: rgba(255,255,255,.88); font-size: 1.05rem; }

/* Breadcrumb */
.breadcrumb{
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  font-size: .82rem;
  color: rgba(255,255,255,.75);
  margin-bottom: 1.25rem;
}
.breadcrumb a{ color: rgba(255,255,255,.75); transition: color .2s; }
.breadcrumb a:hover{ color: var(--white); }
.breadcrumb span[aria-hidden]{ color: rgba(255,255,255,.45); }
.breadcrumb-light{ color: var(--ink-faint); }
.breadcrumb-light a{ color: var(--ink-soft); }
.breadcrumb-light a:hover{ color: var(--gold-dark); }

/* ==========================================================================
   Stats strip
   ========================================================================== */
.stats{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.stat{ padding: 1.5rem clamp(1rem, 3vw, 2rem); border-right: 1px solid var(--border); }
.stat:last-child{ border-right: 0; }
.stat b{
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(1.7rem, 3.2vw, 2.3rem);
  color: var(--gold-dark);
  line-height: 1;
}
.stat span{
  display: block;
  margin-top: .6rem;
  font-size: .9rem;
  color: var(--ink-soft);
  letter-spacing: .02em;
}
@media (max-width: 720px){
  .stats{ grid-template-columns: 1fr; }
  .stat{ border-right: 0; border-bottom: 1px solid var(--border); text-align: left; }
  .stat:last-child{ border-bottom: 0; }
}

/* Salle de reception page */
.salle-stats-section{
  padding-block: clamp(2rem, 4vw, 3rem);
}
.salle-stats{
  grid-template-columns: repeat(4, 1fr);
  margin-top: 0;
  background: rgba(255,255,255,.72);
  box-shadow: var(--shadow-soft);
}
.salle-intro-grid,
.salle-feature-grid{
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.salle-intro-copy .lead + .lead{
  margin-top: 1rem;
}
.salle-highlight{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  margin-top: 1.7rem;
  padding: 1.1rem;
  border: 1px solid rgba(169,126,59,.2);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.58);
}
.salle-highlight span{
  font-family: var(--font-heading);
  font-size: 2.3rem;
  line-height: 1;
  color: var(--gold-soft);
  -webkit-text-stroke: 1px var(--gold);
}
.salle-highlight p{
  color: var(--ink-soft);
  font-size: .95rem;
  line-height: 1.7;
}
.salle-intro-media,
.salle-feature-media{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lift);
}
.salle-intro-media img,
.salle-feature-media img{
  display: block;
  width: 100%;
  height: clamp(460px, 43vw, 620px);
  object-fit: cover;
  transition: transform .55s var(--ease);
}
.salle-intro-media:hover img,
.salle-feature-media:hover img{
  transform: scale(1.035);
}
.salle-media-note{
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 1.2rem;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: var(--radius-lg);
  background: rgba(28,23,18,.72);
  color: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
}
.salle-media-note strong{
  display: block;
  color: var(--white);
  margin-bottom: .25rem;
}
.salle-card-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.35rem);
}
.salle-info-card{
  min-width: 0;
  padding: 1.35rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.68);
  box-shadow: 0 14px 36px -30px rgba(43,38,32,.38);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.salle-info-card:hover{
  transform: translateY(-4px);
  border-color: rgba(169,126,59,.36);
  box-shadow: var(--shadow-soft);
}
.salle-info-card h3{
  margin-top: 1.1rem;
  margin-bottom: .55rem;
  font-size: 1.05rem;
}
.salle-info-card p{
  color: var(--ink-soft);
  font-size: .93rem;
  line-height: 1.7;
}
.salle-feature-grid{
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
}
.salle-feature-copy{
  padding: clamp(1.5rem, 3vw, 2.4rem);
  border: 1px solid rgba(169,126,59,.18);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.5);
}
.salle-feature-list{
  margin-block: 1.6rem;
}
.salle-event-grid .event-tile{
  min-height: 168px;
}
.salle-gallery{
  margin-top: 1.5rem;
}
.salle-faq-section .faq-grid{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Decoration page */
.decor-stats-section{
  padding-block: clamp(2rem, 4vw, 3rem);
}
.decor-stats{
  grid-template-columns: repeat(4, 1fr);
  margin-top: 0;
  background: rgba(255,255,255,.72);
  box-shadow: var(--shadow-soft);
}
.decor-intro-grid{
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(2.4rem, 5vw, 4rem);
  align-items: center;
  min-width: 0;
}
.decor-intro-grid > *{
  min-width: 0;
}
.decor-intro-card{
  min-width: 0;
  padding: clamp(1.8rem, 4vw, 2.6rem);
  border: 1px solid rgba(169,126,59,.18);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.58);
  box-shadow: 0 18px 55px -42px rgba(43,38,32,.35);
}
.decor-intro-card .lead + .lead{
  margin-top: 1rem;
}
.decor-note{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .85rem;
  align-items: start;
  margin-top: 1.4rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(169,126,59,.22);
  border-radius: var(--radius);
  background: rgba(250,246,239,.76);
}
.decor-note span{
  color: var(--gold-dark);
  line-height: 1.4;
}
.decor-note p{
  color: var(--ink-soft);
  font-size: .95rem;
}
.decor-mood-board{
  display: grid;
  gap: 1rem;
  align-content: center;
  min-width: 0;
  max-width: 100%;
  width: 100%;
}
.decor-visual-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.25rem);
  width: 100%;
}
.decor-visual-grid img{
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: clamp(500px, 43vw, 620px);
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lift);
  transition: transform .55s var(--ease);
}
.decor-visual-grid:hover img{
  transform: scale(1.025);
}
.decor-mood-caption{
  justify-self: start;
  max-width: 420px;
  padding: .85rem 1rem;
  border: 1px solid rgba(169,126,59,.22);
  border-radius: var(--radius-lg);
  background: rgba(43,38,32,.9);
  color: rgba(255,255,255,.76);
  box-shadow: 0 16px 34px -28px rgba(43,38,32,.46);
}
.decor-mood-caption strong{
  display: block;
  color: var(--white);
  font-family: var(--font-heading);
  font-size: 1.2rem;
  line-height: 1.15;
}
.decor-mood-caption span{
  display: block;
  margin-top: .2rem;
  font-size: .9rem;
}
.decor-service-grid,
.decor-gallery-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}
.decor-service-grid .pillar{
  min-height: 100%;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.decor-service-grid .pillar:hover{
  transform: translateY(-5px);
  border-color: rgba(169,126,59,.32);
  box-shadow: var(--shadow-soft);
}
.decor-gallery-grid .card-media{
  aspect-ratio: 4 / 3;
}
.decor-gallery-grid .card img{
  height: 100%;
}
.decor-faq-section .faq-grid{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* About page */
.about-hero{
  min-height: 52vh;
}
.about-stats-section{
  padding-block: clamp(2rem, 4vw, 3rem);
}
.about-stats{
  grid-template-columns: repeat(4, 1fr);
  margin-top: 0;
  background: rgba(255,255,255,.72);
  box-shadow: var(--shadow-soft);
}
.about-stats .stat b{
  font-size: clamp(1.45rem, 2.8vw, 2.05rem);
}
.about-intro-grid{
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  min-width: 0;
}
.about-intro-grid > *{
  min-width: 0;
}
.about-intro-card{
  padding: clamp(1.8rem, 4vw, 2.6rem);
  border: 1px solid rgba(169,126,59,.18);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.58);
  box-shadow: 0 18px 55px -42px rgba(43,38,32,.35);
}
.about-intro-card .lead + .lead{
  margin-top: 1rem;
}
.about-highlight{
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  margin-top: 1.5rem;
  padding: 1rem;
  border: 1px solid rgba(169,126,59,.22);
  border-radius: var(--radius);
  background: rgba(250,246,239,.76);
}
.about-highlight span{
  font-family: var(--font-heading);
  font-size: 2.1rem;
  color: var(--gold-soft);
  -webkit-text-stroke: 1px var(--gold);
  line-height: 1;
}
.about-highlight p{
  color: var(--ink-soft);
  font-size: .95rem;
}
.about-media{
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lift);
}
.about-media img{
  display: block;
  width: 100%;
  height: clamp(460px, 43vw, 620px);
  object-fit: cover;
  transition: transform .55s var(--ease);
}
.about-media:hover img{
  transform: scale(1.035);
}
.about-media-note{
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 1.2rem;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: var(--radius-lg);
  background: rgba(28,23,18,.72);
  color: rgba(255,255,255,.78);
  backdrop-filter: blur(10px);
}
.about-media-note strong{
  display: block;
  color: var(--white);
  margin-bottom: .25rem;
}
.about-value-grid,
.about-offer-grid{
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
}
.about-value-grid{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.about-offer-grid{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.about-value-grid .pillar{
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.about-value-grid .pillar:hover{
  transform: translateY(-5px);
  border-color: rgba(169,126,59,.32);
  box-shadow: var(--shadow-soft);
}
@media (max-width: 980px){
  .salle-stats{
    grid-template-columns: repeat(2, 1fr);
  }
  .salle-stats .stat:nth-child(2){
    border-right: 0;
  }
  .salle-stats .stat:nth-child(-n+2){
    border-bottom: 1px solid var(--border);
  }
  .salle-card-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .salle-intro-grid,
  .salle-feature-grid{
    grid-template-columns: 1fr;
  }
  .salle-feature-media{
    order: 2;
  }
  .salle-intro-media img,
  .salle-feature-media img{
    height: auto;
    aspect-ratio: 16 / 10;
  }
  .decor-stats{
    grid-template-columns: repeat(2, 1fr);
  }
  .decor-stats .stat:nth-child(2){
    border-right: 0;
  }
  .decor-stats .stat:nth-child(-n+2){
    border-bottom: 1px solid var(--border);
  }
  .decor-intro-grid{
    grid-template-columns: 1fr;
  }
  .decor-mood-board{
    max-width: 720px;
    margin-inline: auto;
  }
  .decor-visual-grid img{
    height: clamp(320px, 38vw, 390px);
  }
  .decor-service-grid,
  .decor-gallery-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .about-stats,
  .about-value-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .about-stats .stat:nth-child(2){
    border-right: 0;
  }
  .about-stats .stat:nth-child(-n+2){
    border-bottom: 1px solid var(--border);
  }
  .about-intro-grid{
    grid-template-columns: 1fr;
  }
  .about-media img{
    height: auto;
    aspect-ratio: 16 / 10;
  }
  .about-offer-grid{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px){
  .salle-stats,
  .salle-card-grid,
  .salle-faq-section .faq-grid{
    grid-template-columns: 1fr;
  }
  .salle-stats .stat{
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .salle-stats .stat:last-child{
    border-bottom: 0;
  }
  .salle-highlight{
    grid-template-columns: 1fr;
  }
  .salle-feature-copy{
    padding: 1.2rem;
  }
  .salle-intro-media img,
  .salle-feature-media img{
    aspect-ratio: 4 / 3;
  }
  .decor-stats,
  .decor-service-grid,
  .decor-gallery-grid,
  .decor-faq-section .faq-grid{
    grid-template-columns: 1fr;
  }
  .decor-stats .stat{
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .decor-stats .stat:last-child{
    border-bottom: 0;
  }
  .decor-intro-card{
    padding: 1.35rem;
  }
  .decor-note{
    grid-template-columns: 1fr;
  }
  .decor-mood-board,
  .decor-visual-grid{
    grid-template-columns: 1fr;
  }
  .decor-visual-grid img{
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .decor-visual-grid:hover img{
    transform: none;
  }
  .decor-mood-caption{
    margin-top: .85rem;
    background: var(--ink);
  }
  .about-stats,
  .about-value-grid{
    grid-template-columns: 1fr;
  }
  .about-stats .stat{
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
  .about-stats .stat:last-child{
    border-bottom: 0;
  }
  .about-intro-card{
    padding: 1.35rem;
  }
  .about-highlight{
    grid-template-columns: 1fr;
  }
  .about-media img{
    aspect-ratio: 4 / 3;
  }
  .about-media-note{
    position: static;
    border-radius: 0;
    background: var(--ink);
  }
}

/* Homepage intro badges */
.home-badge-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
  margin: 2rem auto 0;
  max-width: 900px;
}
.home-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 54px;
  padding: .75rem 1rem;
  border: 1px solid rgba(169,126,59,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.55);
  color: var(--ink);
  font-size: .92rem;
  font-weight: 600;
  box-shadow: 0 12px 34px -28px rgba(43,38,32,.42);
  transition: transform .25s var(--ease), border-color .25s var(--ease), background-color .25s var(--ease);
}
.home-badge:hover{
  transform: translateY(-2px);
  border-color: rgba(169,126,59,.5);
  background: rgba(255,255,255,.78);
}
.home-badge svg{
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  fill: none;
  stroke: var(--gold-dark);
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.home-seo-note{
  max-width: 760px;
  margin: 1.5rem auto 0;
  color: var(--ink-soft);
  font-size: .98rem;
}
@media (max-width: 820px){
  .home-badge-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .home-badge-grid{ grid-template-columns: 1fr; gap: .65rem; }
  .home-badge{ justify-content: flex-start; border-radius: var(--radius-lg); }
}

/* ==========================================================================
   Cards — services / grid
   ========================================================================== */
.grid{ display: grid; gap: 1.75rem; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px){
  .grid-3, .grid-4{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px){
  .grid-3, .grid-4, .grid-2{ grid-template-columns: 1fr; }
}

.card{
  background: var(--white);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--border-soft);
  display: flex;
  flex-direction: column;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-lift); }
.card-media{ position: relative; aspect-ratio: 4/3; overflow: hidden; }
.card-media img{ width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.card:hover .card-media img{ transform: scale(1.06); }
.card-body{ padding: 1.6rem; display: flex; flex-direction: column; gap: .7rem; flex: 1; }
.card-body p{ color: var(--ink-soft); font-size: .95rem; flex: 1; }
.card-link{
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .88rem; font-weight: 600; color: var(--gold-dark);
  margin-top: .3rem;
}
.card-link svg{ transition: transform .25s var(--ease); }
.card:hover .card-link svg{ transform: translateX(4px); }

/* Traiteur gallery */
.traiteur-gallery .section-head{
  max-width: 820px;
  margin-inline: auto;
}
.traiteur-gallery .section-head .lead{
  margin-top: 1rem;
  margin-inline: auto;
}
.traiteur-gallery-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: stretch;
}
.traiteur-offer-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.4rem);
}
.traiteur-gallery-item{
  position: relative;
  min-width: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--ink);
  box-shadow: var(--shadow-soft);
  border: 1px solid var(--border-soft);
}
.traiteur-gallery-item img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.traiteur-gallery-item:hover img{
  transform: scale(1.04);
}
.traiteur-gallery-item figcaption{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.4rem 1.2rem 1rem;
  color: var(--white);
  font-size: .84rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: linear-gradient(180deg, transparent, rgba(20,16,10,.78));
}
@media (max-width: 1100px){
  .traiteur-gallery-grid,
  .traiteur-offer-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px){
  .traiteur-gallery-grid,
  .traiteur-offer-grid{
    grid-template-columns: 1fr;
  }
}

/* Service pillar cards (icon based) */
.pillar{
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  padding: 2rem 1.75rem;
  text-align: left;
}
.pillar .icon{
  width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--blush-soft);
  color: var(--gold-dark);
  margin-bottom: 1.2rem;
}
.pillar h3{ font-size: 1.15rem; margin-bottom: .5rem; }
.pillar p{ color: var(--ink-soft); font-size: .93rem; }

/* Checklist */
.check-list li{
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding-block: .5rem;
  font-size: .96rem;
  color: var(--ink-soft);
  border-bottom: 1px dashed var(--border);
}
.check-list li:last-child{ border-bottom: none; }
.check-list li svg{ flex-shrink: 0; margin-top: 3px; color: var(--gold-dark); }

/* Two-column media/text block */
.split{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.split.reverse .split-media{ order: 2; }
.split-media{ position: relative; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-soft); }
.split-media img{ width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/5; }
.split-media.duo{
  display: grid;
  grid-template-columns: .82fr 1fr;
  gap: .9rem;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
}
.split-media.duo img{
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
}
.split-media.duo img:first-child{ aspect-ratio: 3/4; margin-top: 2.4rem; }
.split-media.duo img:last-child{ aspect-ratio: 4/5; }

/* Editorial feature sections */
.feature-panel{
  position: relative;
  min-height: clamp(520px, 70vh, 760px);
  display: grid;
  align-items: end;
  overflow: hidden;
  color: var(--white);
}
.feature-panel img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.feature-panel::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(24,18,12,.86), rgba(24,18,12,.46) 48%, rgba(24,18,12,.12));
  z-index: 0;
}
.feature-panel .container{ position: relative; z-index: 1; }
.feature-copy{
  max-width: 610px;
  padding-block: clamp(3rem, 8vw, 5.5rem);
}
.feature-copy h2{ color: var(--white); font-size: clamp(2rem, 4vw, 3.2rem); }
.feature-copy p{ color: rgba(255,255,255,.86); margin-top: 1rem; }
.feature-list{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .8rem;
  margin-top: 1.7rem;
}
.feature-list span{
  border-top: 1px solid rgba(255,255,255,.32);
  padding-top: .7rem;
  color: rgba(255,255,255,.82);
  font-size: .9rem;
}

/* ==========================================================================
   Visite virtuelle 3D — Matterport
   ========================================================================== */
.matterport{
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.matterport-copy .btn-row{ margin-top: 1.75rem; }
.matterport-fallback{
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: 1rem;
  font-size: .85rem;
  color: var(--ink-faint);
}
.matterport-fallback a{ color: var(--gold-dark); font-weight: 600; text-decoration: underline; }

.matterport-frame{
  position: relative;
  aspect-ratio: 16/9;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--ink);
  box-shadow: var(--shadow-lift);
}
.matterport-frame img{
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
}
.matterport-frame iframe{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0;
}
.matterport-overlay{
  position: absolute; inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  text-align: center;
  padding: 1.5rem;
  background: linear-gradient(180deg, rgba(20,16,10,.15), rgba(20,16,10,.55));
  color: #fff;
  transition: opacity .35s var(--ease);
}
.matterport-frame.is-active .matterport-overlay{ opacity: 0; pointer-events: none; }
.matterport-badge{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .95rem;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.35);
  font-size: .76rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.matterport-play{
  width: 74px;
  min-width: 74px;
  height: 74px;
  min-height: 74px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.5);
  color: #fff;
  transition: transform .25s var(--ease), background-color .25s var(--ease);
}
.matterport-play:hover{ transform: scale(1.06); background: rgba(255,255,255,.28); }
.matterport-play svg{ width: 26px; height: 26px; margin-left: 3px; }
.matterport-overlay p{ color: rgba(255,255,255,.9); font-size: .92rem; margin: 0; }
@media (max-width: 860px){
  .matterport{ grid-template-columns: 1fr; }
}

.maral-grid{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.maral-media{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .9rem;
  align-items: stretch;
}
.maral-media img{
  width: 100%;
  height: clamp(380px, 34vw, 500px);
  object-fit: cover;
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.maral-media img:hover{
  transform: translateY(-4px) scale(1.015);
  box-shadow: var(--shadow-lift);
}
.maral-copy{
  align-self: center;
}
.maral-blocks{
  display: grid;
  gap: 1.5rem;
  margin-top: 2rem;
  border-top: 1px solid var(--border);
}
.maral-block{ padding-top: 1.35rem; }
.maral-block h3{ font-size: 1.15rem; margin-bottom: .4rem; }
.maral-block p{ color: var(--ink-soft); }

.editorial-gallery{
  display: grid;
  grid-template-columns: 1.35fr .8fr .8fr;
  grid-template-rows: repeat(2, minmax(210px, 1fr));
  gap: 1rem;
}
.editorial-gallery a{
  position: relative;
  display: block;
  width: 100%;
  min-height: 100%;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--ink);
  box-shadow: var(--shadow-soft);
}
.editorial-gallery a:first-child{ grid-row: span 2; }
.editorial-gallery img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.editorial-gallery a:hover img{ transform: scale(1.05); }
.gallery-tag{
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  padding: .42rem .75rem;
  background: rgba(250,246,239,.88);
  color: var(--ink);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 600;
}

.event-grid{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
}
.event-tile{
  min-height: 150px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.55);
  font-family: var(--font-heading);
  font-size: 1.05rem;
  box-shadow: 0 12px 34px -28px rgba(43,38,32,.35);
}
.event-icon{
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--blush-soft);
  color: var(--gold-dark);
}
.event-icon svg{
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 860px){
  .split{ grid-template-columns: 1fr; }
  .split.reverse .split-media{ order: 0; }
  .split-media img{ aspect-ratio: 16/10; }
  .split-media.duo{ grid-template-columns: 1fr 1fr; }
  .split-media.duo img:first-child{ margin-top: 1rem; }
  .maral-grid{ grid-template-columns: 1fr; }
  .maral-media img{ height: clamp(300px, 48vw, 420px); }
  .editorial-gallery{ grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .editorial-gallery a:first-child{ grid-column: span 2; min-height: 340px; }
  .event-grid{ grid-template-columns: repeat(2, 1fr); }
  .feature-list{ grid-template-columns: 1fr; }
}
@media (max-width: 560px){
  .editorial-gallery{ grid-template-columns: 1fr; }
  .editorial-gallery a:first-child{ grid-column: auto; min-height: 300px; }
  .editorial-gallery a{ min-height: 240px; }
  .event-grid{ grid-template-columns: 1fr; }
  .maral-media{ grid-template-columns: 1fr; }
  .maral-media img{ height: auto; aspect-ratio: 4 / 3; }
  .feature-panel::after{ background: linear-gradient(180deg, rgba(24,18,12,.18), rgba(24,18,12,.9)); }
}

/* Event type chips */
.chip-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}
.chip{
  display: flex; align-items: center; gap: .8rem;
  padding: 1.1rem 1.3rem;
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  font-weight: 500;
  font-size: .95rem;
  transition: border-color .25s var(--ease), transform .25s var(--ease);
}
.chip:hover{ border-color: var(--gold); transform: translateY(-3px); }
.chip .icon{ color: var(--gold-dark); flex-shrink: 0; }

/* SEO content blocks */
.faq-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.faq-item{
  min-width: 0;
  padding: 1.45rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.62);
  box-shadow: 0 12px 34px -30px rgba(43,38,32,.35);
}
.faq-item h3{
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: .55rem;
}
.faq-item p{
  color: var(--ink-soft);
  font-size: .95rem;
}
.seo-link-panel{
  margin-top: clamp(1.6rem, 3vw, 2.4rem);
  padding: 1.4rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.5);
}
.seo-link-panel p{
  color: var(--ink-soft);
  font-size: .95rem;
}
.seo-link-list{
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1rem;
}
.seo-link-list a{
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: .55rem .9rem;
  border: 1px solid rgba(169,126,59,.24);
  border-radius: 999px;
  color: var(--gold-dark);
  background: rgba(255,255,255,.52);
  font-size: .9rem;
  font-weight: 700;
  transition: background-color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}

/* Commercial conversion blocks */
.commercial-proof-grid{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.35rem);
}
.commercial-proof{
  min-width: 0;
  padding: 1.35rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.68);
  box-shadow: 0 14px 36px -30px rgba(43,38,32,.38);
}
.commercial-proof span{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: var(--blush-soft);
  color: var(--gold-dark);
  font-family: var(--font-heading);
  font-weight: 700;
}
.commercial-proof h3{
  font-size: 1.08rem;
  margin-bottom: .55rem;
}
.commercial-proof p{
  color: var(--ink-soft);
  font-size: .94rem;
}
.commercial-steps{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  counter-reset: commercial-step;
}
.commercial-step{
  position: relative;
  padding: 1.35rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-soft);
}
.commercial-step::before{
  counter-increment: commercial-step;
  content: counter(commercial-step, decimal-leading-zero);
  display: block;
  margin-bottom: .9rem;
  color: var(--gold-dark);
  font-family: var(--font-heading);
  font-size: 1.7rem;
  line-height: 1;
}
.commercial-step h3{ font-size: 1.08rem; margin-bottom: .5rem; }
.commercial-step p{ color: var(--ink-soft); font-size: .94rem; }
.commercial-link-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.commercial-link-card{
  display: block;
  padding: 1.15rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--ink-soft);
  box-shadow: 0 12px 32px -30px rgba(43,38,32,.34);
}
.commercial-link-card strong{
  display: block;
  margin-bottom: .4rem;
  color: var(--ink);
  font-family: var(--font-heading);
  font-size: 1.1rem;
  line-height: 1.25;
}
.conversion-note{
  max-width: 820px;
  margin: 1.6rem auto 0;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(169,126,59,.24);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.64);
  color: var(--ink-soft);
  text-align: center;
}
@media (max-width: 980px){
  .commercial-proof-grid,
  .commercial-steps{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .commercial-proof-grid,
  .commercial-steps,
  .commercial-link-grid{ grid-template-columns: 1fr; }
}
.seo-link-list a:hover{
  transform: translateY(-2px);
  border-color: rgba(169,126,59,.5);
  background: rgba(255,255,255,.82);
}
@media (max-width: 720px){
  .faq-grid{
    grid-template-columns: 1fr;
  }
}

/* Steps / method */
.steps{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.75rem; counter-reset: step; }
@media (max-width: 900px){ .steps{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .steps{ grid-template-columns: 1fr; } }
.step{ position: relative; padding-top: .5rem; }
.step::before{
  content: "";
  position: absolute;
  top: 1.45rem;
  left: 3.6rem;
  right: -1rem;
  height: 1px;
  background: var(--border);
}
.step:last-child::before{ display: none; }
@media (max-width: 900px){ .step::before{ display: none; } }
.step .num{
  font-family: var(--font-heading);
  font-size: 2.4rem;
  color: var(--gold-soft);
  -webkit-text-stroke: 1.5px var(--gold);
  display: block;
  margin-bottom: .75rem;
}
.step h3{ font-size: 1.05rem; margin-bottom: .5rem; }
.step p{ font-size: .9rem; color: var(--ink-soft); }

/* CTA band */
.cta-band{
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  padding: clamp(2.5rem, 6vw, 4.5rem);
  text-align: center;
  color: var(--white);
  isolation: isolate;
}
.cta-band img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.cta-band::after{
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(135deg, rgba(30,24,16,.88), rgba(80,58,32,.78));
}
.cta-band h2{ color: var(--white); font-size: clamp(1.7rem, 3.6vw, 2.4rem); }
.cta-band p{ color: rgba(255,255,255,.85); max-width: 52ch; margin: 1rem auto 0; }
.cta-band .btn-row{ justify-content: center; margin-top: 2rem; }

/* ==========================================================================
   Gallery
   ========================================================================== */
.gallery-hero{
  min-height: 48vh;
}
.gallery-intro-panel{
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(1.5rem, 4vw, 3.5rem);
  align-items: end;
  min-width: 0;
  max-width: 100%;
  margin-bottom: clamp(2rem, 4vw, 3rem);
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border: 1px solid rgba(169,126,59,.18);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.58);
  box-shadow: 0 18px 55px -42px rgba(43,38,32,.36);
}
.gallery-intro-panel > *{
  min-width: 0;
  max-width: 100%;
}
.gallery-intro-panel .section-title{
  margin-bottom: 0;
  overflow-wrap: break-word;
}
.gallery-intro-panel p:last-child{
  color: var(--ink-soft);
  max-width: 68ch;
  overflow-wrap: break-word;
}
.filter-bar{
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  min-width: 0;
  max-width: 100%;
  margin-bottom: 2.5rem;
}
.filter-btn{
  padding: .55rem 1.2rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--white);
  font-size: .85rem;
  font-weight: 500;
  color: var(--ink-soft);
  transition: all .25s var(--ease);
}
.filter-btn:hover{ border-color: var(--gold); color: var(--ink); }
.filter-btn.is-active{ background: var(--ink); border-color: var(--ink); color: var(--white); }

.gallery-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.25rem);
  align-items: stretch;
}
.gallery-item{
  aspect-ratio: 4 / 3;
  border-radius: var(--radius);
  overflow: hidden;
  position: relative;
  box-shadow: var(--shadow-soft);
  opacity: 0;
  transition: opacity .3s var(--ease), box-shadow .3s var(--ease);
}
.gallery-item.is-visible{ opacity: 1; }
.gallery-item.is-hidden{ display: none; }
.gallery-item button{
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: none;
  padding: 0;
  position: relative;
  overflow: hidden;
  border-radius: inherit;
  cursor: pointer;
}
.gallery-item button:focus-visible{
  outline: 3px solid rgba(212,170,91,.78);
  outline-offset: 4px;
}
.gallery-item img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .45s var(--ease);
}
.gallery-item:hover img{ transform: scale(1.03); }
.gallery-caption{
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 1.6rem .9rem .8rem;
  background: linear-gradient(180deg, transparent, rgba(20,16,10,.82));
  color: var(--white);
  font-size: .78rem;
  text-align: left;
  opacity: 0;
  transition: opacity .3s var(--ease);
}
.gallery-item:hover .gallery-caption, .gallery-item:focus-within .gallery-caption{ opacity: 1; }
.play-badge{
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(20,16,10,.25);
  transition: background-color .3s var(--ease);
}
.play-badge svg{
  width: 54px; height: 54px;
  color: var(--white);
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.4));
  transition: transform .3s var(--ease);
}
a:hover .play-badge, button:hover .play-badge{ background: rgba(20,16,10,.4); }
a:hover .play-badge svg, button:hover .play-badge svg{ transform: scale(1.08); }
.editorial-gallery .play-badge svg{ width: 46px; height: 46px; }
@media (max-width: 1024px){
  .gallery-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px){
  .gallery-intro-panel{
    grid-template-columns: 1fr;
    align-items: start;
  }
}
@media (max-width: 640px){
  .gallery-grid{
    grid-template-columns: 1fr;
    gap: .9rem;
  }
}
@media (max-width: 520px){
  .page-hero-content{
    padding-inline: 1.5rem;
  }
  .page-hero-content h1{
    max-width: min(100%, 11ch);
    font-size: clamp(2rem, 10vw, 2.45rem);
    overflow-wrap: normal;
  }
  .page-hero-content p{
    max-width: 100%;
    font-size: .98rem;
    overflow-wrap: break-word;
  }
  .page-hero-content .btn-row{
    flex-direction: column;
    align-items: stretch;
    max-width: 100%;
  }
  .page-hero-content .btn{
    width: 100%;
    white-space: normal;
  }
  .gallery-intro-panel{
    padding: 1.25rem;
  }
  .filter-bar{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
  }
  .filter-btn{
    width: 100%;
    min-height: 42px;
    min-width: 0;
    padding-inline: .65rem;
    white-space: normal;
  }
  .gallery-item:hover img{
    transform: none;
  }
}

/* Lightbox */
.lightbox{
  position: fixed; inset: 0; z-index: 1000;
  display: none;
  align-items: center; justify-content: center;
  background: rgba(15,12,8,.94);
  padding: 1.5rem;
}
.lightbox.is-open{ display: flex; }
.lightbox-inner{ position: relative; max-width: min(1100px, 94vw); max-height: 90vh; width: 100%; }
.lightbox-inner img, .lightbox-inner video{
  max-width: 100%; max-height: 82vh;
  margin-inline: auto;
  border-radius: var(--radius);
  display: block;
}
.lightbox-caption{ color: rgba(255,255,255,.8); text-align: center; margin-top: 1rem; font-size: .9rem; }
.lightbox-close, .lightbox-prev, .lightbox-next{
  position: absolute;
  display: flex; align-items: center; justify-content: center;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  color: var(--white);
  border: 1px solid rgba(255,255,255,.25);
  transition: background-color .2s var(--ease);
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{ background: rgba(255,255,255,.22); }
.lightbox-close{ top: -56px; right: 0; }
.lightbox-prev{ left: -60px; top: 50%; transform: translateY(-50%); }
.lightbox-next{ right: -60px; top: 50%; transform: translateY(-50%); }
@media (max-width: 780px){
  .lightbox-close{ top: -50px; right: 0; }
  .lightbox-prev{ left: 0; bottom: -60px; top: auto; }
  .lightbox-next{ right: 0; bottom: -60px; top: auto; }
}

/* ==========================================================================
   Testimonial / quote (used only if real content exists)
   ========================================================================== */
.quote{
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1.3rem;
  color: var(--ink);
  max-width: 46ch;
}

/* ==========================================================================
   Forms
   ========================================================================== */
.contact-hero{
  min-height: 46vh;
}
.contact-page-grid{
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
.contact-page-grid > *{
  min-width: 0;
}
.contact-aside .lead{
  margin-top: .9rem;
}
.contact-badge-grid{
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1.4rem;
}
.contact-badge-grid span{
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: .5rem .78rem;
  border: 1px solid rgba(169,126,59,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.6);
  color: var(--gold-dark);
  font-size: .84rem;
  font-weight: 700;
}
.contact-form-panel{
  min-width: 0;
  padding: clamp(1.6rem, 3.4vw, 2.4rem);
  border: 1px solid rgba(169,126,59,.18);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.66);
  box-shadow: var(--shadow-soft);
}
.form-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.form-grid .full{ grid-column: 1 / -1; }
@media (max-width: 640px){ .form-grid{ grid-template-columns: 1fr; } }

.field{ display: flex; flex-direction: column; gap: .45rem; min-width: 0; }
.field label,
.field-label{ font-size: .85rem; font-weight: 600; color: var(--ink); }
.field .req{ color: var(--error); }
.field input,
.field select,
.field textarea{
  min-width: 0;
  max-width: 100%;
  padding: .85rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--white);
  font-size: .95rem;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(169,126,59,.15);
  outline: none;
}
.field textarea{ resize: vertical; min-height: 130px; }
.field-hint{ font-size: .78rem; color: var(--ink-faint); }
.field-error{ font-size: .8rem; color: var(--error); display: none; }
.field.has-error input,
.field.has-error select,
.field.has-error textarea{ border-color: var(--error); }
.field.has-error .field-error{ display: block; }

.checkbox-field{
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  font-size: .87rem;
  color: var(--ink-soft);
}
.checkbox-field input{ margin-top: 3px; width: 17px; height: 17px; accent-color: var(--gold-dark); flex-shrink: 0; }
.checkbox-field a{ color: var(--gold-dark); text-decoration: underline; }
.checkbox-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem 1rem;
  padding: .9rem 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--white);
}
.field.has-error .checkbox-grid{ border-color: var(--error); }
@media (max-width: 640px){ .checkbox-grid{ grid-template-columns: 1fr; } }

.form-note{
  font-size: .8rem;
  color: var(--ink-faint);
  margin-top: 1rem;
  display: flex;
  gap: .5rem;
  align-items: flex-start;
}

.form-success{
  display: none;
  align-items: center;
  gap: .8rem;
  padding: 1.2rem 1.4rem;
  background: rgba(74,122,90,.1);
  border: 1px solid rgba(74,122,90,.3);
  color: var(--success);
  border-radius: var(--radius);
  font-size: .92rem;
  margin-top: 1.25rem;
}
.form-success.is-visible{ display: flex; }
.form-error{
  display: none;
  padding: 1rem 1.2rem;
  background: rgba(154,50,50,.08);
  border: 1px solid rgba(154,50,50,.3);
  color: var(--error);
  border-radius: var(--radius);
  font-size: .92rem;
  margin-top: 1.25rem;
}
.form-error.is-visible{ display: block; }
.btn.is-loading{ opacity: .75; pointer-events: none; }

/* ==========================================================================
   Blog editorial
   ========================================================================== */
.blog-hero .page-hero-content{ max-width: 880px; }
.reading-progress{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  z-index: 1000;
  background: transparent;
  pointer-events: none;
}
.reading-progress span{
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--gold-light), var(--gold-dark));
  transition: width .08s linear;
}
.article-hero-meta{
  display: flex;
  flex-wrap: wrap;
  gap: .65rem .9rem;
  margin-top: 1.35rem;
  color: rgba(255,255,255,.86);
  font-size: .9rem;
}
.article-hero-meta span{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: .25rem .7rem;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(43,38,32,.25);
}
.blog-toolbar{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 2rem;
}
.blog-chip{
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: .45rem .9rem;
  border: 1px solid rgba(169,126,59,.28);
  border-radius: 999px;
  background: rgba(255,255,255,.6);
  color: var(--ink-soft);
  font-size: .86rem;
  font-weight: 600;
}
.blog-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.2rem, 2.5vw, 2rem);
}
.blog-card{
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: var(--white);
  box-shadow: var(--shadow-soft);
}
.blog-card-media{
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--cream-alt);
}
.blog-card-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}
.blog-card:hover .blog-card-media img{ transform: scale(1.035); }
.blog-card-body{
  display: flex;
  flex-direction: column;
  gap: .9rem;
  padding: clamp(1.2rem, 2vw, 1.6rem);
  flex: 1;
}
.blog-meta{
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .7rem;
  color: var(--ink-faint);
  font-size: .82rem;
}
.blog-category{
  color: var(--gold-dark);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.blog-card h2,
.blog-card h3{
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}
.blog-card p{ color: var(--ink-soft); }
.blog-card .btn{ align-self: flex-start; margin-top: auto; }
.blog-layout{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: start;
}
.article-body{
  max-width: 820px;
  color: var(--ink-soft);
  font-size: 1.04rem;
}
.article-body a{
  color: var(--gold-dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.article-body h2{
  margin-top: 2.5rem;
  margin-bottom: .9rem;
  font-size: clamp(1.55rem, 2.6vw, 2.1rem);
}
.article-body h3{
  margin-top: 1.7rem;
  margin-bottom: .6rem;
  font-size: 1.25rem;
}
.article-body p,
.article-body ul,
.article-body ol{ margin-top: 1rem; }
.article-body ul,
.article-body ol{
  list-style: disc;
  padding-left: 1.25rem;
}
.article-body ol{ list-style: decimal; }
.article-intro{
  font-size: 1.18rem;
  color: var(--ink);
}
.article-kicker{
  display: inline-flex;
  margin-bottom: .85rem;
  color: var(--gold-dark);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .78rem;
}
.article-cover{
  margin: 0 0 2rem;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border-soft);
  box-shadow: var(--shadow-soft);
}
.article-cover img{
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.article-cover figcaption{
  padding: .8rem 1rem;
  background: var(--white);
  color: var(--ink-faint);
  font-size: .86rem;
}
.editorial-box{
  margin: 1.6rem 0;
  padding: 1.25rem 1.35rem;
  border: 1px solid rgba(169,126,59,.24);
  border-left: 4px solid var(--gold);
  border-radius: var(--radius);
  background: rgba(255,255,255,.72);
}
.editorial-box strong{
  display: block;
  color: var(--ink);
  font-family: var(--font-heading);
  font-size: 1.1rem;
  margin-bottom: .35rem;
}
.editorial-box.note{ border-left-color: var(--mauve); }
.article-quote{
  margin: 2rem 0;
  padding: 1.4rem 1.6rem;
  border-left: 4px solid var(--gold-dark);
  background: var(--cream-alt);
  color: var(--ink);
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 2.4vw, 1.65rem);
  line-height: 1.35;
}
.article-checklist{
  display: grid;
  gap: .65rem;
  margin: 1.2rem 0;
  list-style: none !important;
  padding-left: 0 !important;
}
.article-checklist li{
  position: relative;
  padding-left: 1.9rem;
}
.article-checklist li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .42rem;
  width: .85rem;
  height: .85rem;
  border: 2px solid var(--gold-dark);
  border-radius: 2px;
  background: var(--white);
}
.article-table-wrap{
  overflow-x: auto;
  margin: 1.5rem 0;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  background: var(--white);
}
.article-table{
  width: 100%;
  min-width: 640px;
  font-size: .94rem;
}
.article-table th,
.article-table td{
  padding: .9rem 1rem;
  border-bottom: 1px solid var(--border-soft);
  text-align: left;
  vertical-align: top;
}
.article-table th{
  background: var(--cream-alt);
  color: var(--ink);
  font-weight: 700;
}
.article-table tr:last-child td{ border-bottom: 0; }
.article-cta{
  margin: 2.5rem 0;
  padding: clamp(1.4rem, 3vw, 2rem);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(43,38,32,.94), rgba(90,73,52,.92));
  color: var(--blush-soft);
}
.article-cta h2{ color: var(--white); margin: 0 0 .75rem; }
.article-cta p{ color: rgba(255,255,255,.82); }
.article-cta .btn-row{ margin-top: 1.25rem; }
.article-share{
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin: 1.5rem 0 0;
}
.article-share a,
.article-share button{
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--white);
  padding: .55rem .9rem;
  color: var(--ink-soft);
  font-size: .88rem;
  font-weight: 700;
}
.article-share a:hover,
.article-share button:hover{ color: var(--gold-dark); border-color: var(--gold); }
.article-nav{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2rem;
}
.article-nav a{
  display: block;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  background: var(--white);
  padding: 1.1rem;
  text-decoration: none;
  color: var(--ink-soft);
}
.article-nav span{
  display: block;
  color: var(--ink-faint);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-bottom: .35rem;
}
.article-nav strong{ color: var(--ink); font-family: var(--font-heading); }
.article-faq details{
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  background: var(--white);
  padding: 1rem 1.15rem;
  margin-top: .8rem;
}
.article-faq summary{
  cursor: pointer;
  color: var(--ink);
  font-weight: 700;
}
.article-faq details p{ margin-top: .7rem; }
.article-aside{
  position: sticky;
  top: calc(var(--nav-h) + 1.5rem);
}
.toc-panel,
.related-panel{
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.72);
  padding: 1.25rem;
  box-shadow: var(--shadow-soft);
}
.toc-panel h2,
.related-panel h2{
  font-size: 1.05rem;
  margin-bottom: .75rem;
}
.toc-panel a,
.related-panel a{
  display: block;
  color: var(--ink-soft);
  font-size: .92rem;
  padding-block: .35rem;
}
.toc-panel a:hover,
.related-panel a:hover{ color: var(--gold-dark); }
.toc-panel a.is-active{ color: var(--gold-dark); font-weight: 700; }
.article-link-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.article-link{
  display: block;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  background: var(--white);
  padding: 1.15rem;
  color: var(--ink-soft);
}
.article-link strong{
  display: block;
  color: var(--ink);
  font-family: var(--font-heading);
  font-size: 1.1rem;
  line-height: 1.25;
  margin-bottom: .4rem;
}
@media (max-width: 900px){
  .blog-grid,
  .blog-layout,
  .article-link-grid,
  .article-nav{ grid-template-columns: 1fr; }
  .article-aside{ position: static; }
}

/* ==========================================================================
   Contact info blocks
   ========================================================================== */
.contact-card{
  background: var(--white);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  padding: 2rem;
  box-shadow: var(--shadow-soft);
}
.contact-list{ display: flex; flex-direction: column; gap: 1.4rem; }
.contact-item{ display: flex; gap: 1rem; align-items: flex-start; }
.contact-item .icon{
  width: 44px; height: 44px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: var(--blush-soft);
  color: var(--gold-dark);
}
.contact-item h3{ font-size: .95rem; margin-bottom: .25rem; font-family: var(--font-body); font-weight: 600; }
.contact-item p, .contact-item a{ font-size: .92rem; color: var(--ink-soft); }
.contact-item a:hover{ color: var(--gold-dark); }
.contact-faq-section .faq-grid{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.contact-form-panel .btn-block{
  white-space: normal;
}
@media (max-width: 1120px){
  .contact-page-grid{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px){
  .contact-form-panel,
  .contact-card{
    padding: 1.25rem;
  }
  .contact-badge-grid span{
    width: 100%;
    justify-content: center;
  }
  .contact-faq-section .faq-grid{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 380px){
  .contact-form-panel,
  .contact-card{
    padding: 1rem;
  }
}

.location-section{
  padding-block: clamp(5.25rem, 8vw, 7.4rem);
}
.location-split{
  display: grid;
  grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr);
  gap: clamp(1.4rem, 3vw, 2.4rem);
  align-items: stretch;
}
.location-panel,
.location-map{
  min-height: clamp(540px, 43vw, 620px);
}
.location-panel{
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3.2rem);
  border: 1px solid rgba(169,126,59,.24);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(255,255,255,.88), rgba(250,246,239,.58)),
    var(--white);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.location-panel::before{
  content: "";
  position: absolute;
  inset: 1rem;
  border: 1px solid rgba(169,126,59,.12);
  border-radius: calc(var(--radius-lg) - 2px);
  pointer-events: none;
}
.location-panel > *{
  position: relative;
}
.location-panel .section-title{
  max-width: 15ch;
  font-size: clamp(1.9rem, 3vw, 2.45rem);
}
.location-panel .lead{
  max-width: 58ch;
  margin-top: 1rem;
}
.location-seo-copy{
  max-width: 56ch;
  margin-top: .8rem;
  color: var(--ink-soft);
  font-size: .94rem;
  line-height: 1.72;
}
.location-badges{
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.55rem;
}
.location-badges span{
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: .45rem .78rem;
  border: 1px solid rgba(169,126,59,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.62);
  color: var(--gold-dark);
  font-size: .82rem;
  font-weight: 700;
  transition: transform .25s var(--ease), background-color .25s var(--ease), border-color .25s var(--ease);
}
.location-badges span:hover{
  transform: translateY(-2px);
  border-color: rgba(169,126,59,.48);
  background: rgba(255,255,255,.9);
}
.location-contact-list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .95rem;
  margin-top: clamp(1.5rem, 3vw, 2.1rem);
}
.location-contact-item:first-child{
  grid-column: 1 / -1;
}
.location-contact-item{
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  min-width: 0;
  padding: 1rem;
  border: 1px solid rgba(169,126,59,.16);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.58);
  transition: transform .25s var(--ease), border-color .25s var(--ease), background-color .25s var(--ease);
}
.location-contact-item:hover{
  transform: translateY(-3px);
  border-color: rgba(169,126,59,.34);
  background: rgba(255,255,255,.82);
}
.location-contact-item .icon{
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--blush-soft);
  color: var(--gold-dark);
  border: 1px solid rgba(169,126,59,.2);
}
.location-contact-item svg{
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.location-contact-item h3{
  margin-bottom: .2rem;
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.location-contact-item p,
.location-contact-item a{
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.location-contact-item a{
  font-weight: 700;
}
.location-contact-item a:hover{
  color: var(--gold-dark);
}
.location-actions{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
  margin-top: clamp(1.5rem, 3vw, 2rem);
}
.location-actions .btn{
  width: 100%;
  justify-content: center;
}
.location-map{
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lift);
  border: 1px solid rgba(169,126,59,.22);
  background: var(--white);
}
.location-map::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: var(--radius-lg);
}
.location-map .map-frame{
  height: 100%;
  min-height: 100%;
}
.map-frame{
  border: 0;
  width: 100%;
  height: 340px;
  border-radius: var(--radius-lg);
  filter: grayscale(.15) contrast(1.02);
}
.location-map:hover .map-frame{
  filter: grayscale(.08) contrast(1.04);
}
@media (max-width: 980px){
  .location-split{
    grid-template-columns: 1fr;
  }
  .location-panel,
  .location-map{
    min-height: auto;
  }
  .location-map .map-frame{
    min-height: 420px;
  }
}
@media (max-width: 720px){
  .location-contact-list{
    grid-template-columns: 1fr;
  }
  .location-contact-item:first-child{
    grid-column: auto;
  }
}
@media (max-width: 520px){
  .location-section{
    padding-block: 4.4rem;
  }
  .location-panel{
    padding: 1.4rem;
  }
  .location-panel::before{
    inset: .7rem;
  }
  .location-panel .section-title{
    max-width: 100%;
    font-size: clamp(1.72rem, 9vw, 2.15rem);
  }
  .location-contact-item{
    padding: .9rem;
  }
  .location-contact-item p,
  .location-contact-item a{
    font-size: .95rem;
    overflow-wrap: anywhere;
  }
  .location-actions{
    grid-template-columns: 1fr;
  }
  .location-map .map-frame{
    min-height: 340px;
  }
}

/* Google reviews */
.reviews-panel{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.google-rating-card{
  min-width: 0;
  padding: 1.6rem;
  border: 1px solid rgba(169,126,59,.24);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(145deg, rgba(169,126,59,.12), rgba(255,255,255,.76)),
    var(--white);
  box-shadow: var(--shadow-soft);
}
.google-mark{
  display: inline-flex;
  align-items: center;
  color: var(--ink);
  font-weight: 700;
  letter-spacing: .02em;
}
.google-rating-card strong{
  display: block;
  margin-top: .75rem;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1;
  color: var(--ink);
}
.google-rating-card p{
  margin-top: .5rem;
  color: var(--ink-soft);
  font-size: .95rem;
}
.review-count{
  display: block;
  margin-top: .35rem;
  color: var(--gold-dark);
  font-size: .88rem;
  font-weight: 700;
}
.google-rating-card .btn{
  margin-top: 1.35rem;
  width: 100%;
}
.reviews-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.35rem);
  align-items: stretch;
}
.review-card{
  position: relative;
  min-width: 0;
  min-height: 100%;
  padding: 1.45rem;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.72);
  box-shadow: var(--shadow-soft);
  display: flex;
  flex-direction: column;
}
.review-head{
  display: flex;
  align-items: center;
  gap: .9rem;
  padding-right: 2.25rem;
}
.review-avatar{
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--blush-soft);
  color: var(--gold-dark);
  font-weight: 700;
  border: 1px solid rgba(169,126,59,.22);
}
.review-name{
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.25;
}
.review-meta{
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .75rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-soft);
  color: var(--ink-faint);
  font-size: .8rem;
}
.review-text{
  margin-top: 1rem;
  flex: 1;
}
.review-text p{
  color: var(--ink-soft);
  font-size: .94rem;
  line-height: 1.72;
}
.stars{
  color: var(--gold-dark);
  letter-spacing: .08em;
  line-height: 1;
}
.review-full{
  display: none;
}
.review-card.is-expanded .review-excerpt{
  display: none;
}
.review-card.is-expanded .review-full{
  display: block;
}
.review-toggle{
  align-self: flex-start;
  margin-top: 1.1rem;
  padding: .15rem 0;
  border: 0;
  background: transparent;
  color: var(--gold-dark);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.review-toggle:focus-visible{
  outline: 2px solid var(--gold-dark);
  outline-offset: 4px;
}
.review-source{
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  color: var(--ink-faint);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
}
@media (max-width: 860px){
  .reviews-panel{
    grid-template-columns: 1fr;
  }
  .reviews-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px){
  .reviews-grid{
    grid-template-columns: 1fr;
  }
  .review-card{
    padding: 1.25rem;
  }
  .review-head{
    padding-right: 2rem;
  }
}

.facade-map-grid{
  margin-top: 2rem;
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 1rem;
  height: 320px;
}
.facade-map-grid img{
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
}
.facade-map-grid .map-frame{ height: 100%; }
@media (max-width: 620px){
  .facade-map-grid{ grid-template-columns: 1fr; height: auto; }
  .facade-map-grid img{ height: 200px; }
  .facade-map-grid .map-frame{ height: 280px; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{
  background: var(--ink);
  color: rgba(250,246,239,.72);
  padding-block: clamp(4rem, 7vw, 5.75rem) 2.25rem;
}
.footer-grid{
  display: grid;
  grid-template-columns: minmax(280px, 1.45fr) 1fr 1fr 1.15fr;
  gap: clamp(2.2rem, 4vw, 4rem);
  align-items: start;
}
@media (max-width: 900px){
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .footer-about{
    grid-column: 1 / -1;
  }
}
@media (max-width: 560px){
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-about{
    grid-column: auto;
  }
}
.footer-brand,
.footer-brand-logos{
  display: inline-flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 1.65rem;
  padding: 0;
}
.footer-brand img,
.footer-logo-orchidee,
.footer-logo-maral{
  display: block;
  width: auto;
  height: auto;
  object-fit: contain;
  image-rendering: auto;
  flex: 0 0 auto;
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  transform: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.footer-brand-orchidee{
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.footer-brand-orchidee img{
  width: 185px;
  max-width: 185px;
  height: auto;
}
.footer-logo-orchidee{
  width: 185px;
  max-width: 185px;
  height: auto;
}
.footer-logo-maral{
  width: 120px;
  max-width: 120px;
  height: auto;
  max-height: none;
}
.footer-brand-separator{
  width: 1px;
  height: 58px;
  background: rgba(212, 170, 91, 0.35);
  flex: 0 0 auto;
}
.footer-about p{ font-size: .9rem; line-height: 1.8; max-width: 38ch; }
@media (max-width: 560px){
  .footer-brand,
  .footer-brand-logos{
    gap: .85rem;
    align-items: center;
    flex-wrap: wrap;
  }
  .footer-logo-orchidee{
    width: 170px;
    max-width: 170px;
    height: auto;
  }
  .footer-brand-orchidee img{
    width: 170px;
    max-width: 170px;
  }
  .footer-logo-maral{
    width: 108px;
    max-width: 108px;
    height: auto;
  }
  .footer-brand-separator{
    height: 48px;
  }
}
@media (max-width: 340px){
  .footer-brand,
  .footer-brand-logos{
    align-items: flex-start;
    flex-direction: column;
  }
  .footer-brand-separator{
    display: none;
  }
}
.footer-social{ display: flex; gap: .7rem; margin-top: 1.4rem; }
.footer-social a{
  width: 38px; height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(250,246,239,.25);
  display: flex; align-items: center; justify-content: center;
  transition: background-color .2s var(--ease), border-color .2s var(--ease);
}
.footer-social a:hover{ background: var(--gold-dark); border-color: var(--gold-dark); }

.footer-col h4{
  font-family: var(--font-body);
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 1.25rem;
}
.footer-col ul{ display: flex; flex-direction: column; gap: .82rem; }
.footer-col a{ font-size: .9rem; transition: color .2s var(--ease); }
.footer-col a:hover{ color: var(--gold-light); }
.footer-col address{ font-style: normal; }

.footer-bottom{
  margin-top: clamp(3rem, 5vw, 4.25rem);
  padding-top: 1.75rem;
  border-top: 1px solid rgba(250,246,239,.14);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  font-size: .8rem;
  color: rgba(250,246,239,.55);
}
.footer-bottom nav{ display: flex; gap: 1.4rem; flex-wrap: wrap; }
.footer-bottom a:hover{ color: var(--white); }

/* Sticky mobile CTA */
.mobile-cta-bar{
  position: fixed;
  left: 0; right: 0; bottom: 0;
  width: 100%;
  max-width: 100vw;
  z-index: 400;
  display: none;
  gap: .6rem;
  padding: .7rem .9rem;
  background: rgba(250,246,239,.96);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--border);
}
@media (max-width: 720px){
  .mobile-cta-bar{ display: flex; }
  body{ padding-bottom: 68px; }
}
.mobile-cta-bar .btn{
  flex: 1 1 0;
  min-width: 0;
  padding: .8rem 1rem;
  font-size: .85rem;
}
@media (max-width: 420px){
  .mobile-cta-bar{
    gap: .5rem;
    padding-inline: .75rem;
  }
  .mobile-cta-bar .btn{
    padding-inline: .7rem;
  }
}

/* ==========================================================================
   Legal pages
   ========================================================================== */
.legal-page-section{
  padding-top: calc(var(--nav-h) + clamp(2rem, 4vw, 3rem));
}
.legal-intro{
  margin-top: 1rem;
  color: var(--ink-soft);
  font-size: 1.05rem;
  max-width: 68ch;
}
.legal-summary{
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1.5rem;
  padding: 1rem;
  border: 1px solid rgba(169,126,59,.18);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.58);
}
.legal-summary a{
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: .48rem .82rem;
  border: 1px solid rgba(169,126,59,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.66);
  color: var(--gold-dark);
  font-size: .86rem;
  font-weight: 700;
  transition: transform .25s var(--ease), border-color .25s var(--ease), background-color .25s var(--ease);
}
.legal-summary a:hover{
  transform: translateY(-2px);
  border-color: rgba(169,126,59,.5);
  background: rgba(255,255,255,.9);
}
.legal-content h2{ font-size: 1.35rem; margin-top: 2.5rem; margin-bottom: 1rem; }
.legal-content h2:first-child{ margin-top: 0; }
.legal-content p, .legal-content li{ color: var(--ink-soft); font-size: .96rem; margin-bottom: .9rem; }
.legal-content ul{ padding-left: 1.3rem; list-style: disc; }
.legal-content a{ color: var(--gold-dark); text-decoration: underline; }
@media (max-width: 520px){
  .legal-summary{
    padding: .8rem;
  }
  .legal-summary a{
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   Scroll reveal
   ========================================================================== */
[data-reveal]{
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
[data-reveal].is-visible{ opacity: 1; transform: translateY(0); }
[data-reveal-group] > *{ transition-delay: calc(var(--i, 0) * 90ms); }

@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity: 1; transform: none; }
}

/* ==========================================================================
   404 helper / misc
   ========================================================================== */
.text-center{ text-align: center; }
.mt-lg{ margin-top: clamp(2rem, 4vw, 3rem); }
.visually-hidden{
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
