:root{--paper:#f8f6f0;--ink:#27362e;--green:#285646;--dark:#102e29;--gold:#c2a365;--line:#d8d9d0;--muted:#59645f;--mono:'IBM Plex Mono',monospace;--sans:'IBM Plex Sans',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.wrap{max-width:1320px;width:calc(100% - 88px);margin:auto}.site-header{background:#102e29;color:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #466156}.navrow{min-height:78px;display:flex;align-items:center;gap:36px}.logo{display:block;width:194px;flex-shrink:0}.logo img{width:100%;max-height:52px;object-fit:contain}.links{display:flex;align-items:center;gap:25px;margin-left:auto;font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.03em}.links a:hover{color:#e1c783}.nav-cta,.solid-btn{background:var(--gold);border:1px solid var(--gold);padding:13px 18px;font:600 11px var(--mono);text-transform:uppercase;color:#142b24;display:inline-flex;align-items:center;justify-content:center;gap:10px}.nav-cta:hover,.solid-btn:hover{background:#d4b87e}.outline-btn{border:1px solid #9aa69c;background:transparent;padding:12px 18px;font:600 11px var(--mono);text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:10px}.outline-btn:hover{border-color:var(--green);color:var(--green)}.mast{position:relative;padding:75px 0 56px;overflow:hidden;border-bottom:1px solid var(--line)}.mast:after,.grid-surface:before{content:'';position:absolute;right:0;top:0;width:260px;height:180px;opacity:.25;background-image:linear-gradient(#9da9a0 1px,transparent 1px),linear-gradient(90deg,#9da9a0 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to left,#000,transparent);pointer-events:none}.eyebrow{font:600 11px var(--mono);letter-spacing:.09em;text-transform:uppercase;display:flex;gap:14px;align-items:center;color:#56655c}.eyebrow:before{content:'';width:3px;height:25px;background:var(--gold)}h1,h2,h3{font-family:var(--mono);line-height:1.15;letter-spacing:-.04em}h1{font-size:clamp(35px,5vw,69px);max-width:940px;margin:25px 0}h2{font-size:clamp(25px,3vw,39px)}.accent{color:var(--green)}.gold{color:#b08a34}.lede{font-size:17px;max-width:690px;color:#526159}.meta-line{font:11px var(--mono);color:#637067;text-transform:uppercase;letter-spacing:.04em}.section{padding:48px 0 82px}.filters{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px;padding:22px;background:#eeede6;border:1px solid var(--line);margin-bottom:28px}.filters label{font:600 10px var(--mono);display:block;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.filters input,.filters select,.form-grid input,.form-grid textarea,.form-grid select{background:#fff;border:1px solid #cbd0c9;border-radius:0;width:100%;padding:12px 14px;color:var(--ink);min-height:46px}.filters input:focus,.filters select:focus,.form-grid input:focus,.form-grid textarea:focus{outline:2px solid var(--gold);outline-offset:1px}.result-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.result-head strong{font:600 11px var(--mono);text-transform:uppercase}.list-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.biz-card{border:1px solid var(--line);background:#fffefa;display:flex;flex-direction:column;min-width:0;transition:transform .2s,border-color .2s}.biz-card:hover{transform:translateY(-3px);border-color:var(--gold)}.biz-art{height:190px;background:#efeee8;display:flex;align-items:center;justify-content:center;padding:18px;border-bottom:1px solid var(--line)}.biz-art img{height:100%;width:100%;object-fit:contain;mix-blend-mode:multiply}.biz-content{padding:20px;flex:1;display:flex;flex-direction:column}.biz-content h3{font-size:17px;line-height:1.35;margin:10px 0}.biz-content p{color:#536158;font-size:13px;line-height:1.6;margin:0 0 22px}.biz-content .outline-btn{margin-top:auto}.tag{font:600 9px var(--mono);text-transform:uppercase;letter-spacing:.04em;color:#6a6f62}.tiny-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--gold);margin-right:7px}.empty{border:1px dashed var(--line);padding:45px;text-align:center}.foot{background:var(--dark);color:#fff;padding:55px 0 20px}.foot-top{display:flex;justify-content:space-between;gap:35px;align-items:start}.foot img{width:190px}.foot p{max-width:360px;color:#b9c7bf}.foot-links{display:flex;gap:28px;font:11px var(--mono);text-transform:uppercase}.foot-bottom{border-top:1px solid #365348;margin-top:35px;padding-top:18px;color:#afbeb4;font:10px var(--mono)}.breadcrumb{font:11px var(--mono);text-transform:uppercase;color:#67746b;margin-bottom:25px}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,.85fr);gap:42px;align-items:start}.detail-hero{display:grid;grid-template-columns:1fr 250px;gap:24px;align-items:center;padding-bottom:35px;border-bottom:1px solid var(--line)}.detail-hero h1{font-size:clamp(32px,4vw,56px);margin:18px 0}.detail-hero img{max-height:240px;object-fit:contain}.detail-block{padding:27px 0;border-bottom:1px solid var(--line)}.detail-block h2{font-size:24px;margin:0 0 14px}.detail-block p{color:#526158;max-width:680px}.services{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service{border:1px solid var(--line);background:#fffefa;padding:13px 16px;font-size:13px}.service:before{content:'✓';color:var(--green);font-weight:bold;margin-right:12px}.side-panel{border:1px solid #c9cfc5;background:#fffefa;padding:28px;position:sticky;top:103px}.side-panel h2{font-size:25px;margin:12px 0}.side-panel p{font-size:13px;color:#57645c}.side-panel .solid-btn{width:100%;margin:15px 0 10px}.side-panel .outline-btn{width:100%}.notice{padding:13px 16px;border-left:3px solid var(--gold);background:#f0eee5;color:#5b645a;font-size:12px;margin-top:23px}.related{padding:40px 0 75px;border-top:1px solid var(--line)}dialog{border:1px solid var(--line);padding:0;max-width:570px;width:calc(100% - 30px);box-shadow:0 20px 80px #142b2455;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#081d18aa}.dialog-head{display:flex;justify-content:space-between;align-items:start;padding:23px 26px 18px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:23px;margin:7px 0 0}.close{border:0;background:transparent;font-size:28px;line-height:1}.form-grid{padding:24px 26px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label{font:600 10px var(--mono);text-transform:uppercase}.form-grid label input,.form-grid label textarea{margin-top:8px}.form-grid .full{grid-column:1/-1}.form-grid textarea{resize:vertical;min-height:90px}.form-grid button{grid-column:1/-1}.form-note{font-size:11px;color:#5a665d;grid-column:1/-1;margin:0}.mobile-menu{display:none}@media(max-width:1050px){.list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.links{gap:13px}.detail-grid{gap:22px}}@media(max-width:760px){.wrap{width:calc(100% - 36px)}.navrow{min-height:68px;flex-wrap:wrap;gap:12px}.logo{width:165px}.mobile-menu{display:block;margin-left:auto;background:none;border:1px solid #6c8476;color:white;padding:8px 12px}.links{display:none;order:3;flex-basis:100%;margin:0;flex-direction:column;align-items:stretch;padding:12px 0 20px}.links.open{display:flex}.nav-cta{display:none}.mast{padding:48px 0}.filters{grid-template-columns:1fr}.list-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.detail-hero{grid-template-columns:1fr}.detail-hero img{max-height:180px}.side-panel{position:static}.foot-top{display:block}.foot-links{margin-top:25px;flex-wrap:wrap}.services{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
/* Editorial business profile */
.profile-banner{background:#15372f;color:#f8f6f0;position:relative;overflow:hidden;border-bottom:3px solid var(--gold)}.profile-banner:after{content:"";position:absolute;inset:0;opacity:.13;background-image:linear-gradient(#d6d8cc 1px,transparent 1px),linear-gradient(90deg,#d6d8cc 1px,transparent 1px);background-size:35px 35px;mask-image:linear-gradient(90deg,transparent,#000)}.profile-inner{position:relative;z-index:1;padding:42px 0 48px}.profile-top{display:grid;grid-template-columns:145px minmax(0,1fr) 270px;align-items:center;gap:30px}.profile-avatar{width:145px;height:145px;background:#f8f6f0;border:1px solid #d6c8a5;display:grid;place-items:center;padding:16px}.profile-avatar img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.profile-title h1{font-size:clamp(28px,3.6vw,48px);line-height:1.15;margin:12px 0}.profile-title .eyebrow{color:#ddc58b}.profile-tags{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.profile-tags span{font:10px var(--mono);border:1px solid #678276;color:#dfe9e2;padding:5px 9px}.profile-sub{color:#d1ded4;font-size:12px}.profile-aside{border-left:1px solid #668277;padding-left:24px;font-size:13px;color:#e0e8e1}.profile-aside p{margin:0 0 18px}.profile-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.profile-actions button,.profile-actions a{min-width:145px}.profile-actions .outline-btn{color:#fff;border-color:#8ca69b}.profile-actions .outline-btn:hover{color:#e9cb85;border-color:#e9cb85}.profile-nav{background:#f1f0e9;border-bottom:1px solid var(--line);position:sticky;top:78px;z-index:10}.profile-nav .wrap{display:flex;gap:30px;overflow-x:auto;white-space:nowrap}.profile-nav a{font:600 11px var(--mono);text-transform:uppercase;padding:17px 0;border-bottom:3px solid transparent}.profile-nav a:hover,.profile-nav a:focus{border-color:var(--gold);color:var(--green)}.profile-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(290px,.82fr);gap:24px;align-items:start;padding:34px 0 75px}.profile-main,.profile-sidebar{display:grid;gap:18px;min-width:0}.profile-box{background:#fffefa;border:1px solid var(--line);padding:25px 27px;scroll-margin-top:160px}.profile-box h2,.profile-sidebar h2{font:600 18px var(--mono);letter-spacing:-.025em;margin:0 0 16px}.profile-box h2:before,.profile-sidebar h2:before{content:'◆';font-size:10px;color:var(--gold);margin-right:11px;vertical-align:2px}.profile-box p{color:#55645b;margin:0 0 10px;font-size:14px}.profile-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-service{border:1px solid var(--line);background:#fbfaf6;overflow:hidden}.profile-service .art{height:120px;background:#f0efe8;display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--line)}.profile-service img{height:105px;width:100%;object-fit:contain;mix-blend-mode:multiply}.profile-service .info{padding:14px}.profile-service h3{font:600 13px var(--mono);margin:0 0 9px;line-height:1.4}.profile-service p{font-size:12px;min-height:38px}.mini-link{font:600 10px var(--mono);text-transform:uppercase;color:var(--green);background:none;border:0;padding:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.gallery-cell{min-height:135px;background:#f0efe8;border:1px solid var(--line);display:grid;place-items:center;padding:15px}.gallery-cell img{max-height:110px;object-fit:contain;mix-blend-mode:multiply}.gallery-caption{font-size:11px!important;margin-top:10px!important}.hours-row{display:grid;grid-template-columns:1fr 1fr;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.hours-row:last-child{border:0}.hours-row span:last-child{color:#66746a;text-align:right}.profile-sidebar .profile-box{padding:23px}.quick-panel{background:#15372f;color:#fff;border-color:#15372f}.quick-panel h2{color:#fff}.quick-panel p{color:#d1ded4}.quick-panel button,.quick-panel a{width:100%;margin-top:9px}.quick-panel .outline-btn{color:#fff;border-color:#a0b3a7}.side-muted{font-size:12px;color:#65736a}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{font:10px var(--mono);background:#eeeae0;border:1px solid #ddd9cc;padding:6px 9px}.share-actions{display:flex;gap:8px;flex-wrap:wrap}.share-actions button{font:600 11px var(--mono);border:1px solid var(--line);background:#f3f1e9;padding:9px 11px}.profile-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.profile-form label{font:600 10px var(--mono);text-transform:uppercase}.profile-form input,.profile-form textarea{width:100%;display:block;margin-top:7px;border:1px solid #cbd0c9;background:white;padding:12px;font:13px var(--sans)}.profile-form .full{grid-column:1/-1}.profile-form textarea{min-height:105px;resize:vertical}.profile-form button{justify-self:end;grid-column:1/-1}.status-line{font-size:12px!important;color:var(--green)!important}.profile-footnote{font-size:11px!important;color:#758075!important}.contact-hint{border-left:3px solid var(--gold);padding:10px 13px;background:#f2efe6;font-size:12px}.detail-breadcrumb{padding:17px 0;font:10px var(--mono);text-transform:uppercase;color:#6a756b}.detail-breadcrumb a{text-decoration:underline;text-underline-offset:3px}@media(max-width:950px){.profile-top{grid-template-columns:110px 1fr}.profile-avatar{width:110px;height:110px}.profile-aside{grid-column:1/-1;border-left:0;border-top:1px solid #668277;padding:15px 0 0}.profile-layout{grid-template-columns:1fr}.profile-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-nav{top:68px}}@media(max-width:640px){.profile-inner{padding:26px 0}.profile-top{grid-template-columns:85px 1fr;gap:14px}.profile-avatar{width:85px;height:85px;padding:8px}.profile-title h1{font-size:25px}.profile-sub{font-size:11px}.profile-actions button,.profile-actions a{flex:1;min-width:130px}.profile-nav .wrap{gap:22px}.profile-box{padding:20px}.profile-service-grid,.profile-sidebar,.profile-form{grid-template-columns:1fr}.profile-form .full{grid-column:auto}.gallery-grid{grid-template-columns:repeat(2,1fr)}.profile-form button{grid-column:1}.profile-layout{padding-top:20px}}
@media(max-width:1150px){.navrow{gap:15px}.links{gap:12px}}@media(max-width:1000px){.mobile-menu{display:block;margin-left:auto}.links{display:none}.links.open{display:flex;position:absolute;top:78px;left:0;right:0;background:#102e29;padding:18px;flex-wrap:wrap}.nav-cta{display:none}}
/* Real photos supplied by the business: fill the frame instead of the line-art treatment */
.profile-avatar.has-photo{background:#fff;padding:6px;overflow:hidden}.profile-avatar.has-photo img{object-fit:contain;mix-blend-mode:normal}
.profile-service .art.has-photo{height:170px;background:#fff}.profile-service .art.has-photo img{height:100%;object-fit:contain;mix-blend-mode:normal}
.gallery-cell.has-photo{padding:0;overflow:hidden;aspect-ratio:4/3;min-height:0}.gallery-cell.has-photo img{width:100%;height:100%;max-height:none;object-fit:cover;mix-blend-mode:normal}
/* Long descriptions: clamped with Show more / Show less */
.profile-aside .aside-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden;margin-bottom:10px}
.aside-more{display:block;width:max-content;margin:0 0 16px;font:600 10px var(--mono);text-transform:uppercase;color:#e9cb85;text-decoration:underline;text-underline-offset:3px}
.aside-more[hidden]{display:none}
.about-desc{white-space:pre-line;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.about-desc.is-open{display:block;-webkit-line-clamp:unset;overflow:visible}
.desc-toggle{margin-top:4px;padding:0;border:0;background:none;font:600 11px var(--mono);text-transform:uppercase;color:var(--green);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.desc-toggle[hidden]{display:none}
.desc-toggle:focus-visible,.aside-more:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
