/* Editorial refresh: warm, image-led and restrained */
:root {
  --paper: #f5f2ec;
  --paper-deep: #e9e2d8;
  --ink: #27231f;
  --muted-ink: #716a61;
  --line: rgba(39, 35, 31, .18);
  --serif: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --sans: Inter, Arial, sans-serif;
}
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--ink); font-family: var(--sans); font-weight: 400; }
img { border-radius: 0 !important; }
.container { width: min(1280px, calc(100% - 9vw)); }
.section { padding: clamp(4.5rem, 9vw, 8rem) 0; }

/* Header sits quietly over the photography */
.topbar {
  position: absolute !important; inset: 0 0 auto !important; height: 94px !important;
  width: 100%; padding: 12px 5vw !important; background: transparent !important;
  display: flex !important; justify-content: center !important; align-items: center !important;
}
.topbar > .logo { position: absolute !important; left: 5vw !important; top: 50% !important; transform: translateY(-50%) !important; z-index: 2; }
.topbar .logo img { height: 66px !important; width: auto !important; max-width: 150px; object-fit: contain; }
.nav-desktop { display: flex !important; justify-content: center; width: 100%; }
.nav-desktop ul { display: flex; align-items: center; gap: clamp(1rem, 3vw, 3rem); list-style: none; padding: 0; margin: 0; }
.nav-desktop a {
  color: #fff !important; font: 500 10px/1 var(--sans) !important; letter-spacing: .19em;
  text-decoration: none; text-transform: uppercase; position: relative;
}
.nav-desktop a::after { height: 1px !important; bottom: -8px !important; background: #fff !important; }
.nav-mobile-container { z-index: 5; }
.hamburger { background: transparent !important; border: 1px solid rgba(255,255,255,.65) !important; border-radius: 50% !important; }
.nav-mobile-overlay { background: rgba(39,35,31,.96) !important; }
.nav-mobile-overlay a { font-family: var(--serif); font-size: clamp(2.3rem, 9vw, 3.5rem) !important; font-weight: 500; }

/* Full-bleed home image */
.hero { min-height: 100svh !important; place-items: end start !important; background: #887c6f; }
.hero__bg-slideshow { position: absolute; inset: 0; }
.hero__bg-slideshow::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(27,24,21,.48), transparent 72%), linear-gradient(0deg, rgba(27,24,21,.28), transparent 48%); }
.hero__bg-slideshow .slide { background-position: center 44%; }
.hero__content {
  width: min(1280px, calc(100% - 10vw)) !important; max-width: none !important;
  margin: 0 auto !important; padding: 0 0 clamp(3.5rem, 9vh, 7rem) !important;
  text-align: left; z-index: 2;
}
.hero__eyebrow, .editorial-eyebrow {
  margin: 0 0 1rem; color: var(--muted-ink); font: 500 10px/1.5 var(--sans);
  letter-spacing: .23em; text-transform: uppercase;
}
.hero__eyebrow { color: rgba(255,255,255,.88); }
.hero h1 { max-width: 780px; margin: 0 0 1.8rem !important; color: #fff; font: 500 clamp(3.4rem, 8vw, 7.4rem)/.87 var(--serif) !important; letter-spacing: -.035em; text-shadow: 0 3px 26px rgba(0,0,0,.18) !important; }
.about-contact-btn, .btn-black-rect, .btn-editorial-black {
  display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px;
  padding: 15px 24px !important; border: 1px solid currentColor !important; border-radius: 0 !important;
  background: transparent !important; color: inherit !important; box-shadow: none !important;
  font: 500 9px/1.2 var(--sans) !important; letter-spacing: .18em; text-decoration: none; text-transform: uppercase;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.hero .about-contact-btn { color: #fff !important; }
.about-contact-btn:hover, .btn-black-rect:hover, .btn-editorial-black:hover { background: var(--ink) !important; color: var(--paper) !important; }

/* Home introduction */
.intro-editorial { padding: clamp(5rem, 10vw, 10rem) 0 !important; background: var(--paper) !important; }
.editorial-grid { width: min(1160px, calc(100% - 12vw)); grid-template-columns: 1.05fr .95fr !important; gap: clamp(3rem, 9vw, 9rem) !important; align-items: center !important; }
.col-left { padding: 0 !important; }
.editorial-eyebrow { display: block; }
.serif-quote { padding: 0 !important; border: 0 !important; color: var(--ink) !important; font: 500 clamp(2.6rem, 5vw, 5rem)/.98 var(--serif) !important; letter-spacing: -.025em; }
.kicker-bottom { margin-top: 2rem !important; color: var(--muted-ink); font: 500 9px/1.5 var(--sans) !important; letter-spacing: .2em !important; }
.thin-lead { max-width: 520px; color: #59534c !important; font: 400 clamp(1rem, 1.25vw, 1.12rem)/1.9 var(--sans) !important; margin: 0 0 2rem !important; }
.cta-wrapper { justify-content: flex-start !important; }
.btn-black-rect { color: var(--ink) !important; }

/* Service galleries */
.services { padding: 1rem 0 clamp(5rem, 9vw, 9rem) !important; background: var(--paper); }
.services .container { width: min(1440px, calc(100% - 7vw)); }
.services-slider { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px !important; padding: 0 !important; overflow: visible !important; }
.services-slider .card { display: block; min-width: 0 !important; border-radius: 0 !important; overflow: hidden; color: #fff; background: #d7cec2; position: relative; }
.services-slider .card img { width: 100%; height: clamp(360px, 46vw, 650px) !important; object-fit: cover; transition: transform .7s cubic-bezier(.2,.65,.2,1); }
.services-slider .card span { left: 22px !important; bottom: 22px !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; color: #fff !important; font: 500 12px/1.2 var(--sans); letter-spacing: .18em; text-transform: uppercase; text-shadow: 0 1px 10px rgba(0,0,0,.4); z-index: 1; }
.services-slider .card::after { content: ""; position: absolute; inset: 45% 0 0; pointer-events: none; background: linear-gradient(transparent, rgba(20,18,16,.36)); }
@media (hover:hover) { .services-slider .card:hover img { transform: scale(1.035); } }

/* Journal cards */
.blog.section { background: #eee9e1 !important; padding: clamp(5rem, 9vw, 9rem) 0 !important; }
.blog h2, .blog-card__header h2 { margin: 0 0 2.5rem !important; color: var(--ink); font: 500 clamp(3rem, 5.8vw, 5.5rem)/.95 var(--serif) !important; }
.blog .grid-3, .blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: clamp(1rem, 2vw, 2rem) !important; }
.blogcard, .blog-item { border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; text-decoration: none; color: var(--ink); }
.blogcard img, .blog-item img { width: 100%; height: clamp(220px, 25vw, 360px) !important; object-fit: cover; }
.blogcard p, .blog-content h3 { margin: 1rem 0 .25rem !important; color: var(--ink); font: 500 clamp(1.35rem, 2vw, 1.8rem)/1.12 var(--serif) !important; }
.blog-content { padding: .7rem 0 0 !important; gap: 1rem; }
.blog-item { transition: transform .3s ease; }
.blog-item:hover { transform: translateY(-3px); }
.btn--secondary { align-self: flex-start; padding: 12px 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--muted-ink) !important; font: 500 9px/1 var(--sans) !important; letter-spacing: .15em; text-transform: uppercase; }

/* Contact invitation */
.contact.section { padding: clamp(5rem, 9vw, 9rem) 0 !important; background: var(--paper); }
.contact__grid { width: min(1240px, calc(100% - 10vw)); grid-template-columns: 1.15fr .85fr !important; gap: clamp(2rem, 8vw, 8rem) !important; }
.contact__image img { width: 100%; max-height: 700px; object-fit: cover; border-radius: 0 !important; }
.contact__text h2 { margin: 0 0 1rem !important; color: var(--ink); font: 500 clamp(3rem, 5vw, 5rem)/.95 var(--serif) !important; }
.contact__text p { margin: 0 0 2rem !important; max-width: 440px; color: #625b53 !important; font-size: 14px; line-height: 1.9; }
.contact__text .about-contact-btn { color: var(--ink) !important; }

/* About page */
.about-intro-editorial { padding: clamp(8rem, 13vw, 12rem) 0 4rem !important; background: var(--paper); }
.about-grid { display: grid !important; grid-template-columns: 1fr .8fr !important; gap: clamp(3rem, 8vw, 8rem) !important; align-items: center; }
.about-content { padding: 0 !important; }
.about-title { margin: 0 0 1.5rem !important; color: var(--ink); font: 500 clamp(3.8rem, 6.8vw, 7rem)/.82 var(--serif) !important; letter-spacing: -.04em; }
.about-header-bg { background: transparent !important; }
.about-hello { margin: 0 0 1.3rem !important; color: var(--muted-ink); font: 500 9px/1.7 var(--sans) !important; letter-spacing: .15em; }
.about-hello::before, .about-hello::after { content: none !important; }
.about-body { color: #59534c; font: 400 15px/1.9 var(--sans); }
.about-body p { margin: 0 0 1rem; }
.about-image-wrapper { width: 100%; max-width: 500px; margin: 0 auto; }
.img-arch { display: block; width: 100%; height: min(68vw, 650px); max-height: 650px; object-fit: cover; border-radius: 0 !important; }
.about-quote { padding: clamp(2rem, 6vw, 5rem) 0; text-align: center; }
.about-quote blockquote { max-width: 800px; margin: 0 auto; color: var(--ink); font: italic 500 clamp(2rem, 4vw, 3.4rem)/1.08 var(--serif); }
.typewriter-container { min-height: 3rem; text-align: center; color: var(--muted-ink); font: 500 10px/1.4 var(--sans); letter-spacing: .18em; text-transform: uppercase; }
.about-tags { text-align: center; margin: 1rem 0 4rem; }
.services-cta { padding: clamp(5rem, 9vw, 8rem) 5vw !important; background: var(--paper-deep); text-align: center; }
.services-cta__banner { display: none !important; }
.services-cta__content { position: relative !important; color: var(--ink) !important; }
.services-cta__content h2 { margin: 0 0 1rem; font: 500 clamp(2.7rem, 5vw, 5rem)/.95 var(--serif) !important; }
.services-cta__categories { color: var(--muted-ink); font: 500 9px/1.8 var(--sans); letter-spacing: .18em; }
.services-cta__lead { margin: 1.5rem auto 2rem; max-width: 500px; color: #625b53; font-size: 14px; }
.services-cta__content .about-contact-btn { color: var(--ink) !important; }

/* Homepage testimonials */
.home-testimonials { padding:clamp(4.5rem,8vw,7.5rem) 0; background:var(--paper-deep); }
.home-testimonials__header { margin:0 auto clamp(2.4rem,5vw,4rem); text-align:center; }
.home-testimonials__header h2 { margin:0; color:var(--ink); font:500 clamp(1.35rem,2.1vw,1.8rem)/1.2 var(--serif); letter-spacing:.18em; text-transform:uppercase; }
.home-testimonials__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(2rem,5vw,5rem); }
.home-testimonial { display:flex; flex-direction:column; margin:0; padding:0; }
.home-testimonial blockquote { margin:0; color:var(--ink); font:italic 400 clamp(1rem,1.18vw,1.12rem)/1.8 var(--serif); }
.home-testimonial figcaption { margin-top:1.35rem; color:var(--ink); font:500 9px/1.5 var(--sans); letter-spacing:.2em; text-transform:uppercase; }
@media (max-width:900px) { .home-testimonials { padding:4.5rem 0; } .home-testimonials__grid { grid-template-columns:1fr; gap:2.2rem; max-width:620px; margin-inline:auto; } .home-testimonial { padding-bottom:1.8rem; border-bottom:1px solid var(--line); } .home-testimonial:last-child { padding-bottom:0; border-bottom:0; } }

/* Portfolio / feed */
.about-text { padding: clamp(8rem, 13vw, 12rem) 0 2rem !important; background: var(--paper); }
.page-intro { max-width: 850px; margin: 0 auto clamp(2.5rem, 6vw, 5rem); text-align: center; }
.page-intro h1 { margin: 0 0 1rem; color: var(--ink); font: 500 clamp(3.6rem, 7vw, 6.8rem)/.85 var(--serif); letter-spacing: -.035em; }
.page-intro > p:not(.editorial-eyebrow) { max-width: 620px; margin: 1rem auto 0; color: var(--muted-ink); font: 400 14px/1.8 var(--sans); }
.about-text blockquote { max-width: 760px; margin: 2.2rem auto 0 !important; color: var(--muted-ink); font: italic 500 clamp(1.5rem, 3vw, 2.3rem)/1.2 var(--serif) !important; text-align: center; }
.ig-card { width: min(1440px, calc(100% - 8vw)); margin: 0 auto clamp(4rem, 8vw, 8rem); }

/* Blog page */
.blog-card { max-width: none !important; width: min(1440px, calc(100% - 8vw)); margin: 0 auto !important; padding: clamp(8rem, 13vw, 12rem) 0 clamp(5rem, 9vw, 9rem) !important; }
.blog-card__header { display: block !important; text-align: center; max-width: 780px; }
.blog-card__header h1 { margin: 0; color: var(--ink); font: 500 clamp(3.6rem, 7vw, 6.8rem)/.85 var(--serif); letter-spacing: -.035em; }
.blog-card__header > p:last-child { max-width: 590px; margin: 1rem auto 0; color: var(--muted-ink); font-size: 14px; line-height: 1.8; }

/* Contact page and form */
.article-page { width: min(900px, calc(100% - 10vw)) !important; max-width: none !important; margin: 0 auto !important; padding: clamp(8rem, 13vw, 12rem) 0 clamp(5rem, 9vw, 8rem) !important; }
.article-content h1 { margin: 0 0 1rem !important; color: var(--ink); font: 500 clamp(3.5rem, 6vw, 6rem)/.88 var(--serif) !important; text-align: center; }
.article-content > p:not(.editorial-eyebrow) { max-width: 640px; margin: 0 auto 3rem !important; color: var(--muted-ink); text-align: center; font-size: 14px; line-height: 1.8; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.5rem; }
.contact-form label { align-self: end; color: var(--muted-ink); font: 500 9px/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.contact-form input, .contact-form select, .contact-form textarea { grid-column: span 2; width: 100%; min-height: 48px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--ink); font: 400 14px/1.4 var(--sans); outline: none; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--ink); }
.contact-form label[for="nom_prenom"], .contact-form label[for="email"], .contact-form label[for="telephone"], .contact-form label[for="date_evenement"], .contact-form label[for="lieu_evenement"], .contact-form label[for="comment_connu"], .contact-form label[for="type_ceremonie"], .contact-form label[for="nombre_invites"], .contact-form label[for="details"] { grid-column: span 2; }
.contact-form .form-cta { grid-column: span 2; margin-top: 1rem; text-align: center; }
.contact-form .about-contact-btn { color: var(--ink) !important; cursor: pointer; }

/* Contact page: portrait alongside a calm, spacious enquiry form */
.contact-page { width:min(1320px,calc(100% - 10vw)) !important; max-width:none !important; margin:0 auto !important; padding:clamp(8.5rem,12vw,11rem) 0 clamp(4rem,7vw,7rem) !important; }
.contact-page__layout { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(2.5rem,7vw,7rem); align-items:start; }
.contact-page__image { position:sticky; top:110px; margin:0; }
.contact-page__image img { display:block; width:100%; aspect-ratio:4/5; max-height:850px; object-fit:cover; object-position:center 44%; }
.contact-page__content { min-width:0; }
.contact-page__content > .editorial-eyebrow { margin:0 0 1.15rem; }
.contact-page__content h1 { margin:0 0 1.4rem !important; color:var(--ink); font:500 clamp(2.8rem,5vw,5.2rem)/.98 var(--serif) !important; letter-spacing:-.025em; text-align:left; }
.contact-page__intro { max-width:620px; margin:0 0 1.3rem; color:var(--muted-ink); font:400 clamp(1rem,1.2vw,1.12rem)/1.85 var(--sans); }
.contact-page__english { margin:0 0 2.8rem; color:var(--muted-ink); font:italic 400 14px/1.8 var(--serif); }
.contact-page__english a { color:var(--ink); text-decoration-thickness:1px; text-underline-offset:3px; }
.contact-page__form-title { margin:0 0 1.5rem; color:var(--ink); font:500 clamp(1.8rem,2.5vw,2.5rem)/1.1 var(--serif); }
.contact-page .contact-form { display:flex; flex-direction:column; gap:.25rem; }
.contact-page .contact-form label { margin-top:.9rem; color:var(--muted-ink); font:500 9px/1.5 var(--sans); letter-spacing:.14em; text-transform:uppercase; }
.contact-page .contact-form input,.contact-page .contact-form select,.contact-page .contact-form textarea { width:100%; min-height:44px; margin:0 0 .45rem; padding:10px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); font:400 14px/1.5 var(--sans); }
.contact-page .contact-form textarea { min-height:125px; resize:vertical; }
.contact-page .contact-form input:focus,.contact-page .contact-form select:focus,.contact-page .contact-form textarea:focus { border-color:var(--ink); outline:2px solid transparent; }
.contact-page .contact-form .form-cta { margin-top:1rem; text-align:left; }
.contact-page .contact-form .about-contact-btn { min-width:160px; background:var(--ink) !important; color:var(--paper) !important; }
@media (max-width:900px) { .contact-page__layout { grid-template-columns:1fr; gap:2.5rem; } .contact-page__image { position:static; width:min(100%,600px); margin:0 auto; } .contact-page__image img { aspect-ratio:4/3; max-height:540px; object-position:center 43%; } }
@media (max-width:600px) { .contact-page { width:calc(100% - 12vw) !important; padding-top:7rem !important; } .contact-page__layout { gap:2rem; } .contact-page__image img { aspect-ratio:4/3; } .contact-page__content h1 { font-size:clamp(2.4rem,10vw,3.3rem) !important; } .contact-page__english { margin-bottom:2.2rem; } }

/* Footer */
.footer { padding: 2rem 5vw 1.5rem !important; background: #292520 !important; color: #f5f2ec !important; }
.footer__top { display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; gap: 2rem !important; text-align: left !important; }
.footer__brand img { display: block !important; height: 48px !important; width: auto !important; opacity: .9; }
.footer__links { width: auto !important; display: flex !important; flex-wrap: wrap; justify-content: flex-end !important; gap: .4rem 1.6rem !important; }
.footer__links a { min-height: 0 !important; padding: 8px 0 !important; color: rgba(245,242,236,.76) !important; font: 500 9px/1.4 var(--sans) !important; letter-spacing: .12em; text-transform: uppercase; }
.footer__links a:hover { color: #fff !important; background: transparent !important; }
.footer__copy { margin-top: 1.5rem !important; padding-top: 1rem !important; border-color: rgba(245,242,236,.15) !important; color: rgba(245,242,236,.52) !important; font: 400 9px/1.4 var(--sans) !important; letter-spacing: .08em; }
.cc { border-radius: 0 !important; box-shadow: 0 12px 50px rgba(35,30,24,.16) !important; }
.cc__btn { border-radius: 0 !important; }

@media (min-width: 1024px) {
  .nav-desktop { display: flex !important; }
  .nav-mobile-container { display: none !important; }
}
@media (max-width: 1023px) {
  .topbar { height: 78px !important; justify-content: space-between !important; }
  .nav-desktop { display: none !important; }
  .nav-mobile-container { display: block !important; position: absolute; right: 5vw; top: 50%; transform: translateY(-50%); }
  .topbar .logo { left: 5vw !important; }
  .topbar .logo img { height: 52px !important; }
  .editorial-grid, .about-grid { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
  .col-left { padding: 0 !important; }
  .services-slider { grid-template-columns: 1fr !important; gap: 1.2rem !important; }
  .services-slider .card img { height: min(115vw, 620px) !important; }
  .services-slider .card span { position: absolute !important; }
  .blog .grid-3, .blog-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .contact__grid { grid-template-columns: 1fr !important; }
  .contact__image img { max-height: 520px; }
  .about-image-wrapper { order: -1; max-width: 440px; }
  .img-arch { height: min(115vw, 560px); }
  .footer__top { flex-direction: column !important; }
  .footer__links { justify-content: center !important; }
}
@media (max-width: 600px) {
  .container, .editorial-grid, .contact__grid { width: calc(100% - 12vw) !important; }
  .hero__content { width: calc(100% - 12vw) !important; padding-bottom: 3rem !important; }
  .hero h1 { font-size: clamp(3rem, 14vw, 5rem) !important; }
  .hero__eyebrow { max-width: 250px; font-size: 8px; }
  .blog .grid-3, .blog-grid { grid-template-columns: 1fr !important; }
  .blogcard img, .blog-item img { height: 72vw !important; }
  .blog-card, .ig-card { width: calc(100% - 12vw); }
  .contact-form { display: flex; flex-direction: column; gap: .4rem; }
  .contact-form input, .contact-form select, .contact-form textarea { margin-bottom: 1rem; }
  .footer__links { display: grid !important; grid-template-columns: 1fr 1fr; gap: .3rem 1rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Inner pages use a quiet dark masthead so the white monogram stays legible. */
.page-about .topbar, .page-portfolio .topbar, .page-blog .topbar, .page-contact .topbar {
  position: absolute !important; background: #292520 !important;
}
h1, h2, h3, blockquote { font-family: var(--serif) !important; font-weight: 500; }
.about-invitation { margin: 2rem auto 1rem !important; color: var(--ink); text-align: center; font: italic 500 clamp(1.6rem, 3vw, 2.5rem)/1.1 var(--serif); }


/* Mobile, accessibility and performance refinements */
.language-link a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; font-size:.78rem !important; letter-spacing:.12em; }
.journal-categories { display:flex; flex-wrap:wrap; gap:.65rem; justify-content:center; margin:2rem auto 4rem; max-width:1000px; }
.journal-categories a { border:1px solid var(--line); border-radius:99px; padding:.7rem 1rem; color:var(--ink); text-decoration:none; font-size:.82rem; }
.journal-category { margin:0 auto 4rem; max-width:1440px; scroll-margin-top:100px; }
.journal-category > h2 { margin:0 0 1.5rem; font-size:clamp(1.7rem,3vw,2.4rem); }
.journal-category .blog-grid { display:grid; }
.page-blog .blog-card__header { max-width:850px; margin-inline:auto; }
.nav-toggle { position:absolute; width:1px; height:1px; opacity:0; }
.nav-toggle:focus-visible + .hamburger { outline:2px solid currentColor; outline-offset:4px; }
@media (max-width:1023px) {
  .nav-mobile-overlay { z-index:9; }
  .nav-mobile-overlay a { min-height:44px; display:flex; align-items:center; }
  .nav-mobile-overlay .language-link a { font-family:var(--sans); font-size:1rem !important; letter-spacing:.15em; }
  .page-home .hero { min-height:100svh; }
  .page-home .hero__content { padding-inline:0; }
  .blog-grid { gap:1rem !important; }
}
@media (max-width:600px) {
  .topbar { min-height:68px; }
  .logo img { max-width:150px; max-height:42px; object-fit:contain; }
  .hero__content h1 { font-size:clamp(2.55rem,12vw,4rem) !important; line-height:.98 !important; }
  .page-home .hero__content { width:calc(100% - 2.5rem) !important; }
  .page-intro { padding-inline:1.25rem; }
  .journal-categories { justify-content:flex-start; padding-inline:1.25rem; margin-bottom:2.5rem; }
  .journal-categories a { font-size:.76rem; padding:.65rem .8rem; }
  .journal-category { padding-inline:1.25rem; margin-bottom:3rem; }
  .blog-grid { grid-template-columns:1fr !important; }
  .blog-item img { aspect-ratio:4 / 3; object-fit:cover; }
  .services-slider { overflow-x:auto; scroll-snap-type:x mandatory; }
  .services-slider .card { scroll-snap-align:start; }
  input,select,textarea,button { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

.journal-category__intro { max-width:740px; margin:-.4rem 0 1.5rem; color:var(--muted-ink); font-size:1rem; line-height:1.8; }

/* Photo gallery */
.portfolio-gallery { width:min(1440px,calc(100% - 8vw)); margin:0 auto; padding:clamp(9rem,11vw,12rem) 0 clamp(4rem,8vw,8rem); }
.gallery-category { margin:0 0 clamp(3.5rem,7vw,6rem); }
.portfolio-tabs { display:flex; justify-content:center; gap:clamp(.2rem,1vw,.8rem); width:100%; margin:0 auto clamp(2.5rem,5vw,4rem); overflow-x:auto; border-bottom:1px solid var(--line); scrollbar-width:thin; }
.portfolio-tabs[hidden] { display:none; }
.portfolio-tabs [role="tab"] { min-height:48px; flex:0 0 auto; border:0; border-bottom:1px solid transparent; margin-bottom:-1px; padding:.7rem clamp(.75rem,2vw,1.4rem); background:transparent; color:var(--muted-ink); cursor:pointer; font:500 10px/1.2 var(--sans); letter-spacing:.14em; text-transform:uppercase; white-space:nowrap; }
.portfolio-tabs [role="tab"]:hover,.portfolio-tabs [role="tab"][aria-selected="true"] { color:var(--ink); border-bottom-color:var(--ink); }
.portfolio-tabs [role="tab"]:focus-visible,.gallery-category[role="tabpanel"]:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.gallery-category[hidden] { display:none; }

.gallery-category h2 { margin:0 0 .85rem; color:var(--ink); font:500 clamp(2rem,4vw,3rem)/1 var(--serif); }
.portfolio-category-intro { max-width:800px; margin:0 0 clamp(1.5rem,3vw,2rem); color:var(--muted-ink); font-size:15px; line-height:1.8; }
.photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(.65rem,1.5vw,1.25rem); }
.photo-card { margin:0; overflow:hidden; background:#e9e3da; }
.photo-card a { display:block; }
.photo-card img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
@media (hover:hover) { .photo-card a:hover img { transform:scale(1.025); } }
@media (max-width:900px) { .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .portfolio-gallery { width:calc(100% - 2.5rem); } .photo-grid { gap:.55rem; } }

/* Wedding portfolio follows the spacious, natural-proportion mosaic of the reference gallery. */
.gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) > h2 { margin:0 0 .8rem; color:var(--ink); font:500 15px/1.3 var(--sans); letter-spacing:.2em; text-align:center; text-transform:uppercase; }
.gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .portfolio-category-intro { max-width:760px; margin:0 auto clamp(3.5rem,7vw,6rem); color:var(--muted-ink); font:400 clamp(1rem,1.25vw,1.15rem)/1.8 var(--serif); text-align:center; }
.gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .photo-grid { display:block; width:calc(100vw - 4vw); margin-left:calc(50% - 48vw); column-count:3; column-gap:clamp(1rem,2.7vw,2.4rem); }
.gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .photo-card { display:inline-block; width:100%; margin:0 0 clamp(1rem,2.7vw,2.4rem); break-inside:avoid; background:transparent; }
.gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .photo-card img { width:100%; height:auto; aspect-ratio:auto; object-fit:initial; }
@media (max-width:900px) { .gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .photo-grid { column-count:2; } }
@media (max-width:600px) { .gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .photo-grid { width:calc(100vw - 2rem); margin-left:calc(50% - 50vw + 1rem); column-gap:.75rem; } .gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .photo-card { margin-bottom:.75rem; } .gallery-category:is(.gallery-category--weddings, .gallery-category--lifestyle, .gallery-category--business) .portfolio-category-intro { margin-bottom:2.5rem; } }

/* Reference-inspired typography and split masthead */
body { font-size:14px; line-height:1.75; }
.topbar { position:absolute !important; inset:0 0 auto !important; height:88px !important; z-index:20 !important; padding:10px 3vw !important; display:flex !important; justify-content:center !important; align-items:center !important; }
.topbar > .logo { position:absolute !important; left:50% !important; top:50% !important; transform:translate(-50%,-50%) !important; z-index:3; }
.topbar .logo img { height:52px !important; max-width:150px; }
.nav-desktop { display:flex !important; position:absolute !important; left:3vw !important; width:auto !important; justify-content:flex-start !important; }
.nav-desktop ul { gap:clamp(.85rem,1.6vw,1.65rem) !important; }
.nav-desktop a { font:500 9px/1 var(--sans) !important; letter-spacing:.16em !important; }
.header-actions { position:absolute; right:3vw; top:50%; transform:translateY(-50%); display:flex; align-items:center; gap:clamp(.75rem,1.4vw,1.4rem); }
.header-instagram,.header-language { color:#fff !important; text-decoration:none; text-transform:uppercase; font:500 9px/1 var(--sans); letter-spacing:.14em; }
.header-contact { min-height:40px; display:inline-flex; align-items:center; justify-content:center; padding:0 1.25rem; background:#171614; color:#fff !important; text-decoration:none; font:500 9px/1 var(--sans); letter-spacing:.16em; }
.header-contact:hover { background:#393632; }
.nav-mobile-overlay a { font:500 11px/1.3 var(--sans) !important; letter-spacing:.16em; text-transform:uppercase; }
.hero h1 { font-size:clamp(2.8rem,6.4vw,5.6rem) !important; line-height:.98 !important; letter-spacing:-.02em !important; }
.serif-quote { font-size:clamp(2.25rem,4.4vw,4.1rem) !important; line-height:1.02 !important; }
.thin-lead { font-size:15px !important; line-height:1.8 !important; }
.about-title { font-size:clamp(2.8rem,4.8vw,5rem) !important; line-height:.94 !important; letter-spacing:-.025em !important; }
.about-body { font-size:14px !important; line-height:1.8 !important; }
.blog h2,.blog-card__header h2 { font-size:clamp(2.4rem,4.7vw,4.4rem) !important; line-height:1 !important; }
.blogcard p,.blog-content h3 { font-size:clamp(1.2rem,1.65vw,1.55rem) !important; line-height:1.18 !important; }
.page-intro h1,.blog-card__header h1 { font-size:clamp(2.5rem,4.8vw,4.6rem) !important; line-height:.98 !important; letter-spacing:-.02em !important; }
.article-content h1 { font-size:clamp(2.5rem,4.8vw,4.4rem) !important; line-height:.98 !important; }
.portfolio-intro { width:min(900px,100%); margin:0 auto clamp(2rem,4vw,3.5rem); text-align:center; }
.portfolio-intro h1 { margin:0; color:var(--ink); font:500 clamp(2.5rem,4.8vw,4.6rem)/.98 var(--serif); letter-spacing:-.02em; }
.portfolio-intro-copy { max-width:680px; margin:1.15rem auto 0; color:var(--muted-ink); font-size:15px; line-height:1.8; }
.editorial-eyebrow,.hero__eyebrow { font-size:9px !important; letter-spacing:.18em !important; }
@media (max-width:1023px) {
  .nav-desktop { display:none !important; }
  .header-actions { display:none !important; }
  .topbar > .logo { left:50% !important; }
  .nav-mobile-container { display:block !important; position:absolute !important; right:5vw !important; top:50% !important; transform:translateY(-50%) !important; }
  .nav-mobile-overlay { z-index:30 !important; }
  .nav-mobile-overlay a { min-height:44px; display:flex; align-items:center; font-size:11px !important; }
}
@media (max-width:600px) {
  .topbar { height:72px !important; }
  .topbar .logo img { height:42px !important; max-width:120px; }
  .hero h1 { font-size:clamp(2.25rem,9vw,3.5rem) !important; line-height:1 !important; }
  .about-title,.page-intro h1,.blog-card__header h1,.article-content h1,.portfolio-intro h1 { font-size:clamp(2.2rem,9vw,3.15rem) !important; line-height:1.02 !important; }
  .hero__content { width:calc(100% - 2.5rem) !important; }
  .thin-lead,.about-body,.blog-card__header > p:last-child,.page-intro > p:not(.editorial-eyebrow) { font-size:14px !important; line-height:1.75 !important; }
}


/* Reference-inspired finishing: airy type, testimonials marquee and warm footer */
.visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.logo__mark { color:inherit; font:500 clamp(1.25rem,1.8vw,1.65rem)/1 var(--serif) !important; letter-spacing:.04em; white-space:nowrap; }
.header-actions { gap:clamp(1rem,1.8vw,1.8rem) !important; }
.header-instagram { width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; }
.header-instagram svg { display:block; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; }
.header-instagram svg .instagram-dot { fill:currentColor; stroke:none; }
.header-contact { min-width:108px; min-height:42px; padding:0 1.35rem !important; font-size:10px !important; letter-spacing:.15em !important; }
.portfolio-tabs { gap:clamp(.5rem,1.5vw,1.5rem) !important; border-bottom:1px solid rgba(39,35,31,.22) !important; }
.portfolio-tabs [role="tab"] { padding:.85rem clamp(.75rem,1.6vw,1.45rem) !important; font:500 10px/1.3 var(--sans) !important; letter-spacing:.14em !important; }
.home-testimonials { padding:clamp(4rem,7vw,6rem) 0 clamp(4.5rem,8vw,7rem) !important; background:#e6dece !important; overflow:hidden; }
.home-testimonials__header { width:100vw; max-width:none; margin:0 calc(50% - 50vw) clamp(2.7rem,5vw,4.2rem) !important; overflow:hidden; }
.home-testimonials__marquee { overflow:hidden; width:100%; }
.home-testimonials__track { display:flex; align-items:center; width:max-content; animation:home-testimonials-marquee 30s linear infinite; }
.home-testimonials__track span { flex:0 0 auto; padding:0 2.2vw; color:var(--ink); font:500 clamp(1.25rem,2vw,1.75rem)/1.3 var(--serif); letter-spacing:.16em; text-transform:uppercase; white-space:nowrap; }
@keyframes home-testimonials-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.home-testimonials__grid { gap:clamp(2rem,6vw,6.5rem) !important; }
.home-testimonial blockquote { color:#3f3932 !important; font:italic 400 clamp(1rem,1.15vw,1.15rem)/1.58 var(--serif) !important; text-align:justify; }
.home-testimonial figcaption { margin-top:1.4rem !important; font:500 10px/1.5 var(--sans) !important; letter-spacing:.18em !important; }
.footer { padding:clamp(3.4rem,7vw,6rem) 5vw 2.1rem !important; background:#e6dece !important; color:var(--ink) !important; }
.footer__top { display:grid !important; grid-template-columns:minmax(260px,1fr) minmax(320px,.9fr) !important; align-items:end !important; gap:3rem !important; }
.footer__brandname { display:inline-block; margin:0 0 1rem; color:var(--ink); text-decoration:none; font:500 clamp(1.8rem,3vw,2.5rem)/1 var(--serif); letter-spacing:.04em; }
.footer__description { max-width:390px; margin:0 0 1.4rem; color:#49433c; font:400 16px/1.6 var(--serif); }
.footer__copy { margin:0 !important; padding:0 !important; border:0 !important; color:#625a50 !important; font:italic 400 14px/1.5 var(--serif) !important; letter-spacing:0 !important; }
.footer__links { display:grid !important; grid-template-columns:repeat(2,minmax(120px,1fr)) !important; justify-content:end !important; gap:.65rem 2rem !important; }
.footer__links a { justify-self:start; width:max-content; padding:0 !important; color:var(--ink) !important; font:500 10px/1.6 var(--sans) !important; letter-spacing:.15em !important; text-transform:uppercase; text-decoration:underline; text-underline-offset:5px; }
.footer__links a:hover { opacity:.62; }
@media (max-width:900px) { .home-testimonials__grid { grid-template-columns:1fr !important; max-width:620px; margin-inline:auto; gap:2.4rem !important; } .home-testimonial { padding-bottom:1.9rem; border-bottom:1px solid rgba(39,35,31,.2); } .home-testimonial:last-child { padding:0; border:0; } }
@media (max-width:700px) { .footer__top { grid-template-columns:1fr !important; align-items:start !important; gap:2.2rem !important; } .footer__links { justify-content:start !important; } .home-testimonials__track span { padding:0 7vw; } }
@media (prefers-reduced-motion:reduce) { .home-testimonials__track { animation:none; } }

/* Refinements from Anna: true logo, quiet black masthead, smaller type and linked work previews. */
.topbar,
.page-about .topbar,
.page-portfolio .topbar,
.page-blog .topbar,
.page-contact .topbar {
  background: #f5f2ec !important;
  background-image: none !important;
  color: #171614 !important;
}
.topbar .logo img { display:block !important; width:auto !important; height:46px !important; max-width:150px !important; object-fit:contain; }
.nav-desktop a,
.header-instagram,
.header-language { color:#171614 !important; }
.nav-desktop a::after { background:#171614 !important; }
.header-contact { border:1px solid #171614 !important; background:transparent !important; color:#171614 !important; }
.header-contact:hover { background:#171614 !important; color:var(--paper) !important; }
.hamburger { border-color:rgba(23,22,20,.65) !important; }
.hamburger span,.hamburger span::before,.hamburger span::after { background:#171614 !important; }
.nav-mobile-overlay { background:rgba(245,242,236,.98) !important; }
.nav-mobile-overlay a { color:#171614 !important; }

.hero__bg-slideshow .slide { animation:none !important; opacity:1 !important; background-position:center 55%; }
.hero__bg-slideshow::after { background:linear-gradient(0deg,rgba(20,18,16,.36),transparent 57%); }
.hero__content { width:min(1120px,calc(100% - 10vw)) !important; padding-bottom:clamp(3rem,7vh,5.5rem) !important; }
.hero h1 { max-width:680px; font-size:clamp(2.25rem,4.6vw,4.2rem) !important; line-height:1.02 !important; letter-spacing:-.02em !important; }
.hero__eyebrow { font-size:9px !important; }

.serif-quote { font-size:clamp(2.15rem,3.6vw,3.55rem) !important; line-height:1.04 !important; }
.thin-lead { font-size:14px !important; line-height:1.8 !important; }
.contact__text h2 { font-size:clamp(2.3rem,3.7vw,3.75rem) !important; line-height:1.02 !important; }
.page-intro h1,.blog-card__header h1,.article-content h1,.portfolio-intro h1,.about-title { font-size:clamp(2.35rem,4.2vw,3.9rem) !important; line-height:1.02 !important; }
.blog h2,.blog-card__header h2,.services-cta__content h2 { font-size:clamp(2.1rem,3.6vw,3.5rem) !important; line-height:1.04 !important; }

.home-portfolios { padding:clamp(4.5rem,8vw,7rem) 0; background:var(--paper); }
.home-portfolios__inner { width:min(1360px,calc(100% - 9vw)); margin:0 auto; }
.home-portfolios__header { margin:0 auto clamp(2rem,4vw,3.2rem); text-align:center; }
.home-portfolios__header .editorial-eyebrow { margin:0 0 .7rem; }
.home-portfolios__header h2 { margin:0; color:var(--ink); font:500 clamp(2rem,3.2vw,3.25rem)/1.05 var(--serif); }
.home-portfolios__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,2.5vw,2.3rem); }
.home-portfolio-card { display:grid; grid-template-columns:1fr auto; align-items:center; gap:.9rem; color:var(--ink); text-decoration:none; }
.home-portfolio-card img { grid-column:1/-1; display:block; width:100%; aspect-ratio:1.18/1; object-fit:cover; }
.home-portfolio-card span { font:500 10px/1.5 var(--sans); letter-spacing:.17em; text-transform:uppercase; }
.home-portfolio-card i { font:normal 15px/1 var(--sans); transition:transform .2s ease; }
.home-portfolio-card:hover i { transform:translate(3px,-3px); }
.home-portfolio-card:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
.gallery-category[role="tabpanel"] { scroll-margin-top:24px; }

@media (max-width:1023px) { .topbar .logo img { height:42px !important; max-width:138px !important; } }
@media (max-width:800px) { .home-portfolios__grid { grid-template-columns:1fr; gap:1.8rem; max-width:680px; margin-inline:auto; } .home-portfolio-card img { aspect-ratio:1.45/1; } }
@media (max-width:600px) {
  .topbar { height:72px !important; background:#f5f2ec !important; background-image:none !important; }
  .topbar .logo { left:5vw !important; transform:translateY(-50%) !important; }
  .topbar .logo img { height:39px !important; max-width:118px !important; }
  .hero h1 { max-width:520px; font-size:clamp(2rem,8.5vw,3rem) !important; line-height:1.05 !important; }
  .hero__content { text-align:left !important; }
  .hero__eyebrow { max-width:280px; }
  .home-portfolios__inner { width:calc(100% - 2.5rem); }
  .home-portfolios__header { text-align:left; }
  .home-portfolios__header h2 { font-size:2.25rem; }
  .home-portfolio-card img { aspect-ratio:1.3/1; }
}

/* Portfolio opens directly on its three categories; the photo grids finish on a clean edge. */
.portfolio-gallery { padding:clamp(6.5rem,8vw,8.5rem) 0 clamp(4rem,7vw,7rem); }
.portfolio-intro { display:none !important; }
.portfolio-tabs { width:min(1180px,100%); margin:0 auto clamp(2rem,3.5vw,3.25rem) !important; }
.gallery-category { margin:0 !important; }
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-grid {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  width:calc(100vw - 4vw);
  margin-left:calc(50% - 48vw);
  column-count:initial;
  column-gap:clamp(.65rem,1.4vw,1.25rem);
  row-gap:clamp(.65rem,1.4vw,1.25rem);
}
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card {
  display:block;
  grid-column:span 2;
  margin:0;
}
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
}
.gallery-category--weddings .photo-card:last-child { grid-column:1/-1; }
.gallery-category--weddings .photo-card:last-child img { aspect-ratio:2.1/1; object-position:center 48%; }
.gallery-category--lifestyle .photo-card:nth-last-child(-n+2),
.gallery-category--business .photo-card:nth-last-child(-n+2) { grid-column:span 3; }
@media (max-width:900px) {
  .gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-grid { grid-template-columns:repeat(4,minmax(0,1fr)); width:calc(100vw - 3rem); margin-left:calc(50% - 50vw + 1.5rem); }
  .gallery-category--weddings .photo-card:last-child,.gallery-category--lifestyle .photo-card:last-child { grid-column:1/-1; }
  .gallery-category--business .photo-card:nth-last-child(-n+2) { grid-column:span 2; }
}
@media (max-width:600px) {
  .portfolio-gallery { width:calc(100% - 2rem); padding-top:6.5rem; }
  .portfolio-tabs { justify-content:flex-start; margin-bottom:1.5rem !important; }
  .portfolio-tabs [role="tab"] { font-size:9px !important; letter-spacing:.1em !important; padding:.75rem .65rem !important; }
  .gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); width:calc(100vw - 2rem); margin-left:calc(50% - 50vw + 1rem); gap:.5rem; }
  .gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card { grid-column:span 1; }
  .gallery-category--weddings .photo-card:last-child,.gallery-category--lifestyle .photo-card:last-child { grid-column:1/-1; }
  .gallery-category--weddings .photo-card:last-child img { aspect-ratio:1.55/1; }
  .gallery-category--business .photo-card:nth-last-child(-n+2) { grid-column:span 1; }
}

/* Latest additions: balanced rows at desktop, tablet and phone widths. */
.gallery-category--weddings .photo-card:last-child { grid-column:span 2; }
.gallery-category--weddings .photo-card:last-child img { aspect-ratio:4/5; object-position:center; }
.gallery-category--lifestyle .photo-card:nth-last-child(-n+2) { grid-column:span 2; }
.gallery-category--business .photo-card:nth-last-child(-n+2) { grid-column:span 2; }
@media (max-width:900px) {
  .gallery-category--weddings .photo-card:last-child { grid-column:span 2; }
  .gallery-category--lifestyle .photo-card:nth-last-child(-n+2) { grid-column:span 2; }
  .gallery-category--business .photo-card:last-child { grid-column:1/-1; }
}
@media (max-width:600px) {
  .gallery-category--weddings .photo-card:last-child { grid-column:span 1; }
  .gallery-category--lifestyle .photo-card:nth-last-child(-n+2) { grid-column:span 1; }
  .gallery-category--business .photo-card:last-child { grid-column:1/-1; }
  .gallery-category--business .photo-card:last-child img { aspect-ratio:1.5/1; }
}
@media (min-width:901px) {
  .gallery-category--lifestyle .photo-card:nth-last-child(2) { grid-column:span 4; }
  .gallery-category--lifestyle .photo-card:last-child { grid-column:span 2; }
}
@media (max-width:900px) {
  .gallery-category--lifestyle .photo-card:last-child { grid-column:1/-1; }
}
@media (max-width:600px) {
  .gallery-category--lifestyle .photo-card:last-child { grid-column:1/-1; }
}

/* Portfolio: staggered editorial columns with natural portrait and landscape proportions. */
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-grid {
  display:block;
  column-count:3;
  column-gap:clamp(.9rem,2.3vw,2.4rem);
  column-fill:balance;
  row-gap:0;
}
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card {
  display:inline-block;
  width:100%;
  margin:0 0 clamp(.9rem,2.3vw,2.4rem);
  break-inside:avoid-column;
  vertical-align:top;
  animation:gallery-appear .55s ease both;
}
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card a { display:block; }
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:initial;
}
.gallery-category--weddings .photo-card:last-child,
.gallery-category--lifestyle .photo-card:nth-last-child(-n+2),
.gallery-category--business .photo-card:nth-last-child(-n+2) { grid-column:auto; }
@keyframes gallery-appear { from { opacity:0; } to { opacity:1; } }
@media (max-width:900px) {
  .gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-grid { column-count:2; }
}
@media (max-width:600px) {
  .gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-grid { column-count:2; column-gap:.65rem; }
  .gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card { margin-bottom:.65rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .photo-card { animation:none; }
}

/* “Moi en quelques mots”: restrained, centered typewriter moment. */
.about-typewriter { width:min(1280px,calc(100% - 9vw)); margin:clamp(3.25rem,6vw,5.5rem) auto; text-align:center; }
.about-typewriter__title { margin:0 0 .65rem; color:var(--muted-ink); font:500 10px/1.4 var(--sans); letter-spacing:.18em; text-transform:uppercase; }
.about-typewriter .typewriter-container { display:flex; justify-content:center; align-items:center; min-height:clamp(3.25rem,6vw,5rem); margin:0 auto; color:var(--ink); }
.about-typewriter .typewriter-text { border-right:1px solid currentColor; padding-right:.14em; color:var(--ink); font:italic 500 clamp(2.15rem,4vw,3.25rem)/1.05 var(--serif); letter-spacing:0; white-space:nowrap; }
@media (max-width:600px) {
  .about-typewriter { width:calc(100% - 2rem); margin:3rem auto; }
  .about-typewriter .typewriter-text { font-size:clamp(1.85rem,9vw,2.5rem); }
}
@media (prefers-reduced-motion:reduce) {
  .about-typewriter .typewriter-text { border-right:0; animation:none; white-space:normal; }
}

/* Keep the footer's left text column aligned to its left edge. */
.footer__brand { width:min(100%,32rem); margin-right:auto; text-align:left !important; }

/* About page: the central quote sits in the same warm cream used on the home cards. */
.page-about { background:#fff !important; }
.page-about .about-intro-editorial { background:#fff !important; }
.about-quote.container {
  box-sizing:border-box;
  display:block;
  width:100%;
  max-width:none;
  margin:clamp(1.5rem,3vw,2.5rem) 0 clamp(3rem,6vw,5rem);
  padding:clamp(2rem,4vw,3.25rem) 1.5rem;
  background:#f5f2ec;
  text-align:center;
}
.about-quote.container blockquote {
  max-width:800px;
  font-size:clamp(1.45rem,2.5vw,2.35rem);
  line-height:1.2;
}
@media(max-width:600px) {
  .about-quote.container { padding:1.8rem 1.25rem; }
  .about-quote.container blockquote { max-width:100%; font-size:1.45rem; }
}

/* About page closing invitation: photograph on the left, invitation on the right. */
.about-invitation.container {
  box-sizing:border-box;
  width:min(1120px,calc(100% - 8vw));
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  align-items:center;
  gap:clamp(2rem,6vw,6rem);
  margin:clamp(3rem,7vw,6rem) auto !important;
  text-align:center;
}
.about-invitation__image {
  display:block;
  width:100%;
  aspect-ratio:4 / 5;
  object-fit:cover;
  object-position:center 42%;
}
.about-invitation__content { display:flex; flex-direction:column; align-items:center; }
.about-invitation__content .about-invitation__lead {
  max-width:520px;
  margin:0 0 1.5rem;
  color:#59534c;
  font:400 14px/1.85 var(--sans);
  font-style:normal;
}
.about-invitation__content p {
  max-width:520px;
  margin:0 0 1.7rem;
  color:var(--ink);
  font:italic 500 clamp(1.7rem,3vw,2.6rem)/1.15 var(--serif);
}
@media(max-width:700px) {
  .about-invitation.container {
    width:calc(100% - 2.5rem);
    grid-template-columns:1fr;
    gap:1.8rem;
  }
  .about-invitation__image { aspect-ratio:4 / 3; object-position:center 38%; }
  .about-invitation__content p { font-size:clamp(1.65rem,7vw,2.1rem); }
}
.footer__brand .footer__description,
.footer__brand .footer__copy { text-align:left !important; }
@media (max-width:800px) {
  .footer__brand { width:100%; align-self:flex-start; }
}

/* Contact form labels and section titles follow the form's left edge. */
.contact-page .contact-form label {
  display:block;
  width:100%;
  align-self:flex-start;
  text-align:left !important;
}


/* Blog index: quiet photo cards with linked black titles beneath */
.page-blog .journal-category .blog-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: start;
  gap: clamp(2rem, 3.2vw, 3.5rem) clamp(1.25rem, 2.4vw, 2.5rem) !important;
}
.page-blog .blog-item {
  min-width: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  text-align: left;
  transform: none !important;
}
.page-blog .blog-item__image-link {
  display: block;
  overflow: hidden;
  aspect-ratio: 1.28 / 1;
  background: var(--paper-deep);
}
.page-blog .blog-item__image-link img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.2,.65,.2,1);
}
@media (hover:hover) {
  .page-blog .blog-item__image-link:hover img { transform: scale(1.025); }
}
.page-blog .blog-content { display: block !important; padding: .85rem 0 0 !important; }
.page-blog .blog-content h3 {
  margin: 0 !important;
  color: #171614 !important;
  font: 500 clamp(1.3rem, 1.7vw, 1.75rem)/1.14 var(--serif) !important;
}
.page-blog .blog-item__title-link {
  color: #171614 !important;
  text-decoration: none !important;
  text-underline-offset: .18em;
  transition: opacity .2s ease;
}
.page-blog .blog-item__title-link:hover { opacity: .68; text-decoration: underline !important; }
.page-blog .blog-item__image-link:focus-visible,
.page-blog .blog-item__title-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
@media (max-width: 900px) {
  .page-blog .journal-category .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 600px) {
  .page-blog .journal-category .blog-grid { grid-template-columns: 1fr !important; gap: 2rem !important; }
  .page-blog .blog-item__image-link { aspect-ratio: 1.15 / 1; }
  .page-blog .blog-content h3 { font-size: 1.5rem !important; }
}

/* Journal archive: image-led editorial cards, inspired by the clean archive rhythm
   of Arthur Joncour's blog and adapted to Anna's serif typography. */
.page-blog { background:#fff !important; }
.page-blog .blog-card {
  width:min(1280px,calc(100% - 10vw)) !important;
  padding:clamp(7.5rem,10vw,10rem) 0 clamp(4rem,7vw,7rem) !important;
}
.page-blog .blog-card__header { max-width:820px; margin:0 auto clamp(2.2rem,4vw,3.5rem); }
.page-blog .blog-card__header .editorial-eyebrow { margin:0 0 1rem; color:#77736e; font:500 10px/1.4 var(--sans); letter-spacing:.2em; }
.page-blog .blog-card__header h1 { font-size:clamp(2.6rem,5.2vw,4.8rem) !important; line-height:1.02 !important; letter-spacing:-.025em !important; }
.page-blog .journal-categories {
  width:100%; max-width:100%; justify-content:center; gap:0; margin:0 auto clamp(4rem,7vw,6rem);
  border-top:1px solid #e8e5e0; border-bottom:1px solid #e8e5e0;
}
.page-blog .journal-categories a {
  border:0; border-radius:0; padding:.95rem clamp(.6rem,1.6vw,1.35rem); color:#34312d;
  font:500 9px/1.4 var(--sans); letter-spacing:.1em; text-transform:uppercase; text-align:center;
}
.page-blog .journal-categories a:hover { text-decoration:underline; text-underline-offset:4px; }
.page-blog .journal-category { max-width:100%; margin:0 auto clamp(4.5rem,8vw,7rem); }
.page-blog .journal-category > h2 {
  margin:0 0 1.7rem !important; color:#24221f; font:500 clamp(1.8rem,2.8vw,2.55rem)/1.05 var(--serif) !important;
}
.page-blog .journal-category__intro { margin:-.65rem 0 1.7rem; max-width:720px; font-size:14px; }
.page-blog .journal-category .blog-grid {
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  column-gap:clamp(1.5rem,4vw,4.5rem) !important;
  row-gap:clamp(2.6rem,5vw,4.5rem) !important;
}
.page-blog .blog-item__image-link { aspect-ratio:1.48/1; background:#f2f0ec; }
.page-blog .blog-content { padding:1rem 0 0 !important; }
.page-blog .blog-item__category {
  margin:0 0 .55rem; color:#77736e; font:500 9px/1.5 var(--sans); letter-spacing:.13em; text-transform:uppercase;
}
.page-blog .blog-content h3 { margin:0 !important; font-size:clamp(1.45rem,2.05vw,2rem) !important; line-height:1.08 !important; }
.page-blog .blog-item__excerpt { max-width:540px; margin:.55rem 0 .7rem; color:#66615b; font:400 13px/1.75 var(--sans); }
.page-blog .blog-item__read-more {
  display:inline-flex; align-items:center; gap:.5rem; padding:.2rem 0; color:#272522;
  font:500 9px/1.5 var(--sans); letter-spacing:.12em; text-decoration:none; text-transform:uppercase;
}
.page-blog .blog-item__read-more span { font-size:14px; transition:transform .2s ease; }
.page-blog .blog-item__read-more:hover span { transform:translateX(4px); }
.page-blog .services-cta { background:#f5f2ec; }
@media (max-width:700px) {
  .page-blog .blog-card { width:calc(100% - 2.5rem) !important; padding-top:6.5rem !important; }
  .page-blog .journal-categories { justify-content:flex-start; overflow-x:auto; }
  .page-blog .journal-categories a { flex:0 0 auto; padding:.85rem .8rem; font-size:8px; }
  .page-blog .journal-category { padding:0; margin-bottom:3.8rem; }
  .page-blog .journal-category .blog-grid { grid-template-columns:1fr !important; row-gap:2.4rem !important; }
  .page-blog .blog-item__image-link { aspect-ratio:1.25/1; }
  .page-blog .blog-content h3 { font-size:1.65rem !important; }
}

/* Anna's final palette adjustment: keep the portfolio and journal pages pure white. */
body.page-portfolio,
body.page-blog,
body.page-portfolio #page-content,
body.page-blog #page-content,
.page-portfolio .portfolio-gallery,
.page-portfolio .gallery-category,
.page-blog .blog-card,
.page-blog .journal-category,
.page-blog .services-cta {
  background:#fff !important;
  background-color:#fff !important;
}
.page-portfolio .topbar,
.page-blog .topbar {
  background:#fff !important;
  background-color:#fff !important;
  background-image:none !important;
  box-shadow:none !important;
  border:0 !important;
}
.page-portfolio .nav-mobile-overlay,
.page-blog .nav-mobile-overlay {
  background:rgba(255,255,255,.98) !important;
}

/* Use Anna's monogram in the footer in place of the text brand. */
.footer__logo-link {
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-start;
  margin:0 0 1rem !important;
  padding:0 !important;
  line-height:0;
}
.footer__logo-link img {
  display:block;
  width:auto !important;
  height:58px !important;
  max-width:145px;
  object-fit:contain;
  object-position:left center;
  opacity:1 !important;
}
@media (max-width:600px) {
  .footer__logo-link img { height:52px !important; }
}

/* Use a focused, lighter portrait crop for the homepage hero on phones. */
@media (max-width:760px) {
  .page-home .hero__bg-slideshow .slide {
    background-image:url("images/hero-car-mobile.webp") !important;
    background-position:center center !important;
    background-size:cover !important;
  }
}

/* About page: white masthead and white opening section; the quote band stays distinct. */
body.page-about,
body.page-about #page-content,
.page-about .topbar,
.page-about .about-intro-editorial,
.page-about .about-text {
  background:#fff !important;
  background-color:#fff !important;
  background-image:none !important;
}
.page-about .nav-mobile-overlay {
  background:rgba(255,255,255,.98) !important;
}

/* Blog archive cards follow the reference's wide image-left / text-right layout. */
.page-blog .blog-card {
  width:min(1600px,calc(100% - 11vw)) !important;
}
.page-blog .journal-category .blog-grid {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:clamp(3.5rem,7vw,6.5rem) !important;
}
.page-blog .blog-item {
  display:grid !important;
  grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr) !important;
  align-items:center !important;
  gap:clamp(2rem,5vw,6rem) !important;
  width:100%;
}
.page-blog .blog-item__image-link {
  width:100%;
  aspect-ratio:1.5/1;
}
.page-blog .blog-content {
  max-width:690px;
  margin:0 auto;
  padding:0 clamp(.25rem,2vw,1.5rem) !important;
  text-align:center;
}
.page-blog .blog-item__category { margin-bottom:.8rem; }
.page-blog .blog-content h3 {
  font-size:clamp(1.8rem,3vw,3.35rem) !important;
  line-height:1.12 !important;
}
.page-blog .blog-item__excerpt {
  max-width:600px;
  margin:1.5rem auto 2.1rem;
  color:#45413c;
  font:400 clamp(1rem,1.35vw,1.25rem)/1.75 var(--serif);
}
.page-blog .blog-item__read-more {
  font-size:10px;
  font-weight:600;
  letter-spacing:.3em;
  text-decoration:underline;
  text-underline-offset:5px;
  text-transform:none;
}
.page-blog .blog-item__read-more span { display:none; }
@media (max-width:760px) {
  .page-blog .blog-card { width:calc(100% - 2.5rem) !important; }
  .page-blog .journal-category .blog-grid { gap:2.8rem !important; }
  .page-blog .blog-item { grid-template-columns:1fr !important; gap:1.2rem !important; }
  .page-blog .blog-item__image-link { aspect-ratio:1.25/1; }
  .page-blog .blog-content { padding:0 .5rem !important; }
  .page-blog .blog-content h3 { font-size:clamp(1.7rem,7vw,2.25rem) !important; }
  .page-blog .blog-item__excerpt { margin:1rem auto 1.2rem; font-size:1rem; }
}

/* Match the reference's alternating editorial rhythm across the article archive. */
@media (min-width:761px) {
  .page-blog .blog-card { width:min(1820px,calc(100% - 11vw)) !important; }
  .page-blog .journal-category .blog-grid { row-gap:clamp(8rem,14vw,17rem) !important; }
  .page-blog .blog-item { grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; }
  /* Alternate each consecutive story by its position in the archive, not its article number. */
  .page-blog .journal-category .blog-grid > .blog-item:nth-child(even) .blog-item__image-link { grid-column:2; grid-row:1; }
  .page-blog .journal-category .blog-grid > .blog-item:nth-child(even) .blog-content { grid-column:1; grid-row:1; }
  .page-blog .journal-category > h2 {
    margin-bottom:2.2rem !important;
    color:#77736e;
    font:500 10px/1.5 var(--sans) !important;
    letter-spacing:.16em;
    text-transform:uppercase;
  }
}

/* Home only: place the transparent masthead over the hero photograph. */
.page-home .topbar {
  position: absolute !important;
  inset: 0 0 auto !important;
  z-index: 40 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}
.page-home .hero { position: relative; }
@media (max-width: 600px) {
  .page-home .topbar {
    height: 72px !important;
    min-height: 72px !important;
  }
}

/* Homepage refinements: full image without copy, with the name below the hero. */
.page-home .hero__bg-slideshow::after { background: transparent !important; }
.page-home .hero__bg-slideshow .slide { background-position: center 54% !important; }
.page-home .hero > .visually-hidden { position:absolute !important; }
.page-home .kicker-bottom { text-transform:none !important; font:500 13px/1.5 var(--serif) !important; letter-spacing:.08em !important; }

/* Portfolio preview matches the airy, asymmetrical reference supplied for the homepage. */
.home-portfolios { padding:clamp(5rem,8vw,8rem) 0 !important; background:#fff !important; }
.home-portfolios__inner { width:min(1600px,calc(100% - 8vw)) !important; }
.home-portfolios__grid {
  display:grid !important;
  grid-template-columns:1.35fr 1fr 1fr !important;
  align-items:start !important;
  gap:clamp(1.1rem,3.2vw,3.4rem) !important;
}
.home-portfolio-card {
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:.85rem !important;
  min-width:0;
  color:#171614 !important;
  text-decoration:none !important;
}
.home-portfolio-card img {
  display:block;
  width:100% !important;
  height:auto !important;
  aspect-ratio:2 / 3;
  object-fit:cover;
  object-position:center;
}
.home-portfolio-card span {
  color:#171614 !important;
  font:500 10px/1.5 var(--sans) !important;
  letter-spacing:.2em !important;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:5px;
  text-transform:uppercase;
}
.home-portfolio-card:hover span { opacity:.62; }
.home-portfolio-card:focus-visible { outline:2px solid #171614; outline-offset:5px; }
.home-testimonials { margin-bottom:0 !important; }
@media (max-width:900px) {
  .home-portfolios__grid { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) !important; }
  .home-portfolio-card--weddings { grid-row:span 2; }
}
@media (max-width:600px) {
  .home-portfolios { padding:4rem 0 !important; }
  .home-portfolios__inner { width:calc(100% - 2.5rem) !important; }
  .home-portfolios__grid { grid-template-columns:1fr !important; gap:2.2rem !important; }
  .home-portfolio-card--weddings { grid-row:auto; }
  .home-portfolio-card img { aspect-ratio:4 / 5; }
}

/* Home contact portrait: show the full image instead of cropping it to 400px. */
.page-home .contact__image img {
  display:block;
  width:100% !important;
  height:auto !important;
  max-height:700px;
  object-fit:contain;
  object-position:center top;
}

/* Footer split like the reference: brand copy at left, two link columns at right. */
.footer__top {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(320px,.9fr) !important;
  align-items:center !important;
  gap:clamp(2rem,6vw,6rem) !important;
}
.footer__brand { justify-self:start; text-align:left !important; }
.footer__brand .footer__description,
.footer__brand .footer__copy { text-align:left !important; }
.footer__links {
  width:min(100%,460px) !important;
  justify-self:end !important;
  display:grid !important;
  grid-auto-flow:column !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-template-rows:repeat(3,auto) !important;
  justify-content:stretch !important;
  align-items:center !important;
  gap:.7rem 2.5rem !important;
}
.footer__links a { justify-self:start !important; text-align:left !important; }
@media (max-width:700px) {
  .footer__top { grid-template-columns:1fr !important; align-items:start !important; gap:2rem !important; }
  .footer__links { width:min(100%,460px) !important; justify-self:start !important; }
}

/* Homepage activity cards: full-height wedding image, two smaller portraits centered beside it. */
.page-home .home-portfolios {
  padding:0 !important;
  background:#f5f2ec !important;
}
.page-home .home-portfolios__inner {
  width:98% !important;
  max-width:none !important;
  margin:0 !important;
}
.page-home .home-portfolios__grid {
  display:grid !important;
  grid-template-columns:38.1% 24.1% 24.1% !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:0 !important;
}
.page-home .home-portfolio-card {
  align-self:center !important;
  gap:1rem !important;
}
.page-home .home-portfolio-card--weddings { align-self:stretch !important; }
.page-home .home-portfolio-card img {
  width:100% !important;
  height:auto !important;
  aspect-ratio:0.615 / 1 !important;
  object-fit:cover !important;
  filter:none !important;
}
.page-home .home-portfolio-card--families img,
.page-home .home-portfolio-card--businesses img {
  aspect-ratio:0.685 / 1 !important;
}
.page-home .home-portfolio-card span {
  color:#171614 !important;
  font:500 10px/1.5 var(--sans) !important;
  letter-spacing:.2em !important;
}
@media (max-width:900px) {
  .page-home .home-portfolios { padding:0 0 3rem !important; }
  .page-home .home-portfolios__inner { width:calc(100% - 2.5rem) !important; margin:0 auto !important; }
  .page-home .home-portfolios__grid {
    grid-template-columns:1.15fr 1fr !important;
    justify-content:stretch !important;
    align-items:center !important;
    gap:1.5rem !important;
  }
  .page-home .home-portfolio-card--weddings { grid-row:span 2; }
  .page-home .home-portfolio-card img,
  .page-home .home-portfolio-card--families img,
  .page-home .home-portfolio-card--businesses img { aspect-ratio:4 / 5 !important; }
}
@media (max-width:600px) {
  .page-home .home-portfolios__grid { grid-template-columns:1fr !important; gap:2rem !important; }
  .page-home .home-portfolio-card--weddings { grid-row:auto; }
  .page-home .home-portfolio-card img,
  .page-home .home-portfolio-card--families img,
  .page-home .home-portfolio-card--businesses img { aspect-ratio:4 / 5 !important; }
}

/* White backgrounds for the homepage statement and contact invitation. */
.page-home .intro-editorial,
.page-home .contact.section { background:#fff !important; }

/* Category links return to the top of Portfolio without a focus frame around the gallery. */
.gallery-category[role="tabpanel"]:focus-visible {
  outline:none !important;
  box-shadow:none !important;
}
.gallery-category:is(.gallery-category--weddings,.gallery-category--lifestyle,.gallery-category--business) .portfolio-category-intro {
  margin:0 auto clamp(1.5rem,3vw,2.6rem) !important;
}

/* Place the activity names over their photographs, including the tall wedding image. */
.page-home .home-portfolio-card {
  position:relative !important;
  display:block !important;
  overflow:hidden;
  gap:0 !important;
}
.page-home .home-portfolio-card::after {
  content:"";
  position:absolute;
  inset:58% 0 0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(transparent,rgba(15,13,11,.38));
}
.page-home .home-portfolio-card span {
  position:absolute !important;
  left:clamp(1rem,2.2vw,2rem) !important;
  bottom:clamp(1rem,2.2vw,2rem) !important;
  z-index:2;
  color:#fff !important;
  text-decoration-color:#fff !important;
  text-shadow:0 1px 12px rgba(0,0,0,.38);
}
.page-home .home-portfolio-card img { margin:0 !important; }

/* Bring the blog contact invitation closer to the final article. */
.page-blog .blog-card { padding-bottom:0 !important; }
.page-blog .journal-category.journal-archive { margin-bottom:0 !important; }
.page-blog .services-cta { padding-top:clamp(2.5rem,4vw,4rem) !important; }

/* A quiet one-time reveal for photographs as visitors enter or scroll through a page. */
.image-reveal {
  opacity:0;
  transform:translate3d(0,20px,0) scale(.992);
  clip-path:inset(0 0 2.5% 0);
  transition:opacity .75s ease, transform .95s cubic-bezier(.2,.65,.25,1), clip-path .95s cubic-bezier(.2,.65,.25,1);
  will-change:opacity,transform,clip-path;
}
.image-reveal.is-visible { opacity:1; transform:none; clip-path:inset(0); }
.page-home .hero__bg-slideshow .slide.image-reveal-hero {
  opacity:.55 !important;
  transform:scale(1.045);
  transition:opacity 1.5s ease, transform 2s cubic-bezier(.2,.65,.25,1);
}
.page-home .hero__bg-slideshow .slide.image-reveal-hero.is-visible { opacity:1 !important; transform:scale(1); }
@media (prefers-reduced-motion:reduce) {
  .image-reveal,
  .image-reveal.is-visible,
  .page-home .hero__bg-slideshow .slide.image-reveal-hero,
  .page-home .hero__bg-slideshow .slide.image-reveal-hero.is-visible {
    opacity:1 !important;
    transform:none !important;
    clip-path:none !important;
    transition:none !important;
    will-change:auto !important;
  }
}

/* ===== Menu mobile : correctif final (doit rester en fin de fichier) =====
   1. Pas de transform sur le conteneur : un transform piège le position:fixed du menu
      dans la boîte de 40px du bouton au lieu du plein écran.
   2. Les 3 traits du burger et la croix sont redessinés en sombre (avant : 2 traits blancs invisibles sur fond clair).
   3. Le bouton passe au-dessus du menu pour pouvoir le refermer.
   4. Liste recentrée, liens plus lisibles, scroll de la page bloqué quand le menu est ouvert. */
@media (max-width:1023px) {
  .nav-mobile-container {
    position:absolute !important; right:5vw !important; top:50% !important;
    margin-top:-20px; transform:none !important; z-index:50 !important;
  }
  .hamburger {
    position:relative; z-index:2; display:block !important;
    width:40px; height:40px; cursor:pointer;
    background:transparent !important; border:1px solid rgba(23,22,20,.65) !important; border-radius:50% !important;
  }
  .hamburger span, .hamburger::before, .hamburger::after {
    content:""; position:absolute; left:50%; top:50%;
    width:16px; height:1.5px; margin:-.75px 0 0 -8px;
    background:#171614 !important; border-radius:2px;
    transition:transform .25s ease, opacity .2s ease;
  }
  .hamburger::before { transform:translateY(-5px); }
  .hamburger::after { transform:translateY(5px); }
  .nav-toggle:checked + .hamburger span { opacity:0; }
  .nav-toggle:checked + .hamburger::before { transform:rotate(45deg); }
  .nav-toggle:checked + .hamburger::after { transform:rotate(-45deg); }

  .nav-mobile-overlay {
    position:fixed !important; inset:0 !important; width:100vw; height:100dvh;
    z-index:1 !important; display:flex !important; align-items:center; justify-content:center;
    padding:90px 2rem calc(2rem + env(safe-area-inset-bottom));
    background:rgba(245,242,236,.98) !important; backdrop-filter:none !important;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .3s ease, visibility 0s linear .3s;
    overflow-y:auto;
  }
  .page-about .nav-mobile-overlay,
  .page-portfolio .nav-mobile-overlay,
  .page-blog .nav-mobile-overlay { background:rgba(255,255,255,.98) !important; }
  .nav-toggle:checked ~ .nav-mobile-overlay {
    opacity:1; visibility:visible; pointer-events:auto; transition:opacity .3s ease;
  }
  .nav-mobile-overlay ul {
    list-style:none; margin:0; padding:0; width:100%;
    display:flex; flex-direction:column; align-items:center; gap:.35rem; text-align:center;
  }
  .nav-mobile-overlay a {
    display:flex !important; align-items:center; justify-content:center; min-height:48px; padding:.2rem 1rem !important;
    color:#171614 !important; text-decoration:none;
    font:500 clamp(1.9rem,8vw,2.4rem)/1.1 var(--serif) !important; letter-spacing:.01em !important; text-transform:none !important;
  }
  .nav-mobile-overlay li:nth-last-child(-n+2) a {
    font:500 11px/1 var(--sans) !important; letter-spacing:.18em !important; text-transform:uppercase !important; min-height:44px;
  }
  .nav-mobile-overlay li:nth-last-child(2) { margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid rgba(23,22,20,.15); width:min(220px,60%); }
  body:has(.nav-toggle:checked) { overflow:hidden; }
}

/* ===== Pied de page : 8 liens (ajout Mentions légales + Confidentialité) ===== */
.footer__links { grid-template-rows:repeat(4,auto) !important; }
@media (max-width:700px) {
  .footer__links { grid-auto-flow:row !important; grid-template-rows:none !important; gap:.9rem 1.5rem !important; }
  .footer__links a[href^="mailto:"] { grid-column:1 / -1; order:10; }
}

/* ===== Pages légales (mentions légales, confidentialité) ===== */
.legal-page { width:min(760px,calc(100% - 2.5rem)); margin:0 auto; padding:clamp(8rem,12vw,10.5rem) 0 clamp(4.5rem,8vw,7rem); color:var(--ink); }
.legal-page__header { margin-bottom:clamp(2.5rem,5vw,4rem); padding-bottom:clamp(2rem,4vw,3rem); border-bottom:1px solid var(--line); }
.legal-page__header .editorial-eyebrow { margin:0 0 1rem; color:var(--muted-ink); }
.legal-page h1 { margin:0 0 1.4rem; font-size:clamp(2.35rem,4.2vw,3.6rem) !important; line-height:1.02 !important; letter-spacing:-.02em; }
.legal-page__intro { margin:0; color:#49433c; font:400 clamp(1.05rem,1.4vw,1.2rem)/1.7 var(--serif); }
.legal-page section { margin:0 0 clamp(2.2rem,4vw,3rem); }
.legal-page h2 { margin:0 0 .9rem; font-size:clamp(1.45rem,2.2vw,1.85rem) !important; line-height:1.15; }
.legal-page h3 { margin:1.3rem 0 .4rem; font:500 10px/1.5 var(--sans) !important; letter-spacing:.16em; text-transform:uppercase; color:var(--muted-ink); }
.legal-page p, .legal-page li { font-size:14px; line-height:1.85; color:#3f3932; }
.legal-page p { margin:0 0 .9rem; }
.legal-page ul { margin:0; padding-left:1.1rem; }
.legal-page li { margin-bottom:.35rem; }
.legal-page a { color:var(--ink); text-underline-offset:4px; }
.legal-todo { background:#f3e2b3; color:#5a4410; padding:0 .3em; font-style:normal; }

/* ===== Articles du journal ===== */
.post { padding:clamp(7.5rem,11vw,10rem) 0 0; }
.post__header { width:min(820px,calc(100% - 2.5rem)); margin:0 auto clamp(2rem,4vw,3rem); text-align:center; }
.post__breadcrumb { display:flex; justify-content:center; gap:.6rem; margin-bottom:1.6rem; font:500 10px/1.5 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--muted-ink); }
.post__breadcrumb a { color:var(--muted-ink); text-decoration:none; }
.post__breadcrumb a:hover { color:var(--ink); }
.post__header .editorial-eyebrow { margin:0 0 1rem; color:var(--muted-ink); }
.post__header h1 { margin:0 0 1.3rem; color:var(--ink); font-size:clamp(2.2rem,4.4vw,3.9rem) !important; line-height:1.04 !important; letter-spacing:-.02em; text-wrap:balance; }
.post__meta { margin:0; color:var(--muted-ink); font:italic 400 15px/1.5 var(--serif); }
.post__meta a { color:inherit; }
.post__hero { width:min(1200px,calc(100% - 2.5rem)); margin:0 auto clamp(2.8rem,5vw,4.5rem); }
.post__hero img { width:100%; aspect-ratio:3/2; max-height:78vh; object-fit:cover; }
.post__body { width:min(700px,calc(100% - 2.5rem)); margin:0 auto; color:#3f3932; }
.post__body > p:first-child { font:400 clamp(1.2rem,1.7vw,1.4rem)/1.65 var(--serif); color:var(--ink); margin-bottom:2.2rem; }
.post__body h2 { margin:2.6rem 0 .8rem; color:var(--ink); font-size:clamp(1.5rem,2.3vw,1.95rem) !important; line-height:1.15; }
.post__body p, .post__body li { font-size:15px; line-height:1.85; }
.post__body p { margin:0 0 1rem; }
.post__body ul { margin:0 0 1.2rem; padding-left:1.15rem; list-style:disc; }
.post__body li { margin-bottom:.35rem; }
.post__body a { color:var(--ink); text-underline-offset:4px; }
.post-cta { width:min(700px,calc(100% - 2.5rem)); margin:clamp(3.5rem,6vw,5rem) auto 0; padding:clamp(2rem,4vw,3rem) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.post-cta .editorial-eyebrow { margin:0 0 .9rem; color:var(--muted-ink); }
.post-cta__text { margin:0 auto 1.6rem; max-width:560px; color:var(--ink); font:400 clamp(1.15rem,1.6vw,1.35rem)/1.6 var(--serif); }
.post-cta__actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1rem 1.8rem; }
.post-cta .about-contact-btn { border-radius:0; padding:14px 30px; font:500 10px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; background:#171614; }
.post-cta__link { color:var(--ink); font:500 10px/1.5 var(--sans); letter-spacing:.16em; text-transform:uppercase; text-underline-offset:5px; }
.post-related { width:min(1200px,calc(100% - 2.5rem)); margin:0 auto; padding:clamp(4rem,7vw,6rem) 0 clamp(4rem,7vw,6rem); }
.post-related h2 { margin:0 0 2rem; text-align:center; font-size:clamp(1.8rem,3vw,2.6rem) !important; }
.post-related__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.2rem,3vw,2.5rem); }
.post-related__card { display:flex; flex-direction:column; gap:.7rem; color:var(--ink); text-decoration:none; }
.post-related__card img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:opacity .25s ease; }
.post-related__card:hover img { opacity:.85; }
.post-related__cat { color:var(--muted-ink); font:500 9px/1.4 var(--sans); letter-spacing:.16em; text-transform:uppercase; }
.post-related__title { font:500 clamp(1.15rem,1.5vw,1.35rem)/1.25 var(--serif); }
.post-related__back { margin:2.8rem 0 0; text-align:center; }
.post-related__back a { color:var(--ink); font:500 10px/1.5 var(--sans); letter-spacing:.16em; text-transform:uppercase; text-underline-offset:5px; }
@media (max-width:760px) {
  .post__hero { width:100%; }
  .post__hero img { aspect-ratio:4/3; }
  .post-related__grid { grid-template-columns:1fr; gap:2rem; }
}
