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

:root {
  --cream: #F2EDE4;
  --cream-dark: #E8E0D0;
  --ink: #1A1612;
  --ink-soft: #5C5248;
  --ink-faint: #9C9088;
  --accent: #C8501A;
  --accent-hover: #E05A20;
  --rule: rgba(26,22,18,0.12);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "Syne", system-ui, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --site-max: 1600px;
}

html { scroll-behavior: smooth; }
body {
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
p { max-width: 70ch; }

.skip-link {
  position: absolute;
  left: 16px;
  top: -40px;
  background: var(--ink);
  color: var(--cream);
  padding: .6rem .9rem;
  z-index: 10000;
}
.skip-link:focus { top: 12px; }

/* Cursor */
#cursor, #cursor-ring { pointer-events: none; position: fixed; left: 0; top: 0; z-index: 9999; transform: translate(-50%, -50%); }
#cursor {
  width: 10px; height: 10px; background: var(--accent); border-radius: 50%;
  transition: width .25s, height .25s, background .25s, border-radius .25s, opacity .25s;
  mix-blend-mode: multiply;
}
#cursor-ring {
  width: 36px; height: 36px; border: 1.5px solid var(--accent); border-radius: 50%;
  z-index: 9998;
  transition: width .45s cubic-bezier(.16,1,.3,1), height .45s cubic-bezier(.16,1,.3,1), border-color .3s, border-radius .3s, opacity .3s;
  opacity: .6;
}
body.hovered #cursor { width: 6px; height: 6px; }
body.hovered #cursor-ring { width: 56px; height: 56px; opacity: 1; }
body.link-hovered #cursor {
  width: 48px; height: 48px; background: var(--accent); opacity: .15; border-radius: 4px;
}
body.link-hovered #cursor-ring { width: 0; height: 0; opacity: 0; }

/* Progress */
.progress {
  position: fixed; top: 0; left: 0; height: 2px; background: var(--accent); width: 0; z-index: 9997; transition: width .05s linear;
}

/* Shared */
.container {
  width: min(calc(100% - 6rem), var(--site-max));
  margin-inline: auto;
}
.eyebrow, .kicker, .section-label, .meta-list span, .small-label {
  font-family: var(--mono);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.button, .inline-button, .button-light {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  text-decoration: none;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: 2px;
  transition: background .2s, color .2s, border-color .2s, transform .3s cubic-bezier(.16,1,.3,1);
}
.button { background: var(--ink); color: var(--cream); padding: 1rem 1.6rem; }
.button:hover { background: var(--accent); color: #fff; }
.button-light { background: var(--cream); color: var(--ink); padding: 1rem 1.6rem; }
.button-light:hover { background: var(--accent); color: #fff; }
.inline-button {
  padding:1rem 1.6rem;
  border-bottom: 1.5px solid currentColor;
}
.inline-button:hover { color: var(--accent); border-color: var(--accent); }
.arrow { transition: transform .3s cubic-bezier(.16,1,.3,1); }
.button:hover .arrow, .button-light:hover .arrow, .inline-button:hover .arrow { transform: translateX(5px); }

/* Nav */
.nav {
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.4rem 3rem;
  backdrop-filter: blur(14px);
  background: linear-gradient(to bottom, rgba(242,237,228,.96) 0%, rgba(242,237,228,.88) 80%, rgba(242,237,228,0) 100%);
}
.nav::after {
  content: "";
  position: absolute; bottom: 0; left: 3rem; right: 3rem;
  height: 1px; background: var(--rule);
}
.nav-logo { text-decoration: none; display: inline-flex; align-items: center; }
.nav-logo img { height: 46px; width: auto; }
.nav-links { display: flex; gap: 2.3rem; list-style: none; align-items: center; }
.nav-links a {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-decoration: none;
  position: relative;
  transition: color .2s;
}
.nav-links a::after {
  content: "";
  position: absolute; bottom: -3px; left: 0;
  width: 0; height: 1.5px;
  background: var(--accent);
  transition: width .3s cubic-bezier(.16,1,.3,1);
}
.nav-links a:hover { color: var(--ink); }
.nav-links a:hover::after, .nav-links .is-active::after { width: 100%; }
.nav-links .is-active { color: var(--ink); }
.nav-cta {
  background: var(--ink) !important;
  color: var(--cream) !important;
  padding: .65rem 1.2rem;
  border-radius: 2px;
}
.nav-cta::after { display: none !important; }
.nav-cta:hover { background: var(--accent) !important; color: #fff !important; }
.nav-toggle { display: none; }

.mobile-panel {
  display: none;
  position: fixed; inset: 0;
  background: rgba(242,237,228,.98);
  z-index: 99;
  padding: 7rem 1.5rem 2rem;
}
.mobile-panel a {
  display: block; padding: 1rem 0; text-decoration: none;
  border-bottom: 1px solid var(--rule);
  font-family: var(--serif);
  font-size: 1.55rem;
  line-height: 1;
}
.mobile-panel .nav-cta-mobile {
  margin-top: 1.5rem;
  display: inline-flex;
  padding: .95rem 1.3rem;
  font-size: .85rem;
  font-family: var(--sans);
  border-bottom: 0;
  background: var(--ink);
  color: var(--cream);
}

/* Hero home */
.hero {
  min-height: 100vh;
  padding: 6.25rem 3rem 3.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}
.hero-top {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 2rem;
}
.hero-badge { display: flex; align-items: center; gap: .6rem; margin-top: .4rem; }
.hero-badge-dot, .location-dot {
  width: 7px; height: 7px; background: var(--accent); border-radius: 50%;
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: .6; } }
.hero-badge span, .hero-meta span {
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.hero-meta { text-align: right; display: flex; flex-direction: column; gap: .3rem; }
.hero-title-wrap { position: relative; margin: 0 -3rem; overflow: hidden; }
.hero-title {
  font-family: var(--serif);
  font-weight: 900;
  font-size: clamp(4rem, 10.5vw, 11rem);
  line-height: .9;
  letter-spacing: -.04em;
  color: var(--ink);
  padding: 0 3rem;
}
.hero-title .line-1,
.hero-title .line-2,
.hero-title .line-3 { display: block; }
.hero-title .line-2 {
  padding-left: 6rem;
  color: transparent;
  -webkit-text-stroke: 2px var(--ink);
}
.hero-title .line-3 { padding-left: 3rem; }
.hero-title .accent-word { font-style: italic; color: var(--accent); -webkit-text-stroke: 0; }
.hero-bottom {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  border-top: 1px solid var(--rule);
  margin-top: 3rem;
}
.hero-bottom-cell {
  padding: 2rem 2.2rem 1rem 0;
  border-right: 1px solid var(--rule);
}
.hero-bottom-cell:last-child { border-right: none; padding-left: 2.2rem; padding-right: 0; }
.hero-bottom-cell:nth-child(2) { padding-inline: 2.2rem; }
.hero-bottom-cell .label { margin-bottom: .75rem; }
.hero-bottom-cell p {
  font-size: .94rem; font-weight: 400; color: var(--ink-soft); line-height: 1.7;
}
.hero-bottom-cell .cta-inline { margin-top: 1rem; }

/* Generic page hero */
.page-hero {
  padding: 7rem 3rem 3rem;
  min-height: auto;
  border-bottom: 1px solid var(--rule);
}
.page-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) 360px;
  gap: 3rem;
  align-items: end;
}
.page-hero .eyebrow { margin-bottom: 1rem; display: inline-block; }
.page-title {
  font-family: var(--serif);
  font-weight: 900;
  font-size: clamp(3.4rem, 8vw, 7rem);
  line-height: .95;
  letter-spacing: -.04em;
  margin-bottom: 1rem;
}
.page-title em { font-style: italic; color: var(--accent); }
.page-intro {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--ink-soft);
  max-width: 62ch;
}
.page-side {
  border-left: 1px solid var(--rule);
  padding-left: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.side-box {
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--rule);
}
.side-box:last-child { border-bottom: 0; }
.side-box h3 {
  font-family: var(--mono);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: .5rem;
}
.side-box p, .side-box li, .side-box a {
  font-size: .88rem;
  line-height: 1.65;
  color: var(--ink-soft);
  text-decoration: none;
}
.side-box a:hover { color: var(--accent); }
.side-list { list-style: none; display: grid; gap: .55rem; }

/* Marquee */
.marquee-wrap {
  background: var(--ink);
  overflow: hidden;
  padding: 1.1rem 0;
  display: flex;
}
.marquee-track {
  display: flex;
  animation: marquee 18s linear infinite;
  white-space: nowrap;
}
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee-item { display: flex; align-items: center; padding: 0 2rem; gap: 1.5rem; }
.marquee-item span {
  font-family: var(--mono);
  font-size: .75rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--cream);
  opacity: .78;
}
.marquee-sep { width: 4px; height: 4px; background: var(--accent); border-radius: 50%; }

