/* =====================================================================
   Marietta Wallpaper Installation — design system & layout
   Palette: warm ivory / linen / sand / greige over warm charcoal,
   rosewood accent. Type: Vollkorn (display) + Wix Madefor Text (UI/body).
   ===================================================================== */

:root {
  --ivory: #F9F5EE;
  --linen: #F1EBE1;
  --sand: #E6DDD0;
  --greige: #D6CCBE;      /* decorative only */
  --charcoal: #2B2724;
  --footer: #1D1A17;

  --ink: #1F1B18;
  --body: #3F3935;
  --muted: #625A52;
  --on-dark: #F3EEE6;
  --on-dark-muted: #B9B0A5;

  --accent: #6B4548;
  --accent-hover: #563739;
  --accent-light: #D6B3B4;  /* on dark only */
  --line: #7E7469;          /* control borders */
  --rule: #DDD4C6;          /* decorative rules */
  --rule-dark: #3E3833;
  --error: #A32B22;

  --serif: 'Vollkorn', Georgia, 'Times New Roman', serif;
  --sans: 'Wix Madefor Text', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --container: 1240px;
  --gutter: clamp(16px, 4vw, 48px);
  --section: clamp(72px, 10vw, 136px);
  --header-h: 76px;

  --ease: cubic-bezier(.2,.7,.2,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ivory);color:var(--body);font-family:var(--sans);font-size:17px;line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,figure,dl,dd,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
img,picture,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
address{font-style:normal}
input,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.section--dark :focus-visible{outline-color:var(--accent-light)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--accent);color:#fff;padding:10px 16px;border-radius:2px;font-weight:600}
.skip-link:focus{top:12px}

.container{width:100%;max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.section{padding-top:var(--section);padding-bottom:var(--section)}
.section--linen{background:var(--linen)}
.section--dark{background:var(--charcoal);color:var(--on-dark)}

/* ---------- typography ---------- */
h1,h2,h3,.serif{font-family:var(--serif);font-weight:500;color:var(--ink);line-height:1.12;letter-spacing:-.005em}
.section--dark h2,.section--dark h3{color:var(--on-dark)}
.section-title{font-size:clamp(32px,4.2vw,54px);max-width:16ch;text-wrap:balance}
.section-title--sm{font-size:clamp(28px,3vw,40px)}
.section-index{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:18px}
.section-index--light{color:var(--accent-light)}
.lead{font-size:clamp(18px,1.5vw,21px);line-height:1.55;color:var(--ink)}
.section--dark .lead{color:var(--on-dark)}
p+p{margin-top:1.1em}
.lead+p{margin-top:1.3em}
.section-head{margin-bottom:clamp(40px,5vw,64px)}
.section-head--split{display:grid;grid-template-columns:1fr;gap:20px 64px;align-items:end}
@media (min-width:900px){.section-head--split{grid-template-columns:1.2fr .8fr}}
.section-head__note{color:var(--muted);font-size:17px;max-width:44ch;border-left:2px solid var(--accent);padding-left:20px}
.section-head--center{text-align:center}
.section-head--center .section-title{margin:0 auto;max-width:22ch}
.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--accent);border-bottom:1px solid currentColor;padding-bottom:2px;margin-top:28px}
.text-link:hover{color:var(--accent-hover)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 26px;border-radius:2px;font-weight:600;font-size:15px;letter-spacing:.01em;border:1.5px solid transparent;transition:background .2s,color .2s,border-color .2s,transform .2s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn--sm{min-height:42px;padding:0 20px;font-size:14px}
.btn--lg{min-height:56px;padding:0 34px;font-size:16px}
.btn--block{width:100%}
.btn--accent{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn--accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ink)}
.btn--light{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn--light:hover{background:#fff;border-color:#fff}
.btn--outline-light{background:rgba(29,26,23,.28);color:var(--on-dark);border-color:rgba(243,238,230,.7)}
.btn--outline-light:hover{background:rgba(29,26,23,.5);border-color:var(--on-dark)}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(249,245,238,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
.site-header.is-scrolled{border-bottom-color:var(--rule);box-shadow:0 6px 24px -18px rgba(31,27,24,.35)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand__mark{flex:none}
.brand__text{display:flex;flex-direction:column;min-width:0}
.brand__name{font-family:var(--serif);font-size:19px;color:var(--ink);line-height:1.15;white-space:nowrap}
.brand__tag{font-size:11.5px;letter-spacing:.06em;color:var(--muted);white-space:nowrap}
.nav__list{display:flex;gap:30px}
.nav__list a{font-size:15px;font-weight:500;color:var(--body);padding:8px 0;position:relative}
.nav__list a::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:1.5px;background:var(--accent);transition:right .25s var(--ease)}
.nav__list a:hover::after,.nav__list a.is-active::after{right:0}
.nav__list a.is-active{color:var(--ink)}
.header__actions{display:flex;align-items:center;gap:18px}
.header__phone{font-weight:600;color:var(--ink);font-size:15px}
.menu-toggle{display:none;width:46px;height:46px;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid var(--rule);border-radius:2px;background:var(--ivory)}
.menu-toggle__bar{display:block;width:20px;height:1.5px;background:var(--ink);transition:transform .25s,opacity .2s}
.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.mobile-menu{display:none;background:var(--ivory);border-top:1px solid var(--rule);padding:16px var(--gutter) 28px;max-height:calc(100vh - var(--header-h));overflow:auto}
.mobile-menu:not([hidden]){display:block}
.mobile-menu__list a{display:block;padding:14px 0;font-family:var(--serif);font-size:24px;color:var(--ink);border-bottom:1px solid var(--rule)}
.mobile-menu__cta{display:grid;gap:10px;margin-top:20px}
.mobile-menu__address{margin-top:18px;font-size:14px;color:var(--muted)}
body.menu-open{overflow:hidden}

@media (max-width:1100px){
  .nav{display:none}
  .header__phone{display:none}
  .menu-toggle{display:flex}
}
@media (max-width:560px){
  .header__actions .btn{display:none}
  .brand__tag{display:none}
  .brand__name{font-size:17px;white-space:normal}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:calc(100svh - var(--header-h));min-height:calc(100vh - var(--header-h));display:flex;flex-direction:column;justify-content:flex-end;color:var(--on-dark);isolation:isolate}
.hero__media,.hero__media img{position:absolute;inset:0;width:100%;height:100%}
.hero__media img{object-fit:cover;object-position:center 60%}
.hero__media{z-index:-2}
.hero__veil{position:absolute;inset:0;z-index:-1;background:
  linear-gradient(90deg,rgba(29,26,23,.86) 0%,rgba(29,26,23,.72) 40%,rgba(29,26,23,.4) 70%,rgba(29,26,23,.22) 100%),
  linear-gradient(180deg,rgba(29,26,23,.2) 0%,rgba(29,26,23,.05) 25%,rgba(29,26,23,.8) 100%)}
.hero__title,.hero__lead,.hero__eyebrow{text-shadow:0 1px 2px rgba(29,26,23,.5)}
.hero__content{padding-top:calc(var(--section) * .9);padding-bottom:clamp(40px,6vw,72px);max-width:calc(var(--container));}
.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--greige);margin-bottom:22px}
.eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-light)}
.hero__title{color:var(--on-dark);font-size:clamp(38px,6vw,80px);max-width:14ch;text-wrap:balance;font-weight:500}
.hero__lead{margin-top:22px;font-size:clamp(17px,1.6vw,21px);max-width:46ch;color:var(--on-dark);line-height:1.55}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero__ledger{display:grid;grid-template-columns:repeat(3,1fr);background:var(--ivory);color:var(--body);border:1px solid var(--rule);border-bottom:0;transform:translateY(1px)}
.hero__ledger-item{padding:22px 26px;border-right:1px solid var(--rule)}
.hero__ledger-item:last-child{border-right:0}
.hero__ledger dt{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:6px}
.hero__ledger dd{font-size:15px;line-height:1.5;color:var(--body)}
.hero__ledger dd a{color:var(--ink);font-weight:600;border-bottom:1px solid var(--greige)}
.hero__ledger dd a:hover{border-color:var(--accent)}
@media (max-width:900px){
  .hero__ledger{grid-template-columns:1fr 1fr}
  .hero__ledger-item:nth-child(2){border-right:0}
  .hero__ledger-item:nth-child(3){grid-column:1/-1;border-top:1px solid var(--rule)}
}
@media (max-width:560px){
  .hero{min-height:auto}
  .hero__content{padding-top:96px}
  .hero__ledger{grid-template-columns:1fr}
  .hero__ledger-item{border-right:0;border-top:1px solid var(--rule);padding:16px 18px}
  .hero__ledger-item:first-child{border-top:0}
  .hero__ledger dd{overflow-wrap:anywhere}
}

