/* Services as an editorial collection. No hero, process block or final CTA. */
.cr-service-hub { --cr-accent:#c7a956; --cr-accent-soft:#dbc486; --cr-paper:#f3eee3; --cr-muted:#b5b0a7; --cr-line:rgba(243,238,227,.18); background:#090909; color:var(--cr-paper); padding:132px 0 64px; }
body.cr-photography-theme .cr-service-hub .cr-shell { width:min(100% - 64px,1320px); }
.cr-hub-layout { display:grid; grid-template-columns:180px minmax(0,1fr); gap:40px; align-items:start; }
.cr-hub-index { position:sticky; top:112px; padding-right:24px; border-right:1px solid var(--cr-line); }
body.cr-photography-theme .cr-hub-index h1 { color:var(--cr-paper); font:italic 400 2.35rem/1.1 var(--cr-serif); letter-spacing:-.02em; margin:0 0 28px; }
.cr-hub-index nav { display:grid; gap:8px; }
.cr-hub-index a { position:relative; display:block; padding:12px 0 12px 13px; border-left:1px solid transparent; color:var(--cr-muted); font:400 .86rem/1.55 var(--cr-sans); text-decoration:none; }
.cr-hub-index a:hover,.cr-hub-index a[aria-current="location"] { color:var(--cr-accent-soft); border-color:var(--cr-accent); }
.cr-hub-service { display:grid; grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr); gap:36px; padding:0 0 42px; margin:0 0 42px; border-bottom:1px solid var(--cr-line); scroll-margin-top:112px; }
.cr-hub-service:last-child { margin-bottom:0; border-bottom:0; padding-bottom:0; }
.cr-hub-group-anchor { display:block; scroll-margin-top:112px; }
.cr-hub-service__image { position:sticky; top:112px; align-self:start; margin:0 5px 6px 0; aspect-ratio:3/4.6; max-height:570px; border-radius:4px; }
.cr-hub-service__image::after { content:''; position:absolute; inset:8px -6px -6px 8px; border:1px solid var(--cr-accent); border-left:0; border-top:0; border-radius:0 0 4px 0; pointer-events:none; }
.cr-hub-service__image img { display:block; width:100%; height:100%; object-fit:cover; border-radius:4px; }
.cr-hub-service:first-child .cr-hub-service__image img { object-position:65% center; }
body.cr-photography-theme .cr-hub-service .cr-hub-service__title { color:var(--cr-paper); font:italic 400 clamp(2rem,3vw,2.8rem)/1.1 var(--cr-serif); letter-spacing:-.025em; margin:0 0 20px; text-wrap:balance; }
.cr-hub-service p { font-size:1rem; line-height:1.75; color:var(--cr-muted); margin:12px 0 0; }
.cr-hub-service p.cr-hub-service__summary { color:var(--cr-paper); font:400 1.45rem/1.35 var(--cr-serif); margin:0 0 24px; }
body.cr-photography-theme .cr-hub-label { display:block; color:var(--cr-accent-soft); font:500 .7rem/1.5 var(--cr-sans); letter-spacing:.13em; text-transform:uppercase; margin:0; }
.cr-hub-service__audience p { margin-top:8px; color:#d0cbc3; }
.cr-hub-service__story { margin-top:24px; }
.cr-hub-service__story > :first-child { margin-top:0; }
.cr-hub-service__story p + p { margin-top:16px; }
.cr-hub-service__story h3 { color:var(--cr-paper); font-size:1.3rem; }
.cr-hub-service__includes { margin-top:24px; padding-top:22px; border-top:1px solid var(--cr-line); }
body.cr-photography-theme #main-content .cr-hub-service__includes { margin-top:28px; padding:24px 0 26px; }
body.cr-photography-theme #main-content .cr-hub-service__includes > .cr-hub-label { margin:0 0 20px; }
body.cr-photography-theme #main-content .cr-hub-service__includes ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 30px; padding:0; margin:0; list-style:none; }
.cr-hub-service__includes li { position:relative; padding:0 0 0 23px; color:#ddd8cf; font-size:.92rem; line-height:1.6; }
.cr-hub-service__includes li::before { content:'✓'; position:absolute; left:0; top:3px; width:14px; height:14px; border:1px solid var(--cr-accent); border-radius:50%; color:var(--cr-accent-soft); text-align:center; font:400 10px/12px var(--cr-sans); }
.cr-hub-facts { display:flex; flex-wrap:wrap; gap:12px 28px; margin:22px 0 0; padding-top:18px; border-top:1px solid var(--cr-line); }
.cr-hub-facts dt { font-size:.75rem; color:var(--cr-muted); }
.cr-hub-facts dd { font-size:.85rem; margin:5px 0 0; color:var(--cr-paper); }
.cr-hub-disclosure { border-top:1px solid var(--cr-line); margin-top:24px; }
.cr-hub-disclosure + .cr-hub-disclosure { margin-top:0; }
.cr-hub-disclosure > summary { display:flex; justify-content:space-between; gap:24px; align-items:center; list-style:none; cursor:pointer; padding:16px 0; color:var(--cr-accent-soft); font-size:.84rem; line-height:1.5; min-height:52px; }
.cr-hub-disclosure > summary::-webkit-details-marker { display:none; }
.cr-hub-disclosure > summary::after { content:'+'; flex:none; font:300 1.3rem/1 var(--cr-sans); }
.cr-hub-disclosure[open] > summary::after { content:'−'; }
.cr-hub-disclosure__body { padding:4px 0 18px; }
body.cr-photography-theme .cr-hub-disclosure .cr-shell { width:100%; max-width:none; }
.cr-hub-disclosure .cr-photo-gallery-section { padding-block:20px; }
.cr-service-hub :is(a,summary):focus-visible { outline:2px solid var(--cr-accent); outline-offset:5px; }
@media (min-width:1440px) { .cr-hub-layout { grid-template-columns:190px minmax(0,1fr); gap:48px; } .cr-hub-service { gap:42px; } }
@media (max-width:1100px) {
 .cr-hub-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
 .cr-hub-index { position:static; padding:0 0 22px; border:0; border-bottom:1px solid var(--cr-line); }
 body.cr-photography-theme .cr-hub-index h1 { font-size:2rem; margin-bottom:16px; }
 .cr-hub-index nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
 .cr-hub-index a { font-size:.82rem; padding:6px 12px; }
 .cr-hub-service { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:32px; }
}
@media (max-width:700px) {
 .cr-service-hub { padding:110px 0 32px; }
 body.cr-photography-theme .cr-service-hub .cr-shell { width:calc(100% - 36px); }
 .cr-hub-index nav { grid-template-columns:1fr 1fr; gap:4px 12px; }
 .cr-hub-index a { padding:10px 8px; min-height:44px; font-size:.8rem; }
 .cr-hub-service { grid-template-columns:minmax(0,1fr); gap:28px; padding-bottom:32px; margin-bottom:32px; scroll-margin-top:90px; }
 .cr-hub-service__image { position:relative; top:auto; aspect-ratio:4/3; max-height:340px; }
 .cr-hub-service p { font-size:1rem; }
 body.cr-photography-theme .cr-hub-service .cr-hub-service__title { font-size:2.2rem; margin-bottom:16px; }
 .cr-hub-service p.cr-hub-service__summary { font-size:1.4rem; }
 body.cr-photography-theme #main-content .cr-hub-service__includes ul { gap:18px 24px; }
}
@media (max-width:560px) { body.cr-photography-theme #main-content .cr-hub-service__includes ul { grid-template-columns:minmax(0,1fr); } }