/* Sections */
.section-services, .section-block {
  padding: 0 3rem;
  border-bottom: 1px solid var(--rule);
}
.section-services {
    background:#1E1410 !important
}
.services-head, .block-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 2rem;
  padding: 4rem 0 3rem;
  border-bottom: 1px solid var(--rule);
}
.services-head h2, .block-head h2 {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  letter-spacing: -.03em;
  line-height: 1;
}
.services-head p, .block-head p {
  font-size: .85rem;
  color: var(--ink-soft);
  max-width: 24rem;
  text-align: right;
  line-height: 1.7;
}
.services-list { display: flex; flex-direction: column; }
.service-row {
  display: grid;
  grid-template-columns: 84px 1fr 300px 120px;
  align-items: center;
  gap: 3rem;
  padding: 2rem 0;
  border-bottom: 1px solid var(--rule);
  text-decoration: none;
  color: var(--ink);
  margin: 0 -3rem;
  padding-left: 3rem;
  padding-right: 3rem;
  position: relative;
  overflow: hidden;
}
.service-row::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 0;
  background: var(--ink);
  transition: width .4s cubic-bezier(.16,1,.3,1);
  z-index: 0;
}
.service-row:hover::before { width: 100%; }
.service-row > * { position: relative; z-index: 1; transition: color .3s; }
.service-row:hover .srv-num,
.service-row:hover .srv-title,
.service-row:hover .srv-desc,
.service-row:hover .srv-link { color: var(--cream); }
.srv-num {
  font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; color: var(--ink-faint);
}
.srv-title {
  font-family: var(--serif); font-size: clamp(1.4rem, 2.5vw, 2.2rem); font-weight: 900; letter-spacing: -.02em; line-height: 1;
}
.srv-desc { font-size: .83rem; color: var(--ink-soft); line-height: 1.7; max-width: 33ch; }
.srv-link {
  font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); text-align: right;
}

/* Stats */
.stats-band {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--rule);
}
.stat-cell {
  padding: 3.5rem 3rem;
  border-right: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.stat-cell:last-child { border-right: none; }
.stat-big {
  font-family: var(--serif);
  font-weight: 900;
  font-size: clamp(3rem, 5vw, 5.5rem);
  letter-spacing: -.05em;
  line-height: 1;
}
.stat-big .unit { font-size: .45em; font-style: italic; color: var(--accent); vertical-align: super; }
.stat-label { font-size: .82rem; color: var(--ink-soft); line-height: 1.6; max-width: 18rem; }

/* Split cities/testimonials */
.section-cities, .split-grid {
  display: grid;
  grid-template-columns: 5fr 4fr;
  border-bottom: 1px solid var(--rule);
}
.cities-left, .split-left { padding: 5rem 3rem; border-right: 1px solid var(--rule); }
.cities-right, .split-right { padding: 5rem 3rem; display: flex; flex-direction: column; justify-content: space-between; }
.cities-left .eyebrow, .cities-right .eyebrow, .split-left .eyebrow, .split-right .eyebrow { margin-bottom: 2.4rem; display: inline-block; }
.cities-left h2, .split-left h2, .split-right h2 {
  font-family: var(--serif); font-size: clamp(2.8rem, 5vw, 5rem); font-weight: 900; letter-spacing: -.04em; line-height: .95; margin-bottom: 3rem;
}
.cities-left h2 em, .split-left h2 em, .split-right h2 em { font-style: italic; color: var(--accent); }
.city-links, .stack-list { display: flex; flex-direction: column; }
.city-link, .stack-link {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 2rem;
  padding: 1.35rem 0;
  border-top: 1px solid var(--rule);
  text-decoration: none;
  color: var(--ink);
  transition: padding-left .3s cubic-bezier(.16,1,.3,1);
}
.city-link:last-child, .stack-link:last-child { border-bottom: 1px solid var(--rule); }
.city-link:hover, .stack-link:hover { padding-left: .75rem; }
.city-link-name, .stack-link-name {
  font-family: var(--serif); font-size: clamp(1.6rem, 2.5vw, 2.2rem); font-weight: 900; letter-spacing: -.03em;
}
.city-link:hover .city-link-name, .stack-link:hover .stack-link-name { color: var(--accent); }
.city-link-tag, .stack-link-tag { font-family: var(--mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.city-link-arr, .stack-link-arr {
  font-size: 1.2rem; color: var(--ink-faint); transition: transform .3s cubic-bezier(.16,1,.3,1), color .2s;
}
.city-link:hover .city-link-arr, .stack-link:hover .stack-link-arr { transform: translateX(6px) translateY(-2px) rotate(-45deg); color: var(--accent); }
.testimonials { display: flex; flex-direction: column; gap: 0; flex: 1; justify-content: center; }
.testi {
  padding: 1.5rem 0;
  border-top: 1px solid var(--rule);
}
.testi:last-child { border-bottom: 1px solid var(--rule); }
.testi-quote {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--ink);
  margin-bottom: .6rem;
}
.testi-quote::before { content: "“"; color: var(--accent); font-size: 1.4em; line-height: 0; vertical-align: -.2em; margin-right: .1em; }
.testi-author { font-family: var(--mono); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }

/* Content grids */
.row-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 0;
  border-bottom: 1px solid var(--rule);
}
.row-main, .row-side { padding: 3rem; }
.row-main { border-right: 1px solid var(--rule); }
.row-main h3, .row-side h3 {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 3vw, 3rem);
  line-height: 1;
  margin-bottom: 1rem;
}
.row-main p, .row-side p, .row-side li, .row-main li {
  color: var(--ink-soft); line-height: 1.8; font-size: .95rem;
}
.row-side ul, .row-main ul { list-style: none; display: grid; gap: .75rem; margin-top: 1rem; }
.row-side li::before, .row-main li::before { content: "— "; color: var(--accent); }

