/* CATALOG-001: scoped to category/catalog pages, using the site's existing Gilroy typeface. */
.ds-catalog-page{--cat-bg:#111214;--cat-card:#1c1e22;--cat-line:#ffffff24;--cat-muted:#b5b6bc;background:var(--cat-bg);color:#f5f4f1;line-height:1.5}
.ds-catalog-page .ds-catalog-header{padding:0;margin:0;background:var(--cat-bg);min-height:0}
.ds-catalog-page main{padding-bottom:20px}.ds-catalog-page main:focus{outline:0}
.ds-catalog-page .ds-catalog-intro{padding:35px 0 30px;max-width:100%}
.ds-catalog-page .ds-breadcrumb{margin:0 0 32px;font-size:12px}
.ds-catalog-eyebrow{display:block;margin:0 0 12px;color:#dfa29d;font-size:11px;font-weight:700;line-height:1.5;letter-spacing:.12em;text-transform:uppercase}
.ds-catalog-page .ds-catalog-intro h1{font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.025em;text-transform:none;margin:0 0 18px;font-weight:700}
.ds-catalog-description{max-width:720px;font-size:18px;line-height:1.6;color:var(--cat-muted);margin:0 0 26px}
.ds-catalog-directions{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--cat-line);padding-bottom:28px}
.ds-catalog-directions a{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;border:1px solid var(--cat-line);border-radius:8px;color:#dddde0;font-size:14px;text-decoration:none;transition:background .15s,border-color .15s}
.ds-catalog-directions a[aria-current="page"]{background:#382523;border-color:#ad6862;color:#fff}
.ds-catalog-directions a:hover{border-color:#a4a4a9;background:#ffffff08}
.ds-catalog{margin:0 0 48px;scroll-margin-top:100px}
.ds-catalog-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:22px}
.ds-catalog-page .ds-catalog-heading h2{font-size:26px;font-weight:700;line-height:1.2;margin:0;text-transform:none}
.ds-catalog-count{font-size:12px;color:var(--cat-muted);white-space:nowrap;margin:0}
.ds-catalog-tools{display:flex;align-items:flex-end;flex-wrap:wrap;gap:15px 24px;margin-bottom:24px}
.ds-catalog-search{display:block;flex:0 1 320px;min-width:0;max-width:100%}.ds-catalog-search>span{display:block;font-size:12px;color:var(--cat-muted);margin-bottom:7px}
.ds-catalog-search input{display:block;width:100%;min-height:48px;border:1px solid #56585f;border-radius:8px;background:#1a1c20;color:#fff;font:inherit;font-size:16px;padding:11px 14px;box-shadow:none}
.ds-catalog-search input::placeholder{color:#a3a4aa;opacity:1}
.ds-catalog-filter{display:flex;flex-wrap:wrap;gap:7px;padding-bottom:3px}
.ds-catalog-filter button{min-height:42px;padding:9px 13px;border:1px solid var(--cat-line);border-radius:22px;background:transparent;color:#c5c5ca;font:inherit;font-size:13px;cursor:pointer}
.ds-catalog-filter button[aria-pressed="true"]{background:#f2f0ec;color:#1c1d20;border-color:#f2f0ec}
.ds-catalog-reset{background:none;color:#dfa29d;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:4px;min-height:44px;cursor:pointer}
.ds-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ds-service-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--cat-line);border-radius:14px;background:var(--cat-card);color:#f5f4f1;text-decoration:none;transition:border-color .18s,transform .18s}
.ds-service-card__media{position:relative;aspect-ratio:16/10;background:#17181b;overflow:hidden}
.ds-service-card__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.ds-service-card[data-service-id="125"] img{object-position:85% center}
.ds-service-card__placeholder{display:flex;align-items:center;justify-content:center;height:100%;font-size:26px;line-height:1.05;letter-spacing:.06em;color:#76787f;background:linear-gradient(135deg,#24262c,#17181c)}
.ds-service-card__body{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:21px 22px 19px;min-width:0}
.ds-catalog-page .ds-service-card h3{font-size:21px;font-weight:700;line-height:1.25;text-transform:none;margin:0 0 10px;overflow-wrap:anywhere}
.ds-service-card p{font-size:14px;line-height:1.5;color:var(--cat-muted);margin:0 0 20px}
.ds-service-card__link{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:auto;width:100%;font-size:13px;font-weight:700;color:#dfaaa5}
.ds-service-card__link>span{font-size:22px;line-height:1}
@media(hover:hover){.ds-service-card:hover{border-color:#a16a65;transform:translateY(-3px);color:#fff}}
.ds-catalog-empty{padding:26px;border:1px dashed #696b72;border-radius:10px;color:#c7c7cd;font-size:16px;line-height:1.6}
.ds-catalog-help{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:30px;border:1px solid #83514b;border-radius:14px;background:linear-gradient(110deg,#2c211f,#1c1d21 80%);margin-bottom:50px}
.ds-catalog-help>div:first-child{max-width:610px}.ds-catalog-help .ds-catalog-eyebrow{margin-bottom:9px}
.ds-catalog-page .ds-catalog-help h2{font-size:27px;font-weight:700;line-height:1.2;text-transform:none;margin:0 0 12px}
.ds-catalog-help p{font-size:15px;line-height:1.6;color:#c1bdc0;margin:0}
.ds-catalog-help .ds-actions{flex:0 0 210px;flex-direction:column;align-items:stretch;gap:12px}
.ds-catalog-help .ds-action{width:100%;font-size:15px}
.ds-catalog-contact{display:block;min-height:40px;padding:9px;text-align:center;color:#dcbdba;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.ds-catalog-details:empty{display:none}.ds-catalog-details .ds-intro-grid{margin-bottom:35px}.ds-catalog-details .ds-showcase{padding-bottom:35px}
.ds-catalog-page [hidden]{display:none!important}
.ds-catalog-page :is(.ds-service-card,.ds-catalog-directions a,.ds-catalog-tools input,.ds-catalog-tools button,.ds-catalog-contact):focus-visible{outline:3px solid #f3b9b2;outline-offset:4px}
@media(max-width:991px){.ds-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ds-service-card__body{padding:19px}.ds-catalog-help{gap:20px}}
@media(max-width:767px){.ds-catalog-page .ds-catalog-intro{padding:23px 0 24px}.ds-catalog-page .ds-breadcrumb{margin-bottom:24px;font-size:11px}.ds-catalog-page .ds-catalog-intro h1{font-size:36px;margin-bottom:15px}.ds-catalog-description{font-size:16px;line-height:1.55;margin-bottom:22px}.ds-catalog-directions{gap:8px;padding-bottom:22px}.ds-catalog-directions a{font-size:12px;padding:10px 12px}.ds-catalog-heading{margin-bottom:20px}.ds-catalog-page .ds-catalog-heading h2{font-size:24px}.ds-catalog-count{font-size:11px}.ds-catalog-tools{gap:15px;margin-bottom:20px}.ds-catalog-search{flex-basis:100%}.ds-catalog-filter{gap:6px}.ds-catalog-filter button{font-size:12px;min-height:44px;padding:10px 12px}.ds-catalog-grid{grid-template-columns:1fr;gap:12px}.ds-service-card{flex-direction:row;border-radius:12px;min-height:155px}.ds-service-card__media{flex:0 0 34%;aspect-ratio:auto;min-height:155px}.ds-service-card__body{padding:17px 15px;justify-content:center}.ds-catalog-page .ds-service-card h3{font-size:18px;margin-bottom:8px}.ds-service-card p{font-size:13px;line-height:1.45;margin-bottom:13px}.ds-service-card__link{font-size:12px}.ds-service-card__link>span{font-size:19px}.ds-service-card__placeholder{font-size:17px}.ds-catalog{margin-bottom:30px}.ds-catalog-help{display:block;padding:23px 21px;margin-bottom:35px}.ds-catalog-page .ds-catalog-help h2{font-size:25px}.ds-catalog-help p{font-size:14px}.ds-catalog-help .ds-actions{margin-top:22px}.ds-catalog-page main{padding-bottom:10px}}
@media(max-width:359px){.ds-service-card__media{flex-basis:30%}.ds-service-card__body{padding:15px 12px}.ds-catalog-page .ds-service-card h3{font-size:17px}}
@media(prefers-reduced-motion:reduce){.ds-service-card,.ds-catalog-directions a{transition:none}.ds-service-card:hover{transform:none}}

/* CATALOG-002: unified service illustrations; keep the entire subject visible. */
.ds-catalog-page .ds-service-card__media{aspect-ratio:4/3;background:#111214}
.ds-catalog-page .ds-service-card__media img{position:absolute;inset:0;object-fit:contain;object-position:center}
@media(max-width:767px){.ds-catalog-page .ds-service-card__media{aspect-ratio:auto}}

.ds-catalog-page :is(.ds-catalog-filter button,.ds-catalog-contact){min-height:44px}
