/* Homepage composition only. Shared customer pages retain their existing styles. */
.customer-site.home-page main .container,
.customer-site.home-page .site-footer .container {
    width: min(1240px, calc(100% - 80px));
}

.customer-site.home-page main .section { padding-block: 72px; }
.customer-site.home-page main .section-heading { align-items: end; gap: 32px; margin-bottom: 30px; }
.customer-site.home-page main .section-heading > p { max-width: 31em; }
.customer-site.home-page main .section-heading .eyebrow { margin-bottom: 10px; }

/* Hero: the video keeps its native frame and the copy stays in the same two-column layout. */
.customer-site.home-page .hero { padding-top: 42px; }
.customer-site.home-page .hero-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px; }
.customer-site.home-page .hero-copy { min-width: 0; }
.customer-site.home-page .hero-copy .eyebrow { margin-bottom: 14px; }
.customer-site.home-page .hero h1 { font-size: clamp(43px, 4.2vw, 60px); line-height: 1.32; }
.customer-site.home-page .hero-description { margin-top: 20px; }
.customer-site.home-page .hero .button-row { margin-top: 28px; gap: 12px; }
.customer-site.home-page .hero-visual { position: relative; min-width: 0; isolation: isolate; }
.customer-site.home-page .hero-visual::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -13px -13px 24px 23px;
    border-radius: 12px;
    background: #e9e7db;
}
.customer-site.home-page .hero-media {
    aspect-ratio: 16 / 9;
    box-shadow: 0 16px 34px rgb(8 57 68 / 10%);
}
.customer-site.home-page .hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: none;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
}
.customer-site.home-page .hero-media .hero-video {
    display: block;
    opacity: 0;
    transition: opacity .8s linear;
}
.customer-site.home-page .hero-media .hero-video.is-visible { opacity: 1; }
.customer-site.home-page .hero-media .hero-ai-link {
    position: absolute;
    z-index: 2;
    right: 12px;
    bottom: 12px;
    padding: 8px 12px;
    border: 1px solid rgb(255 255 255 / 75%);
    border-radius: 6px;
    background: rgb(8 57 68 / 86%);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
}
.customer-site.home-page .hero-media .hero-ai-link:hover,
.customer-site.home-page .hero-media .hero-ai-link:focus-visible { background: #083944; }
.customer-site.home-page .hero-visual figcaption { margin-top: 13px; font-size: 12px; line-height: 1.55; }
.customer-site.home-page .hero-principles {
    gap: 0;
    margin-top: 34px;
    padding-block: 23px 27px;
    border-color: rgb(15 75 90 / 15%);
}
.customer-site.home-page .hero-principles li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
    padding-inline: 26px;
    text-align: left;
}
.customer-site.home-page .hero-principles li:first-child { padding-left: 0; }
.customer-site.home-page .hero-principles li:last-child { padding-right: 0; }
.customer-site.home-page .hero-principles li + li { border-left: 1px solid rgb(15 75 90 / 14%); }
.customer-site.home-page .hero-principles .service-icon { width: 28px; height: 28px; flex: 0 0 28px; color: var(--dabok-teal); }
.customer-site.home-page .hero-principles strong { display: block; color: var(--dabok-teal-dark); font-size: 16px; line-height: 1.45; }
.customer-site.home-page .hero-principles p { margin-top: 5px; color: var(--muted); font-size: 14px; line-height: 1.55; }

