.hc-component { max-width: 1400px; margin: 0 auto; padding: 48px 38px; color: #33292c; }
.hc-component h2 { font: 700 clamp(30px,3.5vw,44px)/1.15 var(--ab-display-font); margin: 0 0 24px; }
.hc-carousel-viewport { overflow: hidden; border-radius: 22px; }
.hc-slide { margin: 0; }
.hc-slide[hidden] { display: none; }
.hc-slide img { display: block; width: 100%; max-height: 560px; object-fit: cover; }
.hc-slide figcaption { padding: 12px 18px; background: #f8eeeb; }
.hc-carousel-controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 18px; }
.hc-carousel-controls button { border: 0; border-radius: 50%; background: #965d69; color: #fff; width: 42px; height: 42px; cursor: pointer; font-size: 26px; line-height: 1; }
.hc-accordion details { border-bottom: 1px solid #e6d5d2; padding: 15px 0; }
.hc-accordion summary { cursor: pointer; font-weight: 700; }
.hc-accordion p { white-space: pre-line; color: #5c5256; }
.hc-form-card { max-width: 600px; margin: auto; padding: 28px; background: #fff; border-radius: 22px; box-shadow: 0 10px 35px #62424b16; }
.hc-form-card label { display: block; margin: 12px 0 5px; font-size: 14px; font-weight: 700; }
.hc-form-card input:not([type=checkbox]), .hc-form-card select, .hc-form-card textarea { display: block; width: 100%; border: 1px solid #ddd0d1; border-radius: 10px; padding: 13px; font: inherit; }
.hc-form-card .hc-form-consent { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; }
.hc-form-card .hc-form-consent input { margin-top: 5px; }
.hc-form-card .hc-form-privacy-note { margin: 14px 0; color: #675b59; font-size: 12px; font-weight: 400; }
.hc-form-card .hc-marketing-choices label { display: flex; align-items: flex-start; gap: 9px; margin: 9px 0; color: #675b59; font-size: 12px; font-weight: 400; }
.hc-form-card .hc-marketing-choices input { flex: 0 0 auto; margin: 3px 0 0; }
.hc-form-card button { margin-top: 20px; padding: 14px 23px; border: 0; border-radius: 40px; background: var(--ab-cta,#8c625d); color: #fff; font: 700 16px/1.55 var(--ab-button-font); cursor: pointer; }
.hc-form-card button:disabled { opacity: .72; cursor: not-allowed; }
.hc-form-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.hc-form-feedback { margin: 12px 0 0; color: #65565c; }
.hc-form-card .hc-form-note { margin: 12px 0 0; color: #756b6d; font-size: 12px; }
.hc-before-after { max-width: 1400px; padding: 72px 38px 44px; }
.hc-gallery-heading { text-align: center; margin: 0 auto 36px; }
.hc-gallery-heading h2 { max-width: none; margin: 5px auto 16px; color: #33292c; font: 500 clamp(36px,3.5vw,44px)/1.04 var(--ab-display-font); letter-spacing: -.025em; }
@media (min-width: 1100px) { .hc-gallery-heading h2 { white-space: nowrap; } }
.hc-gallery-heading p { margin: 0; color: #5c5256; font: 16px/1.55 var(--ab-font); }
.hc-eyebrow { color: #965d69; font: 800 12px/1.4 var(--ab-eyebrow-font); letter-spacing: .15em; text-transform: uppercase; }
.hc-gallery-grid { display: grid; grid-template-columns: repeat(var(--hc-desktop-columns,4),minmax(0,1fr)); gap: 16px; }
.hc-gallery-card { min-width: 0; margin: 0; border: 1px solid #ead6d3; border-radius: 18px; overflow: hidden; background: #f0e2df; }
.hc-gallery-photo { aspect-ratio: 4/5; display: grid; place-items: center; background: linear-gradient(145deg,#f2dfdc,#faf0ed); color: #965d69; font: 14px/1.4 var(--ab-font); text-align: center; }
.hc-photo-pair { width: 100%; height: 100%; display: grid; grid-template-columns: 1fr 1fr; }
.hc-photo-pair img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.hc-gallery-card figcaption { padding: 12px 14px; color: #33292c; font: 700 14px/1.3 var(--ab-font); }
.hc-gallery-notice { max-width: 850px; margin: 28px auto 0; color: #756b6d; text-align: center; font: 13px/1.5 var(--ab-font); }
@media(max-width:1024px) { .hc-gallery-grid { grid-template-columns: repeat(var(--hc-tablet-columns,2),minmax(0,1fr)); } }
@media(max-width:600px) { .hc-before-after { padding: 48px 22px 36px; } .hc-gallery-grid { grid-template-columns: repeat(var(--hc-mobile-columns,2),minmax(0,1fr)); gap: 12px; } .hc-gallery-photo { font-size: 12px; padding: 4px; } }
@media(max-width:800px) { .hc-component { padding-inline: 22px; } }

/* Before/after gallery carousel. Empty slots are decorative until real photos are uploaded. */
.hc-before-after { --hc-gallery-visible: var(--hc-desktop-columns,3); --hc-gallery-gap: 20px; background: #fffaf7; }
.hc-gallery-heading { margin-bottom: 30px; }
.hc-gallery-shell { display: grid; grid-template-columns: 54px minmax(0,1fr) 54px; align-items: center; gap: 16px; }
.hc-gallery-viewport { min-width: 0; overflow: hidden; }
.hc-gallery-grid { display: flex; gap: var(--hc-gallery-gap); align-items: stretch; transform: translateX(calc(-1 * var(--hc-gallery-offset,0px))); transition: transform .35s ease; }
.hc-gallery-card { display: block; flex: 0 0 calc((100% - (var(--hc-gallery-visible) - 1) * var(--hc-gallery-gap)) / var(--hc-gallery-visible)); min-width: 0; margin: 0; border: 0; border-radius: 0; background: none; text-align: center; }
.hc-gallery-photo { position: relative; display: block; width: 100%; aspect-ratio: 1.76; padding: 0; overflow: hidden; border: 2px solid #fff; border-radius: 10px; background: #e8d9ce; box-shadow: 0 0 0 1px #e9d8d0; }
.hc-photo-pair { width: 100%; height: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.hc-photo-pair > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hc-photo-pair > :first-child { border-right: 2px solid #fff; }
.hc-empty-photo { display: block; min-width: 0; height: 100%; background: radial-gradient(ellipse at 18% 80%,#c7b4a6 0,transparent 55%),linear-gradient(135deg,#e4d5c8,#cbb9aa 48%,#ecdfd4); }
.hc-empty-after { background: radial-gradient(ellipse at 85% 20%,#c6a99a 0,transparent 56%),linear-gradient(145deg,#e8d8cb,#b99786 55%,#ead7c9); }
.hc-pair-labels { position: absolute; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); background: #fffdfbe8; color: #514443; font: 600 12px/1.4 var(--ab-font); letter-spacing: .2em; text-align: center; }
.hc-pair-labels span { padding: 8px 4px; }
.hc-pair-labels span + span { border-left: 2px solid #c39b92; }
.hc-gallery-card figcaption { padding: 10px 5px 0; background: none; color: #675b59; font: 400 15px/1.4 var(--ab-font); }
.hc-gallery-arrow { display: grid; place-items: center; width: 54px; height: 54px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #392f2d; box-shadow: none; cursor: pointer; transition: color .2s ease, transform .2s ease; }
.hc-gallery-arrow svg { width: 26px; height: 26px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hc-gallery-arrow:hover { color: #9b6e69; transform: scale(1.1); }
.hc-gallery-arrow:active { color: #76504c; transform: scale(.92); }
.hc-gallery-arrow:disabled { opacity: .35; cursor: default; }
.hc-gallery-arrow:focus-visible, .hc-gallery-dots button:focus-visible { outline: 2px solid #965d69; outline-offset: 3px; }
.hc-gallery-dots { display: flex; justify-content: center; gap: 12px; margin: 15px 0 5px; }
.hc-gallery-dots button { width: 10px; height: 10px; padding: 0; border: 1px solid #bf9c94; border-radius: 50%; background: transparent; cursor: pointer; }
.hc-gallery-dots button.is-active { background: #a26965; border-color: #a26965; }
.hc-gallery-notice { margin-top: 13px; }
@media(max-width:1024px) { .hc-before-after { --hc-gallery-visible: var(--hc-tablet-columns,2); } }
@media(max-width:600px) { .hc-before-after { --hc-gallery-visible: var(--hc-mobile-columns,1); --hc-gallery-gap: 12px; } .hc-gallery-shell { grid-template-columns: 40px minmax(0,1fr) 40px; gap: 8px; } .hc-gallery-arrow { width: 40px; height: 40px; } .hc-gallery-arrow svg { width: 22px; height: 22px; } }
.ab-testimonials-widget { background: radial-gradient(ellipse at 95% 5%,#bca9a331,transparent 44%),linear-gradient(110deg,#f2e6e1,#faf1ed); }
.hc-testimonials { --hc-testimonials-visible: var(--hc-testimonials-desktop,3); padding: 66px 22px 72px; }
.hc-testimonials-heading { display: flex; flex-direction: column; gap: 4px; max-width: 760px; margin: 0 auto 25px; text-align: center; }
.hc-testimonials-heading h2 { order: 1; margin: 0; color: #33292c; font: 500 clamp(36px,3.5vw,44px)/1.04 var(--ab-display-font); letter-spacing: -.025em; }
.hc-testimonials-heading .hc-eyebrow { order: 2; color: #8e7978; font: 500 11px/1.4 var(--ab-eyebrow-font); letter-spacing: .14em; }
.hc-testimonials-heading p { order: 3; margin: 0; color: #5c5256; font: 14px/1.5 var(--ab-font); }
.hc-testimonials-viewport { overflow: hidden; }
.hc-testimonials-track { gap: 18px; }
.hc-testimonials-grid .hc-testimonials-track { display: grid; grid-template-columns: repeat(var(--hc-testimonials-visible),minmax(0,1fr)); }
.hc-testimonials-carousel .hc-testimonials-track { display: flex; transition: transform .35s ease; transform: translateX(calc(-1 * var(--hc-testimonials-offset,0px))); }
.hc-testimonials-carousel .hc-testimonial-card { flex: 0 0 calc((100% - (var(--hc-testimonials-visible) - 1) * 18px) / var(--hc-testimonials-visible)); }
.hc-testimonial-card { position: relative; min-width: 0; min-height: 195px; margin: 0; padding: 30px 28px 24px 43px; border: 0; border-radius: 8px; background: #fffdfb; color: #33292c; }
.hc-testimonial-card::before { content: '“'; position: absolute; left: 18px; top: 19px; color: #a46d68; font: 600 49px/1 var(--ab-display-font); }
.hc-testimonial-card p { margin: 0 0 20px; font: italic 20px/1.3 var(--ab-quote-font); }
.hc-testimonial-card footer { padding: 0; text-align: left; color: #756b6d; font: 500 12px/1.5 var(--ab-font); }
.hc-testimonials-controls { display: flex; justify-content: center; align-items: center; gap: 16px; margin-top: 24px; color: #5c5256; font: 14px var(--ab-font); }
.hc-testimonials-controls button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #392f2d; box-shadow: none; cursor: pointer; transition: color .2s ease, transform .2s ease; }
.hc-testimonials-controls button svg { width: 24px; height: 24px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hc-testimonials-controls button:hover:not(:disabled) { color: #9b6e69; transform: scale(1.1); }
.hc-testimonials-controls button:active:not(:disabled) { color: #76504c; transform: scale(.92); }
.hc-testimonials-controls button:focus-visible { outline: 2px solid #965d69; outline-offset: 3px; }
.hc-testimonials-controls button:disabled { opacity: .4; cursor: default; }
@media(max-width:1024px) { .hc-testimonials { --hc-testimonials-visible: var(--hc-testimonials-tablet,2); } }
@media(max-width:600px) { .hc-testimonials { --hc-testimonials-visible: var(--hc-testimonials-mobile,1); padding: 48px 22px; } }