/* ---------- intro ---------- */
.intro__grid{display:grid;grid-template-columns:1fr;gap:56px;align-items:start}
@media (min-width:900px){.intro__grid{grid-template-columns:1.25fr .85fr;gap:clamp(56px,7vw,110px)}}
.intro__text .section-title{margin-bottom:28px}
.pillars{margin-top:36px;border-top:1px solid var(--rule)}
.pillars li{display:flex;gap:18px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--rule);color:var(--ink);font-size:16.5px}
.pillars__num{font-family:var(--serif);font-style:italic;color:var(--accent);min-width:2ch;font-size:18px}
.intro__figure{position:relative;margin-top:24px}
@media (min-width:900px){.intro__figure{margin-top:84px}}
.intro__figure::before{content:"";position:absolute;inset:auto -16px -16px auto;width:70%;height:60%;border:1px solid var(--greige);z-index:0}
.intro__figure picture{position:relative;z-index:1;aspect-ratio:3/4}
.intro__figure img{width:100%;height:100%;object-fit:cover}
.intro__figure figcaption,.area__figure figcaption{margin-top:14px;font-size:14px;color:var(--muted);max-width:42ch;line-height:1.5}

/* ---------- services ---------- */
.plates{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.5vw,32px);margin-bottom:clamp(56px,7vw,96px)}
.plate{position:relative;background:var(--sand)}
.plate picture{aspect-ratio:3/4;overflow:hidden}
.plate img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.plate:hover img{transform:scale(1.03)}
.plate figcaption{position:absolute;left:14px;bottom:14px;background:var(--ivory);color:var(--ink);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;padding:8px 12px}
@media (min-width:700px){.plate--drop{margin-top:64px}}
@media (max-width:700px){
  .plates{grid-template-columns:1fr 1fr}
  .plates .plate:last-child{grid-column:1/-1}
  .plates .plate:last-child picture{aspect-ratio:16/10}
}
.service-list{display:grid;grid-template-columns:1fr;border-top:1px solid var(--rule)}
@media (min-width:760px){.service-list{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.service-list{grid-template-columns:1fr 1fr 1fr}}
.service{display:flex;gap:20px;padding:34px 28px 34px 0;border-bottom:1px solid var(--rule)}
@media (min-width:760px){.service{padding-right:40px}.service:nth-child(2n){padding-left:32px;border-left:1px solid var(--rule)}}
@media (min-width:1100px){
  .service:nth-child(2n){padding-left:0;border-left:0}
  .service:nth-child(3n+2),.service:nth-child(3n){padding-left:32px;border-left:1px solid var(--rule)}
}
.service__num{font-family:var(--serif);font-size:30px;color:var(--accent);line-height:1;padding-top:4px;min-width:2.2ch}
.service h3{font-size:22px;margin-bottom:10px}
.service p{font-size:16px;color:var(--body)}

/* ---------- craft ---------- */
.craft{display:grid;grid-template-columns:1fr;background:var(--sand)}
@media (min-width:900px){.craft{grid-template-columns:58fr 42fr}}
.craft__media picture,.craft__media img{width:100%;height:100%}
.craft__media img{object-fit:cover;aspect-ratio:4/3}
@media (min-width:900px){.craft__media img{aspect-ratio:auto;min-height:100%}}
.craft__text{padding:clamp(48px,6vw,96px) var(--gutter) clamp(48px,6vw,96px);max-width:620px}
@media (min-width:900px){.craft__text{padding-left:clamp(40px,5vw,80px);padding-right:clamp(32px,5vw,80px)}}
.craft__text .section-title{margin-bottom:24px}
.craft__points{margin-top:28px}
.craft__points li{position:relative;padding:10px 0 10px 26px;border-top:1px solid rgba(31,27,24,.12);color:var(--ink);font-size:16px}
.craft__points li:last-child{border-bottom:1px solid rgba(31,27,24,.12)}
.craft__points li::before{content:"";position:absolute;left:4px;top:19px;width:8px;height:8px;background:var(--accent);transform:rotate(45deg)}

/* ---------- process ---------- */
.process__band{margin:0 0 clamp(48px,6vw,80px)}
.process__band img{width:100%;aspect-ratio:21/9;object-fit:cover;max-height:560px}
@media (max-width:600px){.process__band img{aspect-ratio:4/3}}
.steps{display:grid;grid-template-columns:1fr;border-top:1px solid var(--rule)}
@media (min-width:700px){.steps{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{padding:32px 28px 36px 0;border-bottom:1px solid var(--rule);position:relative}
@media (min-width:700px){.step:nth-child(2n){padding-left:32px;border-left:1px solid var(--rule)}}
@media (min-width:1000px){
  .step{padding-right:32px}
  .step:nth-child(2n){padding-left:0;border-left:0}
  .step+.step{padding-left:32px;border-left:1px solid var(--rule)}
}
.step__num{display:block;font-family:var(--serif);font-size:clamp(48px,5vw,68px);line-height:1;color:var(--accent);margin-bottom:22px;font-weight:400}
.step h3{font-size:22px;margin-bottom:10px}
.step p{font-size:16px}

/* ---------- about ---------- */
.about__grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media (min-width:900px){.about__grid{grid-template-columns:.85fr 1.15fr;gap:clamp(56px,7vw,110px)}}
.about__figure{position:relative;padding:0 0 22px 22px}
.about__figure::before{content:"";position:absolute;left:0;bottom:0;width:80%;height:80%;background:var(--sand);border:1px solid var(--greige)}
.about__figure picture{position:relative;aspect-ratio:4/5}
.about__figure img{width:100%;height:100%;object-fit:cover}
.about__text .section-title{margin-bottom:26px}
.owner-card{display:flex;align-items:center;gap:18px;margin-top:36px;padding-top:28px;border-top:1px solid var(--rule)}
.owner-card__initials{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--serif);font-size:20px;letter-spacing:.04em}
.owner-card__name{font-family:var(--serif);font-size:22px;color:var(--ink);line-height:1.2}
.owner-card__role{font-size:14px;color:var(--muted);margin-top:2px}
.about__contact{margin-top:22px;font-size:15.5px;color:var(--muted)}
.about__contact a{color:var(--accent);font-weight:600;border-bottom:1px solid var(--greige)}
.about__contact a:hover{border-color:var(--accent)}

/* ---------- gallery ---------- */
.masonry{columns:3;column-gap:clamp(14px,2vw,26px)}
@media (max-width:1100px){.masonry{columns:2}}
@media (max-width:640px){.masonry{columns:1}}
.masonry__item{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;margin-bottom:clamp(14px,2vw,26px);display:inline-block;width:100%}
.masonry__btn{display:block;width:100%;overflow:hidden;background:var(--sand)}
.masonry__btn img{width:100%;transition:transform .8s var(--ease)}
.masonry__btn:hover img{transform:scale(1.025)}
.masonry__item figcaption{margin-top:10px;font-size:13.5px;color:var(--muted);letter-spacing:.02em}

.lightbox{position:fixed;inset:0;z-index:300;background:rgba(29,26,23,.94);display:flex;align-items:center;justify-content:center;padding:56px 16px}
.lightbox[hidden]{display:none}
.lightbox__figure{max-width:min(1200px,100%);max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px}
.lightbox__figure img{max-width:100%;max-height:calc(100vh - 150px);width:auto;height:auto;object-fit:contain;box-shadow:0 30px 80px -30px rgba(0,0,0,.8)}
.lightbox__figure figcaption{color:var(--on-dark-muted);font-size:14px;text-align:center;max-width:70ch}
.lightbox__close,.lightbox__nav{position:absolute;color:var(--on-dark);font-size:34px;line-height:1;width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(243,238,230,.35);border-radius:50%;background:rgba(29,26,23,.5)}
.lightbox__close{top:16px;right:16px}
.lightbox__nav{top:50%;transform:translateY(-50%)}
.lightbox__nav--prev{left:14px}
.lightbox__nav--next{right:14px}
.lightbox__close:hover,.lightbox__nav:hover{background:var(--accent)}

/* ---------- why ---------- */
.why__grid{display:grid;grid-template-columns:1fr;gap:56px}
@media (min-width:960px){.why__grid{grid-template-columns:1.1fr .9fr;gap:clamp(56px,7vw,110px);align-items:start}}
.why__text .section-title{margin-bottom:24px}
.why__list{margin-top:36px;counter-reset:why;border-top:1px solid var(--rule-dark)}
.why__list li{counter-increment:why;position:relative;padding:18px 0 18px 64px;border-bottom:1px solid var(--rule-dark);font-size:16px;color:var(--on-dark-muted)}
.why__list li strong{color:var(--on-dark);font-weight:600}
.why__list li::before{content:counter(why,upper-roman);position:absolute;left:0;top:16px;font-family:var(--serif);font-size:20px;color:var(--accent-light)}
.why__art{display:grid;grid-template-columns:1.45fr 1fr;grid-template-rows:auto auto;gap:18px;align-items:end}
@media (min-width:960px){.why__art{position:sticky;top:calc(var(--header-h) + 32px)}}
.why__photo--tall{grid-row:1/3}
.why__photo--tall picture{aspect-ratio:3/4}
.why__photo--square picture{aspect-ratio:1/1}
.why__photo img{width:100%;height:100%;object-fit:cover}
.why__note{grid-column:2;font-size:14.5px;color:var(--on-dark-muted);line-height:1.55;border-left:1px solid var(--accent-light);padding-left:14px}
@media (max-width:420px){.why__art{grid-template-columns:1fr}.why__photo--tall{grid-row:auto}.why__note{grid-column:auto;padding-left:0;border-left:0;border-top:1px solid var(--rule-dark);padding-top:14px}}

/* ---------- service area ---------- */
.area__grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media (min-width:900px){.area__grid{grid-template-columns:1.2fr .8fr;gap:clamp(56px,7vw,110px)}}
.area__text .section-title{margin-bottom:24px}
.area__pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.area__pills li{border:1px solid var(--line);color:var(--ink);font-size:14px;font-weight:500;padding:8px 14px;border-radius:2px;background:var(--ivory)}
.area__pills li:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}
.area__figure picture{aspect-ratio:4/5}
.area__figure img{width:100%;height:100%;object-fit:cover}

/* ---------- location ---------- */
.location{padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(56px,7vw,96px)}
.location__grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:stretch}
@media (min-width:900px){.location__grid{grid-template-columns:.9fr 1.1fr;gap:0}}
.location__card{background:var(--ivory);border:1px solid var(--rule);padding:clamp(28px,4vw,56px)}
.location__card .section-title{margin-bottom:22px}
.location__address{font-size:17px;line-height:1.6;color:var(--ink);margin-bottom:22px}
.location__details,.contact__details{display:grid;gap:12px;margin-bottom:28px}
.location__details div,.contact__details div{display:grid;grid-template-columns:78px 1fr;gap:12px;font-size:15.5px;align-items:baseline}
.location__details dt,.contact__details dt{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600}
.location__details dd a,.contact__details dd a{color:var(--ink);font-weight:500;border-bottom:1px solid var(--greige);overflow-wrap:anywhere}
.location__details dd a:hover,.contact__details dd a:hover{border-color:var(--accent);color:var(--accent)}
.location__map{position:relative;min-height:380px;background:var(--charcoal);border:1px solid var(--rule)}
@media (min-width:900px){.location__map{border-left:0}}
.location__fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--on-dark);font-family:var(--serif);font-size:24px;text-align:center;line-height:1.4}
.location__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.72) contrast(1.02)}

