:root { --ink: #211d1e; --wine: #3f242f; --clay: #b46f56; --cream: #f5f0e9; --sand: #e4d6c9; --line: rgba(33,29,30,.18); --paper: #fffdf9; --display: 'Playfair Display', Georgia, serif; --sans: 'DM Sans', Arial, sans-serif; --mono: 'DM Mono', monospace; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { min-height: 84px; width: 100%; padding: 0 4.6vw; display:flex; align-items:center; justify-content:space-between; gap:2rem; border-bottom:1px solid var(--line); background:rgba(255,253,249,.93); position:sticky; top:0; z-index:20; backdrop-filter: blur(16px); }
.wordmark { font-family:var(--sans); font-size:clamp(.68rem,.78vw,.82rem); font-weight:600; letter-spacing:.23em; line-height:1; text-transform:uppercase; white-space:nowrap; }
.desktop-nav { display:flex; align-items:center; gap:1.35rem; font-size:.73rem; font-weight:600; letter-spacing:.055em; text-transform:uppercase; }
.desktop-nav > a, .session-menu summary { padding: 1.55rem 0; cursor:pointer; }
.desktop-nav > a:hover, .session-menu summary:hover { color: var(--clay); }
.session-menu { position:relative; }
.session-menu summary { list-style:none; }
.session-menu summary::-webkit-details-marker { display:none; }
.session-menu summary span { margin-left:.25rem; color:var(--clay); }
.session-popover { position:absolute; top:100%; left:-1rem; width:205px; padding:.75rem; display:grid; gap:.1rem; background:var(--paper); border:1px solid var(--line); box-shadow:0 16px 45px rgba(33,29,30,.12); }
.session-popover a { padding:.45rem .6rem; font-size:.72rem; line-height:1.35; }
.session-popover a:hover { background:var(--cream); color:var(--clay); }
.menu-toggle, .mobile-nav { display:none; }
.eyebrow { color:var(--clay); font-family:var(--mono); font-size:.68rem; font-weight:500; letter-spacing:.14em; line-height:1.35; text-transform:uppercase; }
.eyebrow--light { color:#f6d6c5; }
h1, h2, h3, p { margin-top:0; }
h1, h2, h3 { font-family:var(--display); font-weight:500; line-height:1.08; letter-spacing:-.045em; }
h1 { font-size:clamp(3rem, 7.1vw, 7.1rem); }
h2 { font-size:clamp(2.25rem, 4.2vw, 4.5rem); }
h3 { font-size:1.7rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.72rem 1.35rem; background:var(--wine); border:1px solid var(--wine); color:#fff; font-size:.72rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; transition:transform .25s ease, background .25s ease; }
.button:hover { background:var(--clay); border-color:var(--clay); transform:translateY(-2px); }
.button--light { background:transparent; border-color:rgba(255,255,255,.72); color:#fff; }
.button--light:hover { background:#fff; border-color:#fff; color:var(--wine); }
.text-link { display:inline-flex; align-items:center; gap:.5rem; margin-top:1.25rem; color:var(--wine); font-size:.73rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.text-link span { color:var(--clay); font-size:1.1rem; transition:transform .2s ease; }
.text-link:hover span { transform:translateX(4px); }
.home-hero { min-height:calc(100svh - 84px); position:relative; display:grid; overflow:hidden; color:#fff; background:#382b2d; }
.home-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 44%; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(23,16,18,.72) 0%,rgba(23,16,18,.34) 50%,rgba(23,16,18,.05) 100%); }
.hero-copy { position:relative; z-index:1; width:min(100%, 960px); max-width:none; padding:clamp(6rem,14vh,12rem) clamp(5.5rem,9vw,12rem) 5rem; align-self:center; }
.hero-copy h1 { margin:.5rem 0 1.55rem; max-width:none; font-size:clamp(4rem,5.65vw,6.8rem); }
.hero-copy p:not(.eyebrow) { max-width:510px; margin-bottom:2rem; font-size:1rem; }
.hero-counter { position:absolute; right:4.6vw; bottom:4.5vw; z-index:1; display:flex; align-items:center; gap:.8rem; color:#fff; font-family:var(--mono); font-size:.75rem; }
.hero-counter .rule { width:45px; height:1px; background:rgba(255,255,255,.75); }
.home-page .site-header { position:absolute; inset:0 0 auto; min-height:76px; border:0; background:transparent; color:#fff; backdrop-filter:none; }
.home-page .wordmark { color:#fff; }
.home-page .desktop-nav { font-size:.66rem; letter-spacing:.16em; }
.home-page .session-menu { display:none; }
.home-page .home-hero { min-height:0; height:clamp(470px,62svh,540px); }
.home-page .hero-overlay { background:linear-gradient(90deg,rgba(45,35,28,.24),rgba(45,35,28,.08) 46%,rgba(45,35,28,.16)); }
.home-page .home-hero__center { position:absolute; z-index:1; top:59%; left:50%; width:min(760px,72vw); transform:translate(-50%,-50%); color:#fff; text-align:center; }
.home-page .home-hero__center h1 { margin:0 0 1rem; font-family:var(--sans); font-size:clamp(1.8rem,2.55vw,2.8rem); font-weight:400; letter-spacing:.19em; line-height:1.28; text-transform:uppercase; }
.home-page .home-hero__center p { margin:0; font-family:var(--sans); font-size:clamp(.62rem,.83vw,.82rem); font-weight:500; letter-spacing:.2em; line-height:1.95; text-transform:uppercase; }
.home-page .hero-counter { right:5.2vw; bottom:auto; top:50%; flex-direction:column; gap:.5rem; font-size:.62rem; letter-spacing:.12em; transform:translateY(-50%); }
.home-page .hero-counter .rule { width:1px; height:30px; }
.hero-arrow { position:absolute; z-index:1; display:flex; align-items:center; gap:.65rem; color:rgba(255,255,255,.82); font-family:var(--sans); font-size:1.2rem; }
.hero-arrow span { width:72px; height:1px; background:rgba(255,255,255,.55); }
.hero-arrow--left { left:4.6vw; top:72%; }
.original-intro { display:grid; grid-template-columns:minmax(340px,.9fr) minmax(400px,1fr); gap:clamp(4rem,9vw,11rem); align-items:start; padding:clamp(4rem,7vw,7.5rem) max(8vw,4rem) clamp(5rem,8vw,8.5rem); background:#fff; }
.original-intro__visual { width:min(100%,500px); margin:0 auto; padding:3rem 2.55rem; background:#f8f8f8; }
.original-intro__visual img { width:100%; aspect-ratio:.69; object-fit:cover; border-radius:78px 0 78px 0; }
.original-intro__visual-cta { padding:2.2rem 0 .2rem; text-align:center; }
.original-intro__visual-cta p { margin:0 0 1.7rem; color:#555052; font-size:clamp(.82rem,1.05vw,1.05rem); letter-spacing:.18em; line-height:1.55; text-transform:uppercase; }
.original-intro__visual-cta a { display:table; margin:0 auto; padding:1rem 1.65rem; background:#2b2b2b; color:#fff; font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.original-intro__visual-cta a:hover { background:var(--wine); }
.original-intro__copy { max-width:520px; }
.original-intro__lead { margin:0 0 3.8rem; color:#555052; font-size:clamp(.92rem,1.2vw,1.18rem); font-weight:400; letter-spacing:.18em; line-height:1.55; text-transform:uppercase; }
.original-intro__contact { display:table; margin:0 0 4rem; padding:1rem 1.6rem; background:#2b2b2b; color:#fff; font-size:.69rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.original-intro__contact:hover { background:var(--wine); }
.original-intro__prose { color:#444; font-family:var(--display); font-size:.9rem; line-height:1.95; }
.original-intro__prose p { margin:0 0 1.75rem; }
.original-intro__prose ul { margin:-.4rem 0 2.1rem; padding-left:1.45rem; }
.original-intro__prose a { border-bottom:1px solid currentColor; }
.intro-section, .content-section, .gallery-section, .package-section, .testimonials-section, .contact-form-section, .post-list, .testimonial-wall { padding:clamp(5rem,10vw,10rem) 9vw; }
.layout-split { display:grid; grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr); gap:clamp(3rem,10vw,12rem); background:var(--paper); }
.layout-split h2 { max-width:520px; }
.prose { font-size:1.04rem; }
.prose p { margin-bottom:1.25rem; }
.package-section { background:var(--cream); }
.section-heading { max-width:680px; margin-bottom:3rem; }
.section-heading--center { text-align:center; margin-inline:auto; }
.section-heading--center p:last-child { max-width:450px; margin-inline:auto; }
.package-grid { display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.package-card { min-height:235px; padding:1.6rem; display:flex; flex-direction:column; align-items:flex-start; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.package-card > span { color:var(--clay); font-family:var(--mono); font-size:.72rem; }
.package-card h3 { margin:2rem 0 .5rem; }
.package-card p { font-size:.9rem; }
.package-card a { margin-top:auto; color:var(--wine); font-size:.73rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.work-showcase { padding:clamp(8rem,13vw,13rem) 6vw clamp(6rem,9vw,9rem); background:#fff; }
.work-showcase__title { margin:0 0 clamp(3rem,5vw,5.5rem); color:#3d3b3b; font-size:clamp(1rem,1.45vw,1.42rem); font-weight:400; letter-spacing:.36em; line-height:1.2; text-align:center; text-transform:uppercase; }
.work-grid { width:min(100%,980px); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(2rem,4.3vw,4.4rem); align-items:start; }
.work-card { text-align:center; }
.work-card img { width:100%; aspect-ratio: .72; object-fit:cover; background:var(--sand); }
.work-card h3 { margin:1.55rem 0 .55rem; color:#3d3b3b; font-family:var(--sans); font-size:clamp(1.05rem,1.55vw,1.55rem); font-weight:400; letter-spacing:.17em; line-height:1.2; text-transform:uppercase; }
.work-card p { max-width:270px; margin:0 auto; color:#585253; font-family:var(--mono); font-size:.6rem; letter-spacing:.17em; line-height:1.65; text-transform:uppercase; }
.work-showcase--followup { padding-top:1.25rem; }
.work-contact { display:table; margin:0 auto clamp(4rem,5.5vw,5.5rem); padding:1rem 1.65rem; background:#2b2b2b; color:#fff; font-family:var(--sans); font-size:.69rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; transition:background .2s ease; }
.work-contact:hover { background:var(--wine); }
.editorial-strip { min-height:680px; display:grid; grid-template-columns:.92fr 1.08fr; background:var(--wine); color:#fff; }
.editorial-copy { padding:clamp(4rem,7vw,8rem) 9vw; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.editorial-copy h2 { margin:1rem 0 2rem; }
.editorial-grid { min-height:100%; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
.editorial-grid img { width:100%; height:100%; min-height:200px; object-fit:cover; }
.editorial-grid img:first-child { grid-row:span 2; }
.testimonials-section { background:#fff; }
.testimonial-track { display:grid; grid-template-columns:repeat(5,minmax(280px,1fr)); gap:1px; overflow-x:auto; padding-bottom:.5rem; background:var(--line); scroll-snap-type:x mandatory; }
.testimonial-track blockquote { min-height:250px; margin:0; padding:2rem; display:flex; flex-direction:column; background:var(--paper); scroll-snap-align:start; }
.testimonial-track blockquote p { font-family:var(--display); font-size:1.35rem; line-height:1.35; }
.testimonial-track footer { display:flex; align-items:center; gap:.65rem; margin-top:auto; color:var(--clay); font-family:var(--mono); font-size:.68rem; }
.testimonial-track footer span { width:42px; height:1px; background:var(--clay); }
.home-review-proof { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(560px,1.28fr); gap:clamp(3rem,8vw,10rem); align-items:center; padding:clamp(5rem,10vw,10rem) 9vw; background:#f7f4ef; }
.home-review-proof__copy { max-width:430px; }
.home-review-proof__copy h2 { margin:.75rem 0 1.5rem; }
.home-review-proof__grid { display:grid; grid-template-columns:1fr .78fr 1fr; gap:clamp(.7rem,1.2vw,1.2rem); align-items:center; }
.home-review-photo, .home-review-card { position:relative; display:block; padding:0; border:0; overflow:hidden; background:#211d1e; color:#fff; text-align:left; }
.home-review-photo img { width:100%; aspect-ratio:.68; object-fit:cover; transition:transform .35s ease; }
.home-review-card { cursor:zoom-in; }
.home-review-card img { width:100%; aspect-ratio:1000/1779; object-fit:contain; background:#151112; transition:transform .35s ease; }
.home-review-photo span, .home-review-card span { position:absolute; right:.85rem; bottom:.85rem; left:.85rem; color:#fff; font-family:var(--mono); font-size:.56rem; font-weight:500; letter-spacing:.12em; line-height:1.35; text-transform:uppercase; text-shadow:0 1px 9px rgba(0,0,0,.7); }
.home-review-photo:hover img, .home-review-card:hover img { transform:scale(1.025); }
.review-page-hero { min-height:560px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:var(--cream); }
.review-page-hero > div { padding:clamp(5rem,10vw,11rem) 9vw; align-self:center; }
.review-page-hero h1 { margin:.55rem 0 1.4rem; }
.review-page-hero > div > p:last-child { font-family:var(--mono); font-size:.73rem; letter-spacing:.14em; line-height:1.6; text-transform:uppercase; }
.review-page-hero > img { width:100%; height:100%; min-height:560px; object-fit:cover; object-position:center; }
.review-gallery-section { padding:clamp(5rem,10vw,10rem) 9vw; background:#fff; }
.review-gallery-section > .eyebrow { margin-bottom:2.1rem; }
.review-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(.8rem,1.7vw,1.7rem); align-items:start; }
.review-gallery__card { padding:0; border:0; background:#171314; cursor:zoom-in; overflow:hidden; }
.review-gallery__card img { width:100%; height:auto; transition:transform .35s ease; }
.review-gallery__card:hover img { transform:scale(1.018); }
.home-gallery-cta { display:grid; place-items:center; padding:3.1rem 9vw 4.2rem; background:#fff; }
.home-gallery-cta a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.8rem 1.9rem; background:#2c2b2b; color:#fff; font-size:.68rem; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.home-gallery-cta a:hover { background:var(--wine); }
.home-testimonial-carousel { --testimonial-photo-height:500px; --testimonial-gap:clamp(3.8rem,7vw,7.1rem); position:relative; box-sizing:border-box; width:min(100% - 7vw,1200px); height:590px; margin:0 auto; padding-top:40px; background:#fff; }
.home-testimonial-slide { display:none; box-sizing:border-box; height:var(--testimonial-photo-height); grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr); gap:var(--testimonial-gap); align-items:start; }
.home-testimonial-slide.is-active { display:grid; }
.home-testimonial-slide figure { height:var(--testimonial-photo-height); margin:0; overflow:hidden; background:var(--sand); }
.home-testimonial-slide figure img { width:100%; height:100%; object-fit:cover; object-position:center; }
.home-testimonial-slide__copy { min-width:0; padding-top:2px; align-self:start; }
.home-testimonial-slide__copy .eyebrow { margin:0 0 clamp(2.8rem,5vw,4.6rem); }
.home-testimonial-slide__copy h2 { margin:0 0 2.1rem; color:#595253; font-family:var(--sans); font-size:clamp(1.18rem,1.5vw,1.5rem); font-weight:400; letter-spacing:.19em; text-transform:uppercase; }
.home-testimonial-slide__copy blockquote { max-width:500px; margin:0; color:#4a4647; font-family:var(--display); font-size:clamp(.84rem,1vw,.92rem); font-style:normal; line-height:2.08; }
.home-testimonial-controls { position:absolute; bottom:13px; left:56.5%; display:flex; align-items:center; gap:1.15rem; color:#514b4d; font-family:var(--mono); font-size:.63rem; letter-spacing:.12em; }
.home-testimonial-controls::before, .home-testimonial-controls::after { content:''; width:72px; height:1px; background:#a09a9b; }
.home-testimonial-controls button { z-index:1; padding:0; border:0; background:transparent; color:#716a6b; font-size:1.35rem; line-height:1; cursor:pointer; }
.home-testimonial-controls button:hover { color:var(--wine); }
.home-testimonial-controls button:first-of-type { order:-1; margin-right:-.8rem; }
.home-testimonial-controls button:last-of-type { order:2; margin-left:-.8rem; }
.home-testimonial-controls span { order:1; }
.home-journal { padding:clamp(4.5rem,8vw,8.5rem) 9vw; background:#fff; }
.home-journal-grid { width:min(100%,1080px); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(2rem,5.2vw,5.6rem); }
.home-journal-card { text-align:center; }
.home-journal-card img { width:100%; aspect-ratio:.78; object-fit:cover; background:var(--sand); }
.home-journal-card p { margin:1.8rem 0 1.3rem; color:#716a6b; font-family:var(--mono); font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; }
.home-journal-card h3 { margin:0; color:#5d5759; font-family:var(--sans); font-size:clamp(1.02rem,1.3vw,1.28rem); font-weight:400; letter-spacing:.16em; line-height:1.58; text-transform:uppercase; }
.home-journal-card h3 a:hover { color:var(--wine); }
.home-about { padding:3.25rem 0; background:#f3f3f3; }
.home-about__inner { position:relative; display:grid; grid-template-columns:minmax(0,1.04fr) minmax(390px,.96fr); align-items:center; width:min(100% - 10vw,1180px); min-height:760px; margin:0 auto; }
.home-about__panel { position:absolute; top:0; right:0; bottom:0; left:25.5%; background:#fff; }
.home-about__portrait { position:relative; z-index:1; width:100%; margin:0; }
.home-about__portrait img { display:block; width:100%; aspect-ratio:.975; object-fit:cover; object-position:center; }
.home-about__copy { position:relative; z-index:1; box-sizing:border-box; max-width:485px; padding:3.8rem 1.5rem 3.8rem clamp(3.5rem,7vw,7.3rem); }
.home-about__copy h2 { margin:0 0 1.7rem; color:#4b4648; font-family:var(--sans); font-size:clamp(1.55rem,2.1vw,2rem); font-weight:400; letter-spacing:.2em; text-transform:uppercase; }
.home-about__copy .eyebrow { margin-bottom:3rem; }
.home-about__copy > p:not(.eyebrow) { margin:0 0 2rem; color:#4b4648; font-family:var(--display); font-size:.96rem; line-height:2.05; }
.home-about__button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; margin-top:1rem; padding:.9rem 1.8rem; background:#292828; color:#fff; font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.home-about__button:hover { background:var(--wine); }
.home-featured { display:grid; grid-template-columns:minmax(240px,.6fr) minmax(520px,1.2fr); align-items:center; gap:clamp(4rem,9vw,9rem); width:min(100% - 16vw,1200px); margin:0 auto; padding:clamp(5rem,9vw,9rem) 0; background:#fff; }
.home-featured__copy { max-width:360px; padding-left:clamp(0rem,7vw,6.8rem); }
.home-featured__copy h2 { margin:0 0 2.1rem; color:#504a4c; font-family:var(--sans); font-size:clamp(1.55rem,2.2vw,2.08rem); font-weight:400; letter-spacing:.18em; line-height:1.5; text-transform:uppercase; }
.home-featured__copy p { margin:0; color:#514b4d; font-family:var(--display); font-size:.96rem; line-height:2.1; }
.home-featured__clipping { margin:0; }
.home-featured__clipping img { display:block; width:100%; aspect-ratio:1.18; object-fit:cover; object-position:center; }
.cta-band { padding:clamp(5rem,10vw,10rem) 9vw; background:#211d1e; color:#fff; text-align:center; }
.cta-band h2 { max-width:1000px; margin:1rem auto 2rem; }
.cta-band > div { display:flex; align-items:center; justify-content:center; gap:1.8rem; flex-wrap:wrap; }
.cta-band .text-link { margin:0; color:#fff; }
.page-hero { min-height:500px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:var(--cream); }
.page-hero > div { padding:clamp(5rem,10vw,11rem) 9vw; align-self:center; }
.page-hero h1 { margin:.55rem 0 1.45rem; font-size:clamp(3rem,5.5vw,6.2rem); }
.page-hero > div > p:not(.eyebrow):not(.article-date) { max-width:560px; font-size:1.03rem; }
.page-hero > img { width:100%; min-height:500px; height:100%; object-fit:cover; }
.page-hero--article { grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr); }
.article-date { color:var(--clay); font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
.content-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.content-section .prose { grid-column:2; max-width:680px; }
.content-section--article { grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr); }
.content-section--article .prose { font-size:1.13rem; }
.gallery-section { background:var(--paper); }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:.55rem; }
.gallery-card { min-height:235px; padding:0; border:0; background:var(--sand); cursor:zoom-in; overflow:hidden; }
.gallery-card--wide { grid-column:span 2; grid-row:span 2; min-height:470px; }
.gallery-card img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.gallery-card:hover img { transform:scale(1.035); }
.lightbox { width:min(95vw,1120px); max-height:94svh; padding:0; border:0; background:#171314; color:#fff; }
.lightbox::backdrop { background:rgba(18,14,15,.86); backdrop-filter:blur(6px); }
.lightbox img { width:100%; max-height:86svh; object-fit:contain; }
.lightbox p { margin:0; padding:.75rem 1rem; font-size:.78rem; }
.lightbox-close { position:absolute; top:.7rem; right:.7rem; width:34px; height:34px; border:0; border-radius:50%; background:#fff; color:var(--wine); font-size:1.5rem; cursor:pointer; }
.post-list { display:grid; gap:0; }
.post-card { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); gap:clamp(2rem,5vw,6rem); padding:3.2rem 0; border-top:1px solid var(--line); }
.post-card img, .post-placeholder { width:100%; min-height:250px; height:100%; object-fit:cover; background:var(--sand); }
.post-card h2 { margin:.45rem 0 1rem; font-size:clamp(1.9rem,3.7vw,3.6rem); }
.post-card p { max-width:650px; }
.testimonial-wall { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); }
.testimonial-wall blockquote { min-height:230px; margin:0; padding:2.3rem; background:var(--paper); }
.testimonial-wall blockquote > span { color:var(--clay); font-family:var(--mono); font-size:.7rem; }
.testimonial-wall p { margin-top:2.3rem; font-family:var(--display); font-size:1.45rem; line-height:1.35; }
.contact-actions { display:flex; align-items:center; gap:1.35rem; flex-wrap:wrap; }
.contact-actions .text-link { margin:0; }
.contact-direct-section { padding:clamp(5rem,10vw,10rem) 9vw; background:var(--paper); }
.contact-direct-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.contact-method { min-height:285px; padding:2rem; display:flex; flex-direction:column; align-items:flex-start; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .25s ease, color .25s ease; }
.contact-method:hover { background:var(--wine); color:#fff; }
.contact-method > span { color:var(--clay); font-family:var(--mono); font-size:.7rem; }
.contact-method h3 { margin:2.5rem 0 .75rem; font-size:2rem; }
.contact-method p { max-width:290px; font-size:.92rem; }
.contact-method strong { margin-top:auto; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.contact-method b { color:var(--clay); font-size:1.1rem; }
.contact-form-section { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(3rem,8vw,10rem); }
.inquiry-form { display:grid; gap:1.25rem; }
.inquiry-form label, .inquiry-form fieldset { display:grid; gap:.45rem; color:var(--wine); font-size:.75rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.inquiry-form input, .inquiry-form textarea, .inquiry-form select { width:100%; padding:.85rem 0; border:0; border-bottom:1px solid var(--line); border-radius:0; outline:0; background:transparent; color:var(--ink); font-size:1rem; font-weight:400; letter-spacing:0; text-transform:none; }
.inquiry-form input:focus, .inquiry-form textarea:focus, .inquiry-form select:focus { border-color:var(--clay); }
.inquiry-form fieldset { padding:0 0 1rem; border:0; border-bottom:1px solid var(--line); }
.inquiry-form legend { margin-bottom:.7rem; }
.inquiry-form fieldset label { display:flex; align-items:center; gap:.5rem; color:var(--ink); font-size:.82rem; font-weight:400; letter-spacing:0; text-transform:none; }
.inquiry-form fieldset input { width:auto; }
.form-status { min-height:1.5rem; margin:0; color:var(--clay); font-size:.88rem; }
.site-footer { padding:3.5rem 4.6vw 2rem; display:grid; grid-template-columns:1.3fr 1fr; gap:3rem; background:#181415; color:#f8f2eb; }
.wordmark--footer { display:inline-block; margin-bottom:.8rem; }
.site-footer p { color:#cfc1b8; font-size:.85rem; }
.footer-links { display:grid; grid-template-columns:repeat(2, max-content); align-content:start; gap:.4rem 2.5rem; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; }
.footer-links a:hover { color:#eaa17d; }
.copyright { grid-column:1/-1; margin:1.6rem 0 0; padding-top:1.25rem; border-top:1px solid rgba(255,255,255,.13); }
@media (max-width: 1100px) { .desktop-nav { gap:.75rem; font-size:.64rem; } .site-header { padding-inline:3vw; } .gallery-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width: 820px) { .site-header { min-height:68px; } .desktop-nav { display:none; } .menu-toggle { display:flex; width:42px; height:42px; padding:8px; flex-direction:column; justify-content:center; gap:5px; border:0; background:transparent; cursor:pointer; } .menu-toggle span:not(.sr-only) { display:block; height:1px; width:24px; background:var(--ink); transition:transform .2s ease; } .menu-toggle[aria-expanded='true'] span:nth-child(1) { transform:translateY(6px) rotate(45deg); } .menu-toggle[aria-expanded='true'] span:nth-child(2) { opacity:0; } .menu-toggle[aria-expanded='true'] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); } .mobile-nav { position:absolute; top:100%; left:0; right:0; padding:1rem 6vw 2rem; display:none; grid-template-columns:repeat(2,1fr); gap:.5rem; background:var(--paper); border-bottom:1px solid var(--line); } .mobile-nav.is-open { display:grid; } .mobile-nav a { padding:.55rem 0; font-size:.76rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; } .home-hero { min-height:calc(100svh - 68px); } .hero-copy { padding:5.5rem 8vw 4rem; } .layout-split, .editorial-strip, .page-hero, .page-hero--article, .contact-form-section { grid-template-columns:1fr; } .work-grid { width:min(100%,690px); gap:1.5rem; } .contact-direct-grid { grid-template-columns:1fr; } .page-hero > img { min-height:350px; max-height:500px; grid-row:1; } .page-hero > div { padding:4.5rem 8vw; grid-row:2; } .content-section, .content-section--article { grid-template-columns:1fr; padding-inline:8vw; } .content-section .prose { grid-column:auto; } .package-grid { grid-template-columns:repeat(2,1fr); } .editorial-grid { min-height:450px; } .post-card { grid-template-columns:1fr; gap:1.5rem; } .testimonial-wall { grid-template-columns:1fr; } }
@media (max-width: 560px) { h1 { font-size:3.1rem; } h2 { font-size:2.45rem; } .intro-section, .content-section, .gallery-section, .package-section, .testimonials-section, .contact-form-section, .post-list, .testimonial-wall { padding:4rem 6vw; } .work-showcase { padding-inline:6vw; } .work-grid { grid-template-columns:1fr; width:min(100%,330px); gap:3rem; } .work-showcase__title { margin-bottom:3rem; font-size:1rem; } .gallery-grid { grid-template-columns:repeat(2,1fr); gap:.35rem; } .gallery-card { min-height:145px; } .gallery-card--wide { min-height:290px; } .package-grid { grid-template-columns:1fr; } .package-card { min-height:200px; } .editorial-copy { padding:4.5rem 8vw; } .editorial-grid { grid-template-columns:1fr 1fr; min-height:360px; } .testimonial-wall blockquote, .testimonial-track blockquote { padding:1.5rem; } .site-footer { grid-template-columns:1fr; padding-inline:6vw; } .footer-links { grid-template-columns:1fr; } }
@media (max-width: 820px) { .home-review-proof, .review-page-hero { grid-template-columns:1fr; } .home-review-proof { padding-inline:8vw; } .home-review-proof__grid { max-width:680px; } .review-page-hero > img { min-height:420px; max-height:650px; grid-row:1; } .review-page-hero > div { padding:4.5rem 8vw; grid-row:2; } .review-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .home-review-proof, .review-gallery-section { padding-inline:6vw; } .home-review-proof__grid { grid-template-columns:1fr; max-width:330px; margin:0 auto; } .home-review-card { width:78%; margin:0 auto; } .review-gallery { grid-template-columns:1fr; gap:1rem; } }
@media (max-width: 820px) { .home-gallery-cta { padding:2.5rem 6vw 3.25rem; } .home-testimonial-carousel { --testimonial-photo-height:auto; width:min(100% - 12vw,680px); height:auto; padding:0 0 5rem; } .home-testimonial-slide { height:auto; grid-template-columns:1fr; gap:2.5rem; } .home-testimonial-slide figure { height:auto; } .home-testimonial-slide figure img { height:auto; aspect-ratio:1.14; } .home-testimonial-slide__copy { padding:0 0 3.2rem; } .home-testimonial-slide__copy .eyebrow { margin-bottom:1.5rem; } .home-testimonial-controls { left:50%; transform:translateX(-50%); } .home-journal { padding-inline:6vw; } .home-journal-grid { grid-template-columns:1fr; max-width:390px; gap:4rem; } }
@media (max-width: 820px) { .home-about { padding:2rem 0; } .home-about__inner { display:flex; flex-direction:column; width:100%; min-height:0; } .home-about__panel { inset:auto 0 0; height:72%; } .home-about__portrait { width:min(100% - 12vw,560px); align-self:flex-start; } .home-about__copy { align-self:center; max-width:560px; padding:4rem 9vw 4.5rem; } .home-featured { grid-template-columns:1fr; gap:3rem; width:min(100% - 12vw,620px); padding:5rem 0; } .home-featured__copy { max-width:440px; padding:0; } }
@media (max-width: 560px) { .hero-copy h1 { font-size:3.1rem; } }
