/* Interior design family, shared mechanics (2026-09-22).
   Layout plumbing only: every look (type, colour, shape, hero) lives in the
   design's own skin, which is appended after this file at build time.
   The customer's colours arrive as --brand, --brand-ink, --brand-deep,
   --brand-text, --brand-soft, --accent, --accent-ink and --brand-rgb. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
figure{margin:0}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,400);letter-spacing:var(--display-tracking,0);line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:var(--h1,clamp(2.6rem,5.2vw,4.8rem))}
h2{font-size:var(--h2,clamp(1.9rem,3.2vw,3rem))}
h3{font-size:var(--h3,1.3rem);line-height:1.2}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus,var(--brand));outline-offset:3px}
.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--eyebrow,var(--brand-text))}
.meta{font-size:.82rem;letter-spacing:.04em;color:var(--ink-dim)}
.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;width:max-content}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 24px;border-radius:var(--btn-radius,8px);border:1px solid transparent;font-weight:600;font-size:.98rem;text-decoration:none;cursor:pointer;transition:transform .15s ease,background-color .2s ease,border-color .2s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--brand);color:var(--brand-ink)}
.btn-quiet{background:transparent;border-color:currentColor}
.btn:not(.btn-primary):not(.btn-quiet){background:var(--ink);color:var(--ground)}
/* full width everywhere; content keeps a readable measure */
:root{--inline:max(var(--gutter,24px),calc((100vw - var(--max,1240px))/2))}
main>section{padding:var(--sp,96px) var(--inline)}
.section-head{display:grid;gap:14px;max-width:760px;margin-bottom:40px}
.section-link{margin-top:32px}
.empty-card{display:grid;gap:18px;justify-items:start;max-width:620px;padding:32px;border:1px dashed var(--rule);border-radius:var(--radius,0)}
.empty-card p{color:var(--ink-dim)}
/* header */
.site-header{position:relative;z-index:20;background:var(--header-bg,var(--ground));color:var(--header-ink,var(--ink));border-bottom:1px solid var(--header-rule,var(--rule))}
.nav-shell{display:flex;align-items:center;gap:28px;min-height:76px;padding:0 var(--inline)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;min-width:0}
.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.brand-logo{height:40px;width:auto;max-width:150px;object-fit:contain}
.brand-mark{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:var(--mark-radius,50%);background:var(--brand);color:var(--brand-ink);font-family:var(--font-display);font-size:.95rem;letter-spacing:.04em}
.nav-links{display:flex;align-items:center;gap:24px;margin-left:auto;font-size:.95rem}
.nav-links>a{text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
.nav-links>a:hover{border-bottom-color:currentColor}
.language{display:inline-flex;gap:8px;font-size:.82rem;letter-spacing:.06em}
.language a{text-decoration:none;opacity:.7}
.language a[aria-current="true"]{opacity:1;font-weight:700}
.nav-links .nav-cta{padding:10px 18px;border-radius:var(--btn-radius,8px);background:var(--brand);color:var(--brand-ink);border:0;font-weight:600}
.menu-toggle{display:none;align-items:center;gap:10px;margin-left:auto;min-height:44px;padding:8px 14px;border:1px solid var(--rule);border-radius:var(--btn-radius,8px);background:transparent;cursor:pointer}
.menu-lines{display:grid;gap:4px;width:20px}
.menu-lines span{display:block;height:2px;border-radius:1px;background:currentColor}
/* hero plumbing: the photograph fills the section; words sit above it */
.hero{position:relative;display:flex;min-height:var(--hero-h,clamp(600px,calc(100vh - 76px),900px));padding:0;overflow:hidden;background:var(--hero-bg,#2a2926)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-focus,50% 50%)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-line{font-size:clamp(1.02rem,1.3vw,1.18rem);margin-top:18px;max-width:520px}
/* story */
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:center}
.story-copy{display:grid;gap:18px;max-width:560px}
.story-media,.process-media,.about-media,.consult-media,.piece-media,.gallery-tile,.project-photo{position:relative}
.story-media img,.process-media img,.about-media img,.consult-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg,0)}
/* work */
.work-grid{display:grid;gap:var(--grid-gap,28px)}
.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.work-card{display:grid;gap:16px;align-content:start}
.work-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius,0)}
.work-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.work-media:hover img{transform:scale(1.03)}
.work-media .count{position:absolute;left:12px;bottom:12px;padding:4px 10px;border-radius:999px;background:rgba(17,17,17,.92);color:#fff;font-size:.78rem}
.work-copy{display:grid;gap:8px}
.work-copy>p:not(.meta){color:var(--ink-dim)}
/* services */
.service-list{display:grid;gap:0}
.service{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 20px;padding:22px 0;border-top:1px solid var(--rule);text-decoration:none}
.service:last-child{border-bottom:1px solid var(--rule)}
.service-index{grid-row:span 2;font-family:var(--font-display);color:var(--brand-text)}
.service strong{font-size:1.15rem}
.service-line{color:var(--ink-dim)}
/* catalogue */
.piece-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--grid-gap,24px)}
.piece-card{display:grid;align-content:start;gap:14px}
.piece-media{aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius,0);background:var(--surface)}
.piece-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.piece-copy{display:grid;gap:8px}
.piece-copy>p:not(.meta){color:var(--ink-dim);font-size:.95rem}
.piece-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.price{font-weight:700}
/* process */
.process{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,88px);align-items:center}
.process-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg,0)}
.process-copy{display:grid;gap:18px}
.steps{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:18px}
.steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px}
.step-number{grid-row:span 2;display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-weight:700}
.steps p{color:var(--ink-dim)}
/* gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery-tile{display:block;padding:0;border:0;background:none;cursor:pointer;overflow:hidden;border-radius:var(--radius,0);aspect-ratio:1/1}
.gallery-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gallery-tile:hover img{transform:scale(1.04)}
/* visit */
.visit{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,64px);align-items:start}
.visit-copy{display:grid;gap:14px}
.visit-copy .reach{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:6px}
.visit-copy .reach a{font-weight:600}
.map-canvas{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius,0);background:var(--surface)}
.map-canvas iframe{width:100%;height:100%;border:0;display:block}
.map-address{margin:14px 0 6px;color:var(--ink-dim)}
/* quote and closing */
.quote blockquote{margin:0;display:grid;gap:18px;max-width:900px}
.quote blockquote p{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.2}
.quote cite{font-style:normal;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}
.closing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;background:var(--closing-bg,var(--brand));color:var(--closing-ink,var(--brand-ink))}
.closing>div{display:grid;gap:12px;max-width:640px}
.closing .btn-primary{background:var(--closing-btn,var(--brand-ink));color:var(--closing-btn-ink,var(--brand))}
/* inner pages */
.page-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;justify-items:start;padding-top:clamp(56px,8vw,112px);padding-bottom:40px}
.page-intro p{max-width:680px;color:var(--ink-dim);font-size:1.08rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chips button{min-height:40px;padding:8px 16px;border:1px solid var(--rule);border-radius:var(--chip-radius,999px);background:transparent;cursor:pointer;font-size:.92rem}
.chips button[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.catalogue-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px}
.search{display:grid;gap:6px;font-size:.85rem;min-width:min(320px,100%)}
.search input{min-height:44px;padding:10px 14px;border:1px solid var(--rule);border-radius:var(--field-radius,8px);background:var(--field-bg,transparent)}
.empty-note{margin-top:24px;color:var(--ink-dim)}
[hidden]{display:none!important}
.project-head{display:grid;gap:16px;justify-items:start;max-width:820px;margin-bottom:40px}
.project-head .back{font-size:.9rem}
.project-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.project-photo{overflow:hidden;border-radius:var(--radius,0);aspect-ratio:4/3}
.project-photo:first-child{grid-column:1/-1;aspect-ratio:16/9}
.project-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lightbox{max-width:min(1100px,94vw);width:100%;padding:0;border:0;background:transparent;color:#fff}
.lightbox::backdrop{background:rgba(8,8,8,.86)}
.lightbox img{width:100%;max-height:78vh;object-fit:contain}
.lightbox p{margin:12px 0}
.lightbox button{min-height:44px;padding:8px 18px;border:1px solid #fff;border-radius:999px;background:transparent;color:#fff;cursor:pointer}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.about-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg,0)}
.about-copy{display:grid;gap:16px;justify-items:start}
.about-copy p{color:var(--ink-dim)}
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,64px);align-items:start}
.contact-card{display:grid;gap:12px;justify-items:start;padding:32px;background:var(--surface);border-radius:var(--radius,0)}
.contact-card a:not(.btn){font-weight:600}
/* the consultation form */
.consult-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,72px);align-items:start;padding-top:clamp(48px,7vw,96px)}
.consult-intro{display:grid;gap:18px;position:sticky;top:24px}
.consult-media{aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius,0)}
.consult-intro p{color:var(--ink-dim)}
.pending-note{display:grid;gap:4px;padding:16px 18px;background:var(--surface);border-radius:var(--radius,0)}
.pending-note span{color:var(--ink-dim);font-size:.94rem}
.consult-form{display:grid;gap:22px}
.consult-form fieldset{margin:0;padding:0;border:0;display:grid;gap:14px;min-width:0}
.consult-form legend{float:left;width:100%;padding:0;margin-bottom:10px;font-family:var(--font-display);font-size:1.25rem}
.consult-form label:not(.choice):not(.photo-drop):not(.consent){display:grid;gap:6px;font-size:.9rem;font-weight:600}
.consult-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.consult-form select,.consult-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--field-rule,var(--rule));border-radius:var(--field-radius,8px);background:var(--field-bg,#fff);font-weight:400;font-size:1rem}
.consult-form textarea{min-height:120px;resize:vertical}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice-grid{display:flex;flex-wrap:wrap;gap:8px}
.choice{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid var(--field-rule,var(--rule));border-radius:var(--chip-radius,999px);cursor:pointer;font-size:.95rem;background:var(--field-bg,transparent)}
.choice input{accent-color:var(--brand);width:18px;height:18px;margin:0}
.choice:has(input:checked){border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.choice-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.choice-row>span{font-size:.9rem;font-weight:600;margin-right:6px}
.photo-drop{display:grid;justify-items:start;gap:4px;padding:20px;border:1px dashed var(--field-rule,var(--rule));border-radius:var(--field-radius,8px);cursor:pointer;background:var(--field-bg,transparent)}
.photo-drop input{position:absolute;width:1px;height:1px;opacity:0}
.photo-drop span{font-weight:700;color:var(--brand-text)}
.photo-drop small{color:var(--ink-dim)}
.photo-drop:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.photo-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.photo-list li{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:var(--surface)}
.photo-list img{width:100%;height:100%;object-fit:cover}
.photo-list li[data-state="sending"] img{opacity:.45}
.photo-list li[data-state="failed"]{outline:2px solid #b3261e}
.photo-list button{position:absolute;top:4px;right:4px;min-height:32px;padding:4px 10px;border:0;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;cursor:pointer;font-size:.72rem;font-weight:600}
.photo-list .photo-note{position:absolute;left:4px;bottom:4px;right:4px;font-size:.7rem;padding:2px 6px;border-radius:6px;background:rgba(0,0,0,.66);color:#fff}
.about-piece{padding:12px 16px;border-radius:var(--field-radius,8px);background:var(--brand-soft);color:var(--ink)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.95rem}
.consent input{width:18px;height:18px;margin-top:3px;accent-color:var(--brand)}
.form-status{min-height:1.4em;font-weight:600}
.form-status.is-error{color:#b3261e}
.form-status.is-ok{color:var(--brand-text)}
.consult-done{display:grid;gap:14px;padding:28px;border-radius:var(--radius,0);background:var(--surface)}
/* footer */
.site-footer{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:32px;padding:64px var(--inline) 36px;background:var(--footer-bg,var(--ink));color:var(--footer-ink,var(--ground))}
.footer-brand{display:grid;gap:10px}
.footer-brand strong{font-family:var(--font-display);font-size:1.4rem;font-weight:var(--display-weight,400)}
.footer-brand p,.footer-reach p{opacity:.78}
.footer-links,.footer-reach{display:grid;gap:10px;align-content:start}
.footer-links a,.footer-reach a{text-decoration:none}
.footer-links a:hover,.footer-reach a:hover{text-decoration:underline}
.legal{grid-column:1/-1;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);font-size:.85rem;opacity:.7}
@media (max-width:1080px){
  .nav-links{gap:16px}
  .piece-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  body{font-size:16px}
  .menu-toggle{display:inline-flex}
  .nav-links{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;gap:4px;padding:16px var(--inline) 24px;background:var(--header-bg,var(--ground));border-bottom:1px solid var(--rule)}
  .nav-links[data-open="true"]{display:flex}
  .nav-links>a{padding:10px 0;width:100%}
  .nav-links .nav-cta{margin-top:10px}
  .story,.process,.about-grid,.visit,.contact-grid,.consult-layout{grid-template-columns:1fr}
  .work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .consult-intro{position:static}
  .site-footer{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
}
@media (max-width:640px){
  :root{--sp:64px;--gutter:18px}
  .nav-shell{min-height:64px;gap:12px}
  .brand-name{max-width:150px}
  .work-grid,.piece-grid,.project-photos{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .field-pair{grid-template-columns:1fr}
  .site-footer{grid-template-columns:1fr}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr}
  .hero-actions .btn{padding:12px 10px;font-size:.92rem}
  .closing .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* a heading word too long for its line breaks rather than spills (overflow check 2026-09-22) */
h1,h2,h3{overflow-wrap:anywhere}

/* Toghu Atelier: bold, graphic, square. Syne over Manrope.
   Hero: the customer's colour as a full-height column over the left of
   the photograph (a band over its foot on a phone). */
:root{
  --font-display:"Syne",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ground:#ffffff;--surface:#f3f2ee;--surface-2:#e8e6df;
  --ink:#131313;--ink-dim:#4a4a47;--rule:#131313;
  --radius:0;--radius-lg:0;--btn-radius:0;--chip-radius:0;--field-radius:0;--mark-radius:0;
  --max:1280px;--gutter:24px;--sp:96px;--grid-gap:20px;
  --display-weight:800;--display-tracking:-.02em;
  --h1:clamp(2.7rem,5.4vw,5.2rem);--h2:clamp(2rem,3.6vw,3.4rem);--h3:1.35rem;
  --brand:#23308f;--brand-ink:#ffffff;--brand-deep:#141c55;--brand-text:#23308f;--brand-soft:#e6e8f5;
  --accent:#f2b705;--accent-ink:#131313;--brand-rgb:35,48,143;
  --hero-focus:62% 50%;--field-rule:#131313;
  --footer-bg:#131313;--footer-ink:#ffffff;--closing-bg:var(--accent);--closing-ink:var(--accent-ink);
  --closing-btn:var(--ink);--closing-btn-ink:var(--ground);
}
h1,h2,h3{text-transform:uppercase}
.site-header{border-bottom:2px solid var(--ink)}
.brand-name{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.01em;font-size:1.02rem;max-width:340px}
.nav-links>a{font-weight:600}
.btn{border:2px solid var(--ink);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}
.btn-primary{border-color:var(--brand)}
.btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}
.text-link{font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;border-bottom-width:2px}
.eyebrow{color:inherit;font-weight:800;letter-spacing:.16em}
/* hero: the colour column */
.hero-column{align-items:stretch;justify-content:flex-start;padding:clamp(20px,3vw,44px) var(--inline)}
.hero-block{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;width:min(44%,600px);padding:clamp(28px,4vw,60px) clamp(24px,3.2vw,52px);background:rgba(var(--brand-rgb),.9);color:var(--brand-ink)}
@supports ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){
.hero-block{background:rgba(var(--brand-rgb),.8);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1)}
}
.hero-block{container-type:inline-size}
.hero-block h1{margin-top:16px;line-height:.95;font-size:clamp(2.1rem,12cqi,5rem);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}
.hero-block .hero-line{opacity:1}
.hero-block .btn-primary{background:var(--brand-ink);color:var(--brand);border-color:var(--brand-ink)}
.hero-block .btn-quiet{color:var(--brand-ink);border-color:var(--brand-ink)}
.hero-block .btn:hover{box-shadow:4px 4px 0 var(--brand-ink)}
/* story: a thick rule and a square photo */
.story{border-bottom:2px solid var(--ink)}
.story-media{aspect-ratio:1/1;border:2px solid var(--ink)}
/* work: a bold three-up grid with numbers */
.work{background:var(--surface)}
[data-layout=grid] .work-card{border:2px solid var(--ink);background:var(--ground)}
[data-layout=grid] .work-media{border-bottom:2px solid var(--ink)}
[data-layout=grid] .work-copy{padding:0 18px 20px}
/* services: colour tiles */
[data-layout=tiles] .service-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;border:2px solid var(--ink)}
[data-layout=tiles] .service{grid-template-columns:1fr;align-content:start;gap:12px;padding:28px 24px;border:0;border-right:2px solid var(--ink);min-height:260px}
[data-layout=tiles] .service:last-child{border-bottom:0;border-right:0}
[data-layout=tiles] .service:nth-child(3n+1){background:var(--brand);color:var(--brand-ink)}
[data-layout=tiles] .service:nth-child(3n+1) .service-index,[data-layout=tiles] .service:nth-child(3n+1) .service-line{color:inherit}
[data-layout=tiles] .service:nth-child(3n+2){background:var(--accent);color:var(--accent-ink)}
[data-layout=tiles] .service:nth-child(3n+2) .service-index,[data-layout=tiles] .service:nth-child(3n+2) .service-line{color:inherit}
[data-layout=tiles] .service-index{grid-row:auto;font-size:2rem;font-weight:800}
[data-layout=tiles] .service strong{font-family:var(--font-display);font-size:1.3rem;text-transform:uppercase}
/* catalogue: square tiles with a thick frame */
[data-layout=tiles] .piece-grid{gap:0;border-top:2px solid var(--ink);border-left:2px solid var(--ink)}
[data-layout=tiles] .piece-card{gap:0;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink)}
[data-layout=tiles] .piece-media{border-bottom:2px solid var(--ink)}
[data-layout=tiles] .piece-copy{padding:16px 18px 20px}
[data-layout=tiles] .price{font-family:var(--font-display);font-size:1.1rem}
/* process: big numbers on the second colour */
.process{background:var(--brand-soft)}
.process-media{border:2px solid var(--ink)}
[data-layout=numbers] .steps{grid-template-columns:1fr 1fr;gap:24px}
[data-layout=numbers] .steps li{display:grid;grid-template-columns:1fr;gap:6px}
[data-layout=numbers] .step-number{grid-row:auto;width:auto;height:auto;background:none;border-radius:0;color:var(--brand-text);font-family:var(--font-display);font-size:3rem;line-height:1;justify-self:start}
/* gallery: one scrolling strip */
[data-layout=strip] .gallery-grid{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;border:2px solid var(--ink)}
[data-layout=strip] .gallery-tile{flex:0 0 min(420px,80vw);aspect-ratio:4/5;scroll-snap-align:start;border-right:2px solid var(--ink)}
.gallery-index[data-layout=strip] .gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;border:0;gap:12px}
.gallery-index[data-layout=strip] .gallery-tile{border:2px solid var(--ink);aspect-ratio:4/5}
.quote{background:var(--ink);color:var(--ground)}
.quote blockquote p{text-transform:uppercase;font-weight:800;letter-spacing:-.01em}
.quote cite{color:rgba(255,255,255,.72)}
.closing{border-top:2px solid var(--ink)}
.chips button{border-width:2px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}
.contact-card{border:2px solid var(--ink);background:var(--ground)}
.consult-form legend{text-transform:uppercase;font-weight:800}
.choice{border-width:2px}
.pending-note{border:2px solid var(--ink);background:var(--surface)}
@media (max-width:900px){
  .hero-block{width:min(60%,560px)}
  [data-layout=tiles] .service{border-right:0;border-bottom:2px solid var(--ink);min-height:0}
  [data-layout=numbers] .steps{grid-template-columns:1fr}
}
@media (max-width:640px){
  .brand-name{font-size:.9rem;max-width:170px}
  .hero-column{align-items:flex-end}
  .hero-block{width:100%;padding:24px 18px 22px}
  .hero-block .hero-line{font-size:.96rem}
  .gallery-index[data-layout=strip] .gallery-grid{grid-template-columns:1fr 1fr}
}
/* the wide display face breaks a long French word with a hyphen, and the
   intro headings step down on a phone */
h1,h2,h3{-webkit-hyphens:auto;hyphens:auto}
@media (max-width:640px){.page-intro h1{font-size:clamp(1.9rem,8.5vw,2.6rem)}}
