/* Homepage: asymmetric photo and editorial headline, with calm supporting sections. */
.home-hero { padding-block: 1.5rem 3rem; }
.hero-grid { display: grid; gap: 2rem; }
.hero-copy { padding-block: 1rem; }
.hero-copy h1 em { color: var(--color-brand-primary); font-weight: 400; }
.hero-copy .lead { margin-block: 1.75rem; max-width: 39ch; }
.hero-image { position: relative; min-height: 320px; }
.hero-image img { aspect-ratio: 5 / 4; }
.hero-caption { position: absolute; bottom: 1rem; left: 1rem; background: #faf9f5; padding: .7rem 1rem; font-size: .8rem; letter-spacing: .04em; }
.trust-strip { position: relative; background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.trust-strip::before { content: ''; position: absolute; inset: 0 0 auto; height: 3px; background: var(--color-brand-primary); }
.trust-strip .container { display: grid; grid-template-columns: 1fr; }
.trust-point { display: flex; align-items: center; gap: 1rem; padding-block: 1.4rem; }
.trust-point + .trust-point { border-top: 1px solid var(--color-border); }
.trust-icon { flex: 0 0 58px; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; background: #fff; box-shadow: 0 7px 20px rgba(38, 61, 55, .08); }
.trust-icon img { width: 34px; height: 34px; }
.trust-point div { display: grid; gap: .15rem; min-width: 0; }
.trust-point div span { color: var(--color-brand-primary); font-size: .72rem; font-weight: 700; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
.trust-point strong { font-family: var(--font-display); font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-weight: 400; line-height: 1.2; }
.home-service-card .area-service-card-copy { align-items: flex-start; min-height: 148px; padding: 1.25rem; }
.home-service-card-text { display: grid; gap: .65rem; }
.home-service-card-title { font: clamp(1.45rem, 2.4vw, 1.8rem)/1.15 var(--font-display); }
.home-service-card-description { color: var(--color-text-muted); font-weight: 400; line-height: 1.55; }
.service-card-link { text-decoration: none; }
.service-card-link:hover { color: var(--color-brand-primary); }
.location-service-card { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 1rem; align-items: start; }
.location-service-card h3 a { text-decoration: none; }
.location-service-card h3 a:hover { color: var(--color-brand-primary); }
.location-service-card p { margin-top: .65rem; }
.worcester-section { background: var(--color-brand-secondary); color: white; }
.worcester-section p { color: #e0e7df; }
.worcester-feature { display: grid; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.worcester-feature-image img { aspect-ratio: 989 / 685; object-position: center; }
.worcester-feature-copy > * + * { margin-top: 1.3rem; }
.worcester-feature-copy h2 { margin-top: 0; }
.worcester-section :focus-visible, .site-footer :focus-visible { outline-color: #fff; }
.worcester-section .text-link:hover { background: #fff; border-color: #fff; color: var(--color-brand-secondary); }
.worcester-lifestyle { position: relative; overflow: hidden; min-height: 320px; margin: 0; border-radius: var(--radius-medium); }
.worcester-lifestyle picture, .worcester-lifestyle img { display: block; width: 100%; height: 100%; }
.worcester-lifestyle img { min-height: 320px; object-fit: cover; object-position: center; }
.worcester-lifestyle figcaption { position: absolute; inset: auto 1rem 1rem; width: fit-content; padding: .65rem .85rem; background: rgba(38, 61, 55, .88); color: #fff; font-size: .8rem; letter-spacing: .03em; }
.quote-section { background: #f0eee6; text-align: center; }
.quote-section .eyebrow { width: 100%; max-width: none; margin-inline: auto; text-align: center; }
.google-rating-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; width: 100%; max-width: none; gap: .35rem .6rem; margin: .85rem auto 0; text-align: center; font-size: .95rem; }
.google-rating-summary strong { font-size: 1.05rem; }
.google-rating-summary a { color: inherit; text-underline-offset: .2em; }
.google-rating-stars {
    color: #b9b5aa;
    letter-spacing: .1em;
    background: linear-gradient(90deg, #8d6415 0 92%, #b9b5aa 92% 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.testimonial-track { position: relative; min-height: clamp(15rem, 28vw, 20rem); display: grid; place-items: center; overflow: hidden; }
.testimonial-slide { grid-area: 1 / 1; width: 100%; margin: 0; }
.testimonial-carousel:not(.carousel-enhanced) .testimonial-slide + .testimonial-slide { margin-top: 4rem; }
.carousel-enhanced .testimonial-slide[hidden] { display: none; }
.carousel-enhanced .testimonial-slide.is-entering { animation: testimonial-enter .55s cubic-bezier(.22, .61, .36, 1) both; }
.carousel-enhanced .testimonial-slide.is-leaving { animation: testimonial-leave .55s cubic-bezier(.22, .61, .36, 1) both; pointer-events: none; }
@keyframes testimonial-enter {
    from { opacity: 0; transform: translateX(12%); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes testimonial-leave {
    from { opacity: 1; transform: translateX(0); }
    to { opacity: 0; transform: translateX(-12%); }
}
.testimonial-slide blockquote,
.testimonial-copy { max-width: 900px; margin-inline: auto; font: clamp(1.45rem, 2.5vw, 2.15rem)/1.4 var(--font-display); }
.testimonial-slide--long blockquote { max-width: 1000px; font-size: clamp(1.2rem, 1.9vw, 1.65rem); }
.testimonial-slide figcaption { margin-top: 1.5rem; font-size: .875rem; }
.testimonial-slide figcaption a { color: inherit; text-underline-offset: .2em; }
.testimonial-rating { color: #8d6415; letter-spacing: .08em; white-space: nowrap; }
.testimonial-rating-empty { color: #827f75; }
.testimonial-controls { display: none; align-items: center; justify-content: center; gap: .75rem; margin-top: 1.5rem; }
.carousel-enhanced .testimonial-controls { display: flex; }
.testimonial-control { width: 44px; min-height: 44px; border: 1px solid var(--color-text); border-radius: 50%; background: transparent; color: var(--color-text); font: 600 1.15rem var(--font-body); }
.testimonial-control:hover { background: var(--color-brand-secondary); border-color: var(--color-brand-secondary); color: #fff; }
.testimonial-status { min-width: 3.5rem; font-size: .875rem; font-variant-numeric: tabular-nums; }
.area-list { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; list-style: none; padding: 0; margin-block: 2rem; }
.area-list li { border-bottom: 1px solid var(--color-border); padding-bottom: .3rem; }
.area-service-grid { gap: clamp(1rem, 2.5vw, 2rem); }
.area-service-card {
    overflow: hidden;
    padding: 0;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-medium);
    box-shadow: 0 8px 24px rgba(38, 61, 55, .055);
    color: var(--color-text);
    text-decoration: none;
    transition: box-shadow .25s ease, transform .25s ease;
}
.area-service-card:hover { box-shadow: 0 14px 32px rgba(38, 61, 55, .12); transform: translateY(-3px); }
.area-service-card-image { display: block; overflow: hidden; aspect-ratio: 16 / 8; background: var(--color-surface); }
.area-service-card-image picture,
.area-service-card-image img { display: block; width: 100%; height: 100%; }
.area-service-card-image img { object-fit: cover; transition: transform .35s ease; }
.area-service-card:hover .area-service-card-image img { transform: scale(1.025); }
.area-service-card-copy { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; padding: 1rem 1.15rem; font-weight: 650; }
.area-service-card-copy [aria-hidden] { color: var(--color-brand-primary); font-size: 1.1rem; }
.page-intro { padding-block: 1rem 4rem; }
.page-intro h1 { max-width: 15ch; }
.page-intro .lead { margin-top: 1.5rem; }
.page-intro .cluster { margin-top: 2rem; }
.service-details { background: var(--color-surface); }
.service-details .card { padding-bottom: 1rem; }
.process {
    counter-reset: steps;
    display: grid;
    gap: 1rem;
    list-style: none;
    padding: 0;
}
.process li {
    display: block;
    position: relative;
    overflow: hidden;
    padding: clamp(1.35rem, 3vw, 1.8rem);
    background: rgba(255, 255, 255, .72);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-medium);
    box-shadow: 0 8px 24px rgba(38, 61, 55, .055);
}
/* The short red rule gives each step a clear starting point without overpowering the copy. */
.process li::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--color-brand-primary);
}
.process li::before {
    counter-increment: steps;
    content: '0' counter(steps);
    display: grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    margin-bottom: 1rem;
    background: var(--color-brand-secondary);
    border-radius: 50%;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
}
.process h3 { font-size: clamp(1.25rem, 2vw, 1.55rem); }
.process p { margin-top: .55rem; color: var(--color-text-muted); }
.process-feature { align-items: start; }
.process-feature-intro { display: grid; gap: 1.5rem; }
.process-feature-intro .eyebrow { margin-bottom: -.4rem; }
.process-feature-image { margin-top: .75rem; }
.process-feature-image img { aspect-ratio: 3 / 2; object-position: center; }
.contact-layout { display: grid; gap: 3rem; align-items: start; }
.contact-aside { padding: 2rem; background: var(--color-surface); }
.contact-aside h2 { font-size: 2rem; }
.contact-aside .large-phone { font-size: 1.8rem; }
.contact-aside a { overflow-wrap: anywhere; }
.contact-map-section { padding-top: clamp(2rem, 5vw, 4rem); background: var(--color-surface); }
.contact-map-heading { display: grid; gap: 1.5rem; padding-bottom: clamp(2rem, 4vw, 3rem); }
.contact-map-heading h2 { max-width: 12ch; }
.contact-map-heading address { line-height: 1.55; }
.contact-map { position: relative; width: 100%; height: clamp(380px, 50vw, 560px); background: #dddcd4; overflow: hidden; }
.contact-map-fallback { display: grid; place-items: center; width: 100%; height: 100%; }
.calder-map-marker-shell { background: transparent; border: 0; }
.calder-map-marker { display: flex; flex-direction: column; align-items: center; pointer-events: none; filter: drop-shadow(0 4px 5px rgba(36, 41, 34, .3)); }
.calder-map-marker-label { margin-bottom: .45rem; padding: .45rem .7rem; background: var(--color-brand-secondary); color: #fff; border-radius: 3px; font-size: .8rem; font-weight: 700; line-height: 1; white-space: nowrap; }
.calder-map-marker-pin { position: relative; display: grid; place-items: center; width: 42px; height: 42px; background: var(--color-brand-primary); border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.calder-map-marker-pin span { width: 12px; height: 12px; background: #fff; border-radius: 50%; }
.form-grid { display: grid; gap: 1.25rem; }
.form-field label { display: block; font-weight: 600; margin-bottom: .4rem; }
.form-field label span { font-weight: 400; color: var(--color-text-muted); }
input, select, textarea { width: 100%; min-height: 48px; background: white; border: 1px solid #7b8178; border-radius: var(--radius-small); padding: .75rem; color: var(--color-text); }
textarea { min-height: 140px; resize: vertical; }
.form-help { font-size: .875rem; color: var(--color-text-muted); }
.form-error { color: #8d1721; font-size: .925rem; margin-top: .35rem; }
[aria-invalid="true"] { border: 2px solid #8d1721; }
.notice { padding: 1.25rem; background: #f5e7e5; border-left: 4px solid #a5222d; margin-bottom: 2rem; }
.notice--success { background: #e2eee3; border-color: var(--color-success); }
.notice h2 { font: 600 1.15rem var(--font-body); margin-bottom: .5rem; }

/* Advice guides: readable long-form copy with a clearly separated safety note and help panel. */
.advice-intro { padding-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.advice-intro h1 { max-width: 18ch; }
.advice-layout { display: grid; gap: clamp(2.5rem, 6vw, 5rem); align-items: start; padding-bottom: clamp(4rem, 8vw, 7rem); }
.advice-content section + section { margin-top: 3.25rem; }
.advice-content li + li { margin-top: .65rem; }
.advice-notice { margin-bottom: 3rem; padding: clamp(1.25rem, 3vw, 2rem); background: #f5e7e5; border-left: 4px solid var(--color-brand-primary); }
.advice-notice h2 { margin-top: 0; font-size: 1.65rem; }
.advice-steps { counter-reset: advice-steps; display: grid; gap: 1rem; padding: 0; list-style: none; }
.advice-steps li { position: relative; display: grid; grid-template-columns: 2.6rem minmax(0, 1fr); gap: .15rem 1rem; padding: 1.25rem; background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-medium); }
.advice-steps li::before { counter-increment: advice-steps; content: counter(advice-steps); grid-row: 1 / span 2; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; background: var(--color-brand-secondary); border-radius: 50%; color: #fff; font-size: .8rem; font-weight: 700; }
.advice-steps strong, .advice-steps span { grid-column: 2; }
.advice-steps span { color: var(--color-text-muted); }
.advice-sources { padding-top: 1rem; border-top: 1px solid var(--color-border); }
.advice-sources h2 { font-size: 1.65rem; }
.advice-aside { padding: clamp(1.5rem, 3vw, 2rem); background: var(--color-surface); border-radius: var(--radius-medium); }
.advice-aside h2 { font-size: 2rem; }
.advice-aside .large-phone { font-size: 1.55rem; }
.advice-card-grid { align-items: stretch; }
.advice-card { min-width: 0; }
.advice-card--video { position: relative; }
.advice-card-link { display: flex; height: 100%; flex-direction: column; text-decoration: none; }
.advice-card-image { position: relative; aspect-ratio: 16 / 10; }
.advice-card-copy { position: relative; display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: .7rem; min-height: 250px; padding: 1.4rem 3.5rem 1.5rem 1.4rem; }
.advice-card-copy .eyebrow { margin: 0; }
.advice-card-title { font: clamp(1.65rem, 2.5vw, 2.1rem)/1.12 var(--font-display); letter-spacing: -.025em; }
.advice-card-description { color: var(--color-text-muted); line-height: 1.55; }
.advice-card-arrow { position: absolute; right: 1.35rem; bottom: 1.35rem; color: var(--color-brand-primary); font-size: 1.2rem; }
.advice-card--video .advice-card-copy { padding-bottom: 4.25rem; }
.advice-card-guide-link { position: absolute; z-index: 2; left: 1.4rem; bottom: 1.35rem; color: var(--color-brand-primary); font-size: .9rem; font-weight: 700; text-decoration: none; }
.advice-card-guide-link:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.advice-card-video-label { position: absolute; left: 1rem; bottom: 1rem; display: inline-flex; align-items: center; gap: .55rem; padding: .5rem .75rem; background: rgba(255, 255, 255, .94); border-radius: 999px; color: var(--color-text); font-size: .78rem; font-weight: 700; letter-spacing: .04em; box-shadow: 0 4px 16px rgba(17, 29, 25, .18); }
.advice-card-play { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; padding-left: .1rem; background: var(--color-brand-primary); border-radius: 50%; color: #fff; font-size: .65rem; }
.advice-video-modal { width: min(980px, calc(100% - 2rem)); max-width: none; max-height: calc(100dvh - 2rem); padding: 0; overflow: auto; background: #fff; border: 0; border-radius: var(--radius-medium); color: var(--color-text); box-shadow: 0 24px 80px rgba(17, 29, 25, .36); }
.advice-video-modal::backdrop { background: rgba(17, 29, 25, .76); backdrop-filter: blur(4px); }
.advice-video-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; padding: clamp(1.15rem, 3vw, 2rem); }
.advice-video-modal-header .eyebrow { margin-bottom: .45rem; color: var(--color-text-muted); }
.advice-video-modal-header h2 { font-size: clamp(1.75rem, 4vw, 2.7rem); }
.advice-video-close { flex: 0 0 auto; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid var(--color-border); border-radius: 50%; color: var(--color-text); font-size: 1.8rem; line-height: 1; }
.advice-video-close:hover { background: var(--color-surface); }
.advice-video-frame { aspect-ratio: 16 / 9; background: #111; }
.advice-video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.advice-video-modal-footer { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(1.15rem, 3vw, 1.75rem) clamp(1.15rem, 3vw, 2rem); }
.advice-video-modal-footer p { color: var(--color-text-muted); font-size: .92rem; }
.advice-video-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; flex-wrap: wrap; }
body.has-open-modal { overflow: hidden; }
@media (max-width: 680px) {
    .advice-video-modal { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); }
    .advice-video-modal-header { gap: 1rem; }
    .advice-video-modal-footer { display: block; }
    .advice-video-actions { justify-content: flex-start; margin-top: 1rem; }
}
@media (min-width: 900px) {
    .advice-layout { grid-template-columns: minmax(0, 2fr) minmax(260px, .8fr); }
    .advice-aside { position: sticky; top: 8.5rem; }
}
/* Honeypot is excluded from keyboard and accessibility tree; no legitimate field is concealed. */
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (min-width: 768px) {
    .hero-grid { grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
    .hero-image { min-height: 580px; height: 100%; }
    .hero-image img { position: absolute; inset: 0; }
    .hero-copy { padding-block: 3rem; }
    .trust-strip .container { grid-template-columns: repeat(3, 1fr); }
    .trust-point { padding: 1.65rem clamp(1rem, 2.4vw, 2rem); }
    .trust-point:first-child { padding-left: 0; }
    .trust-point:last-child { padding-right: 0; }
    .trust-point + .trust-point { border-top: 0; border-left: 1px solid var(--color-border); }
    .worcester-feature { grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); }
    .contact-layout { grid-template-columns: 1.5fr 1fr; }
    .contact-map-heading { grid-template-columns: 1.5fr 1fr; align-items: end; gap: clamp(2rem, 6vw, 6rem); }
    .form-grid { grid-template-columns: 1fr 1fr; }
    .form-wide { grid-column: 1 / -1; }
}
@media print { .utility, .menu-toggle, .mobile-call, .final-cta { display: none; } body { padding: 0; } .section { padding-block: 2rem; } }

/* About opening: photo alongside the story on desktop; naturally stacked on phones. */
.about-hero { display: grid; gap: 2rem; align-items: center; }
.about-hero-copy h1 { font-size: clamp(2.65rem, 5vw, 4.6rem); }
.about-hero-image img { aspect-ratio: 2 / 3; object-fit: cover; }
.about-hero-image figcaption { padding: .65rem .8rem; color: var(--color-text-muted); font-size: .8rem; line-height: 1.45; }
@media (min-width: 768px) {
    .about-hero { grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
}

/* Service detail icons sit beside the complete text block, including on narrow screens. */
.service-with-icon,
.process--icons li {
    display: grid;
    grid-template-columns: clamp(3rem, 5vw, 3.5rem) minmax(0, 1fr);
    gap: clamp(1rem, 2vw, 1.5rem);
    align-items: start;
}
.section-icon { width: 100%; height: auto; margin-top: .2rem; }
.service-with-icon h2 { font-size: 2rem; }
/* Icon-based process markup uses the same numbered-card treatment as every other process. */
.process--icons li::before { content: none; }
.process--icons li { grid-template-columns: minmax(0, 1fr); }
.process--icons .section-icon { display: none; }
.step-number {
    display: grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    margin-bottom: 1rem;
    background: var(--color-brand-secondary);
    border-radius: 50%;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
}

/* Full-bleed lifestyle heroes: image stays edge-to-edge while copy follows the site grid. */
.image-hero { position: relative; isolation: isolate; background: #263d37; color: #fff; }
.image-hero-media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.image-hero-media picture, .image-hero-media img { display: block; width: 100%; height: 100%; }
.image-hero-media img { object-fit: cover; object-position: center 55%; }
.image-hero--air-conditioning .image-hero-media img { object-position: center top; }
.image-hero--advice .image-hero-media img { object-position: center center; }
.image-hero--advice::after { background: linear-gradient(90deg, rgba(17,29,25,.91) 0%, rgba(17,29,25,.75) 31%, rgba(17,29,25,.24) 61%, rgba(17,29,25,.06)); }
.image-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(17,29,25,.87) 0%, rgba(17,29,25,.72) 35%, rgba(17,29,25,.22) 75%, rgba(17,29,25,.08)); }
.image-hero-inner { min-height: 660px; padding-block: 1.2rem 4rem; display: flex; flex-direction: column; }
.image-hero .breadcrumb { margin-bottom: 2.5rem; }
.image-hero-copy { max-width: 610px; margin-block: auto; }
.image-hero h1 { font-size: clamp(2.8rem, 5.5vw, 5rem); }
.image-hero h1 em { font-weight: 400; }
.image-hero .lead { color: #fff; max-width: 49ch; margin-block: 1.5rem; }
.image-hero-actions { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.image-hero-actions > p:not(:has(a)) { max-width: 49ch; }
.image-hero :focus-visible { outline-color: #fff; }
.image-hero--home .image-hero-inner { min-height: 730px; padding-block: 4rem; }
@media (max-width: 767px) {
    .image-hero-inner { min-height: 640px; padding-bottom: 3rem; }
    .image-hero--home .image-hero-inner { min-height: 700px; padding-block: 3rem; }
    .image-hero-media img { object-position: 63% center; }
    .image-hero--heat-pump .image-hero-media img { object-position: 78% center; }
    .image-hero--whole-home .image-hero-media img { object-position: 52% center; }
    .image-hero--solar-hot-water .image-hero-media img { object-position: 78% center; }
    .image-hero--advice .image-hero-media img { object-position: 58% center; }
    .image-hero::after { background: linear-gradient(90deg, rgba(17,29,25,.84), rgba(17,29,25,.5)); }
    .image-hero--advice::after { background: linear-gradient(90deg, rgba(17,29,25,.9), rgba(17,29,25,.55)); }
    .image-hero .breadcrumb { margin-bottom: 2rem; }
}
@media print { .image-hero { color: #242922; background: #fff; } .image-hero-media, .image-hero::after { display: none; } .image-hero .lead { color: inherit; } .image-hero-inner, .image-hero--home .image-hero-inner { min-height: 0; padding-block: 2rem; } }

/* Air conditioning: preserve the complete manufacturer product photo and its label. */
.ac-photo { margin: 0; min-width: 0; }
.ac-photo img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-small);
    box-shadow: 0 14px 34px rgba(38, 61, 55, .11), 0 3px 9px rgba(38, 61, 55, .07);
}
.ac-photo figcaption { margin-top: .75rem; color: var(--color-text-muted); font-size: .8rem; line-height: 1.5; }
.ac-product img { background: white; }
