:root {
    --hcc-primary: #1f4b3f;
    --hcc-secondary: #111;
    --hcc-accent: #d9a441;
    --hcc-text: #222;
    --hcc-surface: #fff;
    --hcc-muted: #f4f4f4;
    --hcc-radius: 12px;
    --hcc-content-width: 1200px;
    --hcc-card-ratio: 4 / 3;
    --hcc-font-min: 16px;
    --hcc-font-max: 18px;
    --hcc-button-min-height: 48px;
}
.hcc-common-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2.5vw,32px); max-width:var(--hcc-content-width); margin-inline:auto; }
.hcc-common-card { overflow:hidden; border-radius:var(--hcc-radius); background:var(--hcc-surface); box-shadow:0 6px 24px rgba(0,0,0,.08); }
.hcc-common-card__link { display:block; height:100%; color:var(--hcc-text); text-decoration:none; }
.hcc-common-card__media { display:block; aspect-ratio:var(--hcc-card-ratio); overflow:hidden; background:var(--hcc-muted); }
.hcc-common-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.hcc-common-card__link:hover .hcc-common-card__media img { transform:scale(1.025); }
.hcc-common-card__body { display:flex; flex-direction:column; gap:8px; padding:clamp(16px,2vw,24px); }
.hcc-common-card__date { color:#666; font-size:.875em; }
.hcc-common-card__title { font-size:clamp(1.05rem,1.8vw,1.3rem); font-weight:700; line-height:1.45; }
.hcc-common-card__excerpt { line-height:1.7; }
.hcc-common-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:var(--hcc-content-width); margin:auto; padding:16px 20px; }
.hcc-common-cta__info,.hcc-common-cta__actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.hcc-common-cta__phone { font-size:clamp(1.2rem,2vw,1.65rem); }
.hcc-common-button { display:inline-flex; align-items:center; justify-content:center; min-height:var(--hcc-button-min-height); padding:10px 22px; border-radius:var(--hcc-radius); font-weight:700; text-decoration:none; }
.hcc-common-button--phone { color:#fff; background:var(--hcc-primary); }
.hcc-common-button--contact { color:#fff; background:var(--hcc-secondary); }
.hcc-common-desktop-cta { background:var(--hcc-muted); }
.hcc-common-mobile-cta { display:none; }
.hcc-common-site-master { max-width:var(--hcc-content-width); margin-inline:auto; }
.hcc-common-site-master__row { display:grid; grid-template-columns:minmax(7em,12em) 1fr; gap:16px; padding:12px 0; border-bottom:1px solid rgba(0,0,0,.1); }
.hcc-common-site-master dt { font-weight:700; }
.hcc-common-detail { max-width:var(--hcc-content-width); margin-inline:auto; color:var(--hcc-text); font-size:clamp(var(--hcc-font-min),1.6vw,var(--hcc-font-max)); }
.hcc-common-detail__title { line-height:1.35; }
.hcc-common-detail__image { width:100%; height:auto; border-radius:var(--hcc-radius); }
.hcc-common-detail__content { line-height:1.85; }
@media (max-width: 989px) { .hcc-common-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 767px) {
    body.hcc-mobile-cta-enabled { padding-bottom:76px; }
    .hcc-common-grid { grid-template-columns:1fr; }
    .hcc-common-desktop-cta { display:none; }
    .hcc-common-mobile-cta { display:block; position:fixed; z-index:9998; left:0; right:0; bottom:0; background:var(--hcc-surface); box-shadow:0 -4px 18px rgba(0,0,0,.16); }
    .hcc-common-mobile-cta .hcc-common-cta { padding:8px max(10px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); }
    .hcc-common-mobile-cta .hcc-common-cta__info { display:none; }
    .hcc-common-mobile-cta .hcc-common-cta__actions { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .hcc-common-mobile-cta .hcc-common-button:only-child { grid-column:1/-1; }
    .hcc-common-site-master__row { grid-template-columns:1fr; gap:4px; }
}
@media (prefers-reduced-motion: reduce) { .hcc-common-card__media img { transition:none; } }