/* Services */
.customer-site.home-page .service-grid { gap: 22px; }
.customer-site.home-page .service-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 14px 14px 18px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--dabok-white);
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.customer-site.home-page .service-card:hover,
.customer-site.home-page .service-card:focus-within { border-color: #b8c9c8; transform: translateY(-2px); box-shadow: 0 10px 24px rgb(8 57 68 / 6%); }
.customer-site.home-page .service-card .brand-image img { aspect-ratio: 16 / 10; border-radius: 6px; }
.customer-site.home-page .service-card-heading { gap: 12px; align-items: baseline; margin-top: 18px; padding-inline: 8px; }
.customer-site.home-page .service-card-heading .editorial-number { font-size: 20px; }
.customer-site.home-page .service-card-heading h3 { font-size: 21px; }
.customer-site.home-page .service-card > p { margin-top: 8px; padding-inline: 8px; font-size: 15px; line-height: 1.65; }
.customer-site.home-page .service-card > .text-link { width: fit-content; min-height: 40px; margin: auto 8px 0; padding-top: 12px; font-size: 15px; }
.customer-site.home-page .service-resources { margin-top: 26px; padding-top: 18px; }

/* Four-step public journey summary. */
.customer-site.home-page .process-grid { gap: 22px; }
.customer-site.home-page .process-step { padding-top: 16px; border-top: 2px solid #a5c0c4; }
.customer-site.home-page .process-step:not(:last-child)::after { top: -18px; right: -14px; font-size: 19px; }
.customer-site.home-page .process-step .editorial-number { color: var(--dabok-teal); font-size: 27px; }
.customer-site.home-page .process-step h3 { margin-top: 9px; font-size: 20px; }
.customer-site.home-page .process-step p { margin-top: 8px; font-size: 15px; line-height: 1.65; }
.customer-site.home-page .journey-detail { margin-top: 28px; }

/* Trust and FAQ use quieter typography and tighter editorial spacing. */
.customer-site.home-page .trust-section { background: var(--dabok-ivory); }
.customer-site.home-page .trust-grid { gap: 26px; }
.customer-site.home-page .trust-item { padding-top: 18px; border-top: 2px solid #c4d1cf; }
.customer-site.home-page .trust-item .editorial-number { font-size: 24px; }
.customer-site.home-page .trust-item h3 { min-height: 0; margin-top: 12px; font-size: 20px; }
.customer-site.home-page .trust-item p { margin-top: 8px; font-size: 15px; line-height: 1.7; }
.customer-site.home-page .faq-preview { background: var(--dabok-warm-white); }
.customer-site.home-page .faq-preview-grid { grid-template-columns: minmax(0, 35fr) minmax(0, 65fr); gap: 52px; }
.customer-site.home-page .faq-preview-grid > * { min-width: 0; }
.customer-site.home-page .faq-preview-item summary { align-items: center; padding-block: 18px; font-size: 18px; line-height: 1.55; }
.customer-site.home-page .faq-preview-item summary > span { flex: 0 0 24px; text-align: center; color: var(--dabok-teal); }
.customer-site.home-page .faq-preview-item p { padding: 0 34px 20px 0; font-size: 15px; line-height: 1.7; }

/* Story count determines its own width; published content and links are unchanged. */
.customer-site.home-page .story-home { padding-block: 72px; }
.customer-site.home-page .story-section-heading { margin-bottom: 20px; }
.customer-site.home-page .story-categories { margin: 18px 0 26px; }
.customer-site.home-page .story-home-cards .story-grid { gap: 22px; }
.customer-site.home-page .story-home-cards.story-count-1 .story-grid { grid-template-columns: minmax(0, min(100%, 660px)); justify-content: center; }
.customer-site.home-page .story-home-cards.story-count-2 .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 980px; margin-inline: auto; }
.customer-site.home-page .story-home-cards .story-card { border-color: var(--line); transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.customer-site.home-page .story-home-cards .story-card:hover,
.customer-site.home-page .story-home-cards .story-card:focus-within { border-color: #b8c9c8; transform: translateY(-2px); box-shadow: 0 10px 24px rgb(8 57 68 / 6%); }
.customer-site.home-page .story-home-cards .story-card-text { padding: 24px; }

/* Consultation and statutory footer information. */
.customer-site.home-page .consultation-section { padding-block: 64px; }
.customer-site.home-page .consultation-inner { gap: 36px; }
.customer-site.home-page .consultation-inner p:not(.eyebrow) { margin-top: 12px; }
.customer-site.home-page .cta-actions { justify-items: stretch; gap: 10px; min-width: 230px; }
.customer-site.home-page .cta-actions .button { min-height: 58px; }
.customer-site.home-page .site-footer { padding-top: 52px; }
.customer-site.home-page .footer-top { gap: 36px; padding-bottom: 30px; }
.customer-site.home-page .footer-top p { margin-top: 10px; }
.customer-site.home-page .footer-top nav { gap: 4px 26px; }
.customer-site.home-page .footer-bottom { gap: 30px; padding-block: 24px; }
.customer-site.home-page .company-info { font-size: 14px; line-height: 1.7; }
.customer-site.home-page .company-info dl { gap: 6px 20px; }
.customer-site.home-page .footer-legal { gap: 0 18px; }
.customer-site.home-page .copyright { text-align: left; }

@media (max-width: 1100px) {
    .customer-site.home-page .hero-grid { gap: 26px; }
    .customer-site.home-page .hero h1 { font-size: clamp(40px, 4.5vw, 52px); }
    .customer-site.home-page .hero-principles li { padding-inline: 16px; }
    .customer-site.home-page .service-grid { gap: 16px; }
    .customer-site.home-page .service-card-heading h3 { font-size: 19px; }
    .customer-site.home-page .faq-preview-grid { gap: 32px; }
}

@media (max-width: 768px) {
    .customer-site.home-page main .container,
    .customer-site.home-page .site-footer .container { width: calc(100% - 40px); }
    .customer-site.home-page main .section,
    .customer-site.home-page .story-home { padding-block: 54px; }
    .customer-site.home-page main .section-heading { flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 26px; }
    .customer-site.home-page .hero { padding-top: 34px; }
    .customer-site.home-page .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .customer-site.home-page .hero-visual::before { inset: -9px -9px 20px 16px; }
    .customer-site.home-page .hero-visual figcaption { text-align: left; }
    .customer-site.home-page .hero-principles { gap: 18px; margin-top: 32px; padding-block: 24px; }
    .customer-site.home-page .hero-principles li { padding: 0; }
    .customer-site.home-page .hero-principles li + li { border: 0; }
    .customer-site.home-page .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
    .customer-site.home-page .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 22px; }
    .customer-site.home-page .process-step:nth-child(2)::after { display: none; }
    .customer-site.home-page .trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
    .customer-site.home-page .faq-preview-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
    .customer-site.home-page .story-home-cards .story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .customer-site.home-page .footer-top, .customer-site.home-page .footer-bottom { gap: 22px; }
}

@media (max-width: 600px) {
    .customer-site.home-page .hero h1 { font-size: clamp(38px, 9vw, 48px); }
    .customer-site.home-page .hero-description { margin-top: 18px; font-size: 16px; }
    .customer-site.home-page .hero .button-row { margin-top: 24px; }
    .customer-site.home-page .hero-principles { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .customer-site.home-page .hero-principles li::before { content: none; }
    .customer-site.home-page .service-grid,
    .customer-site.home-page .process-grid,
    .customer-site.home-page .trust-grid,
    .customer-site.home-page .story-home-cards .story-grid,
    .customer-site.home-page .story-home-cards.story-count-2 .story-grid { grid-template-columns: minmax(0, 1fr); }
    .customer-site.home-page .service-card .brand-image img { max-height: none; }
    .customer-site.home-page .process-step::after { display: none; }
    .customer-site.home-page .process-step { padding: 0 0 0 52px; border: 0; }
    .customer-site.home-page .process-step .editorial-number { position: absolute; top: 0; left: 0; font-size: 25px; }
    .customer-site.home-page .process-step:not(:last-child)::before { content: ""; position: absolute; top: 38px; bottom: -22px; left: 15px; width: 1px; background: #a5c0c4; }
    .customer-site.home-page .process-step h3 { margin-top: 0; }
    .customer-site.home-page .trust-item h3 { margin-top: 8px; }
    .customer-site.home-page .story-section-heading { align-items: flex-start; }
    .customer-site.home-page .story-categories { gap: 8px; }
    .customer-site.home-page .story-categories a { padding: 7px 12px; font-size: 14px; }
    .customer-site.home-page .consultation-inner { gap: 24px; }
    .customer-site.home-page .cta-actions { width: 100%; min-width: 0; }
    .customer-site.home-page .cta-actions .button { width: 100%; }
    .customer-site.home-page .footer-top nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .customer-site.home-page .footer-bottom { align-items: stretch; }
    .customer-site.home-page .company-info dl { display: grid; gap: 6px; }
    .customer-site.home-page .footer-legal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; }
    .customer-site.home-page .copyright { margin-top: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .customer-site.home-page .service-card,
    .customer-site.home-page .story-card { transform: none !important; }
}
