:root {
    --cream: #f2efe6;
    --paper: #fffdf7;
    --ink: #11110f;
    --ink-2: #1b1b18;
    --green: #65f379;
    --green-soft: #b9ff89;
    --muted: rgba(17,17,15,.62);
    --muted-dark: rgba(255,255,255,.62);
    --line: rgba(17,17,15,.16);
    --line-dark: rgba(255,255,255,.16);
    --shell: min(1760px, calc(100vw - 64px));
    --radius: 22px;
    --cut: 30px;
    --ease: cubic-bezier(.2,.74,.2,1);
    --header-h: 86px;
    --shadow: 0 28px 80px rgba(17,17,15,.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; max-width: 100%; }
button,input,select,textarea { font: inherit; }
button { color: inherit; }
svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
::selection { color: var(--ink); background: var(--green); }
:focus-visible { outline: 3px solid var(--green); outline-offset: 4px; }

.shell { width: var(--shell); margin-inline: auto; }
.section-pad { padding: clamp(96px, 9vw, 180px) 0; }
.section-paper { background: var(--paper); }
.section-dark { color: var(--paper); background: var(--ink); }
.section-dark p { color: var(--muted-dark); }
.cut-card { --cut-local: var(--cut); clip-path: polygon(0 0, calc(100% - var(--cut-local)) 0, 100% var(--cut-local), 100% 100%, var(--cut-local) 100%, 0 calc(100% - var(--cut-local))); }
.skip-link { position: fixed; left: 12px; top: 12px; z-index: 9999; padding: 12px 16px; background: var(--ink); color: #fff; transform: translateY(-180%); }
.skip-link:focus { transform: none; }

h1,h2,h3,h4,p,blockquote { margin-top: 0; }
h1,h2,h3,h4 { letter-spacing: -.06em; }
h1 { margin: 0; font-size: clamp(64px,8.2vw,150px); line-height: .84; font-weight: 760; }
h2 { margin: 0; font-size: clamp(50px,6.3vw,112px); line-height: .88; font-weight: 750; }
h3 { margin: 0; font-size: clamp(27px,2.25vw,44px); line-height: .95; }
h1 em,h2 em { color: rgba(17,17,15,.38); font-style: normal; font-weight: 440; }
.section-dark h1 em,.section-dark h2 em { color: rgba(255,255,255,.33); }
p { color: var(--muted); line-height: 1.66; }

.kicker { display: inline-flex; align-items: center; gap: 10px; font-size: 10px; line-height: 1; font-weight: 850; text-transform: uppercase; letter-spacing: .11em; }
.kicker::before { content: ""; width: 24px; height: 2px; background: var(--green); flex: 0 0 auto; }
.kicker-light { color: rgba(255,255,255,.7); }
.text-link { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 5px; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 800; }
.text-link svg { transition: transform .25s var(--ease); }
.text-link:hover svg { transform: translate(3px,-3px); }
.button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 14px 22px; border: 1px solid transparent; border-radius: 999px; font-size: 12px; font-weight: 800; cursor: pointer; transition: transform .25s var(--ease), background .25s, color .25s; }
.button:hover { transform: translateY(-2px); }
.button-dark { background: var(--ink); color: #fff; }
.button-green { background: var(--green); color: var(--ink); }
.button-light { background: #fff; color: var(--ink); }
.circle-cta { width: clamp(86px,7vw,116px); aspect-ratio: 1; border: 1px solid var(--ink); border-radius: 50%; display: grid; place-items: center; font-size: 27px; flex: 0 0 auto; transition: transform .32s var(--ease), background .32s, color .32s; }
.circle-cta:hover { transform: rotate(9deg); background: var(--green); }
.circle-cta-light { color: #fff; border-color: rgba(255,255,255,.8); }
.circle-cta-light:hover { color: var(--ink); }

/* Header */
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(242,239,230,.93); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.nav-shell { min-height: var(--header-h); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; }
.brand { width: max-content; display: inline-flex; align-items: center; gap: 10px; }
.brand-mark { font-size: 29px; line-height: .76; font-weight: 950; letter-spacing: -.12em; }
.brand-copy { font-size: 9px; line-height: .88; font-weight: 900; letter-spacing: .09em; }
.desktop-nav { display: flex; align-items: stretch; height: var(--header-h); gap: 6px; }
.nav-main-link { height: 100%; padding: 0 14px; display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 760; position: relative; }
.nav-main-link::after { content: ""; position: absolute; left: 14px; right: 100%; bottom: 23px; height: 2px; background: var(--green); transition: right .25s var(--ease); }
.nav-main-link:hover::after,.nav-drop:hover > .nav-main-link::after { right: 14px; }
.nav-main-link > span { font-size: 13px; color: var(--muted); }
.nav-drop { position: relative; display: flex; }
.mega-menu,.mini-menu { position: absolute; top: calc(100% - 4px); left: 50%; transform: translate(-50%,16px); opacity: 0; pointer-events: none; background: var(--paper); box-shadow: var(--shadow); border: 1px solid var(--line); transition: opacity .22s var(--ease), transform .22s var(--ease); }
.nav-drop:hover .mega-menu,.nav-drop:hover .mini-menu,.nav-drop:focus-within .mega-menu,.nav-drop:focus-within .mini-menu { opacity: 1; pointer-events: auto; transform: translate(-50%,0); }
.mega-menu { width: min(940px, calc(100vw - 40px)); display: grid; grid-template-columns: .72fr 1.28fr; --cut-local: 20px; }
.mega-intro { padding: 34px; background: var(--ink); color: #fff; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.mega-intro strong { margin-top: auto; font-size: 32px; line-height: .96; letter-spacing: -.05em; }
.mega-intro a { font-size: 11px; display: inline-flex; gap: 9px; align-items: center; color: var(--green); }
.mega-links { padding: 14px; display: grid; grid-template-columns: repeat(2,1fr); }
.mega-links a { min-height: 82px; padding: 14px; display: grid; grid-template-columns: 28px 1fr 28px; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.mega-links a:nth-last-child(-n+2) { border-bottom: 0; }
.mega-links a span { font-size: 9px; color: var(--muted); }
.mega-links a strong { font-size: 14px; line-height: 1.2; }
.mega-links a i { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-style: normal; background: var(--green); opacity: 0; transform: scale(.7); transition: .22s var(--ease); }
.mega-links a:hover i { opacity: 1; transform: scale(1); }
.mini-menu { width: 260px; padding: 10px; --cut-local: 16px; }
.mini-menu a { display: flex; justify-content: space-between; gap: 12px; padding: 15px 13px; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 750; }
.mini-menu a:last-child { border-bottom: 0; }
.mini-menu i { font-style: normal; }
.nav-end { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.status { display: inline-flex; align-items: center; gap: 8px; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.status i { width: 7px; aspect-ratio: 1; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(101,243,121,.14); }
.nav-project { min-height: 42px; display: inline-flex; align-items: center; gap: 9px; padding: 10px 16px; border-radius: 999px; color: #fff; background: var(--ink); font-size: 10px; font-weight: 800; }
.menu-toggle { display: none; width: 46px; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }
.menu-toggle span { display: grid; place-items: center; }
.menu-toggle .close-icon { display: none; }
.menu-toggle[aria-expanded="true"] .open-icon { display: none; }
.menu-toggle[aria-expanded="true"] .close-icon { display: grid; }
.mobile-menu { display: none; }

/* Full-width slanted ribbon */
.edge-ribbon { width: 100vw; margin-left: calc(50% - 50vw); overflow: hidden; position: relative; }
.slant-ribbon { z-index: 3; background: var(--green); color: var(--ink); clip-path: polygon(0 15%,100% 0,100% 85%,0 100%); min-height: 102px; display: flex; align-items: center; }
.slant-track { width: max-content; min-width: 100%; display: flex; align-items: center; gap: clamp(24px,3vw,56px); padding: 29px 0; white-space: nowrap; animation: slantFlow 32s linear infinite alternate; will-change: transform; }
.slant-track span { font-size: clamp(27px,3.25vw,60px); line-height: 1; font-weight: 900; letter-spacing: -.055em; }
.slant-track i { font-size: 15px; font-style: normal; }
@keyframes slantFlow { from { transform: translateX(-2%); } to { transform: translateX(-22%); } }

/* Shared page hero */
.page-hero { min-height: max(680px, calc(90vh - var(--header-h))); display: flex; align-items: flex-end; padding: clamp(76px,8vw,150px) 0 clamp(78px,8vw,130px); }
.back-link { display: inline-flex; margin-bottom: 54px; font-size: 11px; font-weight: 800; }
.page-lead { margin: 42px 0 0; max-width: 760px; font-size: clamp(16px,1.35vw,22px); }
.page-hero-grid,.hub-hero-grid,.about-hero-grid,.blog-hero-grid,.local-hub-hero-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.55fr); gap: clamp(50px,7vw,130px); align-items: end; width: 100%; }
.page-hero h1 { margin-top: 28px; max-width: 12ch; }

/* Home Hero */
.home-hero { padding: 26px 0 86px; }
.hero-topline { padding: 18px 0 10px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; border-bottom: 1px solid var(--line); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.hero-topline span:nth-child(2) { text-align: center; }
.hero-topline span:last-child { text-align: right; }
.hero-main-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(360px,.52fr); gap: clamp(40px,6vw,110px); align-items: stretch; padding-top: clamp(58px,7vw,110px); }
.hero-copy { display: flex; flex-direction: column; justify-content: space-between; }
.hero-copy h1 { margin-top: clamp(32px,4vw,66px); max-width: 10ch; }
.hero-bottomline { margin-top: clamp(60px,8vw,130px); display: grid; grid-template-columns: minmax(0,640px) auto; gap: 44px; align-items: end; }
.hero-bottomline p { margin: 0; font-size: clamp(16px,1.4vw,22px); }
.hero-bottomline strong { color: var(--ink); }
.hero-poster { min-height: 610px; padding: 28px; background: var(--green); display: flex; flex-direction: column; justify-content: space-between; --cut-local: 42px; transform: perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition: transform .18s ease-out; }
.poster-top { display: flex; justify-content: space-between; gap: 18px; font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.poster-main { display: flex; flex-direction: column; }
.poster-main small { font-size: 11px; font-weight: 850; letter-spacing: .12em; }
.poster-main strong { margin-top: 10px; font-size: clamp(64px,5.6vw,108px); line-height: .78; letter-spacing: -.08em; }
.poster-main em { margin-top: 22px; font-size: 22px; font-style: normal; }
.poster-bottom { padding-top: 18px; display: grid; gap: 7px; border-top: 1px solid rgba(17,17,15,.35); font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.slant-home { margin-top: -18px; }

/* Home intro */
.home-intro-grid { display: grid; grid-template-columns: minmax(280px,.38fr) 1fr; gap: clamp(55px,8vw,145px); align-items: start; }
.stat-poster { min-height: 460px; padding: 30px; background: var(--green); display: flex; flex-direction: column; --cut-local: 34px; }
.stat-poster > span { font-size: clamp(92px,9vw,150px); line-height: .72; font-weight: 850; letter-spacing: -.09em; }
.stat-poster > strong { margin-top: 22px; font-size: 28px; }
.stat-poster p { margin: auto 0 30px; max-width: 290px; color: rgba(17,17,15,.72); }
.stat-poster small { padding-top: 18px; border-top: 1px solid rgba(17,17,15,.28); font-size: 10px; letter-spacing: .08em; }
.intro-copy h2 { margin-top: 32px; max-width: 13ch; }
.intro-subgrid { margin-top: 60px; display: grid; grid-template-columns: minmax(0,620px) auto; gap: 50px; align-items: end; }
.intro-subgrid p { margin: 0; font-size: 16px; }

/* Section title */
.section-title-row { margin-bottom: clamp(65px,8vw,125px); display: grid; grid-template-columns: 1fr minmax(260px,.45fr); gap: clamp(44px,7vw,115px); align-items: end; }
.section-title-row h2 { margin-top: 27px; max-width: 13ch; }
.section-side { justify-self: end; max-width: 480px; }
.section-side p,.section-intro { font-size: 15px; }
.section-side .text-link { margin-top: 20px; }
.section-title-row > .text-link { justify-self: end; align-self: end; }

/* Projects */
.editorial-project-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: clamp(54px,6vw,100px) 22px; align-items: start; }
.editorial-project-1 { grid-column: 1 / span 7; }
.editorial-project-2 { grid-column: 9 / span 4; padding-top: 120px; }
.editorial-project-3 { grid-column: 2 / span 4; }
.editorial-project-4 { grid-column: 7 / span 6; padding-top: 70px; }
.project-card a { display: block; }
.project-media { position: relative; overflow: hidden; aspect-ratio: 16/10; background: #d8d4ca; --cut-local: 28px; }
.editorial-project-2 .project-media,.portfolio-item-2 .project-media { aspect-ratio: 4/5; }
.editorial-project-3 .project-media,.portfolio-item-3 .project-media { aspect-ratio: 5/4; }
.project-media img { height: 100%; object-fit: cover; transition: transform .55s var(--ease), filter .35s; }
.project-card:hover .project-media img { transform: scale(1.035); filter: saturate(1.04) contrast(1.02); }
.project-number { position: absolute; left: 18px; bottom: 18px; padding: 8px 10px; background: var(--paper); font-size: 9px; font-weight: 850; }
.project-open { position: absolute; right: 18px; top: 18px; width: 54px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; background: var(--green); opacity: 0; transform: scale(.72) rotate(-12deg); transition: .3s var(--ease); }
.project-card:hover .project-open { opacity: 1; transform: scale(1) rotate(0); }
.project-meta { padding-top: 17px; display: flex; justify-content: space-between; gap: 22px; }
.project-meta h3 { font-size: clamp(25px,2.2vw,38px); }
.project-meta p,.project-meta > span { margin: 4px 0 0; font-size: 10px; color: var(--muted); }
.work-cta { margin-top: clamp(70px,9vw,145px); padding: clamp(26px,3vw,44px); background: var(--ink); color: #fff; display: grid; grid-template-columns: 1fr auto 54px; gap: 24px; align-items: center; --cut-local: 24px; }
.work-cta span { color: var(--muted-dark); font-size: 11px; }
.work-cta strong { font-size: clamp(23px,2.4vw,40px); letter-spacing: -.04em; }
.work-cta > a { width: 54px; aspect-ratio: 1; border-radius: 50%; background: var(--green); color: var(--ink); display: grid; place-items: center; }

/* Home services */
.service-editorial-list { border-top: 1px solid var(--line); }
.service-editorial-row { min-height: 150px; padding: 24px 0; display: grid; grid-template-columns: 48px minmax(260px,.8fr) 1fr 54px; gap: 28px; align-items: center; border-bottom: 1px solid var(--line); transition: padding .3s var(--ease), background .3s, color .3s; }
.service-editorial-row > span { font-size: 10px; color: var(--muted); }
.service-editorial-row small { display: block; margin-bottom: 7px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.service-editorial-row h3 { font-size: clamp(27px,2.8vw,52px); }
.service-editorial-row p { margin: 0; max-width: 650px; font-size: 13px; }
.service-editorial-row i { width: 50px; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; font-style: normal; transition: transform .25s, background .25s; }
.service-editorial-row:hover { padding-left: 22px; padding-right: 22px; background: var(--ink); color: #fff; }
.service-editorial-row:hover p,.service-editorial-row:hover small,.service-editorial-row:hover > span { color: rgba(255,255,255,.62); }
.service-editorial-row:hover i { background: var(--green); color: var(--ink); border-color: transparent; transform: rotate(8deg); }
.service-editorial-row.row-green:hover { background: var(--green); color: var(--ink); }
.service-editorial-row.row-green:hover p,.service-editorial-row.row-green:hover small,.service-editorial-row.row-green:hover > span { color: rgba(17,17,15,.63); }

/* Home manifesto */
.manifesto-grid { display: grid; grid-template-columns: 1fr minmax(330px,.42fr); gap: clamp(60px,9vw,160px); align-items: end; }
.manifesto-grid h2 { margin-top: 32px; max-width: 12ch; }
.manifesto-aside { min-height: 520px; padding: 28px; background: var(--ink-2); border: 1px solid var(--line-dark); display: flex; flex-direction: column; --cut-local: 30px; }
.manifesto-aside > span { font-size: 9px; color: rgba(255,255,255,.5); letter-spacing: .1em; }
.manifesto-aside ul { list-style: none; margin: auto 0; padding: 0; }
.manifesto-aside li { padding: 18px 0; border-bottom: 1px solid var(--line-dark); font-size: 18px; }
.manifesto-aside li strong { display: inline-block; width: 48px; color: var(--green); font-size: 10px; }
.manifesto-aside a { display: inline-flex; align-items: center; justify-content: space-between; padding-top: 20px; border-top: 1px solid var(--line-dark); color: var(--green); font-size: 11px; font-weight: 800; }

/* Local home */
.local-home-grid { display: grid; grid-template-columns: 1fr minmax(410px,.62fr); gap: clamp(60px,8vw,145px); align-items: start; }
.local-home-copy h2 { margin-top: 30px; max-width: 11ch; }
.local-home-copy p { margin: 42px 0 32px; max-width: 690px; font-size: 16px; }
.location-board { min-height: 650px; padding: 28px; background: var(--green); display: flex; flex-direction: column; --cut-local: 42px; transform: perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition: transform .18s ease-out; }
.board-label { margin-bottom: 42px; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.location-board > a { padding: 22px 0; display: grid; grid-template-columns: 1fr minmax(120px,.6fr) 28px; gap: 16px; align-items: center; border-top: 1px solid rgba(17,17,15,.28); }
.location-board > a strong { font-size: clamp(28px,2.8vw,50px); letter-spacing: -.06em; }
.location-board > a span { font-size: 9px; line-height: 1.45; text-transform: uppercase; letter-spacing: .06em; }
.location-board > a i { font-style: normal; }
.board-france { margin-top: auto; padding-top: 24px; border-top: 2px solid var(--ink); display: flex; gap: 16px; align-items: center; }
.board-france > span { font-size: 56px; line-height: .8; }
.board-france div { display: grid; gap: 4px; }
.board-france strong { font-size: 24px; }
.board-france small { font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }

/* Testimonials */
.testimony-top h2 { margin-top: 30px; max-width: 12ch; }
.quote-collage { margin-top: clamp(60px,8vw,120px); display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; align-items: start; }
.quote-card { min-height: 500px; padding: clamp(28px,4vw,58px); background: var(--cream); display: flex; flex-direction: column; --cut-local: 30px; }
.quote-card > span { font-size: 10px; letter-spacing: .18em; }
.quote-card blockquote { margin: auto 0; max-width: 17ch; font-size: clamp(30px,3.7vw,62px); line-height: .98; letter-spacing: -.055em; }
.quote-card footer { padding-top: 18px; display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); font-size: 10px; }
.quote-card footer small { color: var(--muted); }
.quote-2 { margin-top: 110px; background: var(--green); }
.quote-3 { grid-column: 1 / -1; width: 65%; justify-self: center; min-height: 400px; background: var(--ink); color: #fff; }
.quote-3 footer { border-color: var(--line-dark); }
.quote-3 footer small { color: var(--muted-dark); }
.centered-link { margin-top: 50px; text-align: center; }

/* Articles cards */
.article-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.article-card { min-height: 430px; padding: 26px; background: var(--paper); display: flex; flex-direction: column; --cut-local: 24px; transition: transform .28s var(--ease), background .28s; }
.article-card:nth-child(2) { background: var(--green); }
.article-card > div { display: flex; justify-content: space-between; gap: 16px; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.article-card h3 { margin: auto 0 20px; font-size: clamp(28px,2.5vw,46px); }
.article-card p { margin: 0 0 34px; font-size: 13px; }
.article-card footer { padding-top: 16px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; font-size: 9px; }
.article-card footer i { font-style: normal; }
.article-card:hover { transform: translateY(-8px); }

/* FAQ */
.faq-grid { display: grid; grid-template-columns: minmax(280px,.55fr) 1fr; gap: clamp(55px,8vw,140px); }
.faq-heading { position: sticky; top: calc(var(--header-h) + 40px); align-self: start; }
.faq-heading h2 { margin-top: 28px; max-width: 9ch; }
.faq-heading p { max-width: 360px; margin: 28px 0; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { list-style: none; cursor: pointer; min-height: 86px; display: grid; grid-template-columns: 40px 1fr 34px; gap: 16px; align-items: center; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary > span { font-size: 9px; color: var(--muted); }
.faq-item summary strong { font-size: clamp(17px,1.55vw,25px); letter-spacing: -.035em; }
.faq-item summary i { display: grid; place-items: center; font-style: normal; transition: transform .25s var(--ease); }
.faq-item[open] summary i { transform: rotate(45deg); }
.faq-item > div { padding: 0 50px 28px 56px; }
.faq-item p { margin: 0; max-width: 760px; }

/* Prefooter */
.prefooter-cta { padding: clamp(95px,10vw,180px) 0; }
.prefooter-grid { display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; }
.prefooter-grid > div > span { display: block; margin-bottom: 26px; color: var(--muted-dark); font-size: 11px; }
.prefooter-grid h2 { max-width: 12ch; }

/* Footer */
.footer { padding: clamp(90px,9vw,150px) 0 24px; overflow: hidden; }
.footer-cta { padding: clamp(34px,5vw,72px); display: grid; grid-template-columns: 1fr auto; gap: 50px; align-items: end; background: var(--ink-2); border: 1px solid var(--line-dark); --cut-local: 42px; }
.footer-cta h2 { margin-top: 28px; max-width: 12ch; }
.footer-cta p { margin: 24px 0 0; max-width: 620px; }
.footer-grid { padding: 80px 0 90px; display: grid; grid-template-columns: 1.15fr repeat(4,.66fr); gap: 50px; border-bottom: 1px solid var(--line-dark); }
.footer-brand-wrap p { max-width: 330px; margin: 28px 0 0; font-size: 12px; }
.brand-footer { color: #fff; }
.footer-col { display: flex; flex-direction: column; gap: 9px; }
.footer-col > span { margin-bottom: 12px; color: rgba(255,255,255,.4); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.footer-col a,.footer-col p { margin: 0; color: rgba(255,255,255,.72); font-size: 11px; line-height: 1.5; }
.footer-col a:hover { color: var(--green); }
.footer-col a svg { margin-left: 5px; }
.footer-ribbon { background: var(--green); color: var(--ink); transform: rotate(1.2deg) scale(1.02); }
.ribbon-track { width: max-content; min-width: 100%; padding: 17px 0; display: flex; align-items: center; gap: 28px; animation: footerFlow 26s linear infinite; }
.ribbon-track span { font-size: clamp(38px,4.8vw,82px); line-height: 1; font-weight: 900; letter-spacing: -.06em; }
.ribbon-track i { font-style: normal; }
@keyframes footerFlow { to { transform: translateX(-38%); } }
.footer-bottom { padding-top: 34px; display: flex; justify-content: space-between; gap: 25px; color: rgba(255,255,255,.43); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.footer-bottom > div { display: flex; gap: 22px; flex-wrap: wrap; }

/* Services hub */
.hub-counter,.about-card,.blog-stamp,.local-hub-card { min-height: 390px; padding: 28px; background: var(--green); display: flex; flex-direction: column; --cut-local: 34px; }
.hub-counter > span,.about-card > span,.blog-stamp > span,.local-hub-card > span { font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.hub-counter strong,.about-card strong,.blog-stamp strong,.local-hub-card strong { margin: auto 0; font-size: clamp(105px,10vw,170px); line-height: .72; letter-spacing: -.1em; }
.hub-counter small,.about-card small,.blog-stamp small,.local-hub-card small { padding-top: 17px; border-top: 1px solid rgba(17,17,15,.3); font-size: 10px; }
.services-directory { display: grid; grid-template-columns: repeat(12,1fr); gap: 16px; }
.directory-service { grid-column: span 6; min-height: 520px; padding: 30px; background: var(--cream); display: flex; flex-direction: column; --cut-local: 30px; transition: transform .3s var(--ease); }
.directory-service:nth-child(3n) { grid-column: span 5; }
.directory-service:nth-child(3n+1):not(:first-child) { grid-column: span 7; }
.directory-service.is-green { background: var(--green); }
.directory-service.is-dark { background: var(--ink); color: #fff; }
.directory-service.is-dark p,.directory-service.is-dark .directory-top small { color: var(--muted-dark); }
.directory-top { display: flex; justify-content: space-between; gap: 18px; font-size: 10px; }
.directory-top small { color: var(--muted); text-transform: uppercase; letter-spacing: .07em; }
.directory-service h2 { margin: auto 0 25px; max-width: 8ch; font-size: clamp(44px,5vw,85px); }
.directory-service p { max-width: 680px; margin-bottom: 36px; }
.directory-bottom { padding-top: 18px; display: flex; justify-content: space-between; align-items: end; gap: 20px; border-top: 1px solid currentColor; }
.directory-bottom > div { display: flex; flex-wrap: wrap; gap: 6px; }
.directory-bottom > div span { padding: 5px 7px; border: 1px solid currentColor; font-size: 8px; text-transform: uppercase; opacity: .65; }
.directory-bottom i { width: 46px; aspect-ratio: 1; border-radius: 50%; border: 1px solid currentColor; display: grid; place-items: center; font-style: normal; }
.directory-service:hover { transform: translateY(-7px); }
.combine-grid { display: grid; grid-template-columns: .62fr 1.38fr; gap: clamp(60px,9vw,150px); }
.combine-grid h2 { margin-top: 28px; max-width: 10ch; }
.combine-cases { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); }
.combine-cases article { min-height: 260px; padding: 28px 26px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.combine-cases article:nth-child(2n) { border-right: 0; }
.combine-cases span { font-size: 9px; color: var(--muted); }
.combine-cases h3 { margin: 54px 0 18px; font-size: 29px; }
.combine-cases p { margin: 0; font-size: 13px; }
.process-head h2 { margin-top: 30px; max-width: 13ch; }
.principle-grid { margin-top: 90px; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.principle-grid article { min-height: 300px; padding: 24px; border-right: 1px solid var(--line-dark); display: flex; flex-direction: column; }
.principle-grid article:last-child { border-right: 0; }
.principle-grid span { font-size: 9px; color: var(--green); }
.principle-grid strong { margin: auto 0 15px; font-size: 31px; letter-spacing: -.04em; }
.principle-grid p { margin: 0; font-size: 12px; }

/* Service detail */
.service-hero .page-hero-grid { align-items: stretch; }
.hero-lead-row { margin-top: 55px; display: grid; grid-template-columns: minmax(0,700px) auto; gap: 40px; align-items: end; }
.hero-lead-row p { margin: 0; font-size: 17px; }
.service-ticket { min-height: 620px; padding: 28px; background: var(--green); display: flex; flex-direction: column; --cut-local: 42px; transform: perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition: transform .18s ease-out; }
.ticket-top { display: flex; justify-content: space-between; gap: 18px; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; }
.ticket-word { margin: auto 0; font-size: clamp(64px,6.5vw,120px); line-height: .78; font-weight: 900; letter-spacing: -.08em; overflow-wrap: anywhere; }
.ticket-tags { padding-top: 19px; border-top: 1px solid rgba(17,17,15,.3); display: flex; flex-wrap: wrap; gap: 7px; }
.ticket-tags span { padding: 6px 8px; border: 1px solid rgba(17,17,15,.55); font-size: 8px; text-transform: uppercase; }
.split-head { display: grid; grid-template-columns: 1fr minmax(300px,.48fr); gap: clamp(50px,8vw,135px); align-items: end; }
.split-head h2 { margin-top: 30px; max-width: 11ch; }
.split-head > p,.split-head > div:last-child { margin-bottom: 0; max-width: 600px; }
.pillar-grid { margin-top: clamp(65px,8vw,120px); display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.pillar-card { min-height: 430px; padding: 25px; background: var(--cream); display: flex; flex-direction: column; --cut-local: 24px; }
.pillar-card.is-green { background: var(--green); }
.pillar-card.is-dark { background: var(--ink); color: #fff; }
.pillar-card.is-dark p { color: var(--muted-dark); }
.pillar-card > span { font-size: 9px; color: var(--muted); }
.pillar-card h3 { margin: auto 0 20px; font-size: clamp(31px,3vw,50px); }
.pillar-card p { margin: 0 0 30px; font-size: 13px; }
.pillar-card i { width: 42px; aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font-style: normal; }
.deliverables-grid { display: grid; grid-template-columns: minmax(320px,.55fr) 1fr; gap: clamp(55px,8vw,135px); }
.sticky-copy { position: sticky; top: calc(var(--header-h) + 42px); align-self: start; }
.sticky-copy h2 { margin-top: 28px; max-width: 10ch; }
.sticky-copy p { margin: 28px 0 0; max-width: 390px; }
.deliverable-list { border-top: 1px solid var(--line); }
.deliverable-row { min-height: 88px; display: grid; grid-template-columns: 46px 1fr 34px; gap: 16px; align-items: center; border-bottom: 1px solid var(--line); }
.deliverable-row span { font-size: 9px; color: var(--muted); }
.deliverable-row strong { font-size: clamp(20px,1.8vw,29px); letter-spacing: -.035em; }
.deliverable-row i { width: 28px; height: 28px; border-radius: 50%; background: var(--green); display: grid; place-items: center; font-style: normal; }
.process-grid { margin-top: 85px; display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.process-step { min-height: 330px; padding: 24px; border-right: 1px solid var(--line-dark); display: flex; flex-direction: column; }
.process-step:last-child { border-right: 0; }
.process-step span { color: var(--green); font-size: 9px; }
.process-step h3 { margin: auto 0 20px; font-size: 30px; }
.process-step p { margin: 0; font-size: 12px; }
.pricing-head { display: grid; grid-template-columns: 1fr minmax(300px,.48fr); gap: 70px; align-items: end; }
.pricing-head h2 { margin-top: 28px; max-width: 10ch; }
.pricing-head > p { margin: 0; max-width: 580px; }
.pricing-grid { margin-top: 80px; display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.price-card { min-height: 430px; padding: 26px; background: var(--cream); display: flex; flex-direction: column; --cut-local: 25px; }
.price-card.price-green { background: var(--green); }
.price-card > span { font-size: 9px; color: var(--muted); }
.price-card h3 { margin: 55px 0 12px; font-size: 31px; }
.price-card > strong { font-size: clamp(34px,3.3vw,56px); letter-spacing: -.06em; }
.price-card p { margin: 20px 0 auto; }
.price-card a { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 16px; align-items: center; font-size: 10px; font-weight: 800; }
.two-projects { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; }
.next-service,.local-cta,.article-cta,.testimonial-cta { padding: clamp(100px,11vw,190px) 0; }
.next-service-inner,.local-cta-inner,.article-cta-inner,.testimonial-cta-inner { display: flex; flex-direction: column; align-items: flex-start; }
.next-service-inner > span,.local-cta-inner > span,.article-cta-inner > span,.testimonial-cta-inner > span { margin-bottom: 28px; color: var(--muted-dark); font-size: 11px; }
.next-service-inner h2,.local-cta-inner h2,.article-cta-inner h2,.testimonial-cta-inner h2 { max-width: 12ch; }
.next-service-inner .button,.local-cta-inner .button,.article-cta-inner .button,.testimonial-cta-inner .button { margin-top: 46px; }

/* Work page */
.work-hero-bottom { margin-top: 54px; display: grid; grid-template-columns: minmax(0,690px) auto; gap: 60px; align-items: end; }
.work-hero-bottom p { margin: 0; font-size: 17px; }
.filter-note { padding-left: 24px; border-left: 1px solid var(--line); display: grid; gap: 4px; }
.filter-note span { font-size: 28px; font-weight: 800; letter-spacing: -.04em; }
.filter-note small { color: var(--muted); }
.work-filters { margin-bottom: 70px; display: flex; flex-wrap: wrap; gap: 8px; }
.filter-chip { min-height: 42px; padding: 9px 16px; border: 1px solid var(--line); border-radius: 999px; background: transparent; font-size: 10px; font-weight: 800; cursor: pointer; }
.filter-chip.is-active,.filter-chip:hover { background: var(--ink); color: #fff; }
.portfolio-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 80px 22px; align-items: start; }
.portfolio-item { grid-column: span 6; }
.portfolio-item-1 { grid-column: 1 / span 7; }
.portfolio-item-2 { grid-column: 9 / span 4; padding-top: 100px; }
.portfolio-item-3 { grid-column: 2 / span 5; }
.portfolio-item-4 { grid-column: 7 / span 6; padding-top: 60px; }
.portfolio-item[hidden] { display: none; }
.project-summary { margin: 18px 0 0; max-width: 560px; font-size: 13px; }
.no-results { padding: 50px; text-align: center; border: 1px solid var(--line); }
.project-philosophy .split-head > div:last-child .button { margin-top: 24px; }

/* About */
.about-card p { margin: 16px 0 0; font-size: 10px; color: rgba(17,17,15,.65); text-transform: uppercase; letter-spacing: .08em; }
.story-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(55px,8vw,135px); }
.story-grid h2 { margin-top: 30px; max-width: 11ch; }
.story-copy p { font-size: clamp(18px,1.6vw,26px); line-height: 1.55; }
.value-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.value-card { min-height: 420px; padding: 25px; background: var(--paper); display: flex; flex-direction: column; --cut-local: 24px; }
.value-card.is-green { background: var(--green); }
.value-card.is-dark { background: var(--ink); color: #fff; }
.value-card.is-dark p { color: var(--muted-dark); }
.value-card > span { font-size: 9px; color: var(--muted); }
.value-card h3 { margin: auto 0 20px; font-size: 48px; }
.value-card p { margin: 0; }
.about-manifesto p { margin: 50px 0 0; font-size: clamp(50px,7vw,120px); line-height: .88; letter-spacing: -.065em; color: #fff; }
.about-manifesto p strong { color: var(--green); }
.skill-marquee { margin-top: 80px; display: flex; flex-wrap: wrap; gap: 10px; }
.skill-marquee span { padding: 16px 20px; border: 1px solid var(--line); border-radius: 999px; font-size: clamp(15px,1.4vw,22px); font-weight: 700; }
.about-next-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.next-card { min-height: 420px; padding: 28px; background: var(--paper); display: flex; flex-direction: column; --cut-local: 28px; }
.next-card.is-green { background: var(--green); }
.next-card > span { font-size: 9px; }
.next-card h3 { margin: auto 0 18px; font-size: clamp(38px,4vw,72px); }
.next-card p { max-width: 460px; }
.next-card i { margin-top: 20px; width: 46px; aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font-style: normal; }

/* Process page */
.process-hero-lead { margin-top: 50px; display: grid; grid-template-columns: minmax(0,700px) auto; gap: 55px; align-items: end; }
.process-hero-lead p { margin: 0; font-size: 18px; }
.process-hero-lead > span { padding-left: 24px; border-left: 1px solid var(--line); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.timeline-list { border-top: 1px solid var(--line); }
.timeline-step { min-height: 330px; display: grid; grid-template-columns: 90px 1fr minmax(260px,.45fr); gap: 35px; align-items: center; border-bottom: 1px solid var(--line); }
.timeline-step.is-green { margin-inline: -24px; padding-inline: 24px; background: var(--green); }
.timeline-number { font-size: 12px; color: var(--muted); }
.timeline-copy > span { font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .09em; }
.timeline-copy h2 { margin: 18px 0 20px; font-size: clamp(50px,5.5vw,92px); }
.timeline-copy p { max-width: 720px; margin: 0; }
.timeline-deliver { padding-left: 24px; border-left: 1px solid var(--line); display: grid; gap: 12px; }
.timeline-deliver small { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.timeline-deliver strong { font-size: 14px; line-height: 1.5; }
.rule-grid { margin-top: 85px; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.rule-grid article { min-height: 340px; padding: 24px; border-right: 1px solid var(--line-dark); display: flex; flex-direction: column; }
.rule-grid article:last-child { border-right: 0; }
.rule-grid span { color: var(--green); font-size: 9px; }
.rule-grid h3 { margin: auto 0 18px; font-size: 31px; }
.rule-grid p { margin: 0; font-size: 12px; }

/* Testimonials page */
.testimonials-wall { display: grid; grid-template-columns: repeat(12,1fr); gap: 18px; align-items: start; }
.testimonial-full { grid-column: span 6; min-height: 570px; padding: clamp(28px,4vw,58px); background: var(--cream); display: flex; flex-direction: column; --cut-local: 30px; }
.testimonial-full:nth-child(2) { margin-top: 100px; }
.testimonial-full:nth-child(3) { grid-column: 2 / span 5; }
.testimonial-full:nth-child(4) { grid-column: 7 / span 6; margin-top: 60px; }
.testimonial-full.is-green { background: var(--green); }
.testimonial-full.is-dark { background: var(--ink); color: #fff; }
.testimonial-full.is-dark footer { border-color: var(--line-dark); }
.testimonial-full.is-dark footer span { color: var(--muted-dark); }
.testimonial-top { display: flex; justify-content: space-between; font-size: 9px; }
.testimonial-full blockquote { margin: auto 0; font-size: clamp(34px,4vw,68px); line-height: .98; letter-spacing: -.055em; }
.testimonial-full footer { padding-top: 18px; display: flex; justify-content: space-between; gap: 15px; border-top: 1px solid var(--line); font-size: 11px; }
.testimonial-full footer span { color: var(--muted); }
.trust-grid { margin-top: 80px; display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.trust-grid article { min-height: 300px; padding: 24px; border-top: 1px solid var(--line); }
.trust-grid span { font-size: 9px; color: var(--muted); }
.trust-grid h3 { margin: 80px 0 18px; }

/* FAQ page */
.faq-page-layout { display: grid; grid-template-columns: 280px 1fr; gap: clamp(55px,8vw,135px); }
.faq-category-nav { position: sticky; top: calc(var(--header-h) + 40px); align-self: start; display: flex; flex-direction: column; }
.faq-category-nav > span { margin-bottom: 20px; font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.faq-category-nav a { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 12px; font-weight: 700; }
.faq-category-nav .faq-contact-link { margin-top: 24px; border: 0; color: #0a6b1f; }
.faq-groups { display: grid; gap: 90px; }
.faq-group > .kicker { margin-bottom: 30px; }

/* Blog */
.featured-article { min-height: 620px; display: grid; grid-template-columns: 1.15fr .85fr; background: var(--cream); --cut-local: 34px; }
.featured-article-copy { padding: clamp(32px,5vw,75px); display: flex; flex-direction: column; align-items: flex-start; }
.featured-article-copy > div { display: flex; gap: 18px; flex-wrap: wrap; font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.featured-article-copy h2 { margin: auto 0 30px; max-width: 11ch; font-size: clamp(46px,5.4vw,92px); }
.featured-article-copy p { max-width: 700px; }
.featured-article-copy .button { margin-top: 25px; }
.featured-article-art { background: var(--green); padding: 28px; display: flex; flex-direction: column; }
.featured-article-art span { font-size: 12px; font-weight: 900; }
.featured-article-art strong { margin: auto 0; font-size: clamp(75px,8vw,135px); line-height: .75; letter-spacing: -.08em; writing-mode: vertical-rl; transform: rotate(180deg); align-self: center; }
.featured-article-art small { padding-top: 18px; border-top: 1px solid rgba(17,17,15,.3); }
.blog-list-head h2 { margin-top: 28px; max-width: 11ch; }
.blog-list { margin-top: 75px; border-top: 1px solid var(--line); }
.blog-row { min-height: 210px; padding: 26px 0; display: grid; grid-template-columns: 46px 1fr auto 42px; gap: 28px; align-items: center; border-bottom: 1px solid var(--line); }
.blog-row > span { font-size: 9px; color: var(--muted); }
.blog-row small { color: var(--muted); text-transform: uppercase; font-size: 9px; letter-spacing: .07em; }
.blog-row h3 { margin: 10px 0 12px; font-size: clamp(28px,2.8vw,48px); max-width: 18ch; }
.blog-row p { margin: 0; max-width: 740px; font-size: 12px; }
.blog-row > em { font-style: normal; color: var(--muted); font-size: 10px; }
.blog-row > i { width: 40px; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; font-style: normal; }
.topic-grid { margin-top: 80px; display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line-dark); }
.topic-grid a { min-height: 135px; padding: 25px; display: flex; justify-content: space-between; align-items: center; gap: 20px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); font-size: clamp(24px,2.6vw,43px); letter-spacing: -.04em; }
.topic-grid a:nth-child(2n) { border-right: 0; }
.topic-grid i { color: var(--green); font-style: normal; }

/* Article page */
.article-hero { min-height: 84vh; display: flex; align-items: flex-end; }
.article-hero-grid { display: grid; grid-template-columns: 1fr 300px; gap: clamp(55px,8vw,130px); align-items: end; }
.article-meta { margin-bottom: 32px; display: flex; flex-wrap: wrap; gap: 18px; font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.article-hero h1 { max-width: 13ch; font-size: clamp(56px,7vw,122px); }
.article-hero p { margin: 40px 0 0; max-width: 760px; font-size: 18px; }
.article-index { min-height: 320px; padding: 24px; background: var(--green); display: flex; flex-direction: column; --cut-local: 28px; }
.article-index > span { font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.article-index strong { margin: auto 0; font-size: 120px; line-height: .7; letter-spacing: -.1em; }
.article-index small { padding-top: 16px; border-top: 1px solid rgba(17,17,15,.3); }
.article-layout { display: grid; grid-template-columns: 280px minmax(0,850px); justify-content: center; gap: clamp(60px,9vw,150px); }
.article-aside { position: sticky; top: calc(var(--header-h) + 40px); align-self: start; display: flex; flex-direction: column; }
.article-aside > span { margin-bottom: 20px; font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.article-aside a { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 11px; }
.article-content > section { padding-bottom: 85px; margin-bottom: 85px; border-bottom: 1px solid var(--line); }
.article-content > section > span { font-size: 9px; color: var(--muted); }
.article-content h2 { margin: 24px 0 32px; font-size: clamp(38px,4.2vw,70px); line-height: .95; }
.article-content p { font-size: clamp(17px,1.5vw,22px); line-height: 1.72; }
.article-note { padding: 34px; background: var(--green); --cut-local: 24px; }
.article-note strong { display: block; margin-bottom: 18px; font-size: 28px; }
.article-note p { margin: 0; color: rgba(17,17,15,.72); }

/* Local hub */
.local-hub-card div { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(17,17,15,.3); font-size: 10px; }
.local-hub-card div i { display: inline-block; width: 7px; aspect-ratio: 1; margin-right: 7px; border-radius: 50%; background: var(--ink); }
.location-directory { display: grid; grid-template-columns: repeat(12,1fr); gap: 16px; }
.location-card { grid-column: span 4; min-height: 440px; padding: 26px; background: var(--cream); display: flex; flex-direction: column; --cut-local: 25px; }
.location-card:nth-child(4),.location-card:nth-child(5) { grid-column: span 6; }
.location-card.is-green { background: var(--green); }
.location-card > div { display: flex; justify-content: space-between; gap: 16px; font-size: 9px; }
.location-card h2 { margin: auto 0 18px; font-size: clamp(44px,4.8vw,82px); }
.location-card p { margin: 0 0 28px; font-size: 13px; }
.location-card footer { padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 16px; font-size: 9px; }
.location-card footer i { font-style: normal; }
.architecture-map { margin-top: 90px; display: grid; justify-items: center; }
.arch-node { min-width: 210px; padding: 24px; border: 1px solid var(--line); background: var(--paper); text-align: center; font-weight: 900; letter-spacing: -.03em; }
.arch-node small { display: block; margin-top: 6px; color: var(--muted); font-size: 9px; font-weight: 500; text-transform: uppercase; letter-spacing: .08em; }
.arch-home { background: var(--ink); color: #fff; }
.arch-line { width: 1px; height: 60px; background: var(--line); }
.arch-group { width: 100%; display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; position: relative; }
.arch-group::before { content: ""; position: absolute; top: -30px; left: 12.5%; right: 12.5%; height: 1px; background: var(--line); }
.arch-group .arch-node { position: relative; }
.arch-group .arch-node::before { content: ""; position: absolute; left: 50%; top: -31px; width: 1px; height: 30px; background: var(--line); }
.arch-group .is-green { background: var(--green); }
.national-grid { display: grid; grid-template-columns: 1fr minmax(320px,.5fr); gap: clamp(60px,9vw,150px); align-items: end; }
.national-grid h2 { margin-top: 30px; max-width: 11ch; }
.national-grid .button { margin-top: 25px; }

/* Local pages */
.local-hero-grid { display: grid; grid-template-columns: 1fr minmax(340px,.52fr); gap: clamp(55px,8vw,135px); align-items: end; width: 100%; }
.hero-actions { margin-top: 34px; display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.local-poster { min-height: 560px; padding: 28px; background: var(--green); display: flex; flex-direction: column; --cut-local: 40px; transform: perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition: transform .18s ease-out; }
.local-poster > span { font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.local-poster > strong { margin: auto 0; font-size: clamp(62px,6.5vw,112px); line-height: .78; letter-spacing: -.08em; overflow-wrap: anywhere; }
.local-poster > small { font-size: 13px; }
.local-poster > div { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(17,17,15,.3); display: flex; gap: 10px; align-items: center; }
.local-poster > div i { width: 8px; aspect-ratio: 1; border-radius: 50%; background: var(--ink); }
.local-poster > div em { font-style: normal; font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.local-context-grid { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(55px,8vw,140px); }
.local-context-grid h2 { margin-top: 28px; max-width: 10ch; }
.prose-large p { font-size: clamp(19px,1.75vw,28px); line-height: 1.55; }
.compact-service-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.compact-service { min-height: 390px; padding: 24px; background: var(--paper); display: flex; flex-direction: column; --cut-local: 22px; }
.compact-service:nth-child(2),.compact-service:nth-child(5) { background: var(--green); }
.compact-service > span { font-size: 9px; color: var(--muted); }
.compact-service h3 { margin: auto 0 20px; font-size: clamp(28px,2.7vw,46px); }
.compact-service p { margin: 0 0 30px; font-size: 12px; }
.compact-service i { width: 42px; aspect-ratio: 1; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font-style: normal; }
.local-sectors-grid { display: grid; grid-template-columns: minmax(320px,.55fr) 1fr; gap: clamp(55px,8vw,140px); }
.sector-list { border-top: 1px solid var(--line-dark); }
.sector-row { min-height: 96px; display: grid; grid-template-columns: 45px 1fr 34px; gap: 16px; align-items: center; border-bottom: 1px solid var(--line-dark); }
.sector-row span { color: var(--green); font-size: 9px; }
.sector-row strong { font-size: clamp(20px,2vw,31px); }
.sector-row i { color: var(--green); font-style: normal; }
.keyword-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(55px,8vw,130px); align-items: end; }
.keyword-grid h2 { margin-top: 28px; max-width: 11ch; }
.keyword-cloud { display: flex; flex-wrap: wrap; gap: 10px; align-content: flex-end; }
.keyword-cloud span { padding: 14px 18px; border: 1px solid var(--line); border-radius: 999px; background: var(--cream); font-size: 13px; }
.nearby-block { margin-top: 80px; padding: 28px; background: var(--green); display: grid; grid-template-columns: 230px 1fr; gap: 34px; --cut-local: 26px; }
.nearby-block > span { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.nearby-block > div { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.nearby-block strong { font-size: clamp(22px,2vw,32px); letter-spacing: -.04em; }

/* Contact */
.contact-hero { min-height: 72vh; display: flex; align-items: flex-end; }
.contact-head h1 { margin-top: 30px; max-width: 12ch; }
.contact-head p { margin: 45px 0 0; max-width: 760px; font-size: 18px; }
.contact-grid { display: grid; grid-template-columns: minmax(280px,.48fr) 1fr; gap: clamp(60px,8vw,140px); }
.contact-aside { display: flex; flex-direction: column; gap: 54px; }
.contact-aside > div:not(.availability) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.contact-aside > div:not(.availability) .kicker { margin-bottom: 12px; }
.contact-aside a { font-size: clamp(18px,2vw,27px); letter-spacing: -.03em; }
.contact-aside p { margin: 0; }
.availability { margin-top: auto; min-height: 230px; padding: 24px; background: var(--green); display: flex; flex-direction: column; --cut-local: 22px; }
.availability > span { font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.availability > span i { display: inline-block; width: 7px; aspect-ratio: 1; margin-right: 7px; border-radius: 50%; background: var(--ink); }
.availability strong { margin: auto 0 10px; font-size: 58px; letter-spacing: -.06em; }
.availability small { padding-top: 14px; border-top: 1px solid rgba(17,17,15,.3); }
.form-success { margin-bottom: 28px; padding: 24px; display: grid; grid-template-columns: 44px 1fr; gap: 18px; background: var(--green); --cut-local: 18px; }
.form-success > span { width: 40px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; }
.form-success strong { font-size: 22px; }
.form-success p { margin: 7px 0 0; color: rgba(17,17,15,.72); }
.project-form { display: grid; gap: 28px; }
.field-row { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.project-form label { display: grid; gap: 10px; }
.project-form label > span { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }
.project-form input,.project-form select,.project-form textarea { width: 100%; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 15px 0; background: transparent; color: var(--ink); outline: none; }
.project-form textarea { min-height: 170px; resize: vertical; }
.project-form input:focus,.project-form select:focus,.project-form textarea:focus { border-color: var(--ink); box-shadow: 0 2px 0 var(--green); }
.consent { grid-template-columns: 20px 1fr; align-items: start; gap: 12px !important; }
.consent input { width: 18px; height: 18px; padding: 0; }
.consent span { font-size: 11px !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--muted); }
.field-error { color: #a11919; font-size: 10px; }
.field-error.standalone { margin-top: -18px; }
.hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-submit { justify-self: start; border: 0; }

/* Legal */
.legal-hero { min-height: 58vh; display: flex; align-items: flex-end; }
.legal-hero h1 { margin-top: 30px; max-width: 9ch; }
.legal-grid { display: grid; grid-template-columns: 240px minmax(0,850px); justify-content: center; gap: clamp(60px,9vw,150px); }
.legal-grid > aside { display: flex; flex-direction: column; gap: 8px; font-size: 10px; }
.legal-grid > aside span { color: var(--muted); }
.legal-prose { display: grid; gap: 70px; }
.legal-prose section { padding-bottom: 55px; border-bottom: 1px solid var(--line); }
.legal-prose h2 { margin-bottom: 24px; font-size: clamp(33px,3vw,50px); }
.legal-prose p { font-size: 16px; }
.legal-prose a { text-decoration: underline; }

/* Error */
.error-hero { min-height: 82vh; display: flex; align-items: center; }
.error-inner > span { display: block; color: var(--green); font-size: 12px; letter-spacing: .1em; }
.error-inner h1 { margin-top: 25px; max-width: 11ch; }
.error-inner p { margin: 35px 0; max-width: 620px; }
.error-inner > div { display: flex; gap: 12px; flex-wrap: wrap; }

/* Reveal & interactions */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .76s var(--ease), transform .76s var(--ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* Large laptop */
@media (max-width: 1400px) {
    :root { --shell: min(1280px, calc(100vw - 44px)); }
    .status { display: none; }
    .hero-main-grid { grid-template-columns: 1fr 390px; }
    .hero-poster { min-height: 540px; }
    .directory-service { min-height: 470px; }
    .pillar-card { min-height: 390px; }
    .page-hero-grid,.hub-hero-grid,.about-hero-grid,.blog-hero-grid,.local-hub-hero-grid,.local-hero-grid { grid-template-columns: 1fr 360px; }
}

/* Tablet landscape */
@media (max-width: 1120px) {
    :root { --shell: calc(100vw - 36px); --header-h: 76px; }
    .desktop-nav,.nav-project { display: none; }
    .menu-toggle { display: grid; place-items: center; }
    .nav-shell { grid-template-columns: 1fr auto; min-height: var(--header-h); }
    .mobile-menu { position: fixed; inset: var(--header-h) 0 0; z-index: 999; padding: 24px 18px 45px; background: var(--cream); overflow-y: auto; }
    .mobile-menu:not([hidden]) { display: block; }
    .mobile-menu-top { padding: 0 4px 22px; display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); font-size: 9px; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
    .mobile-menu > a,.mobile-nav-group > summary { min-height: 74px; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); font-size: clamp(27px,4vw,42px); font-weight: 750; letter-spacing: -.05em; cursor: pointer; }
    .mobile-menu > a > span,.mobile-nav-group > summary > span { font-size: 9px; color: var(--muted); letter-spacing: 0; }
    .mobile-nav-group summary { list-style: none; }
    .mobile-nav-group summary::-webkit-details-marker { display: none; }
    .mobile-nav-group summary i { font-style: normal; font-size: 16px; }
    .mobile-nav-group[open] summary i { transform: rotate(45deg); }
    .mobile-nav-group > div { padding: 8px 0 18px 44px; display: grid; }
    .mobile-nav-group > div a { padding: 11px 0; display: grid; grid-template-columns: 28px 1fr; gap: 8px; font-size: 15px; }
    .mobile-nav-group > div small { color: var(--muted); font-size: 8px; }
    .mobile-menu .mobile-project { margin-top: 26px; padding: 22px; background: var(--ink); color: #fff; border: 0; }

    .hero-main-grid,.home-intro-grid,.manifesto-grid,.local-home-grid,.page-hero-grid,.hub-hero-grid,.about-hero-grid,.blog-hero-grid,.local-hub-hero-grid,.local-hero-grid,.split-head,.pricing-head,.story-grid,.national-grid,.local-context-grid,.keyword-grid { grid-template-columns: 1fr; }
    .hero-poster,.service-ticket,.local-poster { min-height: 430px; }
    .hero-poster { margin-top: 10px; }
    .poster-main strong,.ticket-word,.local-poster > strong { font-size: clamp(66px,11vw,110px); }
    .hero-bottomline { grid-template-columns: 1fr auto; }
    .home-intro-grid { gap: 70px; }
    .stat-poster { max-width: 520px; min-height: 360px; }
    .intro-subgrid { grid-template-columns: 1fr; gap: 24px; }
    .section-title-row { grid-template-columns: 1fr; gap: 28px; }
    .section-side,.section-title-row > .text-link { justify-self: start; }
    .editorial-project-1,.editorial-project-2,.editorial-project-3,.editorial-project-4 { padding-top: 0; }
    .service-editorial-row { grid-template-columns: 40px 1fr 50px; }
    .service-editorial-row > p { grid-column: 2 / 3; }
    .service-editorial-row > i { grid-column: 3; grid-row: 1 / span 2; }
    .manifesto-aside { min-height: 420px; max-width: 620px; }
    .location-board { max-width: 690px; min-height: 580px; }
    .quote-3 { width: 80%; }
    .footer-grid { grid-template-columns: 1fr repeat(2,1fr); }
    .footer-brand-wrap { grid-column: 1 / -1; }

    .services-directory { display: grid; grid-template-columns: repeat(2,1fr); }
    .directory-service,.directory-service:nth-child(3n),.directory-service:nth-child(3n+1):not(:first-child) { grid-column: auto; }
    .combine-grid,.deliverables-grid,.local-sectors-grid,.contact-grid { grid-template-columns: 1fr; }
    .sticky-copy,.faq-heading,.faq-category-nav,.article-aside { position: static; }
    .pillar-grid { grid-template-columns: repeat(2,1fr); }
    .process-grid { grid-template-columns: repeat(3,1fr); }
    .process-step:nth-child(3) { border-right: 0; }
    .process-step:nth-child(-n+3) { border-bottom: 1px solid var(--line-dark); }
    .pricing-grid { grid-template-columns: repeat(3,1fr); }
    .value-grid { grid-template-columns: repeat(2,1fr); }
    .compact-service-grid { grid-template-columns: repeat(2,1fr); }
    .faq-grid { grid-template-columns: 1fr; }
    .faq-heading h2 { max-width: 11ch; }
    .principle-grid,.rule-grid { grid-template-columns: repeat(2,1fr); }
    .principle-grid article:nth-child(2),.rule-grid article:nth-child(2) { border-right: 0; }
    .principle-grid article:nth-child(-n+2),.rule-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
    .location-directory { grid-template-columns: repeat(2,1fr); }
    .location-card,.location-card:nth-child(4),.location-card:nth-child(5) { grid-column: auto; }
    .local-hub-card,.hub-counter,.about-card,.blog-stamp { max-width: 520px; min-height: 320px; }
    .article-hero-grid,.article-layout,.legal-grid { grid-template-columns: 1fr; }
    .article-index { max-width: 300px; min-height: 260px; }
    .article-aside { display: none; }
}

/* Tablet portrait */
@media (max-width: 820px) {
    :root { --shell: calc(100vw - 28px); --cut: 22px; }
    .section-pad { padding: 90px 0; }
    h1 { font-size: clamp(58px,12.2vw,94px); }
    h2 { font-size: clamp(48px,10.7vw,76px); }
    .home-hero { padding-bottom: 70px; }
    .hero-topline { grid-template-columns: 1fr auto; }
    .hero-topline span:last-child { display: none; }
    .hero-main-grid { padding-top: 52px; }
    .hero-bottomline { margin-top: 60px; }
    .hero-poster { min-height: 390px; }
    .slant-ribbon { min-height: 82px; }
    .slant-track { padding: 22px 0; }
    .slant-track span { font-size: 27px; }

    .editorial-project-grid,.portfolio-grid { display: grid; grid-template-columns: 1fr; gap: 55px; }
    .editorial-project-1,.editorial-project-2,.editorial-project-3,.editorial-project-4,.portfolio-item,.portfolio-item-1,.portfolio-item-2,.portfolio-item-3,.portfolio-item-4 { grid-column: auto; padding-top: 0; }
    .editorial-project-2 .project-media,.editorial-project-3 .project-media,.portfolio-item-2 .project-media,.portfolio-item-3 .project-media { aspect-ratio: 16/10; }
    .work-cta { grid-template-columns: 1fr 50px; }
    .work-cta > span { grid-column: 1 / -1; }
    .quote-collage,.two-projects,.about-next-grid,.article-card-grid,.featured-article,.topic-grid { grid-template-columns: 1fr; }
    .quote-2 { margin-top: 0; }
    .quote-3 { grid-column: auto; width: 100%; }
    .article-card { min-height: 360px; }
    .featured-article-art { min-height: 320px; }
    .featured-article-art strong { writing-mode: initial; transform: none; align-self: flex-start; }

    .services-directory,.location-directory { grid-template-columns: 1fr; }
    .directory-service { min-height: 430px; }
    .combine-cases,.pillar-grid,.pricing-grid,.value-grid,.compact-service-grid,.trust-grid { grid-template-columns: 1fr; }
    .combine-cases article { border-right: 0; }
    .process-grid { grid-template-columns: 1fr; }
    .process-step { min-height: 250px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
    .process-step:last-child { border-bottom: 0; }
    .principle-grid,.rule-grid { grid-template-columns: 1fr; }
    .principle-grid article,.rule-grid article { min-height: 240px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
    .principle-grid article:last-child,.rule-grid article:last-child { border-bottom: 0; }
    .timeline-step { grid-template-columns: 50px 1fr; padding: 40px 0; }
    .timeline-deliver { grid-column: 2; border-left: 0; padding-left: 0; }
    .timeline-step.is-green { margin-inline: -14px; padding-inline: 14px; }
    .testimonials-wall { grid-template-columns: 1fr; }
    .testimonial-full,.testimonial-full:nth-child(3),.testimonial-full:nth-child(4) { grid-column: auto; margin-top: 0; }
    .faq-page-layout { grid-template-columns: 1fr; }
    .faq-category-nav { display: flex; flex-direction: row; flex-wrap: wrap; gap: 7px; }
    .faq-category-nav > span { width: 100%; }
    .faq-category-nav a { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; }
    .faq-category-nav .faq-contact-link { margin-top: 0; }
    .blog-row { grid-template-columns: 36px 1fr 38px; }
    .blog-row > em { grid-column: 2; }
    .blog-row > i { grid-column: 3; grid-row: 1 / span 2; }
    .architecture-map { overflow-x: auto; padding-bottom: 12px; }
    .arch-group { min-width: 760px; }
    .nearby-block { grid-template-columns: 1fr; }
    .contact-grid { gap: 70px; }
    .contact-aside { display: grid; grid-template-columns: repeat(2,1fr); gap: 35px; }
    .availability { grid-column: 1 / -1; max-width: 460px; }
    .field-row { grid-template-columns: 1fr; }
    .footer-cta { grid-template-columns: 1fr; }
    .footer-grid { grid-template-columns: repeat(2,1fr); }
    .footer-brand-wrap { grid-column: 1 / -1; }
    .footer-bottom { flex-direction: column; }
}

/* Phones */
@media (max-width: 560px) {
    :root { --shell: calc(100vw - 22px); --header-h: 68px; --cut: 18px; }
    .section-pad { padding: 76px 0; }
    h1 { font-size: clamp(53px,15.2vw,78px); line-height: .86; }
    h2 { font-size: clamp(44px,13vw,64px); line-height: .9; }
    h3 { font-size: 29px; }
    .brand-mark { font-size: 25px; }
    .brand-copy { font-size: 8px; }
    .menu-toggle { width: 42px; }
    .mobile-menu { padding: 18px 11px 35px; }
    .mobile-menu > a,.mobile-nav-group > summary { min-height: 68px; font-size: 28px; }
    .home-hero { padding-top: 10px; }
    .hero-topline { padding: 13px 0; font-size: 8px; }
    .hero-main-grid { padding-top: 44px; }
    .hero-copy .kicker { max-width: 240px; line-height: 1.3; }
    .hero-bottomline { grid-template-columns: 1fr; gap: 28px; }
    .circle-cta { width: 72px; font-size: 22px; }
    .hero-poster { min-height: 325px; padding: 21px; --cut-local: 28px; }
    .poster-main strong { font-size: 61px; }
    .poster-main em { font-size: 17px; }
    .poster-bottom { font-size: 8px; }
    .slant-ribbon { min-height: 70px; clip-path: polygon(0 13%,100% 0,100% 87%,0 100%); }
    .slant-track { gap: 20px; padding: 18px 0; animation-duration: 24s; }
    .slant-track span { font-size: 22px; }
    .slant-track i { font-size: 10px; }
    .stat-poster { min-height: 300px; padding: 22px; }
    .stat-poster > span { font-size: 88px; }
    .intro-copy h2 { margin-top: 24px; }
    .section-title-row { margin-bottom: 50px; }
    .project-open { opacity: 1; width: 44px; transform: none; }
    .project-meta { padding-top: 13px; }
    .service-editorial-row { min-height: 145px; grid-template-columns: 30px 1fr 42px; gap: 14px; }
    .service-editorial-row h3 { font-size: 29px; }
    .service-editorial-row > p { font-size: 11px; }
    .service-editorial-row > i { width: 40px; }
    .service-editorial-row:hover { padding-left: 8px; padding-right: 8px; }
    .manifesto-aside { min-height: 370px; padding: 22px; }
    .location-board { min-height: 500px; padding: 22px; }
    .location-board > a { grid-template-columns: 1fr 26px; }
    .location-board > a > span { display: none; }
    .quote-card,.testimonial-full { min-height: 430px; padding: 24px 21px; }
    .quote-card blockquote,.testimonial-full blockquote { font-size: 32px; }
    .faq-item summary { grid-template-columns: 28px 1fr 24px; min-height: 78px; gap: 10px; }
    .faq-item summary strong { font-size: 17px; }
    .faq-item > div { padding: 0 8px 25px 38px; }
    .prefooter-grid { grid-template-columns: 1fr; }
    .footer-cta { padding: 28px 22px; --cut-local: 26px; }
    .footer-grid { grid-template-columns: 1fr; padding: 62px 0 75px; gap: 38px; }
    .footer-brand-wrap { grid-column: auto; }
    .footer-bottom > div { flex-direction: column; gap: 8px; }

    .page-hero { min-height: auto; padding: 75px 0; }
    .back-link { margin-bottom: 38px; }
    .page-lead { margin-top: 30px; font-size: 16px; }
    .hub-counter,.about-card,.blog-stamp,.local-hub-card { min-height: 280px; padding: 22px; }
    .hub-counter strong,.about-card strong,.blog-stamp strong,.local-hub-card strong { font-size: 100px; }
    .service-ticket,.local-poster { min-height: 330px; padding: 22px; --cut-local: 28px; }
    .ticket-word,.local-poster > strong { font-size: 62px; }
    .hero-lead-row { grid-template-columns: 1fr; gap: 26px; }
    .directory-service,.pillar-card,.price-card,.value-card,.compact-service,.location-card { min-height: 350px; padding: 21px; }
    .directory-service h2 { font-size: 48px; }
    .pillar-card h3 { font-size: 34px; }
    .deliverable-row { grid-template-columns: 30px 1fr 27px; }
    .pricing-grid { margin-top: 55px; }
    .two-projects { grid-template-columns: 1fr; }
    .combine-cases article { min-height: 220px; padding: 22px 0; }
    .combine-cases h3 { margin-top: 45px; }
    .process-step { padding: 22px 0; }
    .work-hero-bottom { grid-template-columns: 1fr; gap: 28px; }
    .filter-note { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 18px; }
    .work-filters { margin-bottom: 50px; }
    .work-filters { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 7px; }
    .filter-chip { flex: 0 0 auto; }
    .story-copy p,.prose-large p { font-size: 17px; }
    .about-manifesto p { font-size: 47px; }
    .skill-marquee { margin-top: 55px; }
    .timeline-step { grid-template-columns: 30px 1fr; gap: 14px; }
    .timeline-copy h2 { font-size: 47px; }
    .trust-grid article { min-height: 230px; padding: 22px 0; }
    .blog-row { grid-template-columns: 28px 1fr; gap: 12px; }
    .blog-row > em { grid-column: 2; }
    .blog-row > i { grid-column: 2; grid-row: auto; margin-top: 8px; }
    .blog-row h3 { font-size: 28px; }
    .topic-grid a { min-height: 105px; font-size: 25px; }
    .article-hero { min-height: auto; }
    .article-hero h1 { font-size: 52px; }
    .article-index { min-height: 220px; max-width: 230px; }
    .article-index strong { font-size: 95px; }
    .article-content > section { padding-bottom: 60px; margin-bottom: 60px; }
    .article-content h2 { font-size: 39px; }
    .article-content p { font-size: 17px; }
    .arch-group { min-width: 670px; }
    .keyword-cloud span { font-size: 11px; padding: 11px 14px; }
    .nearby-block { padding: 22px; }
    .contact-aside { grid-template-columns: 1fr; }
    .availability { grid-column: auto; }
    .contact-head p { font-size: 16px; }
    .project-form { gap: 24px; }
    .legal-grid { gap: 45px; }
    .legal-prose { gap: 50px; }
}

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

/* Project detail */
.project-detail-hero { padding-top: clamp(90px,8vw,145px); }
.project-detail-head { display:grid; grid-template-columns:minmax(0,1fr) 390px; gap:clamp(50px,8vw,135px); align-items:end; }
.project-detail-head h1 { margin-top:32px; }
.project-detail-meta { min-height:390px; padding:28px; background:var(--green); display:flex; flex-direction:column; --cut-local:34px; }
.project-detail-meta > span { font-size:9px; font-weight:850; letter-spacing:.1em; }
.project-detail-meta > strong { margin:auto 0; font-size:clamp(90px,8vw,145px); line-height:.72; letter-spacing:-.1em; }
.project-detail-meta > div { padding-top:17px; border-top:1px solid rgba(17,17,15,.3); display:flex; flex-wrap:wrap; gap:6px; }
.project-detail-meta > div span { padding:7px 10px; border:1px solid rgba(17,17,15,.35); border-radius:999px; font-size:9px; }
.project-detail-lead { padding-top:clamp(70px,8vw,130px); display:grid; grid-template-columns:minmax(0,1.3fr) minmax(280px,.55fr); gap:clamp(45px,7vw,120px); align-items:end; }
.project-detail-lead h2 { max-width:12ch; font-size:clamp(45px,5.5vw,95px); }
.project-detail-lead p { margin:0; font-size:16px; }
.project-visual { overflow:hidden; aspect-ratio:1122/1402; max-width:1122px; --cut-local:42px; background:#d8d4ca; }
.project-visual img { height:100%; object-fit:cover; }
.project-story-grid { display:grid; grid-template-columns:minmax(300px,.62fr) 1fr; gap:clamp(60px,9vw,160px); }
.project-story-grid h2 { margin-top:28px; max-width:11ch; }
.project-story-copy .lead-copy { margin:0; font-size:clamp(21px,2vw,32px); line-height:1.45; color:var(--ink); letter-spacing:-.03em; }
.story-split { margin-top:80px; display:grid; grid-template-columns:repeat(2,1fr); gap:34px; }
.story-split article { padding-top:18px; border-top:1px solid var(--line); }
.story-split span { font-size:9px; font-weight:850; letter-spacing:.08em; }
.story-split p { margin:35px 0 0; }
.decision-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-dark); }
.decision-grid article { min-height:290px; padding:26px; border-right:1px solid var(--line-dark); display:flex; flex-direction:column; }
.decision-grid article:last-child { border-right:0; }
.decision-grid span { color:var(--green); font-size:10px; }
.decision-grid strong { margin-top:auto; max-width:10ch; font-size:clamp(24px,2.2vw,38px); line-height:1; letter-spacing:-.05em; }
.project-next-grid { display:grid; grid-template-columns:1fr auto; gap:45px; align-items:end; }
.project-next-grid h2 { margin-top:28px; max-width:12ch; }
.project-next-grid p { margin:30px 0 0; max-width:680px; }
@media (max-width:1120px) {
  .project-detail-head,.project-detail-lead,.project-story-grid { grid-template-columns:1fr; }
  .project-detail-meta { max-width:520px; min-height:320px; }
  .decision-grid { grid-template-columns:repeat(2,1fr); }
  .decision-grid article:nth-child(2) { border-right:0; }
  .decision-grid article:nth-child(-n+2) { border-bottom:1px solid var(--line-dark); }
}
@media (max-width:820px) {
  .story-split { grid-template-columns:1fr; margin-top:55px; }
  .decision-grid { grid-template-columns:1fr; }
  .decision-grid article { min-height:220px; border-right:0; border-bottom:1px solid var(--line-dark); }
  .decision-grid article:last-child { border-bottom:0; }
  .project-next-grid { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .project-detail-meta { min-height:270px; padding:22px; }
  .project-detail-lead { padding-top:60px; }
  .project-visual { aspect-ratio:1122/1402; --cut-local:24px; }
  .project-story-copy .lead-copy { font-size:20px; }
}

/* ========================================================================== 
   V4.1 — Visual direction + responsive refinement
   ========================================================================== */
:root {
    --shell-gutter: clamp(22px, 3.2vw, 64px);
    --section-space: clamp(92px, 9vw, 176px);
    --section-space-tight: clamp(68px, 6.5vw, 118px);
    --green-wash: rgba(101,243,121,.10);
}

html { overflow-x: clip; }
body { font-size: 16px; }
main, section, .shell, .hero-copy, .page-hero-copy, .section-side, .project-meta > div { min-width: 0; }
h1,h2,h3 { text-wrap: balance; }
p,blockquote { text-wrap: pretty; }
.section-pad { padding-block: var(--section-space); }
.section-paper { background: linear-gradient(180deg, #fffdf7 0%, #fbf8f0 100%); }

/* Header refinement */
.site-header { transition: background .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease); }
.site-header.is-scrolled { background: rgba(242,239,230,.97); border-color: rgba(17,17,15,.10); box-shadow: 0 10px 34px rgba(17,17,15,.045); }
.brand-mark { position: relative; }
.brand-mark::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; right:-10px; top:-3px; background:var(--green); }
.nav-project { position: relative; overflow: hidden; }
.nav-project::before { content:""; position:absolute; inset:0; background:var(--green); transform:translateX(-102%); transition:transform .3s var(--ease); }
.nav-project:hover::before { transform:none; }
.nav-project:hover { color:var(--ink); }
.nav-project > *,.nav-project { isolation:isolate; }

/* Hero: more editorial and more proof-driven */
.home-hero { padding-bottom: clamp(72px, 7vw, 112px); }
.hero-main-grid { grid-template-columns: minmax(0,1.5fr) minmax(350px,.52fr); gap: clamp(44px,6.4vw,118px); }
.hero-copy h1 { max-width: 9.2ch; }
.hero-bottomline { margin-top: clamp(54px,6vw,100px); }
.hero-poster { position: relative; overflow: hidden; isolation: isolate; min-height: clamp(520px,39vw,670px); box-shadow: 0 28px 70px rgba(17,17,15,.08); }
.hero-poster::before { content:"MD"; position:absolute; right:-.10em; top:50%; transform:translateY(-51%) rotate(-90deg); z-index:-1; font-size:clamp(160px,17vw,310px); line-height:.7; font-weight:950; letter-spacing:-.13em; color:rgba(17,17,15,.055); }
.hero-poster::after { content:""; position:absolute; width:52%; aspect-ratio:1; border:1px solid rgba(17,17,15,.20); border-radius:50%; right:-18%; top:11%; box-shadow:0 0 0 28px rgba(17,17,15,.035),0 0 0 56px rgba(17,17,15,.025); z-index:-1; }
.poster-main strong { max-width: 4.5ch; }
.hero-proofline { margin-top: clamp(42px,5vw,78px); padding-top: 20px; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.hero-proofline > span { display:grid; grid-template-columns:26px 1fr; gap:4px 10px; align-items:start; }
.hero-proofline b { grid-row:1 / span 2; color:var(--muted); font-size:9px; font-weight:850; letter-spacing:.08em; }
.hero-proofline strong { font-size:12px; letter-spacing:-.02em; }
.hero-proofline small { color:var(--muted); font-size:9px; line-height:1.45; }

/* Ribbon: truly edge-to-edge. Angled plane lives behind the track instead of clipping it. */
.edge-ribbon { width:100vw; width:100dvw; margin-left:calc(50% - 50vw); margin-left:calc(50% - 50dvw); overflow:hidden; }
.slant-ribbon { position:relative; min-height:112px; background:transparent; clip-path:none; display:flex; align-items:center; isolation:isolate; }
.slant-ribbon::before { content:""; position:absolute; z-index:-1; left:-5vw; right:-5vw; top:14px; bottom:14px; background:var(--green); transform:skewY(-1.35deg); transform-origin:center; }
.slant-track { position:relative; z-index:1; min-width:max(112%, 1500px); width:max-content; padding:27px 2.8vw; gap:clamp(26px,3.2vw,58px); animation:v41SlantFlow 25s linear infinite; }
@keyframes v41SlantFlow { from { transform:translate3d(0,0,0); } to { transform:translate3d(-13%,0,0); } }
.slant-home { margin-top:-8px; }

/* Intro: a stronger information rhythm */
.home-intro { padding-bottom: var(--section-space-tight); }
.home-intro-grid { align-items:stretch; }
.stat-poster { height:100%; }
.intro-copy { align-self:center; }
.studio-facts { margin-top:clamp(58px,7vw,100px); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.studio-facts > div { min-height:150px; padding:24px clamp(16px,2vw,32px); display:flex; flex-direction:column; border-right:1px solid var(--line); }
.studio-facts > div:last-child { border-right:0; }
.studio-facts span { color:var(--muted); font-size:9px; font-weight:850; }
.studio-facts strong { margin-top:auto; font-size:clamp(24px,2.2vw,38px); letter-spacing:-.055em; line-height:1; }
.studio-facts small { margin-top:10px; color:var(--muted); font-size:10px; line-height:1.45; }

/* Projects */
.featured-work { overflow:clip; }
.project-media { box-shadow:0 22px 60px rgba(17,17,15,.055); }
.project-card a { position:relative; }
.project-meta { align-items:flex-start; }
.project-meta h3 { transition:transform .28s var(--ease); }
.project-card:hover .project-meta h3 { transform:translateX(5px); }
.editorial-project-1 .project-media { aspect-ratio:16/9; }
.editorial-project-4 .project-media { aspect-ratio:3/2; }
.work-cta { margin-top:clamp(70px,8vw,120px); box-shadow:0 28px 70px rgba(17,17,15,.06); }

/* Services: more legible and less mechanically repetitive */
.service-editorial-row { position:relative; isolation:isolate; }
.service-editorial-row::before { content:""; position:absolute; left:0; top:50%; width:0; height:1px; background:var(--green); transition:width .28s var(--ease); }
.service-editorial-row:nth-child(3n+1) h3 { max-width:12ch; }
.service-editorial-row p { text-wrap:pretty; }
.service-editorial-row i { background:rgba(255,255,255,.25); }

/* Alternating angular language instead of one repeated cut */
.quote-card:nth-child(2), .article-card:nth-child(even), .compact-service:nth-child(3n+2), .directory-service:nth-child(even) {
    clip-path: polygon(var(--cut-local, var(--cut)) 0,100% 0,100% calc(100% - var(--cut-local, var(--cut))),calc(100% - var(--cut-local, var(--cut))) 100%,0 100%,0 var(--cut-local, var(--cut)));
}
.quote-card { box-shadow:0 20px 60px rgba(17,17,15,.045); }
.quote-3 { width:72%; }

/* Generic page polish */
.page-hero { min-height:max(640px,calc(86svh - var(--header-h))); }
.page-hero h1 { max-width:11.5ch; }
.page-lead { max-width:700px; }
.service-ticket,.local-poster,.hub-counter,.about-card,.blog-stamp,.local-hub-card { box-shadow:0 26px 70px rgba(17,17,15,.065); }
.directory-service,.pillar-card,.price-card,.value-card,.compact-service,.location-card,.article-card { transition:transform .28s var(--ease), box-shadow .28s var(--ease), background .28s var(--ease), color .28s var(--ease); }
.faq-item summary { scroll-margin-top:calc(var(--header-h) + 22px); }
.project-form input,.project-form select,.project-form textarea { font-size:16px; }

/* Footer ribbon also keeps its plane full-width */
.footer-ribbon { transform:none; background:transparent; min-height:112px; isolation:isolate; }
.footer-ribbon::before { content:""; position:absolute; inset:13px -5vw; background:var(--green); transform:skewY(1.15deg); z-index:-1; }
.ribbon-track { position:relative; z-index:1; padding:20px 2.8vw; }

/* Hover effects only where hover really exists */
@media (hover:hover) and (pointer:fine) {
    .service-editorial-row:hover::before { width:18px; }
    .directory-service:hover,.pillar-card:hover,.price-card:hover,.value-card:hover,.compact-service:hover,.location-card:hover,.article-card:hover { transform:translateY(-5px); box-shadow:0 26px 70px rgba(17,17,15,.08); }
}

/* 1120 — tablet / compact desktop: deliberate recomposition */
@media (max-width:1120px) {
    :root { --shell:calc(100vw - 40px); --section-space:clamp(86px,10vw,122px); }
    .mobile-menu { height:calc(100dvh - var(--header-h)); overscroll-behavior:contain; padding-bottom:max(44px,env(safe-area-inset-bottom)); }
    .hero-main-grid { gap:48px; }
    .hero-poster { width:min(620px,100%); min-height:390px; }
    .hero-proofline { max-width:780px; }
    .studio-facts { grid-template-columns:repeat(2,1fr); }
    .studio-facts > div:nth-child(2) { border-right:0; }
    .studio-facts > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
    .editorial-project-grid { row-gap:70px; }
    .quote-3 { width:86%; }
    .page-hero { min-height:auto; }
}

/* 820 — tablet portrait: keep personality, remove unnecessary height */
@media (max-width:820px) {
    :root { --shell:calc(100vw - 30px); --section-space:88px; }
    .hero-main-grid { padding-top:48px; }
    .hero-poster { min-height:340px; }
    .hero-proofline { grid-template-columns:1fr; gap:0; padding-top:0; border-top:0; }
    .hero-proofline > span { min-height:68px; padding:15px 0; border-top:1px solid var(--line); grid-template-columns:30px 1fr; }
    .studio-facts > div { min-height:132px; }
    .editorial-project-grid { gap:48px; }
    .editorial-project-2,.editorial-project-4 { width:90%; margin-left:auto; }
    .editorial-project-3 { width:92%; }
    .quote-card { min-height:390px; }
    .quote-3 { width:100%; }
    .service-editorial-row { min-height:132px; row-gap:12px; }
    .page-hero-grid,.hub-hero-grid,.about-hero-grid,.blog-hero-grid,.local-hub-hero-grid,.local-hero-grid { gap:46px; }
    .service-ticket,.local-poster,.hub-counter,.about-card,.blog-stamp,.local-hub-card { max-width:100%; }
    .footer-ribbon { min-height:88px; }
}

/* 560 — phones: this is a separate composition, not a stacked desktop */
@media (max-width:560px) {
    :root { --shell:calc(100vw - 24px); --section-space:74px; --section-space-tight:62px; }
    body { font-size:15px; }
    h1 { font-size:clamp(51px,15vw,72px); line-height:.88; letter-spacing:-.065em; }
    h2 { font-size:clamp(42px,12.5vw,59px); line-height:.92; letter-spacing:-.06em; }
    h3 { line-height:1; }
    .kicker { font-size:9px; letter-spacing:.095em; }
    .nav-shell { min-height:var(--header-h); }
    .mobile-menu { inset:var(--header-h) 0 0; padding-inline:12px; }
    .mobile-menu > a,.mobile-nav-group > summary { min-height:64px; font-size:26px; }
    .mobile-nav-group > div { padding-left:38px; }

    .home-hero { padding-bottom:56px; }
    .hero-main-grid { padding-top:38px; gap:42px; }
    .hero-copy h1 { margin-top:26px; max-width:9.3ch; }
    .hero-bottomline { margin-top:42px; }
    .hero-bottomline p { font-size:15px; }
    .hero-poster { min-height:270px; padding:20px; width:100%; }
    .hero-poster::before { font-size:150px; right:-.06em; }
    .hero-poster::after { width:46%; top:10%; }
    .poster-main strong { font-size:54px; }
    .poster-main em { margin-top:14px; font-size:16px; }
    .hero-proofline { margin-top:34px; }
    .hero-proofline > span { min-height:62px; }
    .hero-proofline small { font-size:8.5px; }
    .circle-cta { width:68px; }

    .slant-ribbon { min-height:78px; }
    .slant-ribbon::before { top:10px; bottom:10px; transform:skewY(-1.8deg); }
    .slant-track { min-width:1100px; padding:18px 16px; gap:20px; animation-duration:21s; }
    .slant-track span { font-size:22px; }

    .home-intro-grid { gap:44px; }
    .stat-poster { min-height:270px; }
    .studio-facts { grid-template-columns:1fr 1fr; margin-top:46px; }
    .studio-facts > div { min-height:118px; padding:18px 14px; }
    .studio-facts strong { font-size:23px; }
    .studio-facts small { font-size:8.5px; }

    .editorial-project-grid { gap:42px; }
    .editorial-project-2,.editorial-project-3,.editorial-project-4 { width:100%; margin-left:0; }
    .project-media,.editorial-project-1 .project-media,.editorial-project-4 .project-media { aspect-ratio:4/3; }
    .project-meta h3 { font-size:27px; }
    .work-cta { margin-top:58px; }

    .service-editorial-row { min-height:auto; padding:22px 0; grid-template-columns:28px minmax(0,1fr) 40px; gap:10px 12px; }
    .service-editorial-row > span { grid-column:1; grid-row:1; padding-top:5px; }
    .service-editorial-row > div { grid-column:2; grid-row:1; }
    .service-editorial-row > p { grid-column:2 / 4; grid-row:2; margin-top:2px; font-size:10.5px; line-height:1.5; }
    .service-editorial-row > i { grid-column:3; grid-row:1; width:38px; align-self:center; }
    .service-editorial-row h3 { font-size:27px; }
    .service-editorial-row:hover { padding-inline:0; background:transparent; color:inherit; }
    .service-editorial-row:hover p,.service-editorial-row:hover small,.service-editorial-row:hover > span { color:var(--muted); }
    .service-editorial-row:hover i { background:var(--green); color:var(--ink); }

    .manifesto-grid { gap:44px; }
    .manifesto-aside { min-height:330px; }
    .local-home-grid { gap:48px; }
    .location-board { min-height:430px; }
    .quote-card,.testimonial-full { min-height:355px; }
    .quote-card blockquote,.testimonial-full blockquote { font-size:29px; }
    .article-card { min-height:315px; }

    .page-hero { padding:64px 0 70px; }
    .page-hero h1 { margin-top:22px; }
    .page-lead { margin-top:26px; }
    .hero-actions { gap:12px; }
    .hero-actions .button { width:100%; }
    .service-ticket,.local-poster { min-height:285px; }
    .directory-service,.pillar-card,.price-card,.value-card,.compact-service,.location-card { min-height:315px; }
    .contact-grid { gap:52px; }
    .project-form input,.project-form select,.project-form textarea { min-height:48px; }
    .footer-cta { padding:24px 20px; }
    .footer-ribbon { min-height:80px; }
    .ribbon-track span { font-size:34px; }
}

/* very small phones */
@media (max-width:390px) {
    :root { --shell:calc(100vw - 20px); }
    h1 { font-size:clamp(48px,14.7vw,58px); }
    h2 { font-size:clamp(39px,12.2vw,49px); }
    .hero-topline { grid-template-columns:1fr; }
    .hero-topline span:nth-child(2) { display:none; }
    .hero-poster { min-height:250px; }
    .poster-main strong { font-size:49px; }
    .studio-facts { grid-template-columns:1fr; }
    .studio-facts > div { border-right:0; border-bottom:1px solid var(--line); }
    .studio-facts > div:last-child { border-bottom:0; }
    .service-editorial-row h3 { font-size:25px; }
    .quote-card blockquote,.testimonial-full blockquote { font-size:27px; }
    .location-board > a strong { font-size:27px; }
}

/* Short landscape devices */
@media (max-height:680px) and (min-width:700px) {
    .page-hero { min-height:auto; padding-block:70px; }
    .home-hero { padding-bottom:64px; }
    .hero-main-grid { padding-top:48px; }
    .hero-poster { min-height:360px; }
}

@media (prefers-reduced-motion:reduce) {
    .slant-track,.ribbon-track { transform:none !important; }
}

/* V4.1 navigation context */
.nav-main-link.is-current::after { right:14px; }
.nav-main-link.is-current { color:var(--ink); }

/* Layering fixes for decorative planes */
.hero-poster::before,.hero-poster::after { z-index:0; }
.hero-poster > * { position:relative; z-index:1; }
.slant-ribbon::before,.footer-ribbon::before { z-index:0; }
.slant-track,.ribbon-track { z-index:1; }

/* V4.1 page-family responsive corrections */
@media (max-width:820px) {
    .hero-lead-row,.process-hero-lead,.work-hero-bottom { grid-template-columns:1fr; gap:24px; }
    .process-hero-lead > span,.filter-note { padding-left:0; border-left:0; border-top:1px solid var(--line); padding-top:18px; }
    .architecture-map { overflow:visible; justify-items:stretch; }
    .arch-home { justify-self:center; }
    .arch-line { justify-self:center; height:36px; }
    .arch-group { min-width:0; width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .arch-group::before,.arch-group .arch-node::before { display:none; }
    .arch-node { min-width:0; }
    .directory-bottom { align-items:center; }
    .footer-col a { min-height:30px; display:flex; align-items:center; }
}

@media (max-width:560px) {
    .arch-group { grid-template-columns:1fr; }
    .arch-home { width:100%; }
    .architecture-map { margin-top:58px; }
    .arch-node { width:100%; padding:20px; }
    .process-hero-lead { margin-top:34px; }
    .process-hero-lead p,.work-hero-bottom p,.hero-lead-row p { font-size:16px; }
    .filter-note span { font-size:24px; }
    .deliverable-row { min-height:76px; grid-template-columns:28px minmax(0,1fr) 30px; gap:10px; }
    .deliverable-row strong { font-size:19px; }
    .footer-col a,.footer-col p { font-size:12px; }
    .footer-col a { min-height:36px; }
    .next-service,.local-cta,.article-cta,.testimonial-cta { padding:78px 0; }
    .next-service-inner .button,.local-cta-inner .button,.article-cta-inner .button,.testimonial-cta-inner .button { width:100%; margin-top:34px; }
}

@keyframes v41MenuIn { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
@media (max-width:1120px) and (prefers-reduced-motion:no-preference) {
    .mobile-menu:not([hidden]) { animation:v41MenuIn .24s var(--ease) both; }
}

/* ========================================================================== 
   V4.2 — Header, booking, footer mobile, Process signature
   ========================================================================== */

/* Header booking CTA */
.nav-contact-link { font-size:10px; font-weight:760; color:var(--muted); white-space:nowrap; }
.nav-contact-link:hover { color:var(--ink); }
.nav-book { min-height:44px; display:inline-flex; align-items:center; gap:10px; padding:10px 16px 10px 12px; border:1px solid rgba(17,17,15,.13); border-radius:999px; background:var(--green); color:var(--ink); font-size:10px; font-weight:850; cursor:pointer; box-shadow:0 10px 26px rgba(101,243,121,.18); transition:transform .24s var(--ease),box-shadow .24s var(--ease),background .24s var(--ease); white-space:nowrap; }
.nav-book-icon { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:#fff; }
.nav-book-icon svg { width:13px; height:13px; }
.nav-book:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(101,243,121,.26); background:#75f887; }

/* Booking buttons — visual signature */
.booking-primary { width:min(100%,360px); min-height:74px; padding:10px 12px; display:grid; grid-template-columns:44px minmax(0,1fr) 30px; gap:12px; align-items:center; border:1px solid rgba(17,17,15,.16); background:var(--green); color:var(--ink); text-align:left; cursor:pointer; clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px)); transition:transform .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease); }
.booking-primary:hover { transform:translateY(-3px); background:#7af78b; box-shadow:0 18px 46px rgba(101,243,121,.18); }
.booking-primary-icon { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:#fff; }
.booking-primary-icon svg { width:17px; height:17px; }
.booking-primary > span:nth-child(2) { display:grid; gap:4px; }
.booking-primary strong { font-size:12px; letter-spacing:-.01em; }
.booking-primary small { font-size:9px; color:rgba(17,17,15,.58); font-weight:700; }
.booking-primary > i { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; font-style:normal; border:1px solid rgba(17,17,15,.18); }
.booking-primary-light { background:#fff; }
.booking-primary-light:hover { background:var(--green); }

/* Mobile menu action block */
.mobile-menu-actions { margin-top:auto; padding:18px 0 max(10px,env(safe-area-inset-bottom)); display:grid; gap:10px; border-top:1px solid var(--line); }
.mobile-book { width:100%; min-height:72px; display:grid; grid-template-columns:40px 1fr; grid-template-rows:auto auto; gap:2px 12px; align-items:center; padding:12px; border:0; background:var(--green); color:var(--ink); text-align:left; cursor:pointer; clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px)); }
.mobile-book > span { grid-row:1 / span 2; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:#fff; }
.mobile-book strong { font-size:15px; line-height:1.1; }
.mobile-book small { font-size:9px; color:rgba(17,17,15,.58); }
.mobile-project { margin:0 !important; min-height:54px !important; padding:0 !important; border:0 !important; display:flex !important; align-items:center !important; justify-content:space-between !important; font-size:13px !important; }

/* Booking modal */
.booking-modal[hidden] { display:none; }
.booking-modal { position:fixed; inset:0; z-index:3000; display:grid; place-items:center; padding:24px; }
.booking-modal-backdrop { position:absolute; inset:0; background:rgba(10,10,9,.70); backdrop-filter:blur(12px); }
.booking-dialog { position:relative; z-index:1; width:min(1040px,100%); max-height:min(760px,calc(100dvh - 40px)); overflow:auto; display:grid; grid-template-columns:1.1fr .9fr; background:var(--paper); color:var(--ink); box-shadow:0 40px 110px rgba(0,0,0,.28); --cut-local:34px; }
.booking-close { position:absolute; z-index:3; right:16px; top:16px; width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(17,17,15,.14); border-radius:50%; background:rgba(255,255,255,.88); cursor:pointer; }
.booking-dialog-brand { min-height:610px; padding:clamp(38px,5vw,72px); display:flex; flex-direction:column; background:var(--green); position:relative; overflow:hidden; isolation:isolate; }
.booking-dialog-brand::after { content:"MD"; position:absolute; right:-.10em; bottom:-.08em; z-index:-1; font-size:260px; line-height:.7; font-weight:950; letter-spacing:-.13em; color:rgba(17,17,15,.055); }
.booking-dialog-brand h2 { margin-top:34px; font-size:clamp(52px,5vw,82px); max-width:8.7ch; }
.booking-dialog-brand > p { max-width:560px; margin:34px 0 0; color:rgba(17,17,15,.65); font-size:15px; }
.booking-meta { margin-top:auto; padding-top:42px; display:grid; gap:0; border-top:1px solid rgba(17,17,15,.16); }
.booking-meta > span { min-height:68px; display:grid; grid-template-columns:28px 1fr; grid-template-rows:auto auto; column-gap:12px; align-items:center; border-bottom:1px solid rgba(17,17,15,.12); }
.booking-meta svg { grid-row:1 / span 2; width:18px; }
.booking-meta strong { font-size:11px; }
.booking-meta small { font-size:9px; color:rgba(17,17,15,.52); }
.booking-dialog-panel { padding:clamp(38px,5vw,72px); display:flex; flex-direction:column; justify-content:center; }
.booking-step { font-size:9px; font-weight:850; letter-spacing:.11em; color:var(--muted); }
.booking-dialog-panel > strong { margin-top:26px; font-size:clamp(34px,3vw,52px); line-height:.95; letter-spacing:-.055em; }
.booking-provider-copy { margin:24px 0 0; font-size:12px; }
.booking-provider-copy code { padding:2px 5px; border-radius:4px; background:rgba(17,17,15,.06); color:var(--ink); font-size:11px; }
.booking-provider-button { margin-top:34px; min-height:56px; padding:14px 18px; border:0; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:18px; font-weight:800; font-size:11px; cursor:pointer; clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px)); }
.booking-provider-button:hover { background:var(--green); color:var(--ink); }
.booking-fallback { margin-top:36px; padding-top:24px; border-top:1px solid var(--line); display:grid; gap:12px; }
.booking-fallback > span { font-size:9px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.booking-fallback a { display:flex; justify-content:space-between; gap:14px; align-items:center; font-size:12px; font-weight:750; }
.booking-fallback a:hover { color:#21b737; }
body.booking-open { overflow:hidden; }

/* Footer: stronger desktop + dedicated compact mobile composition */
.footer-cta { grid-template-columns:minmax(0,1fr) minmax(300px,390px); align-items:end; }
.footer-cta-actions { display:grid; justify-items:end; gap:18px; }
.footer-project-link { display:inline-flex; align-items:center; gap:9px; font-size:11px; color:rgba(255,255,255,.72); border-bottom:1px solid rgba(255,255,255,.26); padding-bottom:5px; }
.footer-signature { margin-top:42px; display:flex; align-items:center; gap:10px; }
.footer-signature > span { width:34px; height:2px; background:var(--green); }
.footer-signature small { color:rgba(255,255,255,.35); font-size:8px; letter-spacing:.12em; }
.footer-inline-book { display:flex; align-items:center; gap:8px; padding:0; border:0; background:transparent; color:var(--green); font-size:11px; cursor:pointer; }
.footer-inline-book svg { width:14px; }
.footer-mobile-stack { display:none; }

/* Process V4.2 */
.process42-hero { min-height:calc(82svh - var(--header-h)); padding:clamp(70px,7.5vw,130px) 0 clamp(74px,8vw,138px); display:flex; align-items:center; }
.process42-hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,.55fr); gap:clamp(48px,7vw,126px); align-items:end; }
.process42-hero-copy h1 { margin-top:30px; max-width:9.4ch; font-size:clamp(68px,7.1vw,126px); }
.process42-hero-copy > p { max-width:690px; margin:42px 0 0; font-size:clamp(16px,1.2vw,20px); }
.process42-actions { margin-top:42px; display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.process42-hero-card { min-height:520px; padding:28px; display:flex; flex-direction:column; background:var(--green); --cut-local:34px; box-shadow:0 28px 70px rgba(17,17,15,.08); position:relative; overflow:hidden; isolation:isolate; }
.process42-hero-card::before { content:"METHOD"; position:absolute; left:-.04em; bottom:.03em; z-index:-1; font-size:clamp(76px,7vw,130px); font-weight:950; letter-spacing:-.09em; color:rgba(17,17,15,.055); transform:rotate(-90deg) translateY(18%); transform-origin:left bottom; }
.process42-card-top { display:flex; justify-content:space-between; gap:20px; font-size:9px; font-weight:850; letter-spacing:.1em; }
.process42-card-mark { margin:auto 0; display:flex; align-items:flex-end; gap:18px; }
.process42-card-mark strong { font-size:clamp(116px,10vw,176px); line-height:.72; letter-spacing:-.09em; }
.process42-card-mark small { margin-bottom:4px; font-size:11px; font-weight:850; line-height:1.2; text-transform:uppercase; }
.process42-card-bottom { display:flex; align-items:center; gap:9px; font-size:8px; font-weight:850; letter-spacing:.1em; }
.process42-card-bottom i { width:5px; height:5px; border-radius:50%; background:var(--ink); }
.process42-ribbon { margin-top:-10px; }

.process42-section-head { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(280px,.48fr); gap:clamp(40px,7vw,120px); align-items:end; }
.process42-section-head .kicker { grid-column:1 / -1; }
.process42-section-head h2 { margin-top:22px; max-width:10.5ch; }
.process42-section-head p { margin:0; max-width:520px; }
.process42-overview-grid { margin-top:clamp(62px,7vw,108px); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.process42-overview-card { min-height:290px; padding:24px; display:grid; grid-template-columns:28px 1fr auto; grid-template-rows:auto auto 1fr auto; gap:10px 14px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease); position:relative; }
.process42-overview-card > span { grid-column:1; grid-row:1 / span 2; color:var(--muted); font-size:10px; }
.process42-overview-card > small { grid-column:2 / 4; font-size:9px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.process42-overview-card > strong { grid-column:2 / 4; font-size:clamp(28px,2.3vw,42px); line-height:.95; letter-spacing:-.055em; }
.process42-overview-card p { grid-column:2 / 4; align-self:end; margin:24px 0 0; max-width:280px; font-size:11px; }
.process42-overview-card > i { grid-column:3; grid-row:4; justify-self:end; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--green); font-style:normal; }
.process42-overview-card:hover { background:var(--ink); color:#fff; transform:translateY(-3px); }
.process42-overview-card:hover p,.process42-overview-card:hover small,.process42-overview-card:hover > span { color:rgba(255,255,255,.56); }

.process42-visual-story { padding:var(--section-space) 0; overflow:hidden; }
.process42-visual-intro { display:grid; grid-template-columns:.55fr 1fr; gap:48px; align-items:start; }
.process42-visual-intro p { margin:0; max-width:680px; font-size:15px; }
.process42-visual-grid { margin-top:clamp(56px,7vw,104px); display:grid; grid-template-columns:1.15fr .75fr .9fr; gap:24px; align-items:end; }
.process42-visual { margin:0; position:relative; overflow:hidden; background:#292923; --cut-local:26px; }
.process42-visual-a { aspect-ratio:4/3; }
.process42-visual-b { aspect-ratio:3/4; transform:translateY(42px); }
.process42-visual-c { aspect-ratio:4/3; }
.process42-visual img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.05); opacity:.88; transition:filter .35s var(--ease),transform .5s var(--ease); }
.process42-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(17,17,15,.78) 100%); pointer-events:none; }
.process42-visual figcaption { position:absolute; z-index:2; inset:auto 20px 18px; display:grid; grid-template-columns:30px 1fr; gap:5px 10px; color:#fff; }
.process42-visual figcaption span { grid-row:1 / span 2; color:var(--green); font-size:9px; }
.process42-visual figcaption strong { font-size:17px; letter-spacing:-.03em; }
.process42-visual figcaption small { color:rgba(255,255,255,.62); font-size:9px; }
.process42-visual:hover img { filter:grayscale(.25) contrast(1.05); transform:scale(1.025); }

.process42-details-head h2 { margin-top:28px; max-width:11ch; }
.process42-detail-list { margin-top:clamp(68px,8vw,120px); border-top:1px solid var(--line); }
.process42-step { scroll-margin-top:calc(var(--header-h) + 22px); min-height:360px; display:grid; grid-template-columns:140px minmax(0,1fr) minmax(280px,.44fr); gap:clamp(26px,4vw,70px); align-items:center; padding:42px 0; border-bottom:1px solid var(--line); position:relative; }
.process42-step-index { align-self:stretch; display:flex; flex-direction:column; justify-content:space-between; }
.process42-step-index span { font-size:12px; font-weight:850; }
.process42-step-index small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.process42-step-main > span,.process42-step-side > small { font-size:9px; text-transform:uppercase; letter-spacing:.09em; color:var(--muted); }
.process42-step-main h2 { margin:14px 0 24px; font-size:clamp(52px,5.3vw,92px); max-width:9ch; }
.process42-step-main p { margin:0; max-width:720px; }
.process42-step-side { align-self:stretch; padding-left:26px; border-left:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; gap:12px; }
.process42-step-side strong { max-width:28ch; font-size:14px; line-height:1.45; }
.process42-step-side p { margin:8px 0 0; font-size:11px; }
.process42-step.is-signature { margin-inline:-28px; padding-inline:28px; background:var(--green); }
.process42-step.is-signature .process42-step-side { border-color:rgba(17,17,15,.20); }
.process42-step.is-signature .process42-step-main > span,.process42-step.is-signature .process42-step-side > small,.process42-step.is-signature .process42-step-index small,.process42-step.is-signature p { color:rgba(17,17,15,.64); }

.process42-noise-head { display:grid; grid-template-columns:1fr; }
.process42-noise-head h2 { margin-top:28px; max-width:10.5ch; }
.process42-noise-grid { margin-top:clamp(66px,8vw,112px); display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-dark); border-left:1px solid var(--line-dark); }
.process42-noise-grid article { min-height:330px; padding:24px; border-right:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); display:flex; flex-direction:column; }
.process42-noise-grid span { color:var(--green); font-size:9px; }
.process42-noise-grid h3 { margin-top:auto; font-size:clamp(27px,2.3vw,40px); max-width:10ch; }
.process42-noise-grid p { margin:20px 0 0; font-size:11px; }

.process42-call { padding-top:calc(var(--section-space) * .72); }
.process42-call-card { padding:clamp(36px,5vw,74px); display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.5fr); gap:clamp(44px,7vw,120px); align-items:end; background:var(--ink); color:#fff; --cut-local:42px; }
.process42-call-card h2 { margin-top:26px; max-width:10.5ch; }
.process42-call-card p { margin:28px 0 0; max-width:650px; color:rgba(255,255,255,.60); }
.process42-call-actions { display:grid; gap:22px; justify-items:start; }
.process42-call-actions > a { display:inline-flex; align-items:center; gap:9px; color:rgba(255,255,255,.70); font-size:11px; border-bottom:1px solid rgba(255,255,255,.22); padding-bottom:5px; }

@media (max-width:1450px) {
    .status { display:none; }
    .nav-shell { grid-template-columns:auto 1fr auto; }
}

@media (max-width:1120px) {
    .nav-contact-link,.nav-book { display:none; }
    .process42-hero-grid,.process42-section-head,.process42-call-card { grid-template-columns:1fr; }
    .process42-hero { min-height:auto; }
    .process42-hero-card { width:min(620px,100%); min-height:390px; }
    .process42-section-head p { max-width:680px; }
    .process42-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .process42-visual-grid { grid-template-columns:1fr 1fr; }
    .process42-visual-c { grid-column:1 / -1; width:72%; margin-left:auto; }
    .process42-step { grid-template-columns:90px minmax(0,1fr); }
    .process42-step-side { grid-column:2; padding:24px 0 0; border-left:0; border-top:1px solid var(--line); }
    .process42-noise-grid { grid-template-columns:repeat(2,1fr); }
    .footer-cta { grid-template-columns:1fr; }
    .footer-cta-actions { justify-items:start; }
}

@media (max-width:820px) {
    .booking-dialog { grid-template-columns:1fr; max-height:calc(100dvh - 24px); }
    .booking-dialog-brand { min-height:auto; padding:34px 26px; }
    .booking-dialog-brand h2 { font-size:clamp(44px,11vw,66px); }
    .booking-dialog-brand > p { margin-top:24px; }
    .booking-meta { margin-top:36px; padding-top:24px; }
    .booking-dialog-panel { padding:30px 26px 38px; }
    .footer-desktop-grid { display:none; }
    .footer-mobile-stack { display:block; padding:58px 0 62px; }
    .footer-mobile-brand { padding-bottom:34px; border-bottom:1px solid var(--line-dark); }
    .footer-mobile-brand > p { margin:26px 0 0; max-width:310px; font-size:12px; }
    .footer-mobile-actions { margin-top:30px; display:grid; gap:16px; }
    .footer-mobile-actions .booking-primary { width:100%; }
    .footer-mobile-actions > a { width:max-content; display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.72); font-size:11px; border-bottom:1px solid rgba(255,255,255,.24); padding-bottom:5px; }
    .footer-mobile-nav details { border-bottom:1px solid var(--line-dark); }
    .footer-mobile-nav summary { min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; cursor:pointer; font-size:14px; font-weight:760; }
    .footer-mobile-nav summary::-webkit-details-marker { display:none; }
    .footer-mobile-nav summary span { width:28px; height:28px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; transition:transform .2s var(--ease); }
    .footer-mobile-nav details[open] summary span { transform:rotate(45deg); background:var(--green); color:var(--ink); }
    .footer-mobile-nav details > div { display:grid; gap:0; padding:0 0 22px 18px; }
    .footer-mobile-nav details a,.footer-mobile-nav details div > span { min-height:40px; display:flex; align-items:center; color:rgba(255,255,255,.62); font-size:12px; line-height:1.5; }
    .footer-cta { margin-bottom:0; }
    .footer-cta .booking-primary { width:100%; }
    .footer-bottom { padding-top:24px; }

    .process42-hero { padding:64px 0 76px; }
    .process42-hero-copy h1 { font-size:clamp(58px,12.6vw,88px); }
    .process42-hero-card { min-height:320px; }
    .process42-card-mark strong { font-size:118px; }
    .process42-overview-grid { grid-template-columns:1fr; border-left:0; }
    .process42-overview-card { min-height:220px; border-left:1px solid var(--line); }
    .process42-visual-intro { grid-template-columns:1fr; gap:22px; }
    .process42-visual-grid { grid-template-columns:1fr; gap:18px; }
    .process42-visual-a,.process42-visual-b,.process42-visual-c { width:100%; aspect-ratio:4/3; transform:none; grid-column:auto; margin:0; }
    .process42-step { grid-template-columns:1fr; gap:24px; min-height:0; padding:42px 0; }
    .process42-step-index { min-height:auto; flex-direction:row; align-items:center; }
    .process42-step-side { grid-column:auto; }
    .process42-step.is-signature { margin-inline:-16px; padding-inline:16px; }
    .process42-noise-grid { grid-template-columns:1fr; border-left:0; }
    .process42-noise-grid article { min-height:250px; border-left:1px solid var(--line-dark); }
    .process42-call-card { --cut-local:26px; }
}

@media (max-width:560px) {
    .booking-modal { padding:8px; align-items:end; }
    .booking-dialog { max-height:calc(100dvh - 16px); --cut-local:22px; }
    .booking-dialog-brand { padding:30px 20px 24px; }
    .booking-dialog-brand h2 { margin-top:24px; font-size:43px; max-width:9ch; }
    .booking-dialog-brand > p { font-size:12px; }
    .booking-meta { display:none; }
    .booking-dialog-panel { padding:26px 20px 30px; }
    .booking-dialog-panel > strong { margin-top:16px; font-size:34px; }
    .booking-provider-copy { margin-top:18px; }
    .booking-provider-button { margin-top:24px; }
    .booking-close { right:10px; top:10px; width:38px; height:38px; }

    .footer { padding-top:72px; }
    .footer-cta { padding:24px 18px; --cut-local:24px; }
    .footer-cta h2 { margin-top:22px; font-size:44px; }
    .footer-cta p { font-size:12px; }
    .footer-cta-actions { width:100%; }
    .footer-project-link { margin-left:4px; }
    .footer-mobile-stack { padding:46px 0 50px; }
    .footer-bottom { flex-direction:column; align-items:flex-start; }
    .footer-bottom > div { gap:12px 18px; }

    .process42-hero { padding:52px 0 62px; }
    .process42-hero-copy h1 { margin-top:24px; font-size:clamp(52px,14.3vw,68px); line-height:.89; }
    .process42-hero-copy > p { margin-top:28px; font-size:15px; }
    .process42-actions { margin-top:32px; display:grid; gap:20px; }
    .process42-actions .booking-primary { width:100%; }
    .process42-hero-card { min-height:260px; padding:20px; }
    .process42-card-mark strong { font-size:96px; }
    .process42-card-mark small { font-size:9px; }
    .process42-section-head { gap:26px; }
    .process42-overview-grid { margin-top:46px; }
    .process42-overview-card { min-height:200px; padding:20px 16px; }
    .process42-visual-story { padding:72px 0; }
    .process42-visual-grid { margin-top:42px; }
    .process42-details-head h2 { margin-top:22px; }
    .process42-detail-list { margin-top:48px; }
    .process42-step-main h2 { margin:10px 0 18px; font-size:48px; }
    .process42-step-main p { font-size:14px; }
    .process42-step-side strong { font-size:13px; }
    .process42-noise-grid { margin-top:48px; }
    .process42-noise-grid article { min-height:220px; padding:20px; }
    .process42-call-card { padding:28px 20px; }
    .process42-call-card h2 { margin-top:22px; font-size:44px; }
    .process42-call-actions .booking-primary { width:100%; }
}

@media (max-width:390px) {
    .booking-primary { grid-template-columns:40px minmax(0,1fr) 26px; min-height:68px; padding:9px; }
    .booking-primary-icon { width:40px; height:40px; }
    .process42-hero-copy h1 { font-size:49px; }
    .process42-card-mark strong { font-size:82px; }
    .process42-card-bottom { gap:6px; font-size:7px; }
    .process42-step-main h2 { font-size:43px; }
}

@media (prefers-reduced-motion:reduce) {
    .process42-visual img,.booking-primary,.nav-book { transition:none; }
}

/* ========================================================================== 
   V5 — production pass: strict gutters, horizontal ribbons, service identities,
   native booking calendar and complete mobile footer.
   ========================================================================== */
:root{
    --page-gutter:clamp(24px,3.4vw,64px);
    --shell: min(1600px, calc(100vw - (var(--page-gutter) * 2)));
    --v5-green:#65f379;
}
html,body{max-width:100%;overflow-x:clip}
.shell{width:var(--shell)!important;max-width:calc(100vw - (var(--page-gutter) * 2));margin-inline:auto!important}
.site-header .nav-shell{padding-inline:0}
main>section{position:relative}

/* Ribbon: background alone is rotated. Content stays on a horizontal axis. */
.edge-ribbon{width:100vw!important;margin-left:calc(50% - 50vw)!important;overflow:hidden!important;position:relative}
.slant-ribbon{min-height:110px!important;background:transparent!important;clip-path:none!important;isolation:isolate;display:flex!important;align-items:center!important}
.slant-ribbon::before{content:"";position:absolute!important;z-index:0!important;left:-4vw!important;right:-4vw!important;top:50%!important;height:76%!important;bottom:auto!important;background:var(--green)!important;transform:translateY(-50%) rotate(-1.15deg)!important;transform-origin:center!important;clip-path:none!important}
.slant-track{position:relative!important;z-index:1!important;display:flex!important;align-items:center!important;width:max-content!important;min-width:130vw!important;padding:20px 2vw!important;gap:clamp(28px,3.4vw,58px)!important;white-space:nowrap!important;transform:none;rotate:0deg!important}
.slant-track span,.slant-track i{transform:none!important;rotate:0deg!important;writing-mode:horizontal-tb!important}
.slant-track span{font-size:clamp(28px,3.15vw,58px)!important;line-height:1!important}
.footer-ribbon{min-height:112px!important;background:transparent!important;transform:none!important;isolation:isolate}
.footer-ribbon::before{content:"";position:absolute!important;z-index:0!important;left:-4vw!important;right:-4vw!important;top:50%!important;height:74%!important;bottom:auto!important;background:var(--green)!important;transform:translateY(-50%) rotate(1.05deg)!important}
.ribbon-track{position:relative!important;z-index:1!important;display:flex!important;align-items:center!important;min-width:130vw!important;width:max-content!important;padding:19px 2vw!important;gap:clamp(28px,3.2vw,54px)!important;white-space:nowrap!important}
.ribbon-track span,.ribbon-track i{transform:none!important;rotate:0deg!important;writing-mode:horizontal-tb!important}

/* Service hero — no more inherited desktop collisions. */
.service-page .service-hero{min-height:auto!important;padding:clamp(72px,7vw,126px) 0 clamp(74px,7vw,120px)!important;align-items:initial!important}
.service-page .service-hero .page-hero-grid{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(420px,.62fr)!important;gap:clamp(54px,7vw,118px)!important;align-items:stretch!important}
.service-page .page-hero-copy{display:flex;flex-direction:column;min-width:0}
.service-page .back-link{margin-bottom:clamp(44px,5vw,72px)}
.service-page .page-hero h1{font-size:clamp(66px,7.1vw,126px)!important;line-height:.86!important;max-width:10.2ch!important;overflow-wrap:normal;word-break:normal}
.service-page .hero-lead-row{margin-top:auto;padding-top:clamp(50px,6vw,90px);display:grid;grid-template-columns:minmax(0,680px) auto;gap:34px;align-items:end}
.service-page .hero-lead-row p{margin:0;font-size:clamp(15px,1.2vw,20px)}

.service-signature-wrap{min-width:0;display:flex;flex-direction:column;gap:14px}
.service-signature-board{min-height:590px;height:100%;padding:24px;background:var(--green);color:var(--ink);display:grid;grid-template-rows:auto 1fr auto;clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,34px 100%,0 calc(100% - 34px));overflow:hidden;position:relative;isolation:isolate;box-shadow:0 30px 80px rgba(17,17,15,.09)}
.ss-head,.ss-foot{display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:9px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;position:relative;z-index:2}
.ss-foot{padding-top:16px;border-top:1px solid rgba(17,17,15,.28)}
.ss-foot i{font-style:normal}
.ss-canvas{position:relative;min-height:420px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ss-grid{position:absolute;inset:8%;opacity:.18;background-image:linear-gradient(rgba(17,17,15,.45) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,15,.45) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}
.ss-canvas>strong{position:relative;z-index:3;max-width:6ch;text-align:center;font-size:clamp(58px,5.1vw,96px);line-height:.78;letter-spacing:-.085em;text-transform:uppercase}
.ss-object{position:absolute;border:1px solid rgba(17,17,15,.36);z-index:1}
.ss-object-a{width:54%;aspect-ratio:1;border-radius:50%;right:-12%;top:7%;box-shadow:0 0 0 24px rgba(17,17,15,.035),0 0 0 48px rgba(17,17,15,.024)}
.ss-object-b{width:46%;height:22%;left:2%;bottom:13%;transform:rotate(-9deg)}
.ss-object-c{width:16px;height:16px;background:var(--ink);border:0;left:18%;top:18%}
.service-ticket-tags{display:flex;flex-wrap:wrap;gap:7px;padding:2px 0}
.service-ticket-tags span{padding:7px 9px;border:1px solid var(--line);font-size:8px;text-transform:uppercase;letter-spacing:.06em}

/* Nine coherent, visibly different service signatures. */
.service-sites-web-et-ecommerce .ss-canvas::before{content:"";position:absolute;inset:16% 8% 20%;border:2px solid var(--ink);background:rgba(255,255,255,.16);box-shadow:inset 0 32px 0 rgba(17,17,15,.07)}
.service-sites-web-et-ecommerce .ss-object-a{width:20%;border-radius:0;right:14%;top:25%;bottom:29%;height:auto;background:rgba(17,17,15,.04)}
.service-sites-web-et-ecommerce .ss-object-b{left:13%;bottom:28%;width:54%;height:1px;transform:none;background:var(--ink)}
.service-seo-et-strategie-digitale .ss-object-a{border-radius:50%;width:58%;right:-8%;top:15%}
.service-seo-et-strategie-digitale .ss-object-b{left:8%;bottom:18%;width:70%;height:42%;border:0;transform:none;background:linear-gradient(90deg,var(--ink) 0 12%,transparent 12% 20%,rgba(17,17,15,.55) 20% 39%,transparent 39% 47%,rgba(17,17,15,.33) 47% 73%,transparent 73% 81%,rgba(17,17,15,.16) 81%)}
.service-branding-et-identite .ss-canvas>strong{font-family:Georgia,serif;font-style:italic;font-weight:700;max-width:5ch}
.service-branding-et-identite .ss-object-a{border-radius:0;width:46%;height:62%;right:2%;top:10%;transform:rotate(12deg)}
.service-branding-et-identite .ss-object-b{border-radius:50%;width:38%;height:auto;aspect-ratio:1;left:2%;bottom:8%;transform:none;background:rgba(255,255,255,.15)}
.service-marketing-et-publicite .ss-object-a{border-radius:50%;width:68%;right:-18%;top:5%}
.service-marketing-et-publicite .ss-object-b{left:5%;bottom:12%;height:60%;width:20%;transform:none;border:0;background:var(--ink);clip-path:polygon(0 0,100% 20%,100% 100%,0 78%)}
.service-developpement-sur-mesure .ss-grid{background-size:24px 24px}
.service-developpement-sur-mesure .ss-object-a{border-radius:0;width:68%;height:52%;right:4%;top:15%;background:rgba(17,17,15,.05)}
.service-developpement-sur-mesure .ss-object-a::before{content:"<?php />";position:absolute;inset:22px;font:800 42px/1 ui-monospace,monospace;letter-spacing:-.08em}
.service-developpement-sur-mesure .ss-object-b{height:2px;left:12%;bottom:19%;width:76%;transform:none;background:var(--ink)}
.service-design-et-animation .ss-object-a{width:64%;right:-8%;top:10%;border-radius:50%;box-shadow:0 0 0 38px rgba(17,17,15,.05),0 0 0 76px rgba(17,17,15,.03)}
.service-design-et-animation .ss-object-b{border:0;width:64%;height:64%;left:-14%;bottom:-16%;transform:rotate(24deg);background:linear-gradient(90deg,transparent 45%,var(--ink) 45% 47%,transparent 47%)}
.service-formation-et-coaching .ss-object-a{border-radius:0;width:64%;height:52%;right:7%;top:14%;transform:rotate(-4deg)}
.service-formation-et-coaching .ss-object-b{border:0;left:9%;bottom:12%;width:62%;height:36%;transform:none;background:repeating-linear-gradient(to bottom,var(--ink) 0 2px,transparent 2px 34px)}
.service-maintenance-et-performance .ss-object-a{width:62%;right:-8%;top:9%;border-radius:50%;border-width:10px;border-color:rgba(17,17,15,.16);border-right-color:var(--ink)}
.service-maintenance-et-performance .ss-object-b{left:8%;bottom:13%;width:72%;height:16%;transform:none;border:1px solid var(--ink);background:linear-gradient(90deg,var(--ink) 0 92%,transparent 92%)}
.service-ia-et-automatisation .ss-object-a{width:54%;right:-7%;top:8%;border-radius:50%;box-shadow:0 0 0 28px rgba(17,17,15,.04),0 0 0 56px rgba(17,17,15,.025)}
.service-ia-et-automatisation .ss-object-b{left:5%;bottom:14%;width:76%;height:52%;transform:none;border:0;background:linear-gradient(30deg,transparent 48%,var(--ink) 49% 50%,transparent 51%),linear-gradient(-30deg,transparent 48%,rgba(17,17,15,.48) 49% 50%,transparent 51%)}

.service-story{padding:clamp(86px,8vw,150px) 0;background:var(--paper)}
.service-story-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(54px,7vw,120px);align-items:center}
.service-story-media{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden;--cut-local:30px;background:#d9d5ca}
.service-story-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.76) contrast(1.02);transition:filter .35s var(--ease),transform .55s var(--ease)}
.service-story-media:hover img{filter:saturate(1);transform:scale(1.025)}
.service-story-media figcaption{position:absolute;left:16px;right:16px;bottom:16px;padding:12px 14px;background:rgba(255,253,247,.93);display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:9px;font-weight:800}
.service-story-media figcaption a{display:flex;gap:7px;align-items:center}
.service-story-copy h2{margin:28px 0 30px;max-width:10ch;font-size:clamp(50px,5.6vw,96px)}
.service-story-copy>p{max-width:700px;font-size:clamp(15px,1.15vw,19px)}
.service-story-stats{margin-top:clamp(44px,5vw,72px);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.service-story-stats span{min-height:118px;padding:20px 16px;display:flex;flex-direction:column;border-right:1px solid var(--line)}
.service-story-stats span:last-child{border-right:0}
.service-story-stats strong{margin-top:auto;font-size:18px;letter-spacing:-.04em}
.service-story-stats small{margin-top:6px;color:var(--muted);font-size:9px}
.service-story--seo-et-strategie-digitale .service-story-media,.service-story--design-et-animation .service-story-media{order:2}
.service-story--seo-et-strategie-digitale .service-story-copy,.service-story--design-et-animation .service-story-copy{order:1}
.service-story--branding-et-identite{background:var(--cream)}
.service-story--ia-et-automatisation{background:var(--ink);color:#fff}
.service-story--ia-et-automatisation p{color:var(--muted-dark)}
.service-story--ia-et-automatisation .service-story-stats{border-color:var(--line-dark)}
.service-story--ia-et-automatisation .service-story-stats span{border-color:var(--line-dark)}

/* Complete mobile footer. */
.footer-mobile-stack{display:none}
.footer-mobile-brand-top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.footer-mobile-status{display:inline-flex;align-items:center;gap:7px;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.58)}
.footer-mobile-status i{width:7px;height:7px;border-radius:50%;background:var(--green)}
.footer-mobile-contact{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px 20px}
.footer-mobile-contact a{font-size:12px;color:#fff;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:4px}
.footer-mobile-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:0;border-top:1px solid var(--line-dark)}
.footer-mobile-columns section{padding:30px 22px 28px 0;border-bottom:1px solid var(--line-dark)}
.footer-mobile-columns section:nth-child(odd){border-right:1px solid var(--line-dark)}
.footer-mobile-columns section:nth-child(even){padding-left:22px}
.footer-mobile-columns section>span{display:block;margin-bottom:18px;color:rgba(255,255,255,.42);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.1em}
.footer-mobile-columns nav{display:grid;gap:0}
.footer-mobile-columns nav a,.footer-mobile-columns nav>span{min-height:34px;display:flex;align-items:center;font-size:11px;line-height:1.35;color:rgba(255,255,255,.78)}
.footer-mobile-columns nav a:hover{color:var(--green)}

/* Native booking calendar. */
.booking-modal{padding:20px!important}
.booking-dialog.booking-v5{width:min(1180px,100%)!important;max-height:calc(100dvh - 40px)!important;grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr)!important;overflow:hidden!important;background:var(--paper)}
.booking-v5-aside{padding:clamp(38px,4.5vw,68px);background:var(--green);display:flex;flex-direction:column;min-height:660px;position:relative;overflow:hidden;isolation:isolate}
.booking-v5-aside::after{content:"MD";position:absolute;right:-.1em;bottom:-.08em;z-index:-1;font-size:240px;line-height:.7;font-weight:950;letter-spacing:-.13em;color:rgba(17,17,15,.055)}
.booking-v5-aside h2{margin:32px 0 28px;font-size:clamp(54px,5vw,80px);max-width:7.5ch}
.booking-v5-aside>p{max-width:480px;color:rgba(17,17,15,.66);font-size:14px}
.booking-v5-aside .booking-meta{margin-top:auto}
.booking-v5-main{padding:clamp(30px,4vw,56px);overflow:auto;min-width:0}
.booking-view{display:none}
.booking-view.is-active{display:block}
.booking-calendar-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.booking-calendar-head>div:first-child{display:grid;gap:8px}
.booking-calendar-head span,.booking-step{font-size:8px;font-weight:850;letter-spacing:.1em;color:var(--muted)}
.booking-calendar-head strong{text-transform:capitalize;font-size:28px;letter-spacing:-.045em}
.booking-calendar-head>div:last-child{display:flex;gap:7px}
.booking-calendar-head button,.booking-back{border:1px solid var(--line);background:transparent;cursor:pointer}
.booking-calendar-head button{width:42px;height:42px;border-radius:50%}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.booking-weekdays{padding:16px 0 8px}
.booking-weekdays span{text-align:center;font-size:7px;font-weight:850;color:var(--muted)}
.booking-days{gap:6px;min-height:330px;align-content:start}
.booking-day{min-width:0;aspect-ratio:1;border:1px solid var(--line);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:.2s var(--ease)}
.booking-day span{font-size:13px;font-weight:780}
.booking-day small{font-size:6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.booking-day:not(:disabled):hover,.booking-day.is-selected{background:var(--green);border-color:var(--green)}
.booking-day.is-disabled{opacity:.28;cursor:not-allowed}
.booking-day.is-blank{border:0;pointer-events:none}
.booking-loading,.booking-load-error{grid-column:1/-1;padding:38px 0;text-align:center;color:var(--muted);font-size:12px}
.booking-slots-wrap{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.booking-slots-wrap>span{font-size:8px;font-weight:850;color:var(--muted);letter-spacing:.1em}
.booking-slots{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.booking-slots-date{width:100%;margin-bottom:5px;font-size:14px;text-transform:capitalize}
.booking-slot{min-width:82px;padding:11px 14px;border:1px solid var(--ink);background:transparent;font-size:11px;font-weight:800;cursor:pointer}
.booking-slot:hover{background:var(--ink);color:#fff}
.booking-slots-empty{margin:0;color:var(--muted);font-size:12px}
.booking-back{padding:9px 12px;font-size:9px;font-weight:800}
.booking-selection{display:block;margin:18px 0 26px;font-size:clamp(26px,3vw,42px);line-height:1;letter-spacing:-.05em;text-transform:capitalize}
.booking-form{display:grid;gap:14px}
.booking-form label{display:grid;gap:7px}
.booking-form label>span{font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.booking-form input,.booking-form textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 0 11px;border-radius:0;outline:none;font-size:16px}
.booking-form input:focus,.booking-form textarea:focus{border-color:var(--ink)}
.booking-field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.booking-error{margin:0;padding:10px 12px;background:#ffe8e4;color:#721c14;font-size:11px}
.booking-confirm{margin-top:8px;min-height:58px;padding:14px 18px;border:0;background:var(--green);font-weight:850;display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.booking-confirm:disabled{opacity:.5;cursor:wait}
.booking-success-v5{padding-top:50px}
.booking-success-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:var(--green);font-size:24px;margin-bottom:26px}
.booking-success-v5 h3{margin:18px 0;font-size:clamp(42px,5vw,72px);max-width:8ch;text-transform:capitalize}
.booking-success-v5 p{max-width:520px}
.booking-success-v5>strong{display:block;margin:24px 0;color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.booking-success-v5 .button{margin-right:18px}

/* Desktop footer remains dense; mobile switches to complete dedicated layout. */
@media(max-width:1450px){
  .service-page .service-hero .page-hero-grid{grid-template-columns:minmax(0,1fr) minmax(380px,.58fr)!important;gap:56px!important}
  .service-page .page-hero h1{font-size:clamp(62px,7vw,110px)!important}
}
@media(max-width:1120px){
  :root{--page-gutter:28px;--shell:calc(100vw - (var(--page-gutter) * 2))}
  .service-page .service-hero .page-hero-grid{grid-template-columns:1fr!important;gap:48px!important}
  .service-page .service-signature-wrap{width:min(720px,100%)}
  .service-signature-board{min-height:440px}
  .ss-canvas{min-height:300px}
  .service-story-grid{grid-template-columns:1fr!important;gap:50px}
  .service-story-media{width:min(760px,100%)}
  .service-story--seo-et-strategie-digitale .service-story-media,.service-story--design-et-animation .service-story-media{order:1}
  .service-story--seo-et-strategie-digitale .service-story-copy,.service-story--design-et-animation .service-story-copy{order:2}
  .booking-dialog.booking-v5{grid-template-columns:320px 1fr!important}
  .booking-v5-aside{min-height:620px;padding:34px 28px}
  .booking-v5-aside h2{font-size:54px}
}
@media(max-width:820px){
  :root{--page-gutter:20px;--shell:calc(100vw - 40px)}
  .site-header .nav-shell{min-height:74px!important}
  .service-page .service-hero{padding:52px 0 62px!important}
  .service-page .service-hero .page-hero-grid{gap:38px!important}
  .service-page .back-link{margin-bottom:34px}
  .service-page .page-hero h1{font-size:clamp(54px,12.6vw,82px)!important;line-height:.88!important;max-width:10ch!important}
  .service-page .hero-lead-row{padding-top:36px;grid-template-columns:1fr;gap:24px}
  .service-page .hero-lead-row .circle-cta{width:72px}
  .service-signature-board{min-height:360px;padding:20px;clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,24px 100%,0 calc(100% - 24px))}
  .ss-canvas{min-height:250px}.ss-canvas>strong{font-size:clamp(50px,13vw,72px)}
  .slant-ribbon{min-height:82px!important}.slant-ribbon::before{height:72%!important;transform:translateY(-50%) rotate(-1.35deg)!important}
  .slant-track{min-width:180vw!important;padding:15px 18px!important;gap:24px!important}.slant-track span{font-size:24px!important}
  .service-story{padding:76px 0}
  .service-story-copy h2{font-size:clamp(46px,11.5vw,68px);margin-top:22px}
  .service-story-stats{grid-template-columns:1fr}
  .service-story-stats span{min-height:90px;border-right:0;border-bottom:1px solid var(--line)}
  .service-story-stats span:last-child{border-bottom:0}
  .footer-desktop-grid{display:none!important}
  .footer-mobile-stack{display:block!important;padding:54px 0 58px!important}
  .footer-mobile-brand{padding-bottom:38px!important;border-bottom:0!important}
  .footer-ribbon{min-height:86px!important}.footer-ribbon::before{height:70%!important;transform:translateY(-50%) rotate(1.3deg)!important}
  .ribbon-track{min-width:190vw!important;padding:14px 16px!important}.ribbon-track span{font-size:28px!important}
  .booking-modal{padding:10px!important;align-items:end!important}
  .booking-dialog.booking-v5{grid-template-columns:1fr!important;max-height:calc(100dvh - 20px)!important;overflow:auto!important}
  .booking-v5-aside{min-height:auto;padding:30px 24px 26px}
  .booking-v5-aside h2{font-size:48px;margin:24px 0 20px}.booking-v5-aside>p{font-size:12px}.booking-v5-aside .booking-meta{display:none}
  .booking-v5-main{padding:28px 22px 34px}
  .booking-days{min-height:300px}
  .booking-day small{display:none}
}
@media(max-width:560px){
  :root{--page-gutter:16px;--shell:calc(100vw - 32px)}
  .shell{max-width:calc(100vw - 32px)!important}
  .home-hero,.page-hero,.contact-hero,.process42-hero{padding-left:0!important;padding-right:0!important}
  .hero-topline{grid-template-columns:1fr auto!important;gap:12px}.hero-topline span:nth-child(2){display:none}.hero-topline span:last-child{text-align:right}
  .hero-main-grid{grid-template-columns:1fr!important;gap:34px!important;padding-top:34px!important}
  .hero-copy h1{font-size:clamp(50px,15.2vw,69px)!important;max-width:8.5ch!important}
  .hero-poster{width:100%!important;min-height:310px!important;padding:20px!important}
  .service-page .service-hero{padding:44px 0 54px!important}
  .service-page .page-hero h1{font-size:clamp(50px,14.2vw,66px)!important;max-width:9.4ch!important}
  .service-signature-board{min-height:315px}.ss-canvas{min-height:210px}.ss-grid{background-size:28px 28px}
  .service-ticket-tags{gap:5px}.service-ticket-tags span{font-size:7px;padding:6px 7px}
  .service-story{padding:66px 0}.service-story-grid{gap:38px}.service-story-media{aspect-ratio:1.12}.service-story-media figcaption{left:10px;right:10px;bottom:10px;font-size:7px;padding:10px}.service-story-copy h2{font-size:46px}.service-story-copy>p{font-size:14px}
  .slant-ribbon{min-height:72px!important}.slant-ribbon::before{height:70%!important;transform:translateY(-50%) rotate(-1.55deg)!important}.slant-track{min-width:240vw!important;padding:12px 14px!important;gap:18px!important}.slant-track span{font-size:21px!important}.slant-track i{font-size:9px!important}
  .footer{padding-top:64px!important}.footer-cta{padding:24px 18px!important}.footer-mobile-stack{padding:42px 0 48px!important}
  .footer-mobile-brand>p{margin-top:24px!important;max-width:330px!important}
  .footer-mobile-columns{grid-template-columns:1fr}
  .footer-mobile-columns section,.footer-mobile-columns section:nth-child(even){padding:26px 0;border-right:0!important}
  .footer-mobile-columns nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
  .footer-mobile-columns section:nth-child(n+2) nav{grid-template-columns:1fr 1fr}
  .footer-mobile-columns nav a,.footer-mobile-columns nav>span{min-height:36px;font-size:10px}
  .footer-bottom{padding:22px 0 34px!important}.footer-bottom>div{flex-wrap:wrap!important}
  .footer-ribbon{min-height:72px!important}.ribbon-track{min-width:260vw!important}.ribbon-track span{font-size:24px!important}
  .booking-modal{padding:0!important}.booking-dialog.booking-v5{max-height:100dvh!important;height:100dvh!important;clip-path:none!important;border-radius:0}
  .booking-close{position:fixed!important;right:14px!important;top:14px!important;z-index:4;background:var(--paper)!important}
  .booking-v5-aside{padding:24px 18px 20px}.booking-v5-aside h2{font-size:40px;max-width:8ch}.booking-v5-aside>p{display:none}
  .booking-v5-main{padding:22px 16px 30px}.booking-calendar-head strong{font-size:23px}.booking-calendar-head button{width:38px;height:38px}
  .booking-weekdays{padding-top:12px}.booking-days{gap:4px;min-height:268px}.booking-day{aspect-ratio:.96}.booking-day span{font-size:12px}
  .booking-slots-wrap{margin-top:18px;padding-top:18px}.booking-slot{min-width:74px;padding:10px 12px}
  .booking-field-row{grid-template-columns:1fr;gap:14px}.booking-selection{font-size:30px}.booking-success-v5{padding-top:28px}.booking-success-v5 h3{font-size:44px}.booking-success-v5 .button{margin:0 0 18px;width:100%}
}
@media(max-width:390px){
  :root{--page-gutter:14px;--shell:calc(100vw - 28px)}
  .shell{max-width:calc(100vw - 28px)!important}
  .service-page .page-hero h1{font-size:49px!important}
  .ss-head,.ss-foot{font-size:7px}.ss-canvas>strong{font-size:50px}
  .footer-mobile-columns nav{grid-template-columns:1fr!important}
  .booking-v5-aside h2{font-size:37px}.booking-days{min-height:250px}.booking-day{border-radius:0}
}
@media(prefers-reduced-motion:reduce){.slant-track,.ribbon-track{animation:none!important;transform:none!important}.service-story-media img{transition:none!important}}

/* =========================================================
   V5.1 — Portfolio showcase / drag navigation
   The portfolio is a primary conversion surface: large media,
   obvious controls, mouse-drag, touch-swipe and right-click next.
   ========================================================= */
.project-showcase{
  --rail-gutter:max(var(--page-gutter,32px), calc((100vw - 1600px)/2));
  width:100%;
  overflow:hidden;
  position:relative;
}
.project-showcase-toolbar{
  min-height:68px;
  margin-bottom:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.project-showcase-hint{display:flex;align-items:baseline;gap:18px;min-width:0}
.project-showcase-hint>span{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}
.project-showcase-hint>small{color:var(--muted);font-size:9px;letter-spacing:.02em}
.project-showcase-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.project-showcase-controls button{
  width:46px;height:46px;border:1px solid var(--line);border-radius:50%;
  background:transparent;color:var(--ink);display:grid;place-items:center;
  font-size:18px;cursor:pointer;transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease)
}
.project-showcase-controls button:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}
.project-showcase-count{display:flex;align-items:center;gap:7px;margin-right:8px;font-size:10px;font-weight:800;letter-spacing:.05em}
.project-showcase-count b{font-size:18px;letter-spacing:-.04em}
.project-showcase-count i{font-style:normal;color:var(--muted)}
.project-showcase-count span{color:var(--muted)}

.project-rail{
  width:100%;
  display:flex;
  align-items:flex-start;
  gap:clamp(18px,2.2vw,38px);
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px var(--rail-gutter) 28px;
  scroll-padding-inline:var(--rail-gutter);
  scroll-snap-type:x mandatory;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  cursor:grab;
  touch-action:pan-y;
  -webkit-overflow-scrolling:touch;
}
.project-rail::-webkit-scrollbar{display:none}
.project-rail:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.project-rail.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.project-rail.is-dragging a{pointer-events:none}
.project-slide{flex:0 0 auto;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.project-slide[hidden]{display:none!important}
.project-slide .project-card{width:100%}
.project-slide .project-summary{margin:18px 0 0;max-width:58ch;font-size:12px;line-height:1.65}
.project-card-showcase .project-media{box-shadow:0 22px 70px rgba(17,17,15,.08)}
.project-card-showcase .project-meta{padding-top:19px}
.project-card-showcase .project-meta h3{font-size:clamp(30px,3vw,52px)}
.project-card-showcase .project-open{opacity:1;transform:scale(1);background:var(--paper);border:1px solid rgba(17,17,15,.1)}

.project-rail-home .project-slide{flex-basis:min(860px,68vw)}
.project-rail-home .project-slide:nth-child(2n){flex-basis:min(650px,52vw)}
.project-rail-home .project-slide:nth-child(2n) .project-media{aspect-ratio:4/5}
.project-rail-home .project-slide:nth-child(3n) .project-media{aspect-ratio:5/4}
.project-showcase-home + .work-cta{margin-top:clamp(60px,7vw,110px)}

.work-directory-head{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;margin-bottom:34px}
.work-directory-head .work-filters{margin:0}
.project-showcase-hint-dark{justify-self:end;text-align:right}
.project-showcase-toolbar-work{justify-content:flex-end;margin-bottom:18px;border-top:0}
.project-showcase-work .project-showcase-count{margin-right:auto}
.project-rail-work .project-slide{flex-basis:min(760px,48vw)}
.project-rail-work .project-slide:nth-child(3n+2){flex-basis:min(600px,39vw)}
.project-rail-work .project-slide:nth-child(3n+2) .project-media{aspect-ratio:4/5}
.project-rail-work .project-slide:nth-child(3n+3) .project-media{aspect-ratio:5/4}
.project-showcase-work .project-summary{max-width:62ch}
.no-results{margin-top:32px}

@media(max-width:1120px){
  .project-rail-home .project-slide{flex-basis:min(760px,76vw)}
  .project-rail-home .project-slide:nth-child(2n){flex-basis:min(620px,62vw)}
  .project-rail-work .project-slide,.project-rail-work .project-slide:nth-child(3n+2){flex-basis:min(680px,72vw)}
  .work-directory-head{grid-template-columns:1fr;gap:20px}
  .project-showcase-hint-dark{justify-self:start;text-align:left}
}
@media(max-width:820px){
  .project-showcase-toolbar{min-height:62px;margin-bottom:18px}
  .project-showcase-hint>small{display:none}
  .project-showcase-controls button{width:42px;height:42px}
  .project-rail{gap:16px;padding-bottom:22px}
  .project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),
  .project-rail-work .project-slide,.project-rail-work .project-slide:nth-child(3n+2){flex-basis:82vw}
  .project-rail-home .project-slide:nth-child(2n) .project-media,
  .project-rail-work .project-slide:nth-child(3n+2) .project-media{aspect-ratio:16/10}
}
@media(max-width:560px){
  .project-showcase-toolbar{align-items:center;gap:12px}
  .project-showcase-hint>span{font-size:8px;letter-spacing:.07em}
  .project-showcase-count{margin-right:2px;gap:5px}.project-showcase-count b{font-size:15px}
  .project-showcase-controls{gap:5px}.project-showcase-controls button{width:38px;height:38px;font-size:16px}
  .project-rail{gap:12px;padding-bottom:18px}
  .project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),
  .project-rail-work .project-slide,.project-rail-work .project-slide:nth-child(3n+2){flex-basis:86vw}
  .project-slide .project-summary{font-size:11px;margin-top:14px}
  .project-card-showcase .project-meta h3{font-size:30px}
  .project-card-showcase .project-open{width:46px;right:12px;top:12px}
  .work-directory-head{margin-bottom:20px}
  .work-filters{padding-bottom:2px!important}
}
@media(max-width:390px){
  .project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),
  .project-rail-work .project-slide,.project-rail-work .project-slide:nth-child(3n+2){flex-basis:88vw}
  .project-showcase-hint{display:none}
  .project-showcase-toolbar{justify-content:flex-end}
  .project-showcase-toolbar-work .project-showcase-count{margin-right:auto}
}
@media(prefers-reduced-motion:reduce){.project-rail{scroll-behavior:auto!important}}

/* ========================================================================== 
   V6 — portfolio as showcase, consistent horizontal media, testimonial rails,
   rotated ribbon typography and stricter mobile reading gutters.
   ========================================================================== */

/* Ribbon signature: surface AND typography share the same angle. */
.slant-ribbon{--ribbon-angle:-1.15deg;overflow:hidden!important}
.slant-ribbon::before{transform:translateY(-50%) rotate(var(--ribbon-angle))!important}
.slant-track{rotate:var(--ribbon-angle)!important;transform-origin:center!important}
.footer-ribbon{--ribbon-angle:1.05deg}
.footer-ribbon::before{transform:translateY(-50%) rotate(var(--ribbon-angle))!important}
.ribbon-track{rotate:var(--ribbon-angle)!important;transform-origin:center!important}
.slant-track span,.slant-track i,.ribbon-track span,.ribbon-track i{rotate:0deg!important}

/* Shared horizontal rails. */
.content-showcase{--rail-gutter:max(var(--page-gutter,32px),calc((100vw - 1600px)/2));width:100%;overflow:hidden;position:relative}
.content-rail{display:flex;align-items:stretch;gap:22px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding:5px var(--rail-gutter) 28px;scroll-padding-inline:var(--rail-gutter);cursor:grab;touch-action:pan-y pinch-zoom}
.content-rail::-webkit-scrollbar{display:none}
.content-rail:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.content-rail.is-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.content-rail.is-dragging a{pointer-events:none}
.content-rail>[data-rail-slide]{scroll-snap-align:start;flex:0 0 auto;min-width:0}

/* All project carousels use one premium horizontal format. */
.project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),.project-rail-home .project-slide:nth-child(3n),
.related-project-rail .related-project-slide{flex-basis:min(760px,58vw)!important}
.project-rail-home .project-media,.project-rail-home .project-slide:nth-child(2n) .project-media,.project-rail-home .project-slide:nth-child(3n) .project-media,
.related-project-rail .project-media{aspect-ratio:16/9!important}
.related-showcase{margin-top:0}
.related-toolbar{margin-bottom:18px}
.related-project-rail{gap:22px}
.related-project-slide{width:min(760px,58vw)}
.related-project-slide .project-card{height:auto}
.related-project-slide .project-summary{margin:15px 0 0;max-width:58ch;font-size:13px;line-height:1.55;color:var(--muted)}
.related-project-card .project-meta h3{font-size:clamp(28px,2.5vw,42px)}

/* Testimonials — equal height is imposed from the longest card by JS. */
.testimonial-showcase{margin-top:clamp(44px,6vw,90px)}
.testimonial-toolbar{margin-bottom:18px}
.testimonial-rail{gap:20px;padding-bottom:34px}
.testimonial-slide{flex-basis:min(720px,54vw);display:flex;align-items:stretch}
.testimonial-slide .quote-card,.testimonial-slide .testimonial-full{width:100%;height:100%;margin:0!important}
.testimonial-slide .quote-card{min-height:430px}
.testimonial-slide .testimonial-full{min-height:500px}
.testimonial-slide blockquote{max-width:18ch}
.testimonial-showcase-page{margin-top:0}
.testimonial-directory .section-title-row{margin-bottom:30px}

/* Service process: the number is a visual anchor, not a footnote. */
.process-step{position:relative;overflow:hidden}
.process-step .process-step-number{display:block!important;color:var(--green)!important;font-size:clamp(64px,5vw,96px)!important;font-weight:850!important;line-height:.8!important;letter-spacing:-.08em!important;opacity:.92}
.process-step h3{margin-top:auto!important}

/* Full portfolio directory — deliberately NOT a carousel. */
.work-directory-v6 .work-hero{padding-bottom:clamp(90px,8vw,140px)}
.portfolio-v6-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(420px,1fr);gap:clamp(48px,7vw,110px);align-items:end;margin-bottom:clamp(58px,7vw,105px)}
.portfolio-v6-head h2{margin-top:25px;max-width:9ch}
.work-filters-v6{justify-content:flex-end;align-content:flex-end}
.portfolio-v6-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(64px,7vw,112px) clamp(28px,3vw,48px);align-items:start}
.portfolio-v6-grid>.portfolio-v6-item{grid-column:auto!important;width:auto!important;min-width:0}
.portfolio-v6-link{display:block}
.portfolio-v6-media{margin:0;position:relative;overflow:hidden;aspect-ratio:1122/1402;background:#d8d4ca;--cut-local:26px}
.portfolio-v6-media img{height:100%;object-fit:cover;transition:transform .55s var(--ease),filter .35s var(--ease)}
.portfolio-v6-link:hover .portfolio-v6-media img{transform:scale(1.025);filter:saturate(1.04) contrast(1.02)}
.portfolio-v6-media>span{position:absolute;left:16px;bottom:16px;padding:8px 10px;background:var(--paper);font-size:9px;font-weight:850}
.portfolio-v6-media>b{position:absolute;right:16px;top:16px;padding:8px 10px;background:var(--green);font-size:8px;letter-spacing:.08em}
.portfolio-v6-meta{padding-top:18px;display:flex;justify-content:space-between;gap:22px;align-items:flex-start}
.portfolio-v6-meta small{display:block;margin-bottom:7px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}
.portfolio-v6-meta h2{font-size:clamp(31px,3vw,52px);line-height:.92;max-width:12ch}
.portfolio-v6-meta>span{font-size:10px;color:var(--muted)}
.portfolio-v6-item>a>p{margin:18px 0 0;max-width:65ch;font-size:14px;line-height:1.62}
.portfolio-v6-tags{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.portfolio-v6-tags span{padding:6px 8px;border:1px solid var(--line);font-size:8px;text-transform:uppercase;letter-spacing:.05em}
.portfolio-v6-tags i{margin-left:auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-style:normal;transition:.25s var(--ease)}
.portfolio-v6-link:hover .portfolio-v6-tags i{background:var(--green);color:var(--ink);transform:rotate(8deg)}
.portfolio-v6-item.is-featured .portfolio-v6-meta h2{font-size:clamp(38px,3.4vw,60px)}

/* Case study live-site CTA. */
.project-detail-lead>div{display:grid;gap:22px;justify-items:start}
.project-live-link{width:max-content}

/* Mobile: explicit breathing room on every service section. */
@media(max-width:1120px){
  .portfolio-v6-head{grid-template-columns:1fr;gap:34px}.work-filters-v6{justify-content:flex-start}
  .testimonial-slide{flex-basis:min(660px,70vw)}
  .related-project-slide,.project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),.project-rail-home .project-slide:nth-child(3n){flex-basis:min(700px,72vw)!important}
}
@media(max-width:820px){
  .slant-ribbon{--ribbon-angle:-1.35deg}.footer-ribbon{--ribbon-angle:1.25deg}
  .portfolio-v6-grid{gap:58px 20px}
  .testimonial-slide{flex-basis:78vw}
  .related-project-slide,.project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),.project-rail-home .project-slide:nth-child(3n){flex-basis:78vw!important}
  .process-step .process-step-number{font-size:72px!important;margin-bottom:52px}
}
@media(max-width:560px){
  :root{--page-gutter:22px!important;--shell:calc(100vw - 44px)!important}
  .shell{width:calc(100vw - 44px)!important;max-width:calc(100vw - 44px)!important;margin-inline:22px!important}
  .slant-ribbon{--ribbon-angle:-1.55deg}.footer-ribbon{--ribbon-angle:1.45deg}
  .service-page main>section:not(.service-story),.service-page .service-story{overflow:hidden}
  .service-page .process-strip>.shell,.service-page .related-work>.shell,.service-page .faq-section>.shell,.service-page .pricing-section>.shell,.service-page .deliverables-section>.shell,.service-page .service-intro-section>.shell{margin-left:22px!important;margin-right:22px!important;width:calc(100vw - 44px)!important;max-width:calc(100vw - 44px)!important}
  .portfolio-v6-grid{grid-template-columns:1fr!important;gap:58px}
  .portfolio-v6-head{margin-bottom:48px}
  .work-filters-v6{display:flex;flex-wrap:wrap;gap:8px}
  .portfolio-v6-media{aspect-ratio:1122/1402}
  .portfolio-v6-item>a>p{font-size:13px}
  .portfolio-v6-meta h2,.portfolio-v6-item.is-featured .portfolio-v6-meta h2{font-size:36px}
  .content-showcase,.project-showcase{--rail-gutter:22px!important}
  .testimonial-slide{flex-basis:86vw}
  .testimonial-slide .quote-card,.testimonial-slide .testimonial-full{min-height:0!important;padding:28px 24px}
  .testimonial-slide blockquote{font-size:30px!important}
  .related-project-slide,.project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),.project-rail-home .project-slide:nth-child(3n){flex-basis:86vw!important}
  .related-project-slide{width:86vw}
  .related-project-slide .project-summary{font-size:12px}
  .process-grid{padding-inline:0!important}
  .process-step{padding:28px 4px 34px!important}
  .process-step .process-step-number{font-size:64px!important;margin-bottom:52px}
  .process-step h3{font-size:34px!important;margin-bottom:16px!important}
  .process-step p{font-size:13px!important;line-height:1.6}
  .project-detail-lead>div{gap:18px}
}
@media(max-width:390px){
  :root{--page-gutter:20px!important;--shell:calc(100vw - 40px)!important}
  .shell{width:calc(100vw - 40px)!important;max-width:calc(100vw - 40px)!important;margin-inline:20px!important}
  .service-page .process-strip>.shell,.service-page .related-work>.shell,.service-page .faq-section>.shell,.service-page .pricing-section>.shell,.service-page .deliverables-section>.shell,.service-page .service-intro-section>.shell{margin-left:20px!important;margin-right:20px!important;width:calc(100vw - 40px)!important;max-width:calc(100vw - 40px)!important}
  .content-showcase,.project-showcase{--rail-gutter:20px!important}
  .testimonial-slide,.related-project-slide,.project-rail-home .project-slide,.project-rail-home .project-slide:nth-child(2n),.project-rail-home .project-slide:nth-child(3n){flex-basis:88vw!important}
  .related-project-slide{width:88vw}
  .process-step .process-step-number{font-size:58px!important}
}
@media(prefers-reduced-motion:reduce){.slant-track,.ribbon-track{animation:none!important}}

/* ========================================================================== 
   V7 — Hooked Studio / editorial studio direction
   Inspired by contemporary independent-agency motion systems: large type,
   floating project surfaces, dark/light theme, magnetic CTAs, scroll depth.
   ========================================================================== */

:root{
  --v7-bg:#f3f1e9;
  --v7-surface:#fbfaf5;
  --v7-ink:#11110f;
  --v7-ink-soft:#23231f;
  --v7-accent:#b7ff35;
  --v7-muted:rgba(17,17,15,.62);
  --v7-line:rgba(17,17,15,.16);
  --v7-dark:#11110f;
  --v7-dark-2:#181815;
  --v7-light:#f7f5ee;
  --v7-ease:cubic-bezier(.16,1,.3,1);
  --v7-radius:22px;
}

html[data-theme="dark"]{
  --v7-bg:#11110f;
  --v7-surface:#181815;
  --v7-ink:#f7f5ee;
  --v7-ink-soft:#f7f5ee;
  --v7-muted:rgba(255,255,255,.6);
  --v7-line:rgba(255,255,255,.15);
  --cream:#11110f;
  --paper:#181815;
  --ink:#f7f5ee;
  --ink-2:#0d0d0c;
  --muted:rgba(255,255,255,.62);
  --line:rgba(255,255,255,.15);
}

html[data-theme="dark"] body{background:var(--v7-bg);color:var(--v7-ink)}
html[data-theme="dark"] .section-paper{background:var(--v7-surface)}
html[data-theme="dark"] h1 em,
html[data-theme="dark"] h2 em{color:rgba(255,255,255,.34)}
html[data-theme="dark"] .site-header{background:rgba(17,17,15,.88);color:var(--v7-ink);border-color:var(--v7-line)}
html[data-theme="dark"] .mega-menu,
html[data-theme="dark"] .mini-menu{background:var(--v7-surface);border-color:var(--v7-line)}
html[data-theme="dark"] .mega-links a,
html[data-theme="dark"] .mini-menu a{border-color:var(--v7-line)}
html[data-theme="dark"] .nav-project,
html[data-theme="dark"] .nav-book{background:var(--v7-accent);color:#11110f}
html[data-theme="dark"] .theme-toggle{color:var(--v7-ink);border-color:var(--v7-line)}
html[data-theme="dark"] .mobile-menu{background:#11110f;color:#fff}
html[data-theme="dark"] .footer{background:#090908}

body{transition:background .35s ease,color .35s ease}
body.home-v7{background:var(--v7-bg)}
body.home-v7 .site-header{position:fixed;inset:0 0 auto 0;background:transparent;border-bottom-color:transparent;transition:background .35s ease,border-color .35s ease,transform .35s var(--v7-ease)}
body.home-v7 .site-header.is-scrolled{background:color-mix(in srgb,var(--v7-bg) 90%,transparent);border-bottom-color:var(--v7-line);backdrop-filter:blur(18px)}
body.home-v7 .nav-shell{min-height:76px}
body.home-v7 .desktop-nav{height:76px}
body.home-v7 .nav-main-link::after{bottom:18px;background:var(--v7-accent)}
body.home-v7 .nav-book{background:var(--v7-ink);color:var(--v7-bg)}
html[data-theme="dark"] body.home-v7 .nav-book{background:var(--v7-accent);color:#11110f}

.theme-toggle{width:42px;height:42px;border:1px solid var(--v7-line);border-radius:50%;background:transparent;display:grid;place-items:center;cursor:pointer;position:relative;overflow:hidden;transition:transform .3s var(--v7-ease),background .25s ease}
.theme-toggle:hover{transform:rotate(12deg);background:var(--v7-accent);color:#11110f}
.theme-toggle span{position:absolute;transition:opacity .25s ease,transform .35s var(--v7-ease)}
html[data-theme="light"] .theme-moon{opacity:0;transform:translateY(12px) rotate(30deg)}
html[data-theme="dark"] .theme-sun{opacity:0;transform:translateY(-12px) rotate(-30deg)}

.page-transition{position:fixed;inset:0;z-index:99999;background:var(--v7-accent);display:grid;place-items:center;transform:translateY(-101%);pointer-events:none}
.page-transition span{font-size:clamp(90px,18vw,300px);font-weight:950;letter-spacing:-.12em;color:#11110f}
.page-transition.is-entering{animation:v7PageIn .72s var(--v7-ease) both}
.page-transition.is-leaving{animation:v7PageOut .62s var(--v7-ease) both;pointer-events:auto}
@keyframes v7PageIn{0%{transform:translateY(0)}100%{transform:translateY(101%)}}
@keyframes v7PageOut{0%{transform:translateY(-101%)}100%{transform:translateY(0)}}

.md-cursor{position:fixed;left:0;top:0;width:34px;height:34px;z-index:99998;pointer-events:none;mix-blend-mode:difference;opacity:0;transform:translate3d(-50%,-50%,0);transition:opacity .2s ease,width .25s var(--v7-ease),height .25s var(--v7-ease)}
.md-cursor>span{position:absolute;inset:0;border:1px solid #fff;border-radius:50%;transition:background .25s ease,transform .25s ease}
.md-cursor.is-visible{opacity:1}
.md-cursor.is-active{width:64px;height:64px}
.md-cursor.is-active>span{background:#fff;transform:scale(.9)}

.shape-overline{display:inline-flex;align-items:center;gap:12px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.12em}
.shape-overline::before{content:"";width:28px;height:2px;background:var(--v7-accent)}
.shape-text-cta{display:inline-flex;align-items:center;gap:18px;padding:9px 0;border-bottom:1px solid currentColor;font-size:12px;font-weight:800;transition:gap .3s var(--v7-ease),color .25s ease}
.shape-text-cta:hover{gap:28px;color:#6fa800}
.shape-text-cta--light{color:#fff}.shape-text-cta--light:hover{color:var(--v7-accent)}

.goo-cta{position:relative;isolation:isolate;min-height:54px;padding:0 24px;border:0;border-radius:999px;background:var(--v7-ink);color:var(--v7-bg);display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:12px;font-weight:850;cursor:pointer;overflow:visible;transition:color .25s ease,transform .3s var(--v7-ease)}
.goo-cta::before,.goo-cta::after{content:"";position:absolute;z-index:-1;background:inherit;border-radius:50%;width:18px;height:18px;top:50%;transform:translateY(-50%) scale(.2);opacity:0;transition:transform .45s var(--v7-ease),opacity .2s ease}
.goo-cta::before{left:10%}.goo-cta::after{right:10%}
.goo-cta:hover::before{transform:translate(-22px,-50%) scale(1.25);opacity:1}
.goo-cta:hover::after{transform:translate(22px,-50%) scale(1.25);opacity:1}
.goo-cta:hover{transform:translateY(-2px)}
.goo-cta i{display:grid;place-items:center;font-style:normal;transition:transform .3s var(--v7-ease)}
.goo-cta:hover i{transform:translate(3px,-3px)}
.goo-cta--green{background:var(--v7-accent);color:#11110f}

/* Hero */
.shape-hero-v7{position:relative;min-height:100vh;padding:clamp(150px,16vh,210px) 0 clamp(70px,8vw,120px);background:var(--v7-bg);color:var(--v7-ink);overflow:hidden}
.shape-hero-v7::before{content:"";position:absolute;width:40vw;height:40vw;right:-18vw;top:-20vw;border-radius:50%;background:var(--v7-accent);filter:blur(100px);opacity:.09;pointer-events:none}
.shape-hero-v7__intro{position:relative;z-index:2}
.shape-hello{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:750;margin-bottom:30px}
.shape-dot{width:8px;height:8px;border-radius:50%;background:var(--v7-accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--v7-accent) 20%,transparent)}
.shape-hero-v7__title-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:end}
.shape-hero-v7 h1{font-size:clamp(64px,6.2vw,118px);line-height:.84;max-width:none;letter-spacing:-.075em}
.shape-hero-v7 h1>span{display:block;white-space:nowrap}
.shape-hero-v7 h1 em{font-style:normal;font-weight:410;color:var(--v7-muted)}
.shape-hero-v7__actions{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding-bottom:10px}

.shape-stage-v7{position:relative;margin-top:clamp(56px,7vw,110px);min-height:clamp(520px,52vw,900px)}
.shape-stage-v7__grid{position:absolute;inset:0;perspective:1400px}
.shape-stage-card{position:absolute;border-radius:18px;overflow:hidden;background:#1c1c19;box-shadow:0 30px 90px rgba(0,0,0,.16);transition:transform .65s var(--v7-ease),box-shadow .5s ease;will-change:transform}
.shape-stage-card img{height:100%;object-fit:cover;transition:transform .8s var(--v7-ease),filter .6s ease}
.shape-stage-card>span{position:absolute;left:14px;right:14px;bottom:14px;padding:13px 14px;border-radius:12px;background:rgba(17,17,15,.82);color:#fff;backdrop-filter:blur(14px);display:flex;align-items:end;justify-content:space-between;gap:12px;transform:translateY(130%);transition:transform .45s var(--v7-ease)}
.shape-stage-card>span b{font-size:13px}.shape-stage-card>span small{max-width:18ch;text-align:right;font-size:8px;line-height:1.25;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.68)}
.shape-stage-card:hover{box-shadow:0 40px 110px rgba(0,0,0,.26)}
.shape-stage-card:hover img{transform:scale(1.045);filter:saturate(1.08)}
.shape-stage-card:hover>span{transform:none}
.shape-stage-card--1{left:0;top:13%;width:29%;height:46%;transform:rotate(-2.5deg)}
.shape-stage-card--2{left:26%;top:0;width:26%;height:36%;transform:rotate(1.6deg)}
.shape-stage-card--3{left:49%;top:17%;width:34%;height:45%;transform:rotate(-1deg);z-index:2}
.shape-stage-card--4{right:0;top:2%;width:20%;height:32%;transform:rotate(2.5deg)}
.shape-stage-card--5{left:32%;bottom:0;width:31%;height:34%;transform:rotate(1.4deg)}
.shape-stage-card:hover{transform:translateY(-14px) rotate(0deg)!important;z-index:6}
.shape-stage-stamp{position:absolute;right:4%;bottom:12%;width:150px;aspect-ratio:1;border-radius:50%;background:var(--v7-accent);color:#11110f;display:grid;place-content:center;text-align:center;transform:rotate(8deg);box-shadow:0 18px 45px rgba(0,0,0,.12);z-index:4}
.shape-stage-stamp strong{font-size:48px;line-height:.8;letter-spacing:-.08em}.shape-stage-stamp span{margin-top:8px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;line-height:1.35}
.shape-stage-note{position:absolute;left:2%;bottom:4%;display:flex;gap:6px;flex-wrap:wrap;max-width:260px}
.shape-stage-note span{padding:7px 9px;border:1px solid var(--v7-line);border-radius:999px;font-size:8px;font-weight:800;letter-spacing:.08em}
.shape-floating-contact{position:absolute;right:2%;top:47%;z-index:8;width:146px;aspect-ratio:1;border-radius:50%;background:var(--v7-ink);color:var(--v7-bg);display:flex;flex-direction:column;justify-content:center;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.24);transition:transform .35s var(--v7-ease),background .25s ease}
.shape-floating-contact span{font-size:8px;text-transform:uppercase;letter-spacing:.08em;opacity:.65}.shape-floating-contact b{font-size:18px;line-height:.96;margin-top:8px;letter-spacing:-.04em}.shape-floating-contact i{font-style:normal;margin-top:12px;font-size:20px}.shape-floating-contact:hover{background:var(--v7-accent);color:#11110f}

/* Intro */
.shape-intro-v7{padding:clamp(110px,11vw,190px) 0 0;background:var(--v7-dark);color:#fff;overflow:hidden}
.shape-intro-v7__grid{display:grid;grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);gap:clamp(45px,7vw,130px)}
.shape-intro-v7__label{display:flex;align-items:flex-start;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.52);padding-top:10px}
.shape-intro-v7__label i{font-style:normal;font-size:22px;color:var(--v7-accent)}
.shape-intro-v7__copy h2{font-size:clamp(42px,5.5vw,100px);line-height:.93;max-width:15ch}
.shape-intro-v7__copy h2 em{font-style:normal;color:rgba(255,255,255,.42);font-weight:420}
.shape-intro-v7__bottom{margin-top:clamp(42px,6vw,90px);display:grid;grid-template-columns:minmax(0,560px) auto;gap:40px;align-items:end}
.shape-intro-v7__bottom p{margin:0;color:rgba(255,255,255,.64);font-size:15px;line-height:1.72}
.shape-ticker-v7{margin-top:clamp(90px,9vw,150px);border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);overflow:hidden}
.shape-ticker-v7__track{width:max-content;display:flex;align-items:center;gap:34px;padding:24px 0;animation:v7Ticker 32s linear infinite}
.shape-ticker-v7__track span{font-size:clamp(30px,3.4vw,64px);font-weight:850;letter-spacing:-.055em;white-space:nowrap;color:rgba(255,255,255,.88)}
.shape-ticker-v7__track i{color:var(--v7-accent);font-style:normal}
@keyframes v7Ticker{to{transform:translateX(-45%)}}

/* Work */
.shape-work-v7{padding:clamp(120px,10vw,180px) 0;background:var(--v7-dark);color:#fff}
.shape-section-head-v7{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.48fr);gap:clamp(40px,7vw,120px);align-items:end;margin-bottom:clamp(60px,8vw,120px)}
.shape-section-head-v7 h2{margin-top:26px;font-size:clamp(52px,6vw,110px);max-width:11ch}.shape-section-head-v7 h2 em{font-style:normal;color:rgba(255,255,255,.35);font-weight:420}.shape-section-head-v7>div:last-child p{color:rgba(255,255,255,.6);font-size:14px;margin-bottom:28px}
.shape-project-grid-v7{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(60px,7vw,120px) 22px;align-items:start}
.shape-project-v7{grid-column:span 6;min-width:0}.shape-project-v7--2{margin-top:110px}.shape-project-v7--3{grid-column:2/span 5}.shape-project-v7:nth-of-type(5n){grid-column:7/span 5}
.shape-project-v7__media{display:block;aspect-ratio:1122/1402;overflow:hidden;border-radius:18px;background:#222;position:relative}
.shape-project-v7__media img{height:100%;object-fit:cover;transition:transform .9s var(--v7-ease),filter .5s ease}
.shape-project-v7__open{position:absolute;right:20px;top:20px;width:94px;aspect-ratio:1;border-radius:50%;background:var(--v7-accent);color:#11110f;display:grid;place-content:center;text-align:center;font-size:10px;font-weight:850;text-transform:uppercase;line-height:1.2;transform:scale(0) rotate(-18deg);transition:transform .5s var(--v7-ease)}
.shape-project-v7__open i{font-style:normal;margin-top:5px}.shape-project-v7__media:hover img{transform:scale(1.045)}.shape-project-v7__media:hover .shape-project-v7__open{transform:scale(1) rotate(0)}
.shape-project-v7__meta{display:flex;justify-content:space-between;gap:20px;align-items:start;padding-top:18px}.shape-project-v7__meta small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.48)}.shape-project-v7__meta h3{margin-top:6px;font-size:clamp(30px,3.2vw,58px);letter-spacing:-.06em}.shape-project-v7__meta>span{font-size:9px;color:rgba(255,255,255,.46)}
.shape-project-v7>p{max-width:58ch;margin:16px 0 0;color:rgba(255,255,255,.58);font-size:12px}
.shape-project-break-v7{grid-column:1/-1;margin:clamp(30px,4vw,60px) 0;min-height:260px;border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);display:grid;grid-template-columns:.5fr 1fr auto;align-items:center;gap:30px}.shape-project-break-v7>span{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.5)}.shape-project-break-v7>strong{font-size:clamp(34px,4vw,70px);line-height:.95;letter-spacing:-.055em}

/* Services */
.shape-services-v7{padding:clamp(110px,10vw,180px) 0;background:var(--v7-surface);color:var(--v7-ink)}
.shape-services-v7__head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;margin-bottom:clamp(70px,8vw,120px)}
.shape-services-v7__head>span{grid-column:1/-1}.shape-services-v7__head h2{font-size:clamp(50px,6vw,108px);max-width:12ch}.shape-services-v7__head h2 em{font-style:normal;color:var(--v7-muted);font-weight:420}
.shape-services-v7__layout{display:grid;grid-template-columns:minmax(360px,.72fr) minmax(0,1fr);gap:clamp(50px,7vw,120px);align-items:start}
.shape-services-v7__visual{position:sticky;top:110px;min-height:620px;border-radius:22px;background:var(--v7-ink);color:var(--v7-bg);overflow:hidden;padding:30px;display:flex;flex-direction:column;isolation:isolate}
.shape-service-orbit{position:absolute;inset:0;pointer-events:none}.shape-service-orbit span{position:absolute;border:1px solid color-mix(in srgb,var(--v7-accent) 55%,transparent);border-radius:50%;animation:v7Orbit 12s linear infinite}.shape-service-orbit span:nth-child(1){width:74%;aspect-ratio:1;right:-24%;top:-8%}.shape-service-orbit span:nth-child(2){width:58%;aspect-ratio:1;left:-22%;bottom:-8%;animation-direction:reverse;animation-duration:17s}.shape-service-orbit span:nth-child(3){width:20%;aspect-ratio:1;left:20%;top:23%;background:var(--v7-accent);border:0;filter:blur(2px);opacity:.88;animation-duration:9s}@keyframes v7Orbit{to{transform:rotate(360deg)}}
.shape-service-visual-copy{position:relative;z-index:2;margin:auto 0}.shape-service-visual-copy small{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--v7-accent)}.shape-service-visual-copy strong{display:block;margin-top:18px;font-size:clamp(48px,5vw,88px);line-height:.88;letter-spacing:-.07em}.shape-service-visual-copy p{max-width:36ch;margin-top:26px;color:rgba(255,255,255,.58);font-size:13px}
.shape-service-visual-tags{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:7px}.shape-service-visual-tags span{padding:7px 9px;border:1px solid rgba(255,255,255,.2);border-radius:999px;font-size:8px;letter-spacing:.08em}
.shape-services-v7__rows{border-top:1px solid var(--v7-line)}
.shape-service-row-v7{min-height:128px;display:grid;grid-template-columns:52px 1fr 52px;gap:20px;align-items:center;border-bottom:1px solid var(--v7-line);transition:padding .4s var(--v7-ease),background .3s ease}
.shape-service-row-v7>span{font-size:9px;color:var(--v7-muted)}.shape-service-row-v7 small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--v7-muted)}.shape-service-row-v7 h3{margin-top:6px;font-size:clamp(26px,2.5vw,46px);letter-spacing:-.055em}.shape-service-row-v7 i{font-style:normal;width:44px;aspect-ratio:1;border-radius:50%;border:1px solid var(--v7-line);display:grid;place-items:center;transition:background .25s,color .25s,transform .3s var(--v7-ease)}.shape-service-row-v7:hover,.shape-service-row-v7.is-active{padding-inline:16px;background:color-mix(in srgb,var(--v7-accent) 12%,transparent)}.shape-service-row-v7:hover i,.shape-service-row-v7.is-active i{background:var(--v7-accent);color:#11110f;transform:rotate(10deg)}

/* Quote */
.shape-quote-v7{padding:clamp(100px,10vw,170px) 0;background:var(--v7-bg);color:var(--v7-ink)}
.shape-quote-v7__grid{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1fr);gap:clamp(45px,7vw,120px);align-items:center}
.shape-quote-v7__visual{position:relative;border-radius:20px;overflow:hidden;min-height:620px}.shape-quote-v7__visual img{position:absolute;inset:0;height:100%;object-fit:cover}.shape-quote-v7__visual>span{position:absolute;left:18px;bottom:18px;background:rgba(17,17,15,.85);color:#fff;padding:10px 12px;border-radius:999px;font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.shape-quote-v7 blockquote{margin:0;font-size:clamp(38px,4.7vw,82px);line-height:.98;letter-spacing:-.065em}.shape-quote-v7 blockquote>span{display:block;margin-bottom:38px;color:#6fa800;font-size:16px;letter-spacing:.12em}.shape-quote-v7 blockquote footer{margin-top:46px;padding-top:18px;border-top:1px solid var(--v7-line);display:grid;grid-template-columns:1fr 1fr auto;gap:20px;align-items:center;font-size:10px}.shape-quote-v7 blockquote footer small{color:var(--v7-muted)}.shape-quote-v7 blockquote footer a{text-decoration:underline;text-underline-offset:4px}

/* Process */
.shape-process-v7{padding:clamp(110px,10vw,180px) 0;background:var(--v7-dark);color:#fff}
.shape-process-v7__grid{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1fr);gap:clamp(50px,8vw,140px)}
.shape-process-v7__sticky{position:sticky;top:110px;align-self:start}.shape-process-v7__sticky h2{margin-top:26px;font-size:clamp(46px,5vw,90px);max-width:10ch}.shape-process-v7__sticky h2 em{font-style:normal;color:rgba(255,255,255,.38);font-weight:420}.shape-process-v7__sticky p{max-width:48ch;margin:34px 0;color:rgba(255,255,255,.58)}
.shape-process-v7__steps{border-top:1px solid rgba(255,255,255,.15)}.shape-process-v7__steps article{min-height:180px;padding:28px 0;display:grid;grid-template-columns:66px minmax(190px,.6fr) 1fr;gap:24px;align-items:start;border-bottom:1px solid rgba(255,255,255,.15)}.shape-process-v7__steps article>span{color:var(--v7-accent);font-size:10px}.shape-process-v7__steps h3{font-size:clamp(28px,3vw,52px)}.shape-process-v7__steps p{margin:0;color:rgba(255,255,255,.57);font-size:13px}

/* Local */
.shape-local-v7{padding:clamp(110px,10vw,180px) 0;background:var(--v7-bg);color:var(--v7-ink)}
.shape-local-v7__grid{display:grid;grid-template-columns:1fr minmax(300px,.48fr);gap:clamp(40px,7vw,120px);align-items:end}.shape-local-v7__grid h2{margin-top:26px;font-size:clamp(48px,5.6vw,98px);max-width:12ch}.shape-local-v7__grid h2 em{font-style:normal;color:var(--v7-muted);font-weight:420}.shape-local-v7__copy p{margin-bottom:28px}
.shape-local-v7__cards{margin-top:clamp(60px,7vw,110px);display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.shape-local-v7__cards>a{grid-column:span 3;min-height:300px;padding:24px;border:1px solid var(--v7-line);border-radius:18px;display:flex;flex-direction:column;transition:transform .35s var(--v7-ease),background .3s ease,color .3s ease}.shape-local-v7__cards>a>span{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:var(--v7-muted)}.shape-local-v7__cards>a>strong{margin:auto 0;font-size:clamp(34px,3.2vw,58px);letter-spacing:-.06em}.shape-local-v7__cards>a>small{font-size:9px;line-height:1.4;color:var(--v7-muted)}.shape-local-v7__cards>a>i{margin-top:18px;font-style:normal;font-size:22px}.shape-local-v7__cards>a:hover{transform:translateY(-8px);background:var(--v7-accent);color:#11110f}.shape-local-v7__cards>a:hover>span,.shape-local-v7__cards>a:hover>small{color:rgba(17,17,15,.6)}.shape-local-v7__cards .shape-local-v7__france{grid-column:span 12;min-height:220px;background:var(--v7-ink);color:var(--v7-bg);display:grid;grid-template-columns:.4fr 1fr .7fr auto;align-items:center;gap:30px}.shape-local-v7__france>strong{font-size:clamp(52px,6vw,100px)!important;margin:0!important}.shape-local-v7__france>small{max-width:30ch}.shape-local-v7__france>i{font-size:34px!important;margin:0!important}

/* Journal */
.shape-journal-v7{padding:clamp(110px,10vw,180px) 0;background:var(--v7-dark);color:#fff;overflow:hidden}
.shape-journal-v7__rail{width:100%}.shape-journal-v7__track{padding-left:max(32px,calc((100vw - min(1760px,calc(100vw - 64px)))/2));padding-right:32px;gap:18px;scroll-snap-type:x mandatory;overflow-x:auto;display:flex;scrollbar-width:none}.shape-journal-v7__track::-webkit-scrollbar{display:none}
.shape-journal-card-v7{flex:0 0 min(560px,70vw);min-height:480px;padding:30px;border:1px solid rgba(255,255,255,.15);border-radius:20px;display:flex;flex-direction:column;scroll-snap-align:start;transition:background .3s ease,color .3s ease,transform .35s var(--v7-ease)}.shape-journal-card-v7>span{font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.48)}.shape-journal-card-v7 h3{margin:auto 0 24px;font-size:clamp(34px,3.4vw,58px);line-height:.95}.shape-journal-card-v7 p{color:rgba(255,255,255,.58);font-size:12px;max-width:48ch}.shape-journal-card-v7 footer{margin-top:30px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;align-items:center}.shape-journal-card-v7 footer small{color:rgba(255,255,255,.45)}.shape-journal-card-v7 footer i{font-style:normal;font-size:22px}.shape-journal-card-v7:hover{background:var(--v7-accent);color:#11110f;transform:translateY(-8px)}.shape-journal-card-v7:hover p,.shape-journal-card-v7:hover>span,.shape-journal-card-v7:hover footer small{color:rgba(17,17,15,.62)}.shape-journal-card-v7:hover footer{border-color:rgba(17,17,15,.18)}

.shape-faq-v7{padding:clamp(110px,10vw,180px) 0;background:var(--v7-surface);color:var(--v7-ink)}
.shape-faq-v7 .faq-heading h2{font-size:clamp(48px,5vw,90px)}
.shape-faq-v7 .faq-item summary{min-height:98px}

.shape-final-v7{padding:clamp(110px,11vw,200px) 0;background:var(--v7-dark);color:#fff}
.shape-final-v7__inner>span{display:block;margin-bottom:24px;color:rgba(255,255,255,.5);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.shape-final-v7 h2{font-size:clamp(58px,7vw,128px);max-width:12ch}.shape-final-v7 h2 em{font-style:normal;color:rgba(255,255,255,.35);font-weight:420}.shape-final-v7__inner>div{margin-top:50px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}

/* V7 global polish for inner pages */
body:not(.home-v7) .page-hero{background:var(--v7-bg);color:var(--v7-ink)}
body:not(.home-v7) .page-hero h1{font-size:clamp(58px,7vw,126px);letter-spacing:-.075em}
body:not(.home-v7) .page-hero::after{content:"HOOKED / STUDIO / 2026";position:absolute;right:4vw;bottom:4vw;font-size:8px;letter-spacing:.14em;color:var(--v7-muted)}
body:not(.home-v7) .page-hero{position:relative;overflow:hidden}
body:not(.home-v7) .page-hero::before{content:"";position:absolute;width:26vw;aspect-ratio:1;border-radius:50%;right:-8vw;top:12%;background:var(--v7-accent);filter:blur(80px);opacity:.1;pointer-events:none}
body:not(.home-v7) .portfolio-v6-media,
body:not(.home-v7) .project-media,
body:not(.home-v7) .project-hero-media{border-radius:18px;clip-path:none!important}
body:not(.home-v7) .portfolio-v6-link:hover .portfolio-v6-media img{transform:scale(1.045)}
body:not(.home-v7) .filter-chip{border-radius:999px}
body:not(.home-v7) .filter-chip.is-active{background:var(--v7-accent);color:#11110f;border-color:var(--v7-accent)}
body:not(.home-v7) .directory-service,
body:not(.home-v7) .article-card,
body:not(.home-v7) .quote-card,
body:not(.home-v7) .process-step,
body:not(.home-v7) .service-signature-card{border-radius:18px;clip-path:none!important}
body:not(.home-v7) [data-reveal]{transition-duration:.8s}

/* Reveal becomes softer and more cinematic */
[data-reveal]{opacity:0;transform:translateY(34px) scale(.99);filter:blur(4px);transition:opacity .85s var(--v7-ease),transform .85s var(--v7-ease),filter .85s var(--v7-ease)}
[data-reveal].is-visible{opacity:1;transform:none;filter:none}

@media(max-width:1180px){
  .status,.nav-contact-link{display:none}
  .shape-stage-card--1{width:34%}.shape-stage-card--2{left:29%;width:30%}.shape-stage-card--3{left:51%;width:38%}.shape-stage-card--4{right:-3%;width:24%}.shape-stage-card--5{left:34%;width:35%}
  .shape-services-v7__layout{grid-template-columns:minmax(320px,.62fr) minmax(0,1fr)}
  .shape-services-v7__visual{min-height:560px}
  .shape-project-v7--2{margin-top:70px}
}

@media(max-width:980px){
  .shape-hero-v7{min-height:auto;padding-top:130px}
  .shape-hero-v7__title-wrap{grid-template-columns:1fr}.shape-hero-v7__actions{flex-direction:row;align-items:center;flex-wrap:wrap}
  .shape-stage-v7{min-height:720px}.shape-stage-card--1{left:0;top:5%;width:48%;height:35%}.shape-stage-card--2{left:auto;right:0;top:0;width:45%;height:31%}.shape-stage-card--3{left:8%;top:39%;width:58%;height:35%}.shape-stage-card--4{right:0;top:35%;width:31%;height:24%}.shape-stage-card--5{left:auto;right:4%;bottom:0;width:48%;height:30%}.shape-stage-stamp{right:auto;left:1%;bottom:4%;width:120px}.shape-floating-contact{top:64%;right:6%;width:122px}
  .shape-intro-v7__grid,.shape-services-v7__layout,.shape-quote-v7__grid,.shape-process-v7__grid{grid-template-columns:1fr}.shape-intro-v7__label{max-width:180px}.shape-intro-v7__bottom{grid-template-columns:1fr}.shape-services-v7__visual{position:relative;top:auto;min-height:430px}.shape-service-orbit span:nth-child(1){width:48%}.shape-service-visual-copy strong{font-size:clamp(48px,8vw,76px)}
  .shape-project-grid-v7{gap-top:80px}.shape-project-v7,.shape-project-v7--3,.shape-project-v7:nth-of-type(5n){grid-column:span 6}.shape-project-v7--2{margin-top:60px}.shape-project-break-v7{grid-template-columns:1fr auto}.shape-project-break-v7>span{grid-column:1/-1}.shape-quote-v7__visual{min-height:480px}.shape-process-v7__sticky{position:relative;top:auto}.shape-local-v7__grid{grid-template-columns:1fr}.shape-local-v7__cards>a{grid-column:span 6}.shape-local-v7__cards .shape-local-v7__france{grid-template-columns:1fr auto;grid-column:span 12}.shape-local-v7__france>span,.shape-local-v7__france>small{grid-column:1/-1}.shape-section-head-v7{grid-template-columns:1fr}.shape-section-head-v7>div:last-child{max-width:600px}
}

@media(max-width:760px){
  :root{--shell:min(100% - 36px,1760px)}
  body.home-v7 .site-header{background:color-mix(in srgb,var(--v7-bg) 94%,transparent)}
  .theme-toggle{width:38px;height:38px}.nav-book{display:none}
  .shape-hero-v7{padding:112px 0 62px}.shape-hello{margin-bottom:22px}.shape-hero-v7 h1{font-size:clamp(54px,15vw,78px);line-height:.88}.shape-hero-v7__actions{gap:14px}.goo-cta{min-height:50px;padding:0 20px}
  .shape-stage-v7{margin-top:48px;min-height:640px}.shape-stage-card{border-radius:14px}.shape-stage-card>span{transform:none;padding:10px;left:8px;right:8px;bottom:8px}.shape-stage-card>span small{display:none}.shape-stage-card--1{width:57%;height:29%;top:0}.shape-stage-card--2{width:41%;height:25%;top:4%}.shape-stage-card--3{left:3%;top:31%;width:72%;height:31%}.shape-stage-card--4{top:30%;right:-4%;width:30%;height:22%}.shape-stage-card--5{right:0;width:60%;height:28%}.shape-stage-stamp{width:94px;bottom:3%}.shape-stage-stamp strong{font-size:36px}.shape-floating-contact{right:0;top:61%;width:108px}
  .shape-intro-v7{padding-top:92px}.shape-intro-v7__grid{gap:34px}.shape-intro-v7__copy h2{font-size:clamp(42px,12vw,68px)}.shape-intro-v7__bottom{margin-top:36px}.shape-ticker-v7{margin-top:70px}.shape-ticker-v7__track{padding:18px 0;gap:22px}
  .shape-work-v7,.shape-services-v7,.shape-quote-v7,.shape-process-v7,.shape-local-v7,.shape-journal-v7,.shape-faq-v7{padding:92px 0}.shape-section-head-v7,.shape-services-v7__head{margin-bottom:56px}.shape-section-head-v7 h2,.shape-services-v7__head h2{font-size:clamp(48px,13vw,74px)}
  .shape-project-grid-v7{display:block}.shape-project-v7,.shape-project-v7--2,.shape-project-v7--3{margin:0 0 66px}.shape-project-v7__media{aspect-ratio:1122/1402}.shape-project-break-v7{margin:10px 0 70px;padding:38px 0;display:flex;flex-direction:column;align-items:flex-start}.shape-project-break-v7>strong{font-size:42px}.shape-project-v7__open{width:80px;transform:scale(1);font-size:9px}
  .shape-hero-v7 h1>span{white-space:normal}
  .shape-services-v7__head{grid-template-columns:1fr}.shape-services-v7__head>span{grid-column:auto}.shape-services-v7__visual{min-height:360px;padding:22px}.shape-service-row-v7{grid-template-columns:40px 1fr 42px;min-height:105px;gap:12px}.shape-service-row-v7 h3{font-size:28px}.shape-service-row-v7>span{font-size:8px}.shape-service-row-v7:hover,.shape-service-row-v7.is-active{padding-inline:8px}
  .shape-quote-v7__visual{min-height:330px}.shape-quote-v7 blockquote{font-size:clamp(38px,10vw,58px)}.shape-quote-v7 blockquote footer{grid-template-columns:1fr 1fr}.shape-quote-v7 blockquote footer a{grid-column:1/-1}
  .shape-process-v7__steps article{grid-template-columns:42px 1fr;padding:24px 0}.shape-process-v7__steps article p{grid-column:2}.shape-local-v7__cards{display:block}.shape-local-v7__cards>a{min-height:220px;margin-bottom:12px}.shape-local-v7__cards .shape-local-v7__france{display:flex;flex-direction:column;align-items:flex-start;min-height:300px}.shape-local-v7__france>strong{font-size:56px!important}.shape-journal-card-v7{flex-basis:84vw;min-height:420px;padding:22px}.shape-journal-v7__track{padding-left:18px;padding-right:18px}.shape-final-v7{padding:100px 0}.shape-final-v7 h2{font-size:clamp(54px,14vw,82px)}
  .md-cursor{display:none}
}

@media(max-width:520px){
  :root{--shell:calc(100vw - 28px)}
  .shape-stage-v7{min-height:580px}.shape-stage-card--1{width:61%}.shape-stage-card--2{width:42%}.shape-stage-card--3{width:76%}.shape-stage-card--4{width:32%}.shape-stage-card--5{width:63%}.shape-stage-stamp{width:82px}.shape-floating-contact{width:96px;padding:16px}.shape-floating-contact b{font-size:15px}
  .shape-service-visual-copy strong{font-size:46px}.shape-service-visual-copy p{font-size:12px}.shape-service-orbit span:nth-child(3){width:30%}
  .shape-service-row-v7 h3{font-size:24px}.shape-service-row-v7 small{display:none}
}

@media(prefers-reduced-motion:reduce){
  .shape-ticker-v7__track,.shape-service-orbit span{animation:none!important}
  .shape-stage-card,.shape-project-v7__media img,.page-transition,.md-magnetic{transition:none!important}
  [data-reveal]{opacity:1!important;transform:none!important;filter:none!important}
}

/* ========================================================================== 
   V8 — Hooked Studio / unified system
   Brand source: uploaded Hooked Studio logo — sage #BFD8B8 / black / white.
   ========================================================================== */
:root{
  --green:#bfd8b8;
  --green-soft:#dbe9d7;
  --v7-accent:#bfd8b8;
  --v7-bg:#f6f4ef;
  --v7-surface:#fffefa;
  --v7-ink:#0a0a0a;
  --v7-ink-soft:#171717;
  --v7-dark:#090909;
  --v7-dark-2:#111;
  --v7-light:#f8f7f2;
  --v7-muted:rgba(10,10,10,.60);
  --v7-line:rgba(10,10,10,.14);
  --cream:#f6f4ef;
  --paper:#fffefa;
  --ink:#0a0a0a;
  --ink-2:#151515;
  --radius:26px;
  --shadow:0 30px 90px rgba(0,0,0,.08);
}
html[data-theme="dark"]{
  --v7-bg:#090909;--v7-surface:#111;--v7-ink:#f8f7f2;--v7-ink-soft:#f8f7f2;
  --v7-muted:rgba(255,255,255,.6);--v7-line:rgba(255,255,255,.15);
}
.hooked-site{font-feature-settings:"kern" 1,"liga" 1;background:var(--v7-bg);color:var(--v7-ink)}
.hooked-site .site-header{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.hooked-brand{width:min(250px,23vw);min-width:185px;height:54px;display:flex;align-items:center}
.brand-logo{display:block;width:100%;height:auto;max-height:52px;object-fit:contain;object-position:left center}
.brand-logo-dark{display:none}
html[data-theme="dark"] .brand-logo-light{display:none}
html[data-theme="dark"] .brand-logo-dark{display:block}
.hooked-header .nav-shell{grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr)}
.hooked-header .nav-main-link{font-size:11px;letter-spacing:.01em}
.hooked-header .nav-main-link.is-current{font-weight:900}
.hooked-header .nav-external>span{font-size:10px}
.hooked-header .nav-book{border-radius:999px;padding-inline:18px}
.hooked-mega .mega-intro p{font-size:11px;color:rgba(255,255,255,.58);max-width:32ch;margin:0}
.page-transition span{font-size:clamp(56px,10vw,180px);font-weight:900;letter-spacing:-.09em}

/* Explain Hooked more clearly on the home. */
.home-hooked .shape-hero-v7 h1{max-width:none}
.home-hooked .shape-hero-v7 h1 em{color:#86a17f}
html[data-theme="dark"] .home-hooked .shape-hero-v7 h1 em{color:#bfd8b8}
.hooked-hero-motion{margin-top:clamp(38px,5vw,76px);position:relative;z-index:2}
.hooked-hero-motion .hi-shell{min-height:0}
.hooked-meaning__steps article:hover>span{color:#080808!important}
.shape-project-grid-v7>.shape-project-v7{grid-column:span 6!important;margin-top:0!important}
.shape-project-grid-v7>.shape-project-v7:nth-of-type(even){margin-top:clamp(34px,4vw,70px)!important}
@media(max-width:760px){.shape-project-grid-v7>.shape-project-v7,.shape-project-grid-v7>.shape-project-v7:nth-of-type(even){margin-top:0!important}}
.shape-testimonials-home__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.44fr);gap:clamp(42px,7vw,120px);align-items:end;margin-bottom:clamp(42px,5vw,72px)}
.shape-testimonials-home__head h2{margin-top:24px;font-size:clamp(48px,5.8vw,104px);line-height:.92;letter-spacing:-.065em}
.shape-testimonials-home__head h2 em{font-style:normal;color:var(--v7-muted);font-weight:420}
.shape-testimonials-home__head p{margin:0 0 28px;max-width:48ch;font-size:14px;line-height:1.7;color:var(--v7-muted)}
.shape-testimonials-home__head .goo-cta{width:max-content}
.shape-testimonials-home .testimonial-full blockquote{font-size:clamp(34px,3.7vw,62px);line-height:.98;letter-spacing:-.055em}
.shape-testimonials-home .testimonial-full blockquote>span{display:inline;margin:0;color:inherit;font-size:inherit;letter-spacing:inherit}
@media(max-width:980px){.shape-testimonials-home__head{grid-template-columns:1fr}.shape-testimonials-home__head>div:last-child{max-width:620px}}
@media(max-width:560px){.shape-testimonials-home__head h2{font-size:clamp(44px,12vw,64px)}.shape-testimonials-home__head .goo-cta{width:100%}.shape-testimonials-home .testimonial-full blockquote{font-size:30px}}
.service-page .service-story-media{aspect-ratio:1122/1402;width:min(760px,100%);justify-self:center}
.service-page .service-story-media img{object-position:center top}
.service-page .related-project-rail .project-media{aspect-ratio:1122/1402!important}
.process42-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(44px,6vw,90px) 24px}
.process42-visual-a,.process42-visual-b,.process42-visual-c,.process42-visual-d{width:100%;aspect-ratio:1122/1402;transform:none;margin:0}
.process42-visual-b,.process42-visual-d{transform:translateY(clamp(28px,3vw,52px))}
.process42-visual img{object-position:center top}
.local-proof-showcase{margin-top:clamp(42px,5vw,72px)}
.local-proof-toolbar{margin-bottom:18px}
.local-proof-rail{gap:22px;padding-bottom:34px}
.local-proof-slide{position:relative;flex-basis:min(760px,calc(50vw - 44px));aspect-ratio:1122/1402;overflow:hidden;background:#d8d4ca}
.local-proof-slide img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .55s var(--ease),filter .35s var(--ease)}
.local-proof-slide:hover img{transform:scale(1.025);filter:saturate(1.04) contrast(1.02)}
@media(max-width:980px){.local-proof-slide{flex-basis:min(680px,72vw)}}
@media(max-width:760px){.process42-visual-grid{grid-template-columns:1fr;gap:18px}.process42-visual-a,.process42-visual-b,.process42-visual-c,.process42-visual-d{width:100%;aspect-ratio:1122/1402;transform:none;grid-column:auto;margin:0}.local-proof-slide{flex-basis:82vw}}
.home-hooked .shape-intro-v7__copy h2 em{color:#bfd8b8}
.home-hooked .shape-stage-stamp{background:#bfd8b8}
.home-hooked .shape-stage-note span{backdrop-filter:blur(8px)}

/* Inner pages now use the same editorial rhythm as the V7 home. */
.hooked-site:not(.home-hooked) main{background:var(--v7-bg);color:var(--v7-ink)}
.hooked-site:not(.home-hooked) .page-hero,
.hooked-site:not(.home-hooked) .article-hero,
.hooked-site:not(.home-hooked) .legal-hero{min-height:min(840px,88vh);padding-top:clamp(150px,15vh,210px);padding-bottom:clamp(70px,8vw,130px);background:var(--v7-bg);color:var(--v7-ink);position:relative;overflow:hidden}
.hooked-site:not(.home-hooked) .page-hero::after{content:"HOOKED / STUDIO / 2026";right:4vw;bottom:3.5vw;color:var(--v7-muted)}
.hooked-site:not(.home-hooked) .page-hero::before{width:34vw;right:-12vw;top:-8%;background:#bfd8b8;opacity:.16;filter:blur(110px)}
.hooked-site:not(.home-hooked) .page-hero h1,
.hooked-site:not(.home-hooked) .article-hero h1,
.hooked-site:not(.home-hooked) .legal-hero h1{font-size:clamp(60px,7.6vw,138px);line-height:.86;letter-spacing:-.075em;max-width:11ch}
.hooked-site:not(.home-hooked) .page-lead{font-size:clamp(17px,1.35vw,23px);max-width:66ch;line-height:1.55}
.hooked-site:not(.home-hooked) .kicker{letter-spacing:.13em}
.hooked-site:not(.home-hooked) .kicker::before{background:#bfd8b8}
.hooked-site:not(.home-hooked) .section-pad{padding:clamp(100px,9vw,175px) 0}
.hooked-site:not(.home-hooked) .section-paper{background:var(--v7-surface);color:var(--v7-ink)}
.hooked-site:not(.home-hooked) .section-dark{background:#090909;color:#fff}
.hooked-site:not(.home-hooked) .cut-card{clip-path:none;border-radius:24px}
.hooked-site:not(.home-hooked) .project-media,
.hooked-site:not(.home-hooked) .portfolio-v6-media,
.hooked-site:not(.home-hooked) .project-hero-media{border-radius:24px;overflow:hidden}
.hooked-site:not(.home-hooked) .directory-service,
.hooked-site:not(.home-hooked) .process-step,
.hooked-site:not(.home-hooked) .quote-card,
.hooked-site:not(.home-hooked) .testimonial-full,
.hooked-site:not(.home-hooked) .service-signature-card,
.hooked-site:not(.home-hooked) .featured-article,
.hooked-site:not(.home-hooked) .article-note{border-radius:24px;clip-path:none}
.hooked-site:not(.home-hooked) .filter-chip{padding:12px 17px;border-radius:999px}
.hooked-site:not(.home-hooked) .filter-chip.is-active{background:#bfd8b8;border-color:#bfd8b8;color:#0a0a0a}
.hooked-site:not(.home-hooked) .edge-ribbon{background:#bfd8b8;color:#0a0a0a}
.hooked-site:not(.home-hooked) .button-green{background:#bfd8b8;color:#0a0a0a}
.hooked-site:not(.home-hooked) .circle-cta:hover{background:#bfd8b8}
.hooked-site:not(.home-hooked) .service-signature-board{border-radius:24px;overflow:hidden}
.hooked-site:not(.home-hooked) .process-step .process-step-number{color:#8fa989!important}
.hooked-site:not(.home-hooked) .project-open,
.hooked-site:not(.home-hooked) .portfolio-v6-media>b{background:#bfd8b8;color:#0a0a0a}
.hooked-site:not(.home-hooked) .faq-item{border-color:var(--v7-line)}
.hooked-site:not(.home-hooked) .faq-item summary i{background:#bfd8b8;color:#0a0a0a}

/* Footer — one coherent composition instead of the former multi-footer stack. */
.hooked-footer{margin:0;background:#090909;color:#fff}
.hooked-footer-cta{background:#bfd8b8;color:#0a0a0a;padding:clamp(90px,9vw,160px) 0}
.hooked-footer-cta__inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.55fr);gap:clamp(40px,7vw,120px);align-items:end}
.hooked-footer-cta__inner>.shape-overline{grid-column:1/-1}
.hooked-footer-cta h2{font-size:clamp(58px,7vw,126px);line-height:.86;letter-spacing:-.075em;max-width:11ch;color:#0a0a0a}
.hooked-footer-cta h2 em{font-style:normal;font-weight:420;color:rgba(10,10,10,.43)}
.hooked-footer-cta p{font-size:14px;line-height:1.7;color:rgba(10,10,10,.65);max-width:52ch;margin:0}
.hooked-footer-cta__actions{margin-top:30px;display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.hooked-footer-cta .goo-cta{background:#0a0a0a;color:#fff}
.hooked-footer-main{padding:clamp(72px,8vw,130px) 0 26px;background:#090909;color:#fff}
.hooked-footer-brandrow{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.45fr);gap:60px;align-items:end;padding-bottom:70px;border-bottom:1px solid rgba(255,255,255,.15)}
.hooked-footer-logo{display:block;max-width:680px}
.hooked-footer-logo img{width:100%;height:auto}
.hooked-footer-pitch span,.hooked-footer-label{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.42)}
.hooked-footer-pitch p{margin:18px 0 0;color:rgba(255,255,255,.62);font-size:13px;line-height:1.75}
.hooked-footer-grid{display:grid;grid-template-columns:1.1fr .7fr .9fr 1fr;gap:clamp(30px,5vw,88px);padding:66px 0}
.hooked-footer-grid nav{display:flex;flex-direction:column;margin-top:22px}
.hooked-footer-grid nav a{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.09);font-size:11px;color:rgba(255,255,255,.77);transition:color .25s,padding .3s var(--v7-ease)}
.hooked-footer-grid nav a i{font-style:normal;opacity:.4}
.hooked-footer-grid nav a:hover{color:#bfd8b8;padding-left:6px}
.hooked-footer-contact{display:flex;flex-direction:column;align-items:flex-start}
.hooked-footer-contact>a{margin-top:16px;font-size:12px}
.hooked-footer-contact .hooked-footer-mail{margin-top:24px;font-size:clamp(19px,1.6vw,28px);font-weight:800;letter-spacing:-.04em;color:#bfd8b8}
.hooked-footer-contact p{margin:22px 0;color:rgba(255,255,255,.5);font-size:11px;line-height:1.65}
.hooked-footer-book{border:1px solid rgba(255,255,255,.2);border-radius:999px;background:transparent;color:#fff;padding:12px 16px;display:inline-flex;align-items:center;gap:9px;font-size:10px;cursor:pointer}
.hooked-footer-book:hover{background:#bfd8b8;color:#0a0a0a;border-color:#bfd8b8}
.hooked-footer-domains{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:0 0 52px}
.hooked-footer-domains a{min-height:135px;padding:22px;border:1px solid rgba(255,255,255,.14);border-radius:18px;display:grid;grid-template-columns:1fr auto;align-items:end;transition:background .3s,color .3s,border .3s}
.hooked-footer-domains a>span{grid-column:1/-1;align-self:start;font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.4)}
.hooked-footer-domains a strong{font-size:clamp(25px,2.4vw,42px);letter-spacing:-.055em}
.hooked-footer-domains a i{font-style:normal;font-size:8px;color:rgba(255,255,255,.4)}
.hooked-footer-domains a:hover,.hooked-footer-domains .is-current{background:#bfd8b8;color:#0a0a0a;border-color:#bfd8b8}
.hooked-footer-domains a:hover>span,.hooked-footer-domains a:hover i,.hooked-footer-domains .is-current>span,.hooked-footer-domains .is-current i{color:rgba(10,10,10,.55)}
.hooked-footer-bottom{padding-top:24px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:30px;color:rgba(255,255,255,.45);font-size:8px;text-transform:uppercase;letter-spacing:.08em}
.hooked-footer-bottom>div{display:flex;gap:22px;flex-wrap:wrap}.hooked-footer-bottom a:hover{color:#bfd8b8}
.hooked-booking-dialog{clip-path:none!important;border-radius:26px;overflow:hidden}

@media(max-width:1120px){
  .hooked-brand{width:210px}.hooked-header .nav-shell{grid-template-columns:230px 1fr auto}.hooked-header .desktop-nav{justify-self:center}.hooked-header .status{display:none}
  .hooked-footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .hooked-brand{width:205px}.hooked-header .nav-shell{grid-template-columns:1fr auto}.hooked-header .desktop-nav{display:none}.hooked-header .menu-toggle{display:grid}.hooked-header .nav-book{display:none}
  .hooked-footer-cta__inner,.hooked-footer-brandrow{grid-template-columns:1fr}.hooked-footer-brandrow{gap:38px}.hooked-footer-logo{max-width:620px}
  .hooked-footer-domains{grid-template-columns:1fr}
}
@media(max-width:640px){
  .hooked-brand{width:180px;min-width:0}.hooked-header .nav-shell{min-height:72px}.hooked-footer-cta{padding:80px 0}.hooked-footer-cta h2{font-size:clamp(52px,14vw,76px)}
  .hooked-footer-grid{grid-template-columns:1fr;gap:52px}.hooked-footer-main{padding-top:68px}.hooked-footer-brandrow{padding-bottom:52px}.hooked-footer-grid{padding:52px 0}
  .hooked-footer-domains a{min-height:120px}.hooked-footer-domains a strong{font-size:28px}.hooked-footer-bottom{flex-direction:column}
  .hooked-site:not(.home-hooked) .page-hero,.hooked-site:not(.home-hooked) .article-hero,.hooked-site:not(.home-hooked) .legal-hero{min-height:auto;padding-top:118px;padding-bottom:80px}
  .hooked-site:not(.home-hooked) .page-hero::after{display:none}
}

/* Hooked V8 — explicit brand meaning */
.hooked-meaning{margin-top:clamp(70px,8vw,130px);padding:clamp(34px,4vw,62px);border:1px solid rgba(255,255,255,.16);border-radius:32px;display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(42px,7vw,110px);background:linear-gradient(135deg,rgba(191,216,184,.08),rgba(255,255,255,.015));position:relative;overflow:hidden}
.hooked-meaning:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(191,216,184,.13);filter:blur(70px);left:-110px;bottom:-150px;pointer-events:none}
.hooked-meaning__intro{position:relative;z-index:1}.hooked-meaning__intro h3{margin:24px 0 22px;font-size:clamp(42px,4.5vw,74px);line-height:.94;letter-spacing:-.065em;max-width:8ch}.hooked-meaning__intro p{max-width:48ch;color:rgba(255,255,255,.66);font-size:14px;line-height:1.78}.hooked-meaning__intro p strong,.hooked-meaning__intro p b{color:#fff}.hooked-meaning__intro small{display:inline-block;margin-top:34px;color:var(--green);font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:850}
.hooked-meaning__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:stretch;position:relative;z-index:1}.hooked-meaning__steps article{min-height:330px;padding:24px;border-radius:22px;background:rgba(255,255,255,.055);display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.09);transition:transform .35s var(--ease),background .35s var(--ease),color .35s var(--ease)}.hooked-meaning__steps article:hover{transform:translateY(-8px);background:var(--green);color:#080808}.hooked-meaning__steps article>span{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--green)}.hooked-meaning__steps article:hover>span{color:#080808}.hooked-meaning__steps strong{margin:auto 0 18px;font-size:clamp(28px,2.4vw,42px);letter-spacing:-.05em}.hooked-meaning__steps p{margin:0;font-size:12px;line-height:1.65;color:rgba(255,255,255,.58)}.hooked-meaning__steps article:hover p{color:rgba(0,0,0,.64)}
@media(max-width:980px){.hooked-meaning{grid-template-columns:1fr}.hooked-meaning__intro h3{max-width:12ch}.hooked-meaning__steps article{min-height:260px}}
@media(max-width:680px){.hooked-meaning{border-radius:22px;padding:26px}.hooked-meaning__steps{grid-template-columns:1fr}.hooked-meaning__steps article{min-height:210px}.hooked-meaning__intro h3{font-size:42px}}


/* ========================================================================== 
   Hooked V8.1 — numbered steps become strong editorial anchors
   ========================================================================== */
.hooked-site:not(.home-hooked) .process-step .process-step-number{
  font-size:clamp(82px,7vw,128px)!important;line-height:.72!important;letter-spacing:-.09em!important;
}
.process42-overview-card{grid-template-columns:92px 1fr auto;min-height:320px}
.process42-overview-card>span{font-size:clamp(56px,4.5vw,78px);font-weight:900;line-height:.78;letter-spacing:-.09em;color:#8fa989}
.process42-step{grid-template-columns:170px minmax(0,1fr) minmax(280px,.44fr)}
.process42-step-index span{font-size:clamp(74px,6.5vw,112px);font-weight:900;line-height:.72;letter-spacing:-.09em;color:#8fa989}
.process42-noise-grid span,
.trust-grid>article>span,
.principle-grid>article>span,
.value-card>span,
.next-card>span,
.hooked-meaning__steps article>span{
  display:block;font-size:clamp(48px,4.2vw,72px)!important;font-weight:900;line-height:.78;letter-spacing:-.09em!important;
}
.trust-grid>article>span,.value-card>span,.next-card>span{color:#8fa989}
.process42-noise-grid span,.principle-grid>article>span,.hooked-meaning__steps article>span{color:var(--green)}
.combine-cases>article>span{font-size:clamp(22px,2.1vw,34px);font-weight:900;letter-spacing:-.045em}
.process42-visual figcaption span{font-size:clamp(32px,3vw,50px);font-weight:900;line-height:.8;color:var(--green)}
.process42-visual figcaption{grid-template-columns:62px 1fr}

/* Avoid the oversized first line feeling visually tucked under the sticky header on inner pages. */
.hooked-site:not(.home-hooked) .page-hero,
.hooked-site:not(.home-hooked) .article-hero,
.hooked-site:not(.home-hooked) .legal-hero{scroll-margin-top:calc(var(--header-h) + 24px)}

@media(max-width:900px){
  .process42-overview-card{grid-template-columns:76px 1fr auto}
  .process42-step{grid-template-columns:1fr}
  .process42-step-index{flex-direction:row;align-items:flex-end;gap:20px}
  .process42-step-index span{font-size:82px}
}
@media(max-width:640px){
  .process42-overview-card{grid-template-columns:64px 1fr auto;min-height:240px}
  .process42-overview-card>span{font-size:54px}
  .process42-noise-grid span,.trust-grid>article>span,.principle-grid>article>span,.value-card>span,.next-card>span,.hooked-meaning__steps article>span{font-size:52px!important}
  .hooked-site:not(.home-hooked) .process-step .process-step-number{font-size:72px!important}
  .process42-visual figcaption{grid-template-columns:48px 1fr}
  .process42-visual figcaption span{font-size:36px}
}

/* ========================================================================== 
   Hooked V8.2 — brand language, stronger navigation, readable signatures,
   editorial numbering and verified AI credentials.
   ========================================================================== */
:root{--header-h:96px}

/* Header: the identity should read like a studio mark, not a tiny utility logo. */
.hooked-header .nav-shell{min-height:var(--header-h)!important;grid-template-columns:minmax(285px,1fr) auto minmax(285px,1fr);gap:32px}
.hooked-brand{width:clamp(275px,18.5vw,330px)!important;min-width:275px!important;height:72px!important;overflow:visible!important}
.hooked-brand .brand-logo{width:100%!important;height:72px!important;max-height:none!important;object-fit:contain!important;object-position:left center!important;overflow:visible!important}
.hooked-header .desktop-nav{height:var(--header-h)!important;gap:8px}
.hooked-header .nav-main-link{padding-inline:16px!important;font-size:13.5px!important;font-weight:790!important;letter-spacing:-.01em!important}
.hooked-header .nav-main-link>span{font-size:14px!important}
.hooked-header .status{font-size:9.5px!important}
.hooked-header .nav-book{min-height:48px!important;padding:11px 19px!important;font-size:11.5px!important}
.hooked-header .theme-toggle{width:44px;height:44px}
.hooked-header .nav-main-link::after{bottom:27px}

/* Footer logo: padded production asset avoids clipping the hook/ball at any scale. */
.hooked-footer-logo{overflow:visible!important}
.hooked-footer-logo img{display:block!important;width:100%!important;height:auto!important;overflow:visible!important}

/* Service signature boards: long words stay completely readable. */
.ss-canvas>strong{width:100%!important;max-width:100%!important;padding-inline:16px!important;text-align:center!important;white-space:nowrap!important;overflow:visible!important;font-size:clamp(52px,4.15vw,82px)!important;line-height:.82!important}
.ss-canvas>strong.is-long{font-size:clamp(43px,3.45vw,66px)!important;letter-spacing:-.072em!important}
.ss-canvas>strong.is-xlong{font-size:clamp(36px,2.95vw,56px)!important;letter-spacing:-.062em!important}
.service-signature-board{overflow:hidden!important}

/* Editorial numbering: if a block is sequential, the number becomes a visual anchor. */
.decision-grid>article>span,
.process42-overview-card>span,
.process42-step-index>span,
.process42-noise-grid>article>span,
.process-step>.process-step-number,
.pillar-card>span,
.principle-grid>article>span,
.trust-grid>article>span,
.value-card>span,
.next-card>span,
.shape-process-v7__steps article>span,
.hooked-meaning__steps article>span{
  display:block!important;
  font-size:clamp(64px,5.4vw,96px)!important;
  line-height:.72!important;
  letter-spacing:-.09em!important;
  font-weight:920!important;
}
.decision-grid>article>span,
.process42-noise-grid>article>span,
.process-step>.process-step-number,
.principle-grid>article>span,
.shape-process-v7__steps article>span,
.hooked-meaning__steps article>span{color:var(--green)!important}
.process42-overview-card>span,
.process42-step-index>span,
.pillar-card>span,
.trust-grid>article>span,
.value-card>span,
.next-card>span{color:#8fa989!important}

/* Realisation detail — number and label are separated instead of squeezed into a tiny caption. */
.story-split article{min-height:260px;display:flex;flex-direction:column}
.story-index{display:flex!important;align-items:flex-end;gap:18px!important;font-size:initial!important;font-weight:initial!important;letter-spacing:normal!important}
.story-index b{font-size:clamp(70px,6vw,104px);font-weight:920;line-height:.7;letter-spacing:-.09em;color:#8fa989}
.story-index small{padding-bottom:5px;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.story-split p{margin-top:auto!important;padding-top:42px}
.decision-grid{margin-top:clamp(64px,7vw,110px)}
.decision-grid article{min-height:360px!important;padding:28px!important}
.decision-grid strong{font-size:clamp(27px,2.45vw,43px)!important;max-width:11ch!important}

/* Home process is intentionally loud enough to read as a method, not metadata. */
.shape-process-v7__steps article{grid-template-columns:122px minmax(210px,.62fr) 1fr!important;min-height:220px!important;gap:28px!important}
.shape-process-v7__steps article>span{font-size:clamp(68px,5vw,90px)!important}

/* Hooked language — proprietary vocabulary without hiding the meaning behind jargon. */
.hooked-language{margin-top:clamp(76px,9vw,150px);padding:clamp(38px,5vw,72px) 0 0;border-top:1px solid rgba(255,255,255,.16);display:grid;grid-template-columns:minmax(260px,.42fr) minmax(0,1fr);gap:clamp(42px,7vw,110px)}
.hooked-language__head h3{margin:26px 0 24px;font-size:clamp(42px,4.6vw,78px);line-height:.92;letter-spacing:-.065em;max-width:10ch}
.hooked-language__head h3 em{font-style:normal;color:var(--green);font-weight:450}
.hooked-language__head p{max-width:46ch;margin:0;color:rgba(255,255,255,.6);font-size:13px;line-height:1.75}
.hooked-language__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.12)}
.hooked-language__grid article{min-height:230px;padding:26px 24px;border-right:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.hooked-language__grid article:nth-child(2n){border-right:0}
.hooked-language__grid article:hover{background:var(--green);color:#0a0a0a;transform:translateY(-4px)}
.hooked-language__grid article>span{font-size:9px;font-weight:900;letter-spacing:.13em;color:var(--green)}
.hooked-language__grid article:hover>span{color:#0a0a0a}
.hooked-language__grid strong{margin:auto 0 15px;font-size:clamp(26px,2.2vw,39px);letter-spacing:-.055em}
.hooked-language__grid p{margin:0;color:rgba(255,255,255,.56);font-size:12px;line-height:1.6}
.hooked-language__grid article:hover p{color:rgba(0,0,0,.64)}

/* IA credentials. */
.hooked-credentials{background:var(--paper)}
.hooked-credentials__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.46fr);gap:clamp(50px,7vw,120px);align-items:end;margin-bottom:clamp(54px,6vw,90px)}
.hooked-credentials__head h2{margin-top:26px;max-width:11ch}
.hooked-credentials__head>p{margin:0;font-size:14px;line-height:1.75}
.hooked-credentials__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hooked-credential-card{min-height:390px;padding:30px;border:1px solid var(--line);border-radius:26px;display:grid;grid-template-columns:130px 1fr;grid-template-rows:1fr auto;gap:20px 34px;background:var(--cream);transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.hooked-credential-card:hover{transform:translateY(-7px);background:var(--green);border-color:var(--green)}
.hooked-credential-card__index{grid-row:1 / 3;font-size:clamp(74px,6vw,112px);line-height:.72;font-weight:920;letter-spacing:-.1em;color:#8fa989}
.hooked-credential-card:hover .hooked-credential-card__index{color:#0a0a0a}
.hooked-credential-card small{display:block;margin-bottom:20px;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hooked-credential-card h3{font-size:clamp(31px,3vw,52px);max-width:11ch}
.hooked-credential-card p{margin:22px 0 0;max-width:46ch;font-size:13px}
.hooked-credential-card>strong{grid-column:2;align-self:end;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid var(--line);font-size:11px}
.hooked-credential-card>strong i{font-style:normal;font-size:17px}

@media(max-width:1320px){
  .hooked-header .nav-shell{grid-template-columns:250px 1fr auto;gap:20px}
  .hooked-brand{width:250px!important;min-width:250px!important}
  .hooked-header .nav-main-link{padding-inline:12px!important;font-size:12.5px!important}
  .hooked-header .status{display:none!important}
}
@media(max-width:1120px){
  :root{--header-h:82px}
  .hooked-header .nav-shell{grid-template-columns:230px 1fr auto!important}
  .hooked-brand{width:230px!important;min-width:230px!important;height:64px!important}
  .hooked-brand .brand-logo{height:64px!important}
  .hooked-header .desktop-nav{height:var(--header-h)!important}
  .hooked-language{grid-template-columns:1fr}
  .hooked-language__head h3{max-width:13ch}
  .hooked-credentials__head{grid-template-columns:1fr}
  .hooked-credentials__grid{grid-template-columns:1fr}
  .hooked-credential-card{min-height:320px}
  .shape-process-v7__steps article{grid-template-columns:100px minmax(180px,.55fr) 1fr!important}
}
@media(max-width:900px){
  .hooked-header .nav-shell{grid-template-columns:1fr auto!important}
  .hooked-brand{width:245px!important;min-width:0!important}
  .hooked-header .desktop-nav{display:none!important}
  .hooked-header .menu-toggle{display:grid!important}
  .decision-grid>article>span,.process42-overview-card>span,.process42-step-index>span,.process42-noise-grid>article>span,.process-step>.process-step-number,.pillar-card>span,.principle-grid>article>span,.trust-grid>article>span,.value-card>span,.next-card>span,.shape-process-v7__steps article>span,.hooked-meaning__steps article>span{font-size:72px!important}
  .shape-process-v7__steps article{grid-template-columns:88px 1fr!important}
  .shape-process-v7__steps article p{grid-column:2!important}
}
@media(max-width:680px){
  :root{--header-h:74px}
  .hooked-brand{width:218px!important;height:58px!important}
  .hooked-brand .brand-logo{height:58px!important}
  .hooked-language__grid{grid-template-columns:1fr}
  .hooked-language__grid article,.hooked-language__grid article:nth-child(2n){border-right:0;min-height:205px}
  .hooked-credential-card{grid-template-columns:1fr;min-height:0;padding:24px}
  .hooked-credential-card__index{grid-row:auto;font-size:70px}
  .hooked-credential-card>strong{grid-column:1}
  .story-index b{font-size:72px}
  .decision-grid article{min-height:260px!important}
  .decision-grid>article>span{font-size:68px!important}
  .ss-canvas>strong{font-size:clamp(46px,12vw,62px)!important}
  .ss-canvas>strong.is-long{font-size:clamp(38px,9.7vw,52px)!important}
  .ss-canvas>strong.is-xlong{font-size:clamp(32px,8.2vw,45px)!important}
}
@media(max-width:390px){
  .hooked-brand{width:198px!important}
  .hooked-language{padding-top:32px}
  .hooked-language__head h3{font-size:39px}
  .shape-process-v7__steps article{grid-template-columns:72px 1fr!important}
  .shape-process-v7__steps article>span{font-size:58px!important}
}
