/* AMKS & Co. additions on top of the theme (style.css). */

/* Check list (services offered, core values) */
.check-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
}
.check-list li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 12px;
    color: #656f75;
    font-size: 16px;
    line-height: 1.5;
}
.check-list li::before {
    content: "\f00c";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 2px;
    color: #225986;
    font-size: 14px;
}
.check-list-columns {
    -webkit-columns: 2;
    columns: 2;
    -webkit-column-gap: 40px;
    column-gap: 40px;
}
.check-list-columns li {
    -webkit-column-break-inside: avoid;
    break-inside: avoid;
}
@media (max-width: 575px) {
    .check-list-columns { -webkit-columns: 1; columns: 1; }
}

/* Quote block (firm profile quotes) */
.amks-quote {
    border-left: 4px solid #225986;
    padding: 10px 0 10px 24px;
    margin: 0 0 30px;
}
.amks-quote p {
    font-size: 18px;
    line-height: 1.6;
    color: #32373a;
    font-style: italic;
    margin-bottom: 10px;
}
.amks-quote footer {
    color: #656f75;
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* Generic content section */
.amks-section { padding: 80px 0; }
.amks-section-grey { background-color: #f4f7f9; }
.amks-section h2 { margin-bottom: 20px; }
.amks-section .section-intro { max-width: 800px; margin-bottom: 40px; }
@media (max-width: 991px) { .amks-section { padding: 60px 0; } }

/* Core values cards */
.value-card {
    background: #fff;
    border-radius: 6px;
    padding: 34px 30px;
    height: 100%;
    box-shadow: 0 8px 30px rgba(34, 89, 134, 0.08);
}
.value-card .value-index {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 2px;
    color: #225986;
    margin-bottom: 12px;
}
.value-card h3 { margin-bottom: 12px; text-transform: uppercase; letter-spacing: 1px; font-size: 18px; }
.value-card p { color: #656f75; margin: 0; }

/* Empanelments */
.empanelment-list { list-style: none; padding: 0; margin: 0; }
.empanelment-list li {
    display: flex;
    align-items: flex-start;
    padding: 18px 0;
    border-bottom: 1px solid #e3e8ec;
}
.empanelment-list li:last-child { border-bottom: 0; }
.empanelment-list .abbr {
    flex: 0 0 110px;
    font-weight: 600;
    color: #225986;
    letter-spacing: 1px;
}
.empanelment-list .name { color: #656f75; }

/* Clientele grid */
.clientele-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px 30px;
}
.clientele-grid li {
    position: relative;
    padding: 8px 0 8px 22px;
    color: #656f75;
    border-bottom: 1px dashed #e3e8ec;
}
.clientele-grid li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 16px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #225986;
}
@media (max-width: 991px) { .clientele-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .clientele-grid { grid-template-columns: 1fr; } }

/* Key facts strip */
.fact-strip { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 30px; }
.fact-strip .fact { flex: 1 1 160px; }
.fact-strip .fact strong { display: block; font-size: 36px; line-height: 1; color: #225986; margin-bottom: 6px; }
.fact-strip .fact span { color: #656f75; font-size: 14px; letter-spacing: 1px; text-transform: uppercase; }

/* Team partner bios */
.team-member figcaption .partner-bio {
    text-align: left;
    margin-top: 12px;
}
.team-member figcaption .partner-bio p {
    font-size: 14px;
    line-height: 1.5;
    color: #656f75;
    margin-bottom: 8px;
}
.team-member figure img { object-fit: cover; }

/* Admin login when using the site theme */
.form-page .form-error {
    background: #fdecea;
    color: #b3261e;
    border-radius: 4px;
    padding: 10px 14px;
    margin-bottom: 20px;
    font-size: 14px;
}

/* Service detail: regular (125px) icons inside the extra-large circle. The theme
   sizes the box from the image, so give it the circle's own dimensions. */
.service-detail-icon .icon-circle-xl {
    width: 18.5rem;
    height: 18.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.service-detail-icon .icon-circle-xl img { width: 9rem; height: auto; }

/* Logo SVG is 510px wide; keep it inside the header, leaving room for the mobile menu button */
.navigation-logo img { max-width: 100%; height: auto; }
@media (max-width: 991px) {
    .navigation-logo { max-width: calc(100% - 90px); }
}

/* Contact form feedback + honeypot */
.form-notice {
    border-radius: 4px;
    padding: 14px 18px;
    margin-bottom: 24px;
    font-size: 15px;
}
.form-notice ul { margin: 0; padding-left: 18px; }
.form-notice-success { background: #e6f4ea; color: #1e6b34; }
.form-notice-error { background: #fdecea; color: #b3261e; }
.form-notice i { margin-right: 6px; }
.hp-field { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* ---------------------------------------------------------------------------
   Branded preloader: tricolour bars draw in, emblem eases in, wordmark reveals,
   then a soft sheen loops until the page has loaded (body.loaded slides it away).
   --------------------------------------------------------------------------- */
.preloader {
    background-color: #fff;
    transition: transform .6s cubic-bezier(.77, 0, .18, 1) 1s, opacity .4s ease 1s;
}
body.loaded .preloader { opacity: 0; }
.preloader-logo {
    position: relative;
    width: min(360px, 72vw);
}
.preloader-logo svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}
/* Emblem: fade + slide */
.preloader-logo [data-part="emblem"] {
    opacity: 0;
    transform: translateX(-3%);
    animation: pl-emblem .6s cubic-bezier(.22, 1, .36, 1) .1s forwards;
}
/* Tricolour bars: stroke draw, bottom to top */
.preloader-logo [data-part="bar"] {
    stroke-dasharray: 9000;
    stroke-dashoffset: 9000;
    animation: pl-draw .55s cubic-bezier(.65, 0, .35, 1) forwards;
}
.preloader-logo #line4 { animation-delay: .1s; }
.preloader-logo #line5 { animation-delay: .2s; }
/* Wordmark + tagline: left-to-right wipe */
.preloader-logo [data-part="word"],
.preloader-logo [data-part="sub"] {
    opacity: 0;
    clip-path: inset(-5% 100% -5% 0);
    animation: pl-wipe .7s cubic-bezier(.22, 1, .36, 1) .35s forwards;
}
.preloader-logo [data-part="sub"] { animation-delay: .6s; }
/* Looping sheen */
.preloader-logo::after {
    content: "";
    position: absolute;
    inset: -10% 0;
    background: linear-gradient(105deg, rgba(255,255,255,0) 35%, rgba(255,255,255,.85) 50%, rgba(255,255,255,0) 65%);
    transform: translateX(-120%);
    animation: pl-sheen 2.2s ease-in-out 1.3s infinite;
    pointer-events: none;
}
/* Hairline progress */
.preloader-progress {
    position: relative;
    height: 2px;
    margin-top: 26px;
    background: #e4ebf1;
    border-radius: 2px;
    overflow: hidden;
}
.preloader-progress span {
    position: absolute;
    top: 0; left: 0;
    height: 100%;
    width: 40%;
    border-radius: 2px;
    background: linear-gradient(90deg, #225986, #52b947 60%, #f47820);
    animation: pl-progress 1.4s cubic-bezier(.65, 0, .35, 1) .2s infinite;
}
@keyframes pl-emblem  { to { opacity: 1; transform: translateX(0); } }
@keyframes pl-draw    { to { stroke-dashoffset: 0; } }
@keyframes pl-wipe    { from { opacity: 1; } to { opacity: 1; clip-path: inset(-5% -2% -5% 0); } }
@keyframes pl-sheen   { 0% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
@keyframes pl-progress { 0% { left: -40%; } 100% { left: 100%; } }
@media (prefers-reduced-motion: reduce) {
    .preloader-logo [data-part], .preloader-logo::after, .preloader-progress span { animation: none !important; }
    .preloader-logo [data-part] { opacity: 1; transform: none; clip-path: none; stroke-dashoffset: 0; }
}

/* Office map embed (contact page) */
.office-map { margin-top: 14px; border-radius: 6px; overflow: hidden; border: 1px solid #e3e8ec; }
.office-map iframe { display: block; width: 100%; height: 240px; border: 0; }

/* Blog */
.blog-single .post .post-category { display: inline-block; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: #225986; font-weight: 600; margin: 18px 0 6px; }
.blog-detail .post-meta { margin: -10px 0 24px; font-size: 14px; }
.blog-detail .post-body { line-height: 1.8; color: #656f75; }
.blog-detail .post-body p { margin-bottom: 18px; }
.blog-detail .post-body h2, .blog-detail .post-body h3, .blog-detail .post-body h4 { color: #32373a; margin: 30px 0 12px; }
.blog-detail .post-body ul, .blog-detail .post-body ol { padding-left: 24px; margin-bottom: 18px; }
.blog-detail .post-body img { max-width: 100%; height: auto; border-radius: 6px; }
.blog-detail .post-body blockquote { border-left: 4px solid #225986; padding: 8px 20px; margin: 20px 0; font-style: italic; color: #32373a; }
.blog-detail .post-body table { width: 100%; border-collapse: collapse; margin-bottom: 18px; }
.blog-detail .post-body td, .blog-detail .post-body th { border: 1px solid #e3e8ec; padding: 8px 12px; }
.post-author { display: flex; align-items: center; gap: 20px; margin-top: 40px; padding: 24px; background: #f4f7f9; border-radius: 8px; }
.post-author img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: 0 0 72px; }
.sidebar .recent-posts li { margin-bottom: 10px; }
.sidebar .recent-posts li small { display: block; font-size: 12px; margin-top: 2px; }
.sidebar .category ul li a.c-primary { font-weight: 600; }

/* Careers */
.career-accordion-item-body { display: none; }
.career-accordion-item.open .career-accordion-item-body { display: block; }
.career-accordion-item.open .career-accordion-item-header-icon i::before { content: "\f068"; } /* minus */
.career-accordion-item .job-description { color: #656f75; margin-bottom: 16px; }
.career-accordion-item .job-description p { margin-bottom: 12px; }
.contact-form select.form-select-plain { width: 100%; padding: 16px 20px; margin-bottom: 20px; border: 1px solid #e3e8ec; border-radius: 4px; background: #fff; font: inherit; color: #656f75; }
.contact-form .file-field { display: block; margin-bottom: 20px; }
.contact-form .file-field .file-label { display: block; font-weight: 500; color: #32373a; margin-bottom: 8px; }
.contact-form .file-field .file-label small { color: #656f75; font-weight: 400; }
.contact-form .file-field input[type=file] { display: block; width: 100%; padding: 12px; background: #fff; border: 1px dashed #c7d2dc; border-radius: 4px; font: inherit; color: #656f75; }

/* 404 */
.notfound-search { display: flex; gap: 12px; max-width: 520px; margin-top: 30px; }
.notfound-search input { flex: 1; padding: 14px 18px; border: 1px solid #e3e8ec; border-radius: 4px; font: inherit; }

/* Accessibility + heading hygiene */
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 10000; background: #225986; color: #fff; padding: 10px 16px; border-radius: 0 0 6px 0; }
.skip-link:focus { left: 0; }
.hero-slide-content h2.hero-title { font-size: 6rem; font-weight: 300; line-height: inherit; }
@media (max-width: 992px) { .hero-slide-content h2.hero-title { font-size: calc(4rem + (6 - 4) * ((100vw - 200px) / (992 - 200))); } }
span.vertical-txt { display: inline-block; }
.navigation-menu .mobile-header .logo img { max-width: 210px; height: auto; }
.footer .footer-heading { margin-bottom: 1.6rem; font-size: 1.3rem; letter-spacing: .1rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.icon-box .icon-box-title { font-size: 2rem; line-height: 3.4rem; margin: 4.5rem 0 2.9rem 0; font-weight: 500; }
.sidebar .category h3 { font-size: 1.6rem; font-weight: 500; line-height: 4rem; text-transform: uppercase; color: #225986; margin-bottom: 2.3rem; }
.cta-section-content .cta-kicker { font-size: 2rem; line-height: 4.4rem; margin-bottom: 1rem; }

/* SVG icons: scale crisply inside the theme's icon circles */
.icon-circle img[src$=".svg"] { width: 9rem; height: 9rem; }
.icon-circle-lg img[src$=".svg"] { width: 10rem; height: 10rem; }
.hero-pagination-bullet .icon-circle img[src$=".svg"] { width: 11rem; height: 11rem; }

/* Hero + page header: soft blue panel fading into the photo so headlines sit in calm space */
.hero-slide-inner { position: relative; }
.hero-slide-inner::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(234,241,247,.97) 0%, rgba(234,241,247,.92) 45%, rgba(234,241,247,.72) 72%, rgba(234,241,247,.45) 100%);
    pointer-events: none;
}
.hero-slide-inner > * { position: relative; z-index: 1; }
.page-header-wrapper { position: relative; }
.page-header-wrapper::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(234,241,247,.96) 0%, rgba(234,241,247,.85) 50%, rgba(234,241,247,.5) 100%);
    pointer-events: none;
}
.page-header-wrapper > * { position: relative; z-index: 1; }
@media (max-width: 991px) {
    .hero-slide-inner::before, .page-header-wrapper::before { background: rgba(234,241,247,.9); }
}

/* Hero fills the first screen (below the top bar) on every screen size; text is centred in it,
   nudged up so the service cards can overlap the bottom edge without covering the buttons. */
@media (min-width: 992px) {
    .hero-slider-container .swiper-slide,
    .hero-slide-inner { height: calc(100vh - 7rem); min-height: 62rem; }
    .hero-slide-inner { align-items: center; }
    .hero-slide-content { margin: 4rem auto 14rem auto; }
}
.testimonial-3 .testimonial-wrapper::after { background-position: top center; }