.cards-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--rule);
}
.card {
  padding: 2.4rem 2rem;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.card:nth-child(3n) { border-right: 0; }
.card .meta { margin-bottom: 1rem; }
.card h3 {
  font-family: var(--serif); font-size: 2rem; line-height: 1; margin-bottom: .8rem;
}
.card p { color: var(--ink-soft); font-size: .92rem; line-height: 1.7; }
.card a { text-decoration: none; display: inline-flex; margin-top: 1rem; }

.faqs { display: grid; grid-template-columns: 1fr 1fr; }
.faq {
  padding: 2rem 2.2rem;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.faq:nth-child(2n) { border-right: 0; }
.faq h3 {
  font-family: var(--serif); font-size: 1.6rem; line-height: 1; margin-bottom: .8rem;
}
.faq p { color: var(--ink-soft); font-size: .9rem; line-height: 1.7; }

.posts {
  display: flex; flex-direction: column;
}
.post-row {
  display: grid; grid-template-columns: 140px 1fr 130px;
  gap: 2rem; align-items: baseline;
  padding: 2rem 0; border-bottom: 1px solid var(--rule); text-decoration: none;
}
.post-row .date { font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.post-row h3 { font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1; margin-bottom: .7rem; }
.post-row p { color: var(--ink-soft); font-size: .92rem; line-height: 1.7; }
.post-row .more { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); text-align: right; }

.contact-grid {
  display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--rule);
}
.contact-card {
  padding: 2.5rem 3rem;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.contact-card:nth-child(2n) { border-right: 0; }
.contact-card h3 { font-family: var(--serif); font-size: 2rem; line-height: 1; margin-bottom: 1rem; }
.contact-card p, .contact-card li, .contact-card a {
  color: var(--ink-soft); line-height: 1.75; font-size: .95rem; text-decoration: none;
}
.contact-card a:hover { color: var(--accent); }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-row + .form-row { margin-top: 1rem; }
.input, .textarea {
  width: 100%;
  border: 1px solid var(--rule);
  background: transparent;
  padding: 1rem;
  font-family: var(--sans);
  font-size: .95rem;
  color: var(--ink);
}
.textarea { min-height: 170px; resize: vertical; margin-top: 1rem; }
.input:focus, .textarea:focus { outline: 0; border-color: var(--accent); }

/* CTA */
.section-cta {
  background: var(--ink);
  padding: 6rem 3rem;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 4rem;
}
.cta-h {
  font-family: var(--serif);
  font-weight: 900;
  font-size: clamp(3rem, 7vw, 7rem);
  line-height: .95;
  letter-spacing: -.04em;
  color: var(--cream);
}
.cta-h em { font-style: italic; color: var(--accent); }
.cta-right { display: flex; flex-direction: column; align-items: flex-end; gap: 1.25rem; }
.cta-right p {
  font-family: var(--mono);
  font-size: .7rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(242,237,228,.35);
  text-align: right;
  line-height: 1.8;
}
.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink);
  background: var(--cream);
  padding: 1.1rem 2.2rem;
  text-decoration: none;
  border-radius: 2px;
  transition: background .2s, color .2s;
}
.cta-btn:hover { background: var(--accent); color: #fff; }

/* Footer */
.footer {
  padding: 2rem 3rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 2rem;
  border-top: 1px solid var(--rule);
  background: var(--cream);
}
.footer-brand img { height: 34px; width: auto; }
.footer-links { display: flex; gap: 1.7rem; list-style: none; justify-content: center; flex-wrap: wrap; }
.footer-links a {
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-faint);
  text-decoration: none;
  transition: color .2s;
}
.footer-links a:hover { color: var(--ink); }
.footer-copy {
  font-family: var(--mono);
  font-size: .68rem;
  letter-spacing: .06em;
  color: var(--ink-faint);
}

.dark-footer {
  background: var(--ink);
  border-top-color: rgba(242,237,228,.1);
}
.dark-footer .footer-links a, .dark-footer .footer-copy { color: rgba(242,237,228,.42); }
.dark-footer .footer-links a:hover { color: var(--cream); }

/* Article */
.article {
  padding: 6.25rem 3rem 3.5rem;
}
.article-wrap {
  width: min(calc(100% - 0rem), 980px);
  margin-inline: auto;
}
.article-meta { margin-bottom: 1rem; }
.article h1 { font-family: var(--serif); font-size: clamp(3rem, 7vw, 5.5rem); line-height: .95; margin-bottom: 1.2rem; }
.article p, .article li { color: var(--ink-soft); line-height: 1.9; font-size: 1rem; }
.article h2 { font-family: var(--serif); font-size: 2.2rem; line-height: 1; margin: 2.4rem 0 1rem; }
.article ul { list-style: none; display: grid; gap: .55rem; margin: 1rem 0; }
.article li::before { content: "— "; color: var(--accent); }

