/* Home: original backgrounds, measured typography and one consistent content grid. */
.home-layout { background:#f8f9fa; }
.home-page {
    --type-section:clamp(1.5rem,1.8vw,1.625rem);
    --type-card:1.25rem;
    color:var(--primary); font-size:1rem; line-height:1.75;
}
.home-page .container { max-width:1180px; }
.home-page a:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
.home-page .home-text-link {
    display:inline-flex; align-items:center; gap:12px; color:var(--secondary);
    font-size:var(--type-control); font-weight:600; text-decoration:underline; text-underline-offset:5px;
}
.home-page .section-header { text-align:center; margin:0 0 36px; }
.home-page .section-header h2, .home-profile h2 {
    font-size:var(--type-section); font-weight:400; line-height:1.35;
    letter-spacing:-.3px; padding:0 0 20px; margin:0; position:relative;
}
.home-page .section-header h2::after, .home-profile h2::after {
    display:block; content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%);
    width:60px; height:3px; background:#e67e22;
}
.home-disciplines, .home-page .case-section, .home-profile { padding:48px 0; }
.home-disciplines { background:#f8f9fa; scroll-margin-top:100px; }
.discipline-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.home-discipline {
    border:0; padding:28px; min-width:0; background:#fff; border-radius:8px;
    box-shadow:0 5px 18px rgba(32,59,75,.1);
    display:flex; flex-direction:column; scroll-margin-top:112px;
}
.home-discipline > div { display:flex; flex-direction:column; flex:1; min-width:0; }
.home-discipline h3 {
    font-size:var(--type-card); line-height:1.45; font-weight:500; margin:0 0 14px;
    display:flex; align-items:flex-start; gap:12px;
}
.home-discipline h3 i { flex:none; color:var(--primary); font-size:1.25rem; line-height:1.45; }
.home-discipline p { color:#465760; font-size:1rem; line-height:1.75; margin:0 0 22px; }
.home-page .home-discipline-link {
    align-self:flex-start; margin-top:auto; background:#267bb3; border:1px solid #267bb3;
    color:#fff; padding:12px 20px; min-height:46px; border-radius:3px; text-decoration:none;
}
.home-page .home-discipline-link:hover { background:#e67e22; border-color:#e67e22; }
.home-page .case-section {
    background:#f8f9fa; border-block:1px solid #e1e7eb; scroll-margin-top:110px;
}
.home-page .case-section .section-header p {
    color:#465760; font-size:1rem; line-height:1.75; margin:16px auto 0; max-width:75ch;
}
.home-page .case-track { gap:24px; padding:8px 0 20px; scrollbar-width:none; }
.home-page .case-track::-webkit-scrollbar { display:none; }
.home-page .case-card {
    flex-basis:calc((100% - 24px) / 2); min-width:0; padding:28px;
    background:#fff; border:0; border-radius:8px; box-shadow:0 5px 18px rgba(32,59,75,.1);
    overflow-wrap:break-word;
}
.home-page .case-card h3 { font-size:var(--type-card); line-height:1.45; margin:0 0 14px; }
.home-page .case-card p { font-size:1rem; line-height:1.75; color:#465760; margin:0 0 22px; }
.home-page .case-card a {
    align-self:flex-start; color:#fff; background:#267bb3; border:1px solid #267bb3;
    font-size:var(--type-control); text-decoration:none; min-height:46px; padding:12px 20px; border-radius:3px;
}
.home-page .case-card a:hover { background:#e67e22; border-color:#e67e22; }
.home-page .case-controls { margin-top:16px; justify-content:center; }
.home-page .case-dots { display:flex; justify-content:center; flex-wrap:wrap; }
.home-page .case-controls .case-dot {
    display:grid; place-items:center; width:28px; min-width:28px; height:44px; min-height:44px;
    border:0; border-radius:0; padding:0; background:transparent; cursor:pointer;
}
.home-page .case-dot::before { content:''; width:12px; height:12px; border-radius:50%; background:#aeb6be; }
.home-page .case-controls .case-dot:hover { background:transparent; border:0; }
.home-page .case-dot.active::before, .home-page .case-dot:hover::before { background:#e67e22; }
.home-page .case-all {
    display:table; margin:24px auto 0; color:#fff; background:#267bb3; border:1px solid #267bb3;
    font-size:var(--type-control); text-decoration:none; min-height:46px; padding:12px 20px; border-radius:3px;
}
.home-page .case-all:hover { background:#e67e22; border-color:#e67e22; }
.home-profile { background:#f8f9fa; }
.home-profile-heading { text-align:center; margin-bottom:36px; }
.home-profile-copy { background:#fff; border-radius:8px; box-shadow:0 5px 18px rgba(32,59,75,.1); padding:28px; }
.home-profile-copy > p { font-size:1rem; line-height:1.75; color:#465760; margin:0 0 16px; }
.home-profile-copy .home-profile-dates { color:var(--gray); }
.home-profile-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:24px; }
.home-profile-actions .btn { display:inline-flex; align-items:center; gap:16px; border-radius:3px; padding:12px 20px; background:#267bb3; border:1px solid #267bb3; color:#fff; text-decoration:none; min-height:46px; }
.home-profile-actions .btn:hover { background:#e67e22; border-color:#e67e22; }

/* Original quotation section, with keyboard-accessible circular controls. */
.home-page .home-quotes { padding:48px 0; background:#f8f9fa; }
.home-page .testimonial-slider { min-height:0; overflow:visible; }
.home-page .testimonial-track { display:grid; gap:24px; width:100%; transition:none; }
.home-page [data-quotes-carousel][data-initialized="true"] { overflow:hidden; padding:8px 0 0; }
.home-page [data-quotes-carousel][data-initialized="true"] .testimonial-track { display:flex; gap:0; transition:transform .45s ease-in-out; }
.home-page .testimonial-item { box-sizing:border-box; flex:0 0 100%; width:100%; min-width:0; margin:0; padding:36px 32px; background:#fff; border-radius:8px; box-shadow:0 5px 18px rgba(32,59,75,.1); }
.home-page .testimonial-text { margin:0 0 24px; color:#526575; font-size:clamp(1.0625rem,1.6vw,1.25rem); font-weight:400; font-style:italic; line-height:1.7; overflow-wrap:break-word; }
.home-page .testimonial-text::before, .home-page .testimonial-text::after { color:#267bb3; }
.home-page .testimonial-author .testimonial-name { font:400 .9375rem/1.6 'Montserrat',sans-serif; letter-spacing:.025em; }
.home-page .testimonial-nav { gap:0; margin-top:16px; }
.home-page .testimonial-nav[hidden] { display:none; }
.home-page .testimonial-dot { display:grid; place-items:center; width:28px; height:44px; padding:0; border:0; border-radius:0; opacity:1; background:transparent; transform:none; }
.home-page .testimonial-dot::before { content:''; width:12px; height:12px; border-radius:50%; background:#aeb6be; }
.home-page .testimonial-dot.active::before, .home-page .testimonial-dot:hover::before { background:#e67e22; }
.home-page .testimonial-slider :focus-visible { outline:3px solid #e67e22; outline-offset:3px; }

/* The opening grows with its content on short screens. */
.home-page .hero-slider {
    display:flex; flex-direction:column; justify-content:center;
    height:auto; min-height:100vh; min-height:100svh; padding:140px 0 120px; isolation:isolate;
}
.home-page .hero-backgrounds { position:absolute; inset:0; z-index:0; }
.home-page .hero-slider::before { background:rgba(20,39,52,.68); z-index:1; pointer-events:none; }
.home-page .hero-slider .slide { z-index:0; transition:opacity .45s ease-in-out; }
.home-page .hero-slider .slide.active { z-index:1; }
.home-page .hero-slider .hero-content { height:auto; width:100%; padding:0 24px; align-items:flex-start; text-align:left; }
.home-page .hero-slider .hero-content h1 {
    color:#fff; font-size:clamp(2.25rem,3.2vw,2.75rem); font-weight:500;
    line-height:1.2; letter-spacing:-.5px; margin:0 0 14px; animation:none;
}
.home-page .hero-slider .hero-content .hero-profession {
    color:#fff; font-size:1.25rem; line-height:1.5; max-width:100%; margin:0 0 18px; animation:none;
}
.home-page .hero-slider .hero-content .hero-summary {
    color:#fff; font-size:1rem; line-height:1.75; max-width:64ch; margin:0 0 24px; animation:none;
}
.home-page .hero-slider .hero-buttons { animation:none; width:auto; }
.home-page .hero-slider .hero-buttons .btn {
    background:#267bb3; color:#fff; border:1px solid #267bb3; border-radius:3px;
    min-height:46px; max-width:100%; margin:0; padding:12px 20px;
}
.home-page .hero-slider .hero-buttons .btn:hover { background:#e67e22; border-color:#e67e22; }
.home-page .hero-buttons .btn,
.home-page .home-discipline-link,
.home-page .case-card a,
.home-page .case-all,
.home-page .home-profile-actions a {
    font:500 .875rem/1.5 'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.055em;
}
.home-page .hero-controls {
    position:absolute; z-index:3; bottom:24px; left:24px; right:24px;
    display:flex; justify-content:center; align-items:center; gap:12px 24px; flex-wrap:wrap;
}
.home-page .hero-controls[hidden] { display:none; }
.home-page .hero-dots {
    position:static; transform:none; display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
    width:196px; max-width:100%; gap:0;
}
.home-page .hero-dot {
    display:grid; place-items:center; width:100%; height:44px; border:0;
    border-radius:0; padding:0; opacity:1; background:transparent; transform:none; transition:none;
}
.home-page .hero-dot::before { content:''; width:12px; height:12px; border:0; border-radius:50%; background:#aeb6be; }
.home-page .hero-dot.active::before { background:#e67e22; }
.home-page .hero-controls :focus-visible, .home-page .hero-buttons a:focus-visible { outline:3px solid #fff; outline-offset:3px; }
@media (max-width:700px) {
    .home-page .home-quotes { padding:32px 0; }
    .home-page .testimonial-item { padding:28px 20px; }
    .home-disciplines, .home-page .case-section, .home-profile { padding:32px 0; }
    .home-page .section-header { margin-bottom:24px; }
    .discipline-grid { grid-template-columns:1fr; gap:28px; }
    .home-page .case-card { flex-basis:100%; }
    .home-discipline { padding:24px; }
    .home-page .case-card, .home-profile-copy { padding:24px; }
    .home-page .hero-slider { padding:120px 0 144px; }
    .home-page .hero-slider .hero-content h1 { font-size:clamp(1.75rem,7.5vw,2rem); }
    .home-page .hero-slider .hero-content .hero-profession { font-size:1.125rem; }
    .home-page .hero-controls { bottom:18px; left:16px; right:16px; gap:8px; flex-direction:column; }
    .home-page .hero-slider .hero-buttons { align-items:flex-start; }
    .home-profile-heading { margin-bottom:20px; }
    .home-profile-actions { align-items:flex-start; flex-direction:column; gap:18px; }
    .home-layout #scrollToTop { display:none !important; }
}
@media (max-width:480px) {
    .home-discipline { padding:22px 20px; }
    .home-page .case-card, .home-profile-copy { padding:22px 20px; }
    .home-page .hero-slider .hero-content { padding:0 16px; }
    .home-page .hero-slider .hero-buttons .btn { font-size:.875rem; }
    .home-page .home-discipline h3, .home-page .case-card h3 { font-size:1.1875rem; }
}
@media (max-height:500px) and (min-width:701px) {
    .home-page .hero-slider { padding-top:120px; padding-bottom:110px; }
}
@media (prefers-reduced-motion:reduce) {
    .home-page [data-quotes-carousel][data-initialized="true"] .testimonial-track { transition:none; }
    .home-page .hero-slider .slide { transition:none; }
    .home-page .case-track { scroll-behavior:auto; }
}