/* ---------- contact ---------- */
.contact__grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}
@media (min-width:960px){.contact__grid{grid-template-columns:.85fr 1.15fr;gap:clamp(48px,6vw,96px)}}
.contact__intro .section-title{margin-bottom:22px}
.contact__details{margin-top:32px}
.contact__figure{display:none}
@media (min-width:960px){.contact__figure{display:block;margin-top:12px;max-width:380px}.contact__figure picture{aspect-ratio:4/5}.contact__figure img{width:100%;height:100%;object-fit:cover}}
.contact__form-wrap{background:var(--linen);border:1px solid var(--rule);padding:clamp(24px,4vw,48px);position:relative}
.contact__form-wrap::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--accent)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 20px}
@media (max-width:600px){.form-grid{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field label{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink)}
.field input,.field textarea{width:100%;background:var(--ivory);border:1px solid var(--line);border-radius:2px;padding:14px 16px;font-size:16px;color:var(--ink);transition:border-color .2s,box-shadow .2s;min-height:50px}
.field textarea{resize:vertical;min-height:140px;line-height:1.5}
.field input::placeholder,.field textarea::placeholder{color:#8A8178}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(107,69,72,.18)}
.field--hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.error-message{color:var(--error)!important;font-size:14px;font-weight:500}
@keyframes fadeIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.form-footer{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:28px}
.form-footer__note{font-size:14px;color:var(--muted);max-width:32ch}
.form-success{text-align:center;padding:24px 8px}
.form-success__check{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;font-size:26px;margin:0 auto 18px}
.form-success h3{font-size:26px;margin-bottom:10px}
.form-success p{color:var(--body)}
.form-success a{color:var(--accent);font-weight:600}

/* ---------- footer ---------- */
.site-footer{background:var(--footer);color:var(--on-dark-muted);padding:clamp(56px,7vw,88px) 0 32px}
.footer__grid{display:grid;grid-template-columns:1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid var(--rule-dark)}
@media (min-width:800px){.footer__grid{grid-template-columns:1.4fr 1fr .7fr;gap:56px}}
.footer__name{font-family:var(--serif);font-size:24px;color:var(--on-dark);line-height:1.2}
.footer__tag{color:var(--accent-light);font-size:14px;letter-spacing:.06em;margin-top:8px}
.footer__desc{margin-top:16px;font-size:15px;max-width:44ch;line-height:1.6}
.footer__heading{font-family:var(--sans);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark);font-weight:600;margin-bottom:16px}
.footer__list{display:grid;gap:9px;font-size:15px}
.footer__list a{border-bottom:1px solid transparent;overflow-wrap:anywhere}
.footer__list a:hover{color:var(--on-dark);border-bottom-color:var(--accent-light)}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:24px;font-size:13.5px}
.footer__bottom a:hover{color:var(--on-dark)}

/* ---------- reveal (progressive enhancement) ---------- */
.reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:no-preference){
  html.js-enhance .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
  html.js-enhance .reveal.is-visible{opacity:1;transform:none}
}
@media print{
  .reveal{opacity:1!important;transform:none!important}
  .site-header,.lightbox,.hero__veil{display:none!important}
  .hero{color:var(--ink);min-height:auto}
  .hero__title,.hero__lead{color:var(--ink)}
}

/* Mobile hero: the portrait crop puts brighter fixtures behind the headline, so the veil is flatter and darker. */
@media (max-width:700px){
  .hero__veil{background:linear-gradient(180deg,rgba(29,26,23,.8) 0%,rgba(29,26,23,.7) 55%,rgba(29,26,23,.86) 100%)}
}