/* Responsive */
@media (max-width: 1080px) {
  .nav { padding-inline: 1.5rem; }
  .nav::after { left: 1.5rem; right: 1.5rem; }
  .nav-links { display: none; }
  .nav-toggle {
    display: inline-flex; border: 0; background: transparent; color: var(--ink); font-family: var(--mono); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase;
  }
  .hero, .page-hero, .section-services, .section-block, .section-cta, .article { padding-left: 1.5rem; padding-right: 1.5rem; }
  .hero-title-wrap { margin-inline: -1.5rem; }
  .hero-title { padding-inline: 1.5rem; }
  .hero-bottom { grid-template-columns: 1fr; }
  .hero-bottom-cell, .hero-bottom-cell:nth-child(2), .hero-bottom-cell:last-child { padding: 1.3rem 0; border-right: 0; border-bottom: 1px solid var(--rule); }
  .hero-bottom-cell:last-child { border-bottom: 0; }
  .services-head, .block-head, .page-hero-grid, .section-cities, .split-grid, .row-grid, .contact-grid, .section-cta { grid-template-columns: 1fr !important; display: grid; }
  .services-head p, .block-head p { text-align: left; max-width: 60ch; }
  .service-row {
    grid-template-columns: 72px 1fr;
    gap: 1rem 2rem;
    align-items: start;
  }
  .srv-desc { grid-column: 2 / -1; max-width: none; }
  .srv-link { grid-column: 2 / -1; text-align: left; margin-top: .2rem; }
  .stats-band { grid-template-columns: 1fr 1fr; }
  .cities-left, .cities-right, .split-left, .split-right, .row-main, .row-side, .contact-card { padding: 3rem 1.5rem; }
  .cities-left, .split-left, .row-main, .contact-card:nth-child(odd) { border-right: 0; }
  .cards-grid, .faqs, .contact-grid { grid-template-columns: 1fr; }
  .card, .faq { border-right: 0 !important; }
  .post-row { grid-template-columns: 1fr; gap: .7rem; }
  .post-row .more { text-align: left; }
  .footer { grid-template-columns: 1fr; justify-items: start; }
  .footer-links { justify-content: flex-start; }
  .cta-right { align-items: flex-start; }
  .cta-right p { text-align: left; }
  .page-side { border-left: 0; padding-left: 0; margin-top: 1.5rem; }
}
@media (max-width: 720px) {
  body { cursor: auto; }
  #cursor, #cursor-ring { display: none; }
  .mobile-panel.is-open { display: block; }
  .hero-title { font-size: clamp(2.7rem, 13vw, 5rem); }
  .hero-title .line-2, .hero-title .line-3 { padding-left: 0; }
  .page-title { font-size: clamp(2.6rem, 15vw, 4.4rem); }
  .stats-band { grid-template-columns: 1fr; }
  .stat-cell { border-right: 0; border-bottom: 1px solid var(--rule); }
  .stat-cell:last-child { border-bottom: 0; }
  .service-row, .services-head, .block-head, .section-cta, .hero-top, .cities-left h2, .split-left h2, .split-right h2 { gap: 1rem; }
  .cards-grid { grid-template-columns: 1fr; }
}


/* =========================
   PATCH MINIMAL - ACCENTS
   titres + boutons uniquement
   ========================= */

/* Accent sur les morceaux de titres balisés en <em> */
h1 em,
h2 em,
h3 em,
.cta-h em,
.page-title em,
.hero-title em,
.hero-title .accent-word {
  color: var(--accent);
  font-style: italic;
  -webkit-text-stroke: 0;
}

/* =========================
   PATCH MINIMAL - CE HTML EXACT
   titres + boutons seulement
   ========================= */

.hero-title .accent-word,
.cities-left h2 em,
.cta-h em,
.accent-text {
  color: var(--accent);
  font-style: italic;
  -webkit-text-stroke: 0;
}

/* petits repères plus présents */
.eyebrow,
.small-label,
.hero-bottom-cell .label {
  color: rgba(200, 80, 26, 0.82);
}

/* boutons principaux */
.nav-cta,
.button,
.cta-btn,
.mobile-panel .nav-cta-mobile {
  background: var(--accent) !important;
  color: #fff !important;
  border: 1px solid var(--accent) !important;
}

.nav-cta:hover,
.button:hover,
.cta-btn:hover,
.mobile-panel .nav-cta-mobile:hover {
  background: var(--ink) !important;
  color: var(--cream) !important;
  border-color: var(--ink) !important;
}

/* liens d’action */
.inline-button,
.srv-link,
.post-row .more {
  color: var(--accent);
}

.inline-button {
  border-bottom-color: rgba(200, 80, 26, 0.45);
}

