/* Horizontal service galleries; styles are scoped to the homepage component. */
.cr-offer-gallery{max-width:1440px;padding-block:88px 58px;overflow:hidden}
.cr-offer-gallery+.cr-offer-gallery{border-top:1px solid var(--cr-rule)}
.cr-offer-gallery .cr-gallery-heading{position:static;max-width:800px;margin-bottom:36px}
.cr-offer-gallery .cr-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:18px!important}
.cr-offer-gallery .cr-eyebrow:before{content:'';width:28px;height:1px;background:#a5874d}
.cr-offer-gallery h2{font-size:clamp(32px,3.5vw,48px);margin-bottom:18px}
.cr-offer-gallery .cr-gallery-intro{max-width:650px!important;margin:0;font-size:17px!important;line-height:1.75}
.cr-gallery-track{display:flex;gap:24px;align-items:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:6px;padding:6px 6px 24px;margin-inline:-6px;scrollbar-width:thin;scrollbar-color:#b9b6ad transparent}
.cr-gallery-track::-webkit-scrollbar{height:5px}
.cr-gallery-track::-webkit-scrollbar-thumb{background:#b9b6ad;border-radius:4px}
.cr-gallery-track:focus-visible{outline:2px solid #82652c;outline-offset:3px;border-radius:20px}
.cr-service-card{flex:0 0 clamp(300px,29vw,360px);min-width:0;scroll-snap-align:start;border:1px solid #e3e3dc;border-radius:18px;background:var(--cr-paper);overflow:hidden;color:var(--cr-ink)}
.cr-service-card summary{display:flex;flex-direction:column;list-style:none;padding:0;min-height:465px;cursor:pointer;border-radius:17px;outline-offset:-4px;position:relative;-webkit-tap-highlight-color:transparent}
.cr-service-card summary::-webkit-details-marker{display:none}
.cr-card-photo{display:block;aspect-ratio:16/9;width:100%;overflow:hidden;background:#ebe7df;border-radius:17px 17px 0 0}
.cr-card-photo img{display:block;width:100%;height:100%;object-fit:cover}
.cr-card-photo-wide img{object-fit:contain}
.cr-site .cr-service-card h3{font:500 clamp(19px,1.7vw,23px)/1.35 Montserrat,sans-serif;letter-spacing:-.035em;margin:24px 24px 14px;color:var(--cr-ink);overflow-wrap:anywhere;hyphens:auto}
.cr-card-excerpt{display:block;margin:0 24px;color:#52616b;font:400 15px/1.65 Roboto,sans-serif;overflow-wrap:anywhere}
.cr-card-action{display:flex;gap:12px;align-items:center;justify-content:space-between;margin: auto 24px 24px;padding-top:22px;font:500 11px/1.5 Montserrat,sans-serif;color:#233b51}
.cr-card-plus{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:var(--cr-navy);color:#fff;font:300 25px/1 Montserrat,sans-serif}
.cr-service-card[open] .cr-card-plus{transform:rotate(45deg)}
.cr-service-card .cr-service-detail{padding:0 24px 28px;border-top:1px solid var(--cr-rule);padding-top:24px}
.cr-gallery-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}
.cr-gallery-footer p{color:#667078;font:400 13px/1.6 Roboto,sans-serif;margin:0}
.cr-gallery-controls{display:flex;gap:10px;flex-shrink:0}
.cr-gallery-controls[hidden]{display:none}
.cr-gallery-arrow{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #d3d8d9;border-radius:50%;background:#f5f3ee;color:#172c43;cursor:pointer;font:400 23px/1 Montserrat,sans-serif;padding:0;touch-action:manipulation}
.cr-gallery-arrow[aria-disabled=true]{color:#8a9398;background:#faf9f6;cursor:default;border-color:#e5e7e5}
.cr-site .cr-gallery-track:focus-visible,.cr-site .cr-gallery-arrow:focus-visible,.cr-site .cr-service-card summary:focus-visible,.cr-site .cr-dialog-close:focus-visible,.cr-site .cr-service-dialog .cr-button:focus-visible{outline:3px solid #82652c!important;box-shadow:none!important}
@supports selector(:focus-visible){.cr-site .cr-gallery-arrow:focus:not(:focus-visible),.cr-site .cr-service-card summary:focus:not(:focus-visible),.cr-site .cr-dialog-close:focus:not(:focus-visible){outline:none!important;box-shadow:none!important}}

/* Native dialog supplies modal focus containment and Escape behavior. */
.cr-service-dialog:not([open]){display:none}
.cr-service-dialog{width:min(900px,calc(100% - 48px));max-height:calc(100dvh - 48px);max-width:none;margin:auto;border:0;border-radius:22px;padding:0;background:#fff;color:var(--cr-ink);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 90px #071d384d;font-family:Roboto,sans-serif}
.cr-service-dialog::backdrop{background:#091c32b8;backdrop-filter:blur(6px)}
.cr-dialog-toolbar{position:sticky;top:0;z-index:2;height:64px;display:flex;justify-content:flex-end;align-items:center;padding:10px 16px;background:#ffffffed}
.cr-dialog-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:#f0eee7;color:#172c43;border:1px solid #e1e1db;border-radius:50%;font:400 30px/1 Montserrat,sans-serif;cursor:pointer}
.cr-dialog-content{padding:12px 62px 62px}
.cr-service-dialog .cr-eyebrow{color:#73613d;margin-bottom:18px!important}
.cr-site .cr-service-dialog h2{font:500 clamp(29px,3.3vw,43px)/1.2 Montserrat,sans-serif;letter-spacing:-.04em;margin:0 0 30px;color:#172c43;overflow-wrap:anywhere;text-wrap:balance;outline:none}
.cr-dialog-photo{margin:0 0 30px}
.cr-dialog-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;max-height:370px;object-fit:cover;border-radius:12px;background:#f5f3ee}
.cr-dialog-photo.cr-dialog-photo-wide img{aspect-ratio:16/9;object-fit:contain;max-height:none}
.cr-dialog-photo figcaption{font:400 11px/1.6 Roboto,sans-serif;color:#647078;padding-top:8px}
.cr-dialog-copy{font:400 16px/1.8 Roboto,sans-serif;color:#485864}
.cr-dialog-copy p{margin:0 0 20px;line-height:1.8}
.cr-dialog-copy h3{font:500 21px/1.5 Montserrat,sans-serif;color:#172c43;margin:32px 0 15px;letter-spacing:-.025em}
.cr-dialog-copy h3:first-child{margin-top:0}
.cr-dialog-copy ul{padding-left:24px;margin:0 0 24px}
.cr-dialog-copy li{margin-bottom:9px;line-height:1.8}
.cr-dialog-content>.cr-button{margin-top:18px}
@media(hover:hover) and (pointer:fine){
 .cr-service-card:hover{border-color:#cbb98f;box-shadow:0 8px 24px #12283e0d}
 .cr-service-card summary:hover .cr-card-plus{background:#d8bc80;color:#172c43}
 .cr-gallery-arrow:not([aria-disabled=true]):hover,.cr-dialog-close:hover{background:#e7dcc5;border-color:#cbb98f}
}
@media(prefers-reduced-motion:no-preference){
 .cr-service-card{transition:border-color .25s,box-shadow .25s}
 .cr-card-photo img{transition:transform .6s cubic-bezier(.22,1,.36,1)}
 .cr-card-plus,.cr-gallery-arrow,.cr-dialog-close{transition:background .25s,color .25s}
 .cr-service-dialog[open]{animation:cr-gallery-dialog-in .3s cubic-bezier(.22,1,.36,1)}
 @media(hover:hover) and (pointer:fine){.cr-service-card summary:hover .cr-card-photo img{transform:scale(1.035)}}
 @keyframes cr-gallery-dialog-in{from{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}
}
@media(max-width:850px){
 .cr-offer-gallery{padding-block:62px 40px}
 .cr-gallery-track{gap:18px}
 .cr-offer-gallery .cr-gallery-heading{margin-bottom:26px}
 .cr-service-card{flex-basis:320px}
 .cr-dialog-content{padding:8px 38px 40px}
}
@media(max-width:540px){
 .cr-offer-gallery{padding-right:0;padding-block:48px 32px}
 .cr-offer-gallery .cr-gallery-heading,.cr-gallery-footer{padding-right:6vw}
 .cr-offer-gallery h2{font-size:32px;max-width:320px}
 .cr-offer-gallery .cr-gallery-intro{font-size:15px!important;max-width:350px!important}
 .cr-gallery-track{padding-right:6vw;scroll-padding-right:6vw;gap:16px}
 .cr-service-card{flex-basis:82vw;max-width:335px}
 .cr-service-card summary{min-height:440px}
 .cr-site .cr-service-card h3{font-size:21px;margin:22px 22px 14px}
 .cr-card-excerpt{margin-inline:22px;font-size:14px}
 .cr-card-action{margin-inline:22px;margin-bottom:22px}
 .cr-gallery-footer{gap:14px;margin-top:18px}
 .cr-gallery-footer p{max-width:190px;font-size:12px}
 .cr-gallery-arrow{width:44px;height:44px}
 .cr-service-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:16px}
 .cr-dialog-content{padding:4px 22px 32px}
 .cr-dialog-toolbar{height:60px;padding:8px 12px}
 .cr-site .cr-service-dialog h2{font-size:29px}
 .cr-dialog-copy{font-size:15px}
 .cr-dialog-copy h3{font-size:19px}
}
@media(prefers-reduced-motion:reduce){.cr-service-card summary:hover .cr-card-photo img{transform:none}}
@media(forced-colors:active){
 .cr-service-card,.cr-gallery-arrow,.cr-dialog-close,.cr-service-dialog{border:1px solid CanvasText}
 .cr-card-plus{background:ButtonFace;color:ButtonText;border:1px solid ButtonText}
 .cr-service-dialog::backdrop{background:Canvas;opacity:.8}
 .cr-site .cr-service-card summary:focus-visible,.cr-site .cr-gallery-arrow:focus-visible,.cr-site .cr-dialog-close:focus-visible{outline-color:Highlight!important}
}
@media print{
 .cr-offer-gallery{overflow:visible;padding:20px}
 .cr-gallery-track{display:block;overflow:visible}
 .cr-service-card{border:0;margin-bottom:30px;break-inside:avoid}
 .cr-service-card summary{min-height:0}
 .cr-card-photo,.cr-card-excerpt,.cr-card-action,.cr-gallery-footer,.cr-service-dialog{display:none!important}
 .cr-service-card::details-content{content-visibility:visible!important}
 .cr-service-card .cr-service-detail{display:block!important;border:0;padding:0}
}
/* The initial reading focus is on a heading, not an interactive control. */
.cr-site .cr-service-dialog #cr-dialog-title:focus{outline:none!important;box-shadow:none!important}

/* Keep the floating social control in the page margin, clear of card actions. */
@media(min-width:1101px) and (min-height:601px){
 .cr-home .cr-footer .cr-instagram{width:54px;height:54px;right:18px;bottom:28px;padding:14px;gap:0;justify-content:center}
 .cr-home .cr-footer .cr-instagram>span{display:none}
}
