/* Home only: the approved header and hero are deliberately outside this scope. */
.index-page main > section:not(#hero) { padding:88px 0; scroll-margin-top:88px; }
.index-page main > section:not(#hero) h2,
.index-page main > section:not(#hero) h3,
.index-page main > section:not(#hero) h4 { color:#321a00; letter-spacing:-.025em; }
.index-page main > section:not(#hero) p { line-height:1.75; }
.index-page #services { background:#fffaf3; }
.index-page #services .step-item { height:100%; padding:0 0 30px; border:1px solid #e8e0d5; border-radius:28px; overflow:hidden; background:white; box-shadow:0 12px 32px rgba(50,26,0,.05); transition:transform .25s,box-shadow .25s; text-align:left; }
.index-page #services .step-item > :not(.step-img) { margin-left:28px; margin-right:28px; }
.index-page #services .step-img { margin:0 0 26px; border-radius:0; }
.index-page #services .step-img img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.index-page #services .step-item h3 { font-size:1.6rem; margin-top:10px; }
.index-page .home-kicker { display:block; color:#655643; font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.index-page #services .btn { min-height:46px; padding:12px 20px; border-radius:50px; font-weight:600; color:#321a00 !important; margin-bottom:8px; }
.index-page #services .btn:hover { transform:translateY(-2px); }
.index-page #description { background:#f5f3ee; }
.index-page .home-flow-card { height:100%; padding:30px; background:#fff; border:1px solid #e5dfd5; border-radius:24px; }
.index-page .home-flow-card > i { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:14px; background:#fff0d7; color:#66401d; font-size:1.4rem; margin-bottom:22px; }
.index-page .home-flow-card h3 { font-size:1.25rem; }
.index-page #about .image-wrapper { border-radius:28px; overflow:hidden; }
.index-page #about .image-wrapper img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.index-page #about .content-wrapper { padding:20px 24px; }
.index-page #about .feature-item { padding:14px 16px; margin:10px 0; background:#fff8ee; border-radius:14px; }
.index-page #about .cta-actions a { min-height:44px; border-radius:50px; }
.index-page #team .team-member { border-radius:24px; overflow:hidden; background:#fff; box-shadow:0 10px 28px rgba(50,26,0,.05); }
.index-page #team .member-img img { aspect-ratio:1; object-fit:cover; }
.index-page #team .row { justify-content:center; }
.index-page .home-faq-list { max-width:900px; margin:auto; }
.index-page .home-faq-item { margin:12px 0; border:1px solid #e4dccf; border-radius:18px; background:#fff; }
.index-page .home-faq-item summary { padding:22px 24px; cursor:pointer; font-weight:600; color:#321a00; }
.index-page .home-faq-item > div { padding:0 24px 24px; line-height:1.75; }
.index-page .home-faq-item[open] { border-color:#daa355; }
.index-page #contact .contact-form-wrapper, .index-page #contact .contact-card { border-radius:22px; }
.index-page #contact input, .index-page #contact textarea { border-radius:12px; min-height:46px; }
.index-page #partner img { filter:none !important; }
.index-page #partner .container > .d-flex > div:last-child { background:#fff; border-radius:22px; }
.index-page main > section:not(#hero) a:focus-visible, .index-page summary:focus-visible { outline:3px solid #9b5c13; outline-offset:4px; }
/* Existing AOS nodes remain visible even if scripts or animation fail. */
.index-page main > section:not(#hero) [data-aos] { opacity:1; transform:none; transition:none !important; }
@media(hover:hover) { .index-page #services .step-item:hover { transform:translateY(-4px); box-shadow:0 18px 40px rgba(50,26,0,.09); } }
@media(max-width:767px) {
 .index-page main > section:not(#hero) { padding:52px 0; }
 .index-page #services .step-item > :not(.step-img) { margin-left:22px; margin-right:22px; }
 .index-page #about .content-wrapper { padding:24px 0 0; }
 .index-page .home-flow-card { padding:24px; }
 .index-page #services .btn { display:inline-flex; align-items:center; justify-content:center; }
 .index-page #services .ms-2 { margin-left:0 !important; }
}
@media(prefers-reduced-motion:reduce) { .index-page main > section:not(#hero) *, .index-page main > section:not(#hero) *::before { animation:none !important; transition:none !important; } }

.index-page main > section.dark-background:not(#hero) h2, .index-page main > section.dark-background:not(#hero) h3 { color:var(--heading-color); }

/* V28: open editorial columns instead of icon cards. */
.index-page #description.home-connection-editorial { background:#fff; border-top:1px solid #e9e5df; border-bottom:1px solid #e9e5df; }
.index-page #description.home-connection-editorial .section-title { text-align:left; max-width:760px; margin:0 0 36px; padding-bottom:0; }
.index-page #description.home-connection-editorial .section-title h2 { font-size:clamp(1.7rem,2.4vw,2.3rem); font-weight:600; }
.index-page #description .home-flow-editorial { border:0; border-radius:0; background:transparent; padding:24px 0 4px; box-shadow:none; border-top:2px solid #d7c4ac; }
.index-page #description .home-flow-editorial h3 { font-size:1.15rem; font-weight:600; margin-bottom:14px; }
.index-page #description .home-flow-editorial p { margin:0; color:#514b45; }
@media(min-width:768px) { .index-page #description .row { --bs-gutter-x:3rem; } }
@media(max-width:767px) { .index-page #description.home-connection-editorial .section-title { margin-bottom:22px; } .index-page #description .home-flow-editorial { padding:20px 0 8px; } }

.index-page #partner .container > .d-flex > div:last-child { border:1px solid #e4ded4; }
.index-page #partner .container > .d-flex > div:last-child img { max-width:190px !important; max-height:145px !important; }

/* Readable text on orange CTAs below the approved Home hero. */
.index-page #services .btn,
.index-page #about .primary-btn,
.index-page #contact .php-email-form button[type="submit"],
.index-page #newsletter button[type="submit"] { color:#321a00; }