.inline-button:hover,
.service-row:hover .srv-link,
.post-row:hover .more {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

/* petits accents déjà présents */
.hero-badge-dot,
.location-dot,
.marquee-sep {
  background: var(--accent);
}

.nav-links span,
.mobile-panel span {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-decoration: none;
  position: relative;
  display: inline-flex;
  align-items: center;
}
.mobile-panel span {
  display: block;
  padding: 1rem 0;
  border-bottom: 1px solid var(--rule);
  font-family: var(--serif);
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}
.nav-links .is-active,
.mobile-panel .is-active {
  color: var(--ink);
}
.nav-links .is-active::after {
  content: "";
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  height: 1.5px;
  background: var(--accent);
}
.nav-links .nav-cta.is-active {
  background: var(--ink);
  color: var(--cream);
  padding: .65rem 1.2rem;
  border-radius: 2px;
}
.mobile-panel .nav-cta-mobile.is-active {
  margin-top: 1.5rem;
  display: inline-flex;
  padding: .95rem 1.3rem;
  font-size: .85rem;
  font-family: var(--sans);
  border-bottom: 0;
  background: var(--ink);
  color: var(--cream);
}
.footer-cookie-link {
  appearance: none;
  background: transparent;
  border: 0;
  color: rgba(242,237,228,.42);
  cursor: pointer;
  font: inherit;
  font-size: .72rem;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: color .2s;
}
.footer-cookie-link:hover {
  color: var(--cream);
}
.cookie-banner {
  position: fixed;
  left: 1.5rem;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 120;
  background: rgba(26,22,18,.96);
  color: var(--cream);
  border: 1px solid rgba(242,237,228,.12);
  backdrop-filter: blur(16px);
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
}
.cookie-banner__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  padding: 1.4rem 1.5rem;
}
.cookie-banner__eyebrow {
  font-family: var(--mono);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(242,237,228,.55);
  margin-bottom: .7rem;
}
.cookie-banner__title,
.cookie-panel__title {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 3vw, 2.25rem);
  line-height: .95;
  letter-spacing: -.03em;
}
.cookie-banner__text,
.cookie-option p {
  color: rgba(242,237,228,.75);
  line-height: 1.7;
  margin-top: .8rem;
  max-width: 70ch;
}
.cookie-banner__actions,
.cookie-panel__actions {
  display: flex;
  align-items: center;
  gap: .9rem;
  flex-wrap: wrap;
}
.cookie-panel-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(26,22,18,.45);
  z-index: 121;
}
.cookie-panel {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  width: min(100% - 3rem, 720px);
  z-index: 122;
  background: var(--ink);
  color: var(--cream);
  border: 1px solid rgba(242,237,228,.12);
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
  padding: 1.5rem;
}
.cookie-panel__head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1rem;
  align-items: start;
}
.cookie-panel__close {
  appearance: none;
  background: transparent;
  border: 0;
  color: rgba(242,237,228,.72);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.cookie-panel__body {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0;
}
.cookie-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(242,237,228,.1);
}
.cookie-option:first-child {
  border-top: 0;
  padding-top: 0;
}
.cookie-option h3 {
  font-size: 1rem;
  font-weight: 700;
}
.cookie-switch {
  display: inline-flex;
  align-items: center;
}
.cookie-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cookie-switch span {
  width: 52px;
  height: 30px;
  border-radius: 999px;
  background: rgba(242,237,228,.18);
  position: relative;
  transition: background .2s ease;
}
.cookie-switch span::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--cream);
  transition: transform .2s ease;
}
.cookie-switch input:checked + span {
  background: var(--accent);
}
.cookie-switch input:checked + span::after {
  transform: translateX(22px);
}
.cookie-option.is-locked .cookie-switch span {
  background: rgba(242,237,228,.32);
}
@media (max-width: 1080px) {
  .cookie-banner {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
  }
  .cookie-banner__inner {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .cookie-banner__actions,
  .cookie-panel__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .cookie-banner .button,
  .cookie-banner .button-light,
  .cookie-panel .button-light,
  .cookie-banner .inline-button,
  .cookie-panel .inline-button {
    width: 100%;
    justify-content: center;
  }
  .cookie-panel {
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    width: auto;
  }
  .cookie-option {
    grid-template-columns: 1fr;
  }
}


@media screen and (min-width:1025px) and (max-width:1580px) {
    .nav-links a {
    font-size: .7rem!important;
}
.nav-links {
    display: flex;
    gap: 2rem!important;
}
}

/* Archive blog seulement */
/* Archive blog uniquement */
.page-blog-archive #main-content .posts{
  display:grid !important;
  grid-template-columns:1fr;
  gap:24px;
  margin-top:32px;
  margin-bottom:72px;
}

@media (min-width:900px){
  .page-blog-archive #main-content .posts{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}

.page-blog-archive #main-content .posts .post-row{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:auto 1fr auto !important;
  gap:14px;
  align-items:start;
  min-width:0;
}

.page-blog-archive #main-content .posts .post-row > div{
  display:grid;
  gap:10px;
  min-width:0;
}

.page-blog-archive #main-content .posts .post-row .more{
  display:inline-flex !important;
  align-items:center;
  justify-self:start;
  align-self:end;
  margin-top:6px;
  margin-left:0 !important;
  float:none !important;
  width:auto !important;
}

.article .article-body--special .rbrk .ctas{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:14px !important;
  align-items:center !important;
}

.article .article-body--special .rbrk .ctas .btn{
  display:inline-flex !important;
  width:auto !important;
  margin:0 !important;
  flex:0 0 auto !important;
}
#main-content .posts .post-row h3,
#main-content .posts .post-row p{
  margin:0;
}

.hero-bottom-cell:nth-child(2n), .row-main,.card:nth-child(2n) {
    background: #f0e8dc;
}
#btn1 {
    color:black;
}
.contact-card .button {
    margin-top:20px;
}

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

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

img,
svg,
video,
iframe {
  max-width: 100%;
  height: auto;
}

pre,
.tableWrap,
.wp-block-table {
  max-width: 100%;
  overflow-x: auto;
}

.article-wrap,
.article-body,
.posts,
.post-row,
.form-row,
.ctas {
  min-width: 0;
}
@media (max-width: 767px){
  .hero-meta{
    display:none;
  }
}
#cursor,
#cursor-ring {
  will-change: transform;
}
.progress{
  position:fixed;
  top:0;
  left:0;
  height:2px;
  width:100%;
  background:var(--accent);
  z-index:100;
  transform:scaleX(0);
  transform-origin:0 50%;
  will-change:transform;
}

/* ============================================================
   DESIGN EXPERT — Rythme éditorial, typographie, mouvement
   ============================================================ */

/* ══ 0. Fondations globales ══ */

/* Eyebrows / labels : tracé sophistiqué */
.eyebrow, .small-label {
  font-family: 'Syne', sans-serif !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--accent) !important;
  background: none !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: .6rem !important;
}
.eyebrow::before, .small-label::before {
  content: '' !important;
  display: inline-block !important;
  width: 1.8rem !important;
  height: 2px !important;
  background: var(--accent) !important;
  flex-shrink: 0 !important;
}

/* Numéros de services : décoratifs discrets */
.srv-num {
  font-family: 'Syne', sans-serif !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  color: var(--accent) !important;
  opacity: .7 !important;
}

/* ══ 1. HERO — tension typographique ══ */

