/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4
 * genre: professional editorial · macrostructure: photo-led introduction, experience band,
 * service overview, association gallery, contact · design-system: design.md · designed-as-app
 * Original McCune palette and typography. Hero motion honors reduced-motion preferences.
 */
.mccune-homepage {
  --hp-ink: #16334f;
  --hp-body: #465969;
  --hp-blue: #4c789a;
  --hp-paper: #fff;
  --hp-wash: #f0f5f8;
  --hp-rule: #d7e2e9;
  --hp-dark: #18334e;
  --hp-light: #dbe7ef;
  --hp-gold: #e1b900;
  --hp-gold-hover: #edc925;
  --hp-focus: #286b9c;
  --hp-font: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --hp-slide-duration: 850ms;
  --hp-slide-ease: cubic-bezier(.22, .61, .36, 1);
  --hp-control-rule: rgba(219, 231, 239, .4);
  --hp-control-hover: rgba(255, 255, 255, .12);
  --hp-frame-border: rgba(22, 51, 79, .18);
  --hp-frame-shadow: 0 10px 28px rgba(22, 51, 79, .12), 0 2px 6px rgba(22, 51, 79, .06);
  --hp-xs: 8px;
  --hp-sm: 16px;
  --hp-md: 24px;
  --hp-lg: 32px;
  --hp-xl: 48px;
  --hp-2xl: 64px;
  --hp-3xl: 80px;
  overflow-x: clip;
}
html:has(.mccune-homepage) { overflow-x: clip; }
.mc-homepage, .mc-homepage * { box-sizing: border-box; font-family: var(--hp-font); }
.mc-homepage { padding-top: 86px; background: var(--hp-paper); color: var(--hp-body); }
.mc-homepage .hp-container { width: calc(100% - 48px); max-width: 1170px; margin: 0 auto; }
.mc-homepage h1, .mc-homepage h2, .mc-homepage h3 { min-width: 0; margin: 0; color: var(--hp-ink); font-weight: 500; font-style: normal; overflow-wrap: anywhere; }
.mc-homepage p { margin: 0; color: var(--hp-body); }
.mc-homepage a { text-decoration: none; }
.mc-homepage a:focus-visible { outline: 3px solid var(--hp-focus) !important; outline-offset: 5px; }
.hp-hero { background: var(--hp-wash); }
.hp-hero-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.15fr); align-items: center; gap: var(--hp-xl); min-height: 650px; padding: var(--hp-2xl) 0; }
.hp-hero-copy { min-width: 0; }
.mc-homepage #hp-title { font-size: clamp(38px, 3.6vw, 52px); line-height: 1.08; letter-spacing: -.035em; }
#hp-title span { display: block; }
.mc-homepage .hp-intro { margin-top: var(--hp-md); color: var(--hp-ink); font-size: 22px; line-height: 1.45; }
.mc-homepage .hp-summary { max-width: 480px; margin-top: var(--hp-sm); font-size: 16px; line-height: 1.8; }
.hp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--hp-md); margin-top: var(--hp-lg); }
.mc-homepage .hp-button { display: inline-flex; justify-content: center; align-items: center; gap: var(--hp-md); min-height: 48px; padding: var(--hp-sm) var(--hp-md); border: 1px solid var(--hp-gold); border-radius: 3px; background: var(--hp-gold); color: var(--hp-ink); font-size: 14px; font-weight: 600; line-height: 1; white-space: nowrap; }
.mc-homepage .hp-button:hover { background: var(--hp-gold-hover); border-color: var(--hp-gold-hover); }
.mc-homepage .hp-button:active { background: var(--hp-gold); }
.mc-homepage .hp-link { display: inline-flex; align-items: center; gap: 12px; padding: 12px 0; color: var(--hp-ink); font-size: 14px; line-height: 1; white-space: nowrap; }
.hp-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.hp-link:active { color: var(--hp-blue); }
.hp-hero-slideshow { min-width: 0; overflow: clip; border: 1px solid var(--hp-frame-border); border-radius: 6px; box-shadow: var(--hp-frame-shadow); background: var(--hp-dark); }
.hp-slide-viewport { position: relative; aspect-ratio: 3 / 2; overflow: clip; isolation: isolate; touch-action: pan-y; }
.mc-homepage .hp-slide { position: absolute; inset: 0; margin: 0; opacity: 0; z-index: 0; transform: none; pointer-events: none; transition: opacity var(--hp-slide-duration) var(--hp-slide-ease), transform var(--hp-slide-duration) var(--hp-slide-ease), clip-path var(--hp-slide-duration) var(--hp-slide-ease); }
.hp-slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.mc-homepage .hp-slide.is-active { z-index: 2; opacity: 1; }
.mc-homepage .hp-slide.is-entering { z-index: 3; }
.mc-homepage .hp-slide.is-leaving { z-index: 1; }
[data-transition="drift"] .hp-slide.is-entering { transform: translateX(18px) scale(1.025); }
[data-transition="drift"] .hp-slide.is-entering.is-active { transform: none; }
[data-transition="drift"] .hp-slide.is-leaving { transform: translateX(-12px) scale(1.015); }
[data-transition="reveal"] .hp-slide.is-entering { clip-path: inset(0 100% 0 0); opacity: 1; }
[data-transition="reveal"] .hp-slide.is-entering.is-active { clip-path: inset(0); }
.hp-slide-caption { padding: 22px 24px 16px; }
.mc-homepage .hp-slide-title { color: var(--hp-paper); font-size: 18px; font-weight: 500; line-height: 1.3; }
.mc-homepage .hp-slide-description { min-height: 42px; margin-top: 8px; color: var(--hp-light); font-size: 14px; line-height: 1.5; }
.hp-slide-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; }
.hp-slide-dots, .hp-slide-actions { display: flex; align-items: center; gap: 4px; }
.mc-homepage .hp-slide-controls button { display: inline-flex; justify-content: center; align-items: center; flex: 0 0 auto; min-width: 32px; height: 40px; margin: 0; padding: 0; border: 1px solid var(--hp-control-rule); border-radius: 3px; background: none; color: var(--hp-paper); font-size: 17px; line-height: 1; cursor: pointer; transition: background-color 150ms ease-out; }
.mc-homepage .hp-slide-dots button { min-width: 24px; width: 24px; border-color: transparent; }
.hp-slide-dots button span { width: 6px; height: 6px; border-radius: 50%; background: var(--hp-light); }
.hp-slide-dots button[aria-pressed="true"] span { width: 16px; border-radius: 4px; background: var(--hp-gold); }
.mc-homepage .hp-slide-controls .hp-slide-play { min-width: 52px; font-size: 12px; }
.mc-homepage .hp-slide-controls button:hover { background: var(--hp-control-hover); }
.mc-homepage .hp-slide-controls button:active { background: var(--hp-blue); }
.mc-homepage .hp-slide-controls button:focus-visible { outline: 2px solid var(--hp-paper) !important; outline-offset: 2px; }
.hp-slide-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: clip; clip-path: inset(50%); white-space: nowrap; }
.hp-experience { padding: var(--hp-lg) 0; border-bottom: 1px solid var(--hp-rule); }
.mc-homepage .hp-experience p { color: var(--hp-ink); font-size: 25px; line-height: 1.4; text-align: center; letter-spacing: -.01em; }
.hp-overview { padding: var(--hp-3xl) 0; }
.hp-overview-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.15fr); gap: var(--hp-3xl); align-items: start; }
.mc-homepage .hp-overview h2 { max-width: 410px; font-size: 37px; line-height: 1.18; letter-spacing: -.025em; }
.mc-homepage .hp-overview-copy > p { max-width: 420px; margin: var(--hp-md) 0; font-size: 17px; line-height: 1.8; }
.hp-service-group { padding: var(--hp-lg) 0; border-top: 1px solid var(--hp-rule); }
.hp-service-group:first-child { padding-top: 0; border-top: 0; }
.mc-homepage .hp-service-group h3 { font-size: 24px; line-height: 1.25; }
.mc-homepage .hp-service-group p { margin-top: 12px; font-size: 15px; line-height: 1.7; }
.mc-homepage .hp-service-group ul { list-style: none; margin: var(--hp-sm) 0 0; padding: 0; }
.mc-homepage .hp-service-group li { margin: var(--hp-xs) 0 0; color: var(--hp-ink); font-size: 14px; line-height: 1.7; }
.hp-service-group li::before { content: '✓'; margin-right: 10px; color: var(--hp-focus); }
.hp-associations { padding: var(--hp-xl) 0 var(--hp-2xl); border-top: 1px solid var(--hp-rule); background: var(--hp-paper); }
.mc-homepage .hp-associations h2 { margin-bottom: var(--hp-lg); font-size: 22px; text-align: center; line-height: 1.3; }
.hp-logo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--hp-lg) var(--hp-xl); align-items: center; justify-items: center; }
.hp-logo-grid img { display: block; width: 100%; max-width: 160px; height: 76px; object-fit: contain; }
.hp-contact { padding: var(--hp-xl) 0; background: var(--hp-dark); }
.hp-contact-grid { display: flex; align-items: center; justify-content: space-between; gap: var(--hp-xl); }
.mc-homepage .hp-contact h2 { color: var(--hp-paper); font-size: 32px; line-height: 1.2; letter-spacing: -.015em; }
.mc-homepage .hp-contact p { color: var(--hp-light); margin-top: 12px; font-size: 16px; line-height: 1.7; }
.hp-contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--hp-sm); }
.mc-homepage .hp-email { color: var(--hp-paper); font-size: 14px; line-height: 1.5; white-space: nowrap; }
.hp-email:hover { text-decoration: underline; text-underline-offset: 3px; }
.hp-email:active { color: var(--hp-light); }
.hp-contact a:focus-visible { outline-color: var(--hp-paper) !important; }
@media (max-width: 1199px) {
  .hp-hero-grid { gap: var(--hp-lg); }
  .hp-overview-grid { gap: var(--hp-xl); }
}
@media (max-width: 991px) {
  .hp-hero-grid { grid-template-columns: minmax(0, 1fr); min-height: 0; padding: var(--hp-xl) 0; }
  .mc-homepage #hp-title { font-size: 38px; }
  .hp-actions { gap: var(--hp-sm); }
  .hp-overview-grid { grid-template-columns: minmax(0, 1fr); gap: var(--hp-xl); }
  .mc-homepage .hp-overview h2, .mc-homepage .hp-overview-copy > p { max-width: 600px; }
  .hp-contact-grid { align-items: flex-start; flex-direction: column; gap: var(--hp-lg); }
}
@media (max-width: 767px) {
  .mc-homepage .hp-container { width: calc(100% - 40px); }
  .hp-hero-grid { grid-template-columns: minmax(0, 1fr); gap: var(--hp-lg); padding: var(--hp-xl) 0 var(--hp-lg); }
  .mc-homepage #hp-title { font-size: clamp(34px, 9vw, 46px); line-height: 1.1; }
  .mc-homepage .hp-intro { font-size: 21px; }
  .hp-slide-caption { padding: 20px; }
  .hp-experience { padding: var(--hp-md) 0; }
  .mc-homepage .hp-experience p { font-size: 22px; }
  .hp-overview { padding: var(--hp-xl) 0; }
  .mc-homepage .hp-overview h2 { font-size: 31px; }
  .hp-service-group { gap: var(--hp-sm); }
  .hp-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--hp-lg) var(--hp-md); }
  .hp-logo-grid img { height: 60px; max-width: 140px; }
  .hp-associations { padding: var(--hp-xl) 0; }
  .mc-homepage .hp-contact h2 { font-size: 29px; }
  .mc-homepage .hp-email { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .mc-homepage .hp-slide, .mc-homepage .hp-slide-controls button { transition: none !important; }
  .mc-homepage .hp-slide { transform: none !important; clip-path: none !important; }
}
