/* Noir: explicit surface palettes keep every page readable. */
.logo-noir{--paper:#121416;--ink:#f4f1eb;--red:#bd392e;--line:#44484b;--muted:#bfc1bf;background:#121416;color:#f4f1eb;font-size:18px;line-height:1.8}
.logo-noir ::selection{background:#bd392e;color:#fff}
.logo-noir h1,.logo-noir h2,.logo-noir h3{color:inherit;font-weight:500;line-height:1.06;letter-spacing:-.012em}
.logo-noir .section{padding-block:100px}
.logo-noir .eyebrow{color:#d0c7bc;font-size:12px;letter-spacing:2px;font-weight:600}
.logo-noir .red{color:#e16c5e}
.logo-noir .button,.logo-noir .header .small,.logo-noir .logo-hero-actions .button,.logo-noir .booking .button,.logo-noir .contact-hero .button,.logo-noir .service-aside .button,.logo-noir .cta .button{background:#b83229;color:#fff;border:1px solid #b83229;font-size:16px;min-height:56px;transition:background .2s,border-color .2s}
.logo-noir .button:hover,.logo-noir .header .small:hover{background:#952820;border-color:#952820;transform:none;color:#fff}
.logo-noir .text-link{color:inherit;border-color:#838785;font-size:16px}
.logo-noir .text-link:hover{color:#f2a299;border-color:#e16c5e}
.logo-noir a:focus-visible,.logo-noir button:focus-visible,.logo-noir [tabindex]:focus-visible{outline:2px solid #e16c5e;outline-offset:5px}
.logo-noir .header{height:100px;border-bottom:0;box-shadow:0 1px 0 #0001}
.logo-noir .actual-brand{width:355px}
.logo-noir .header nav{font-size:15px}
.logo-noir .header nav a,.logo-noir .dropdown-toggle,.logo-noir .mobile-nav a{color:#24282a}
.logo-noir .header nav a:hover,.logo-noir .header nav a[aria-current],.logo-noir .mobile-nav a:hover{color:#a52c24;text-decoration:none}
.logo-noir .header nav a[aria-current]{box-shadow:0 2px #b83229}
.logo-noir .dropdown{border-color:#b83229;box-shadow:0 15px 30px #0003}
.logo-noir .mobile-nav{top:100px;border-color:#c9ccc7}
.logo-noir .mobile-nav a{border-color:#d2d4cf}
.logo-noir .logo-hero{padding:55px 5% 65px;gap:6%;grid-template-columns:1.05fr 1fr;min-height:660px;background:#121416}
.logo-noir .logo-hero-image{min-height:540px}
.logo-noir .logo-hero-image>img{filter:saturate(.82);object-position:53% center}
.logo-noir .logo-hero h1{font-size:clamp(64px,5.9vw,94px);line-height:1.04;max-width:620px}
.logo-noir .logo-hero h1 em{color:#c8c4bb}
.logo-noir .logo-hero-copy>.eyebrow:before{content:'';display:inline-block;width:27px;height:2px;background:#d04e42;vertical-align:middle;margin:0 12px 3px 0}
.logo-noir .logo-hero-copy>p{font-size:19px;line-height:1.8;color:#d1d0ca;max-width:460px}
.logo-noir .logo-hero-actions{gap:25px}
.logo-noir .logo-hero-actions .text-link{color:#e4e1da}
.logo-noir .logo-signoff{border-color:#494b4b;margin-top:38px;padding-top:23px}
.logo-noir .logo-signoff small{color:#c7c7c1;font-size:13px}
.logo-noir .image-credit{background:#151719;color:#f5f2ec;font-size:12px;letter-spacing:.4px}
.logo-noir .quality-strip{background:#1c1f21;border-color:#424647;color:#dcd9d2;font-size:14px;padding-block:26px}
.logo-noir .quality-strip i{color:#e4796d}
.logo-noir .about{background:#1c1f21;color:#f4f1eb}
.logo-noir .about h2{font-size:clamp(50px,5vw,76px)}
.logo-noir .about-grid{grid-template-columns:1fr 1.15fr;gap:8%;align-items:start}
.logo-noir .about-photo img{aspect-ratio:1/1.13;filter:saturate(.82)}
.logo-noir .about-photo>span{background:#151719;color:#f5f2ec}
.logo-noir .prose,.logo-noir .about .prose,.logo-noir .intro-prose,.logo-noir .policy>.prose{color:#d4d3cd;font-size:18px;line-height:1.9}
.logo-noir .prose h2,.logo-noir .prose h3,.logo-noir .prose h4{color:#f4f1eb;line-height:1.2}
.logo-noir .about .prose .text-link{color:#f5f2ec}
.logo-noir .services{background:#121416;color:#f4f1eb}
.logo-noir .services .eyebrow{color:#d0c7bc}
.logo-noir .section-heading>p,.logo-noir .services .section-heading>p{color:#c6c8c4;font-size:18px}
.logo-noir .filters{border-color:#44484b;gap:10px;padding-bottom:30px}
.logo-noir .filters button{border:1px solid #626665;border-radius:0;background:transparent;color:#e1e0d9;font-size:15px;min-height:48px}
.logo-noir .filters button span{opacity:1;color:inherit}
.logo-noir .filters button[aria-pressed=true]{background:#eeeae2;color:#1c2022;border-color:#eeeae2}
.logo-noir .filters button:hover{border-color:#e4796d}
.logo-noir .service-list{display:grid;grid-template-columns:1fr 1fr;column-gap:60px}
.logo-noir .service-row{display:grid;grid-template-columns:26px 1fr 32px;gap:6px 20px;padding:28px 0;border-color:#44484b;color:#f4f1eb;align-items:center}
.logo-noir .service-row h3{font-size:31px;line-height:1.15;grid-column:2;grid-row:1;font-weight:500}
.logo-noir .service-number{font-size:13px;color:#bbbdb8;grid-column:1;grid-row:1/3;align-self:start;padding-top:7px}
.logo-noir .service-category{color:#b8bcb8;font-size:14px;grid-column:2;grid-row:2;display:block}
.logo-noir .row-arrow{grid-column:3;grid-row:1/3;color:#e4796d;font-size:25px;width:30px}
.logo-noir .service-row:hover{background:#1c2022;padding-left:10px}
.logo-noir .service-row:hover .row-arrow{color:#f5a79d}
.logo-noir .gallery-section{background:#1c1f21;color:#f4f1eb}
.logo-noir .gallery-frame{height:620px}
.logo-noir .gallery-frame>span{background:#121416;color:#f4f1eb;font-size:15px}
.logo-noir .gallery-controls>span{color:#c7c9c5}
.logo-noir .gallery-controls button{color:#f4f1eb;border-color:#7b817e;border-radius:0}
.logo-noir .gallery-controls button:hover{background:#b83229;border-color:#b83229;color:#fff}
.logo-noir .cta{background:#121416;color:#f4f1eb;border-top:1px solid #45494b;position:relative}
.logo-noir .cta:before{content:'';position:absolute;top:-1px;left:6.2%;width:72px;height:3px;background:#b83229}
.logo-noir .cta h2{font-size:clamp(48px,5.5vw,82px)}
.logo-noir .cta h2>span{color:#c7c2b9}
.logo-noir .cta .text-link:hover{color:#f2a299}
.logo-noir footer{background:#0c0e10;color:#e1ded7;border-top:1px solid #34383a}
.logo-noir .actual-footer{max-width:440px;padding:17px}
.logo-noir .footer-top .eyebrow,.logo-noir .footer-bottom{color:#bfc3bf}
.logo-noir .footer-top>div>a{font-size:16px}
.logo-noir .footer-top>div>a:hover,.logo-noir .footer-bottom a:hover{color:#f2a299}
.logo-noir .service-cover,.logo-noir .page-heading,.logo-noir .contact-hero,.logo-noir .booking,.logo-noir .policy{background:#121416;color:#f4f1eb}
.logo-noir .service-cover{padding-block:60px;gap:6%;min-height:0}
.logo-noir .detail-title h1{font-size:clamp(58px,5.6vw,86px);line-height:1.06}
.logo-noir .detail-title .eyebrow{color:#d0c7bc}
.logo-noir .back-link,.logo-noir .detail-title .text-link{color:#d1d2cc}
.logo-noir .viewer-stage{height:500px;background:#25292b}
.logo-noir .viewer-photo{filter:none}
.logo-noir .viewer-toolbar{border-color:#565c5c;color:#deded6}
.logo-noir .photo-choices button{color:#e8e4db;border-color:#7b817e}
.logo-noir .photo-choices button[aria-pressed=true]{background:#b83229;border-color:#b83229;color:#fff}
.logo-noir .photo-count{color:#c7c9c4}
.logo-noir .enlarge{background:#151719;color:#fff;border-color:#777e7c}
/* Long service copy gets its own light reading surface with dark text. */
.logo-noir .article-layout{--ink:#222728;--muted:#505a57;background:#eeece5;color:#222728;padding-block:80px}
.logo-noir .service-copy,.logo-noir .service-copy p,.logo-noir .service-copy p:first-child{color:#333c3b;font-size:19px;line-height:1.9}
.logo-noir .service-copy h2,.logo-noir .service-copy h3,.logo-noir .service-copy h4{color:#222728}
.logo-noir .service-aside{border-color:#b83229;padding-left:28px}
.logo-noir .service-aside h2{color:#222728;font-size:43px}
.logo-noir .service-aside p{color:#4b5652;font-size:17px}
.logo-noir .service-aside .eyebrow{color:#57605b}
.logo-noir .phone-link{color:#333c3b}
.logo-noir .related{background:#1c1f21;color:#f4f1eb}
.logo-noir .related .eyebrow{color:#d0c7bc}
.logo-noir .related>a{color:#eeeae2;border-color:#555b5b}
.logo-noir .related>a:hover{color:#f2a299}
.logo-noir .contact-main>p,.logo-noir .hours>div{color:#d2d5cf}
.logo-noir .hours>div{border-color:#555b5b;font-size:17px}
.logo-noir .contact-details,.logo-noir .map-section{background:#1c1f21;color:#f4f1eb}
.logo-noir .contact-details .eyebrow{color:#c5c9c3}
.logo-noir .contact-details a,.logo-noir .contact-details p{color:#dfdfd7;font-size:17px}
.logo-noir .booking-intro,.logo-noir .booking-steps p,.logo-noir .booking-note{color:#c7cbc5}
.logo-noir .booking-steps strong{color:#f4f1eb}
.logo-noir .booking-steps li>span{color:#ee9286}
.logo-noir .booking-steps li{border-color:#555b5b}
.logo-noir .booking-note{font-size:15px}
.logo-noir .policy th,.logo-noir .policy td{color:#dddcd5;border-color:#606663}
.logo-noir .skip{color:#1c2022}
@media(min-width:1600px){.logo-noir .logo-hero{padding-inline:max(5%,calc((100% - 1440px)/2))}}
@media(max-width:1100px){.logo-noir .service-list{column-gap:35px}.logo-noir .logo-hero h1{font-size:68px}.logo-noir .logo-hero{gap:35px}.logo-noir .actual-brand{width:330px}.logo-noir .service-row h3{font-size:28px}.logo-noir .about-grid{gap:45px}}
@media(max-width:1000px){.logo-noir .actual-brand{width:410px}.logo-noir .header{height:88px}.logo-noir .mobile-nav{top:88px}.logo-noir .logo-hero h1{font-size:62px}.logo-noir .logo-hero-image{min-height:540px}}
@media(max-width:850px){.logo-noir .section{padding-block:70px}.logo-noir .about-grid{grid-template-columns:1fr;gap:35px}.logo-noir .about-photo img{aspect-ratio:1.6}.logo-noir .about .prose{columns:1;max-width:720px}.logo-noir .gallery-frame{height:460px}.logo-noir .article-layout{padding-block:60px}.logo-noir .service-aside{border-top:0;position:static}.logo-noir .contact-grid{gap:40px}}
@media(max-width:750px){.logo-noir .logo-hero{display:flex;flex-direction:column;margin:0;padding:45px 6% 55px;gap:38px;min-height:0}.logo-noir .logo-hero-copy{order:0}.logo-noir .logo-hero-image{order:1;min-height:0;height:420px}.logo-noir .logo-hero h1{font-size:72px}.logo-noir .logo-hero-copy>p{max-width:540px}.logo-noir .logo-signoff{display:none}.logo-noir .service-cover{grid-template-columns:1fr}.logo-noir .viewer-stage{height:420px}.logo-noir .service-list{grid-template-columns:1fr}.logo-noir .service-row h3{font-size:32px}.logo-noir .actual-brand{width:420px}.logo-noir .detail-title h1{font-size:65px}.logo-noir .contact-details{grid-template-columns:1fr}.logo-noir .contact-details>img{max-height:420px}.logo-noir .booking{grid-template-columns:1fr}.logo-noir .booking>img{height:380px}}
@media(max-width:560px){.logo-noir{font-size:17px}.logo-noir .header{height:78px}.logo-noir .mobile-nav{top:78px}.logo-noir .actual-brand{width:310px}.logo-noir .section{padding-block:55px}.logo-noir .logo-hero{padding-top:38px;gap:32px}.logo-noir .logo-hero h1{font-size:clamp(51px,14vw,70px);line-height:1.07}.logo-noir .logo-hero-copy>.eyebrow{font-size:11px;letter-spacing:1px}.logo-noir .logo-hero-copy>p{font-size:18px}.logo-noir .logo-hero-actions{gap:20px}.logo-noir .logo-hero-actions .button{font-size:16px}.logo-noir .logo-hero-actions .text-link{font-size:16px}.logo-noir .logo-hero-image{height:340px}.logo-noir .quality-strip{font-size:14px;gap:12px;padding-block:25px}.logo-noir .section-heading>p,.logo-noir .services .section-heading>p{font-size:17px}.logo-noir .prose,.logo-noir .about .prose,.logo-noir .intro-prose,.logo-noir .policy>.prose{font-size:17px;line-height:1.85}.logo-noir .about h2{font-size:49px}.logo-noir .about-photo img{aspect-ratio:1.3}.logo-noir .filters button{font-size:14px;padding:10px 12px}.logo-noir .service-row{padding:22px 0;gap:7px 14px;grid-template-columns:22px 1fr 26px}.logo-noir .service-row h3{font-size:29px;overflow-wrap:anywhere}.logo-noir .service-category{font-size:13px}.logo-noir .gallery-frame{height:350px}.logo-noir .gallery-frame>span{font-size:14px;padding:14px 16px}.logo-noir .cta h2{font-size:47px}.logo-noir .footer-top>div>a{font-size:15px}.logo-noir .actual-footer{padding:12px}.logo-noir .detail-title h1{font-size:clamp(45px,12.5vw,60px)}.logo-noir .viewer-stage{height:340px}.logo-noir .service-cover{padding-block:38px}.logo-noir .article-layout{padding-block:45px}.logo-noir .service-copy,.logo-noir .service-copy p,.logo-noir .service-copy p:first-child{font-size:18px;line-height:1.85}.logo-noir .service-aside{padding-left:23px}.logo-noir .service-aside h2{font-size:40px}.logo-noir .booking h1,.logo-noir .contact-hero h1{font-size:65px}.logo-noir .contact-main h2{font-size:41px}.logo-noir .contact-details a,.logo-noir .contact-details p{font-size:16px}.logo-noir .image-credit{font-size:11px;left:14px;bottom:14px}.logo-noir .eyebrow{font-size:12px;letter-spacing:1.4px}}
.logo-noir .contact-details>*{min-width:0}
@media(max-width:380px){.logo-noir .policy h1{font-size:48px;overflow-wrap:anywhere}.logo-noir .contact-details h2{font-size:38px;overflow-wrap:anywhere}.logo-noir .contact-main h2{font-size:36px}}