/* Cellules hero-bottom : pas de fond alterné, uniquement tracé droit */
.hero-bottom-cell { background: transparent !important; }
.hero-bottom-cell .label {
  font-family: 'Syne', sans-serif !important;
  font-size: .65rem !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: var(--accent) !important;
}
/* ══ 2. SERVICES — fond bois profond + décalage hover ══ */
.section-services {
  background: #221610 !important;
  position: relative !important;
  overflow: hidden !important;
  border-bottom: none !important;
}
/* grande lettre décorative en arrière-plan */
.section-services::after {
  content: 'SEO' !important;
  position: absolute !important;
  right: -2rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(8rem, 18vw, 18rem) !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: rgba(255,255,255,.03) !important;
  pointer-events: none !important;
  user-select: none !important;
  letter-spacing: -.04em !important;
}
.section-services .services-head {
  border-bottom-color: rgba(242,237,228,.1) !important;
}
.section-services .services-head h2 {
  color: var(--cream) !important;
  font-size: clamp(2.4rem, 5vw, 4rem) !important;
  letter-spacing: -.02em !important;
}
.section-services .services-head p {
  color: rgba(242,237,228,.5) !important;
}
.section-services .service-row {
  color: var(--cream) !important;
  border-bottom-color: rgba(242,237,228,.08) !important;
  transition: background .25s, padding-left .25s !important;
}
.section-services .service-row:hover {
  background: rgba(200,80,26,.12) !important;
  padding-left: calc(var(--pad) + .75rem) !important;
}
.section-services .service-row:hover .srv-link { color: #fff !important; }
.section-services .srv-num   { color: rgba(242,237,228,.2) !important; opacity: 1 !important; }
.section-services .srv-title {
  color: var(--cream) !important;
  font-size: clamp(1.15rem, 2.2vw, 1.55rem) !important;
  letter-spacing: -.01em !important;
}
.section-services .srv-desc  { color: rgba(242,237,228,.5) !important; }
.section-services .srv-link  { color: var(--accent) !important; }

/* ══ 3. STATS BAND — orange franc, chiffres géants ══ */
.stats-band {
  background: var(--accent) !important;
  position: relative !important;
  z-index: 2 !important;
}
.stats-band .stat-big {
  font-size: clamp(3.5rem, 8vw, 6.5rem) !important;
  font-weight: 900 !important;
  letter-spacing: -.04em !important;
  color: #fff !important;
  font-feature-settings: "tnum" !important;
  line-height: 1 !important;
}
.stats-band .stat-big .unit {
  color: rgba(255,255,255,.55) !important;
  font-size: .55em !important;
}
.stats-band .stat-label {
  color: rgba(255,255,255,.75) !important;
  font-size: .8rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  font-family: 'Syne', sans-serif !important;
  margin-top: .5rem !important;
}
.stats-band .stat-cell {
  border-right-color: rgba(255,255,255,.2) !important;
}

/* ══ 4. CARDS — tuiles sombres éditoriales ══ */

.cards-grid {
  counter-reset: card-n !important;
  border-top: none !important;
  gap: 2px !important;           /* joint fin entre tuiles */
  background: var(--rule) !important; /* la grille = couleur du joint */
}

.card {
  counter-increment: card-n !important;
  position: relative !important;
  overflow: hidden !important;
  border: none !important;
  padding: 2.5rem 2rem 3rem !important;
  background: #1E1410 !important;   /* encre chaud — fond de tuile */
  transition: background .3s !important;
}

/* Numéro fantôme en coin */
.card::before {
  content: counter(card-n, decimal-leading-zero) !important;
  position: absolute !important;
  bottom: -1rem !important;
  right: 1.25rem !important;
  font-family: 'Syne', sans-serif !important;
  font-size: 6rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: #fff !important;
  opacity: .05 !important;
  pointer-events: none !important;
  user-select: none !important;
  transition: opacity .3s, transform .3s !important;
}

/* Filet accent en haut — apparaît au hover */
.card::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  height: 3px !important;
  background: var(--accent) !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform .35s cubic-bezier(.4,0,.2,1) !important;
}
.card:hover::after { transform: scaleX(1) !important; }
.card:hover::before { opacity: .12 !important; transform: scale(1.05) !important; }

/* Hover : s'illumine légèrement + lève */
.card:hover {
  background: #2C1D13 !important;
}

/* Couleurs texte sur fond sombre */
.card .meta,
.card .small-label {
  color: var(--accent) !important;
}
.card h3 {
  color: var(--cream) !important;
  font-size: clamp(1.35rem, 2vw, 1.9rem) !important;
  line-height: 1.1 !important;
  letter-spacing: -.02em !important;
  margin-bottom: .9rem !important;
  margin-top: .6rem !important;
}
.card p {
  color: rgba(242,237,228,.5) !important;
  font-size: .88rem !important;
  line-height: 1.75 !important;
}
.card .inline-button {
  color: rgba(242,237,228,.55) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: .4rem !important;
  font-size: .75rem !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  font-family: 'Syne', sans-serif !important;
  font-weight: 700 !important;
  transition: color .25s, gap .25s !important;
  margin-top: 1.5rem !important;
}
.card:hover .inline-button {
  color: var(--accent) !important;
  gap: .75rem !important;
}

/* Neutralise le fond alternant #f0e8dc du CSS original sur les cartes */
.card:nth-child(2n) { background: #1E1410 !important; }
.hero-bottom-cell:nth-child(2n),
.row-main { background: transparent !important; }

/* ══ 5. SECTION CITIES — fond sable doux ══ */
.section-cities {
  background: var(--cream-dark, #E8E0D0) !important;
  position: relative !important;
  border-bottom: none !important;
}
.section-cities .eyebrow { color: var(--accent) !important; }
.section-cities .eyebrow::before { background: var(--accent) !important; }
.section-cities .cities-left h2 {
  color: var(--ink) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.8rem) !important;
  letter-spacing: -.025em !important;
  line-height: 1.1 !important;
}
.section-cities .cities-left h2 em { color: var(--accent) !important; font-style: normal !important; }
.section-cities .city-link {
  color: var(--ink) !important;
  border-color: rgba(26,22,18,.1) !important;
  transition: padding-left .2s, border-color .2s !important;
}
.section-cities .city-link:hover {
  padding-left: 1.25rem !important;
  border-left: 2px solid var(--accent) !important;
}
.section-cities .city-link:hover .city-link-name { color: var(--accent) !important; }
.section-cities .city-link-tag { color: rgba(26,22,18,.42) !important; }
.section-cities .city-link-arr { color: var(--accent) !important; opacity: .6 !important; }
/* Colonne témoignages : carte légère */
.section-cities .cities-right {
  border-left-color: rgba(26,22,18,.1) !important;
}
.section-cities .testi {
  background: rgba(255,255,255,.55) !important;
  border-color: transparent !important;
  border-radius: 6px !important;
  padding: 1.5rem !important;
  transition: background .25s, box-shadow .25s !important;
}
.section-cities .testi:hover {
  background: #fff !important;
  box-shadow: 0 6px 24px rgba(26,22,18,.09) !important;
}
.section-cities .testi-quote {
  color: var(--ink) !important;
  font-style: italic !important;
}
/* Grand guillemet décoratif */
.section-cities .testi-quote::before {
  content: '\201C' !important;
  font-family: 'Playfair Display', serif !important;
  font-size: 3.5rem !important;
  line-height: 0 !important;
  vertical-align: -.6rem !important;
  color: var(--accent) !important;
  margin-right: .25rem !important;
  opacity: .8 !important;
}
.section-cities .testi-author { color: rgba(26,22,18,.5) !important; }

/* ══ 6. SECTION FAQ — bandes grille ══ */
#faq {
  background: var(--cream) !important;
  position: relative !important;
}
/* bande accent horizontale en haut */
#faq::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  background: var(--accent) !important;
}
#faq .block-head h2 {
  color: var(--ink) !important;
  font-size: clamp(2.2rem, 4.5vw, 3.6rem) !important;
  letter-spacing: -.025em !important;
}
#faq .block-head p { color: rgba(26,22,18,.55) !important; }
/* Numéro de FAQ : compteur décoratif */
.faqs { counter-reset: faq-counter !important; }
.faq {
  counter-increment: faq-counter !important;
  position: relative !important;
  transition: background .25s !important;
}
.faq::before {
  content: counter(faq-counter, decimal-leading-zero) !important;
  position: absolute !important;
  top: 1.25rem !important;
  right: 1.25rem !important;
  font-family: 'Syne', sans-serif !important;
  font-size: .65rem !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  color: var(--accent) !important;
  opacity: .4 !important;
}
.faq:hover { background: rgba(255,255,255,.8) !important; }
.faq h3 {
  color: var(--ink) !important;
  border-left: 3px solid var(--accent) !important;
  padding-left: .9rem !important;
  line-height: 1.3 !important;
  transition: border-left-width .2s !important;
}
.faq:hover h3 { border-left-width: 5px !important; }
.faq p { color: rgba(26,22,18,.65) !important; }

/* ══ 7. SECTION CTA — typographie massive, fond encre ══ */
.section-cta {
  background: var(--ink) !important;
  position: relative !important;
  overflow: hidden !important;
}
.section-cta::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, var(--accent), transparent) !important;
}
.cta-h {
  color: var(--cream) !important;
  font-size: clamp(2.8rem, 7vw, 6rem) !important;
  letter-spacing: -.035em !important;
  line-height: 1.05 !important;
}
.cta-h em { color: var(--accent) !important; font-style: normal !important; }

/* ══ 8. TABLETTE 721–1080px ══ */
@media (min-width: 721px) and (max-width: 1080px) {
  .cards-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .card:nth-child(odd)  { border-right: 1px solid var(--rule) !important; }
  .card:nth-child(even) { border-right: 0 !important; }
  .section-cities .cities-right { border-left-color: rgba(26,22,18,.1) !important; }
}

/* ══ 9. MOBILE ≤720px ══ */
@media (max-width: 720px) {

  /* ── Reset alternances internes non désirées ── */
  .hero-bottom-cell:nth-child(2n),
  .row-main { background: transparent !important; }

  /* ── HERO ── */
  .hero-bottom-cell {
    padding: 1.75rem 1.5rem !important;
    border-left: 3px solid var(--accent) !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--rule) !important;
    background: transparent !important;
  }
  .hero-bottom-cell:last-child { border-bottom: 0 !important; }

  /* ── SERVICES mobile ── */
  .section-services::after { display: none !important; }
  .section-services .services-head {
    padding-top: 3rem !important;
    padding-bottom: 2.5rem !important;
    flex-direction: column !important;
    display: flex !important;
    gap: 1.25rem !important;
  }
  .section-services .services-head h2 { font-size: clamp(2rem, 9vw, 3rem) !important; }
  .section-services .service-row {
    padding: 1.5rem !important;
    grid-template-columns: 40px 1fr !important;
    gap: .6rem 1rem !important;
  }
  .section-services .service-row:hover { padding-left: 1.5rem !important; }

  /* ── STATS band : layout colonne ── */
  .stats-band {
    grid-template-columns: 1fr !important;
  }
  .stat-cell {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.2) !important;
    padding: 1.75rem 1.5rem !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 1.5rem !important;
  }
  .stat-cell:last-child { border-bottom: 0 !important; }
  .stats-band .stat-big {
    font-size: clamp(3rem, 14vw, 4.5rem) !important;
    flex-shrink: 0 !important;
    min-width: 5rem !important;
  }

  /* ── CITIES mobile ── */
  .section-cities .cities-left  { padding: 0 1.5rem 3rem !important; }
  .section-cities .cities-right {
    padding: 2.5rem 1.5rem !important;
    border-left: none !important;
    border-top: 1px solid rgba(26,22,18,.12) !important;
  }
  .section-cities .cities-left h2 {
    font-size: clamp(2.2rem, 10vw, 3.2rem) !important;
    margin-bottom: 2rem !important;
  }
  .section-cities .city-link:hover { padding-left: .75rem !important; }

  /* ── FAQ ── */
  .faqs { grid-template-columns: 1fr !important; }
  .faq {
    border-right: 0 !important;
    padding: 2rem 1.5rem !important;
    border-bottom: 1px solid var(--rule) !important;
  }
  .faq:last-child { border-bottom: 0 !important; }
  .faq h3 { font-size: 1.1rem !important; line-height: 1.35 !important; margin-bottom: .85rem !important; }
  .faq p  { font-size: .9rem !important; line-height: 1.75 !important; }

  /* ── BLOCK-HEAD ── */
  .block-head, .services-head {
    padding-top: 3rem !important;
    padding-bottom: 2.5rem !important;
    gap: 1.25rem !important;
    flex-direction: column !important;
    display: flex !important;
  }
  .block-head h2 { font-size: clamp(2rem, 9vw, 3rem) !important; }
  .block-head p, .services-head p {
    font-size: .9rem !important;
    max-width: none !important;
    text-align: left !important;
  }

  /* ── CARDS ── */
  .cards-grid { grid-template-columns: 1fr !important; gap: 2px !important; }
  .card { padding: 2rem 1.5rem 2.5rem !important; }
  .card h3 { font-size: 1.5rem !important; }

  /* ── ROW ── */
  .row-main { border-bottom: 1px solid var(--rule) !important; padding-bottom: 2.5rem !important; }
  .row-side  { padding-top: 2rem !important; }

  /* ── CTA ── */
  .section-cta { padding: 4rem 1.5rem !important; gap: 3rem !important; }
  .cta-h { font-size: clamp(2.4rem, 10vw, 3.8rem) !important; }
}

/* ── FAQ accordion (details/summary) ── */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--rule, rgba(255,255,255,.1));
}
.faq-item {
  border-bottom: 1px solid var(--rule, rgba(255,255,255,.1));
}
.faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 0;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  gap: 1rem;
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q::after {
  content: '+';
  flex-shrink: 0;
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--accent);
  transition: transform .2s;
}
details[open] > .faq-q::after {
  transform: rotate(45deg);
}
.faq-a {
  padding: 0 0 1.25rem;
  color: var(--muted);
  font-size: .97rem;
  line-height: 1.75;
}
.faq-a p { margin: 0; }

/* ── Bouton audit SEO — nav header ── */
.nav-links .nav-audit {
  display: inline-flex !important;
  align-items: center !important;
  padding: .65rem 1.1rem !important;
  border: 1.5px solid var(--accent) !important;
  border-radius: 2px !important;
  color: var(--accent) !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1 !important;
  transition: background .2s, color .2s !important;
  white-space: nowrap !important;
}
.nav-links .nav-audit:hover {
  background: var(--accent) !important;
  color: #fff !important;
}
/* Mobile panel */
.nav-audit-mobile {
  display: block;
  padding: 1rem 0;
  border-bottom: 1px solid var(--rule);
  font-family: var(--serif);
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: 0;
  color: var(--accent) !important;
  text-decoration: none;
  font-weight: 700;
}
/* Footer audit link mise en avant */
.footer-audit-link {
  color: var(--accent) !important;
  font-weight: 700 !important;
}
/* ── Mini-note : texte secondaire discret ── */
.mini-note {
  font-size: .88rem;
  color: var(--ink-soft);
  line-height: 1.7;
  margin-top: 1.5rem;
}

/* ── Card-link : CTA textuel dans une card ── */
.card-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-top: 1rem;
  font-family: 'Syne', sans-serif;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-soft);
  text-decoration: none;
}

/* ── Conversion 2026 : offre phare, preuves et contact rapide ── */
.nav-links { gap: 1.35rem; }
.nav-phone {
  display:inline-flex !important;
  align-items:center !important;
  padding:.58rem .95rem !important;
  border:1px solid rgba(26,22,18,.18) !important;
  border-radius:999px !important;
  color:var(--ink) !important;
  background:rgba(255,255,255,.35) !important;
  letter-spacing:.04em !important;
  white-space:nowrap !important;
}
.nav-phone::after { display:none !important; }
.nav-phone:hover { border-color:var(--accent) !important; color:var(--accent) !important; }
.nav-phone-mobile {
  color:var(--ink) !important;
  font-weight:900 !important;
}
.hero-offer-card h2 {
  font-family:var(--serif);
  font-size:clamp(2rem,4vw,4.2rem);
  line-height:.95;
  letter-spacing:-.035em;
  margin:0 0 1rem;
}
.offer-list {
  display:grid;
  gap:.65rem;
  margin:1.2rem 0 0;
  padding:0;
  list-style:none;
}
.offer-list li {
  position:relative;
  padding-left:1.2rem;
  color:var(--ink-soft);
}
.offer-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.7em;
  width:6px;
  height:6px;
  border-radius:999px;
  background:var(--accent);
}
.hero-actions,
.offer-actions {
  display:flex;
  gap:.9rem;
  flex-wrap:wrap;
  align-items:center;
  margin-top:1.4rem;
}
.trust-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:rgba(248,244,238,.72);
}
.trust-strip > a,
.trust-strip > span {
  display:flex;
  flex-direction:column;
  gap:.35rem;
  padding:1.4rem 3rem;
  text-decoration:none;
  border-right:1px solid var(--rule);
}
.trust-strip > *:last-child { border-right:0; }
.trust-strip strong {
  font-size:.95rem;
  letter-spacing:.02em;
}
.trust-strip span span,
.trust-strip a span {
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.trust-strip a:hover strong { color:var(--accent); }
.offer-focus {
  background:linear-gradient(135deg, rgba(200,80,26,.08), rgba(232,224,208,.38));
  border-top:1px solid rgba(200,80,26,.16);
  border-bottom:1px solid rgba(200,80,26,.18);
}
.offer-pill-list {
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:1.4rem;
}
.offer-pill-list span {
  display:inline-flex;
  padding:.55rem .85rem;
  border:1px solid rgba(26,22,18,.12);
  border-radius:999px;
  background:rgba(255,255,255,.42);
  color:var(--ink-soft);
  font-size:.82rem;
}
.offer-steps ol {
  display:grid;
  gap:1.05rem;
  margin:1rem 0 0;
  padding-left:1.2rem;
}
.offer-steps li {
  color:var(--ink-soft);
  line-height:1.7;
}
.offer-steps strong { color:var(--ink); }
.case-proof-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.case-proof-card {
  padding:2.4rem;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:rgba(255,255,255,.22);
}
.case-proof-card h3 {
  font-size:clamp(1.5rem,2.2vw,2.35rem);
  line-height:1;
}
.case-proof-card p { color:var(--ink-soft); }
.conversion-bridge {
  background:rgba(26,22,18,.045);
}
.mobile-conversion-bar { display:none; }
@media (max-width: 1180px) {
  .nav-links { gap: .9rem; }
  .nav-links a { font-size:.72rem; }
  .nav-phone { padding:.5rem .7rem !important; }
}
@media (max-width: 980px) {
  body { padding-bottom:72px; }
  .trust-strip { grid-template-columns:1fr 1fr; }
  .trust-strip > a,
  .trust-strip > span { padding:1.05rem 1.5rem; }
  .case-proof-grid { grid-template-columns:1fr; }
  .hero-actions,
  .offer-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .button,
  .hero-actions .inline-button,
  .offer-actions .button,
  .offer-actions .inline-button { justify-content:center; width:100%; }
  .mobile-conversion-bar {
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:120;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:8px;
    border:1px solid rgba(26,22,18,.16);
    border-radius:999px;
    background:rgba(242,237,228,.94);
    box-shadow:0 16px 40px rgba(26,22,18,.22);
    backdrop-filter:blur(12px);
  }
  .mobile-conversion-bar a {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    border-radius:999px;
    font-size:.76rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-decoration:none;
  }
  .mobile-conversion-bar__call { background:var(--ink); color:var(--cream); }
  .mobile-conversion-bar__audit { background:var(--accent); color:#fff; }
}
@media (max-width: 640px) {
  .trust-strip { grid-template-columns:1fr; }
  .trust-strip > a,
  .trust-strip > span { border-right:0; border-bottom:1px solid var(--rule); }
  .trust-strip > *:last-child { border-bottom:0; }
}
