/* Default (classic) palette. Pages use var(--accent) so every theme recolors them. */
:root { --heading-font:"Lato",sans-serif; --body-font:"Roboto",sans-serif; --accent:#3F8391; --accent-dark:#2f6a76; --accent-ink:#ffffff; --accent-soft:#e8f1f3; }

/* ===== Theme engine (switchable from /manage/) ===== */
body[class*="theme-"] { font-family: var(--body-font, inherit); }
body[class*="theme-"] h1, body[class*="theme-"] h2, body[class*="theme-"] h3,
body[class*="theme-"] h4, body[class*="theme-"] h5, body[class*="theme-"] .hero-caption h1 { font-family: var(--heading-font, inherit); }
body[class*="theme-"] .btn, body[class*="theme-"] .btn2, body[class*="theme-"] .btn_1,
body[class*="theme-"] .btn_2, body[class*="theme-"] .hero-btn, body[class*="theme-"] .header-btn2,
body[class*="theme-"] .submit-btn, body[class*="theme-"] .boxed-btn, body[class*="theme-"] .browse-btn,
body[class*="theme-"] .gt-submit, body[class*="theme-"] .genric-btn, body[class*="theme-"] button.submit-btn {
    background: var(--accent) !important; color: var(--accent-ink) !important; border-color: var(--accent) !important;
}
body[class*="theme-"] a:hover, body[class*="theme-"] .blog-card__title a:hover,
body[class*="theme-"] .main-menu ul li a:hover { color: var(--accent) !important; }
body[class*="theme-"] .header-top { background: var(--header-bg) !important; }
body[class*="theme-"] .header-top, body[class*="theme-"] .header-top a,
body[class*="theme-"] .header-info-left ul li, body[class*="theme-"] .header-info-right ul li a { color: var(--header-ink) !important; }
body[class*="theme-"] .gt-info__icon, body[class*="theme-"] .gt-form .gt-submit,
body[class*="theme-"] .services-ion, body[class*="theme-"] .comment__avatar { background: var(--accent) !important; }
body[class*="theme-"] .section-tittle h2:after, body[class*="theme-"] .blog-side h4 { border-color: var(--accent) !important; }
body[class*="theme-"] .blog-side h4 { border-bottom-color: var(--accent) !important; }
body[class*="theme-"] .gt-info__item h3 a, body[class*="theme-"] .blog-readmore,
body[class*="theme-"] .blog-card__meta a { color: var(--accent) !important; }
body[class*="theme-"] .slider-area .hero-overly:before,
body[class*="theme-"] .slider-height2:before { background: var(--hero-overlay, rgba(0,0,0,.45)) !important; }

body.theme-heritage  { --accent:#c8a24b; --accent-ink:#16294a; --header-bg:#0f1e38; --header-ink:#cdd6e6; --hero-overlay:rgba(15,30,56,.62); }
body.theme-minimal   { --accent:#111111; --accent-ink:#ffffff; --header-bg:#ffffff; --header-ink:#666666; --hero-overlay:rgba(20,20,20,.35); }
body.theme-editorial { --accent:#d8a13a; --accent-ink:#14181c; --header-bg:#14181c; --header-ink:#9aa2ae; --hero-overlay:rgba(20,24,28,.7); }
body.theme-corporate { --accent:#0b5fa5; --accent-ink:#ffffff; --header-bg:#0d2740; --header-ink:#c5d3e2; --hero-overlay:rgba(13,39,64,.6); }
body.theme-boutique  { --accent:#6d2233; --accent-ink:#f7f1e8; --header-bg:#3a2b2e; --header-ink:#e6dccb; --hero-overlay:rgba(58,43,46,.55); }

body.theme-heritage  { --accent-dark:#a8862f; --accent-soft:#f7f1e1; }
body.theme-minimal   { --accent-dark:#000000; --accent-soft:#f1f1f1; }
body.theme-editorial { --accent-dark:#b8862a; --accent-soft:#f8f0e0; }
body.theme-corporate { --accent-dark:#084a80; --accent-soft:#eaf2fb; }
body.theme-boutique  { --accent-dark:#4f1825; --accent-soft:#f6ecee; }

/* Smaller hero images on phones/tablets */
@media (max-width: 991px) {
    .slider-bg1 { background-image: url("../img/hero/h1_hero1-960.ad04906c97c1.webp"); }
    .slider-bg6 { background-image: url("../img/hero/h2_hero3-960.4d58b20072a7.webp"); }
}

/* Inner-page heroes grow with their text instead of clipping it (short texts keep the original height). */
.slider-height2 { height: auto; min-height: 400px; padding: 60px 0; }
@media (min-width: 576px) and (max-width: 767px) { .slider-height2 { min-height: 350px; } }
@media (max-width: 575px) { .slider-height2 { min-height: 300px; padding: 40px 0; } }

/* Long hero text (About page): wider column, smaller type, spaced paragraphs. */
.slider-area .hero-caption.hero-caption--long { padding-top: 0; }
.slider-area .hero-caption.hero-caption--long h2 { font-size: 46px; margin-bottom: 18px; }
.slider-area .hero-caption.hero-caption--long p { font-size: 16px; line-height: 1.7; margin-bottom: 14px; max-width: 900px; text-shadow: 0 1px 3px rgba(0,0,0,.55); }
.slider-area .hero-caption.hero-caption--long p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
    .slider-area .hero-caption.hero-caption--long h2 { font-size: 34px; }
    .slider-area .hero-caption.hero-caption--long p { font-size: 15px; line-height: 1.65; }
}

/* "Why choose us" blocks: 4 per row on desktop, styled like the practice-area cards. */
.why-cards { margin-bottom: 38px; row-gap: 30px; }
.why-card {
    height: 100%; background: #fff; border: 1px solid #DDE7EA; border-top: 3px solid var(--accent);
    padding: 30px 24px; text-align: center; transition: box-shadow .4s ease-out, transform .4s ease-out;
}
.why-card:hover { box-shadow: 0 15px 30px rgba(63,131,145,.08); transform: translateY(-4px); }
.why-card__title { font-size: 20px; line-height: 1.4; color: #042E3C; margin-bottom: 14px; }
.why-card__text { font-size: 15px; line-height: 1.7; color: #4F6168; font-weight: 300; margin: 0; }

/* ===== Testimonials: centred quote card, no background photo ===== */
.testimonial-area--elegant { background: #F3F6F7; }
.testimonial-area--elegant .tst-head h2 { font-size: 40px; color: #042E3C; margin-bottom: 14px; }
.testimonial-area--elegant .tst-head h2::after {
    content: ""; display: block; width: 56px; height: 2px; margin: 18px auto 0; background: var(--accent);
}
.testimonial-area--elegant .h1-testimonial-active { margin-top: 36px; }
.testimonial-area--elegant .single-testimonial { padding: 6px 0 34px; } /* room for the card shadow inside the slider */
.testimonial-area--elegant .testimonial-caption {
    position: relative; margin: 0 12px; padding: 54px 60px 40px; text-align: center;
    background: #fff; border: 1px solid #DDE7EA; box-shadow: 0 18px 40px rgba(4,46,60,.06);
}
.testimonial-area--elegant .tst-mark { fill: var(--accent); opacity: .9; margin-bottom: 22px; }
.testimonial-area--elegant blockquote { margin: 0; padding: 0; border: 0; }
.testimonial-area--elegant .testimonial-caption .testimonial-top-cap p {
    font-family: var(--heading-font, "Lato", sans-serif); font-style: italic; font-weight: 400;
    font-size: 21px; line-height: 1.7; color: #3d2a2a; margin: 0 0 32px;
}
.testimonial-area--elegant .testimonial-founder { gap: 16px; padding-top: 26px; border-top: 1px solid #E5EDEF; }
.testimonial-area--elegant .founder-img img,
.testimonial-area--elegant .tst-initials {
    width: 64px; height: 64px; border-radius: 50%; object-fit: cover; display: block;
    box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--accent);
}
.testimonial-area--elegant .tst-initials {
    display: flex; align-items: center; justify-content: center;
    background: var(--accent); color: var(--accent-ink); font-weight: 700; font-size: 20px; letter-spacing: 1px;
}
.testimonial-area--elegant .testimonial-caption .testimonial-founder .founder-text { margin-left: 0; text-align: left; }
.testimonial-area--elegant .testimonial-caption .testimonial-founder .founder-text span {
    display: block; color: #042E3C; font-size: 17px; font-weight: 700; letter-spacing: .3px;
}
.testimonial-area--elegant .testimonial-caption .testimonial-founder .founder-text p {
    color: #6f8288; font-size: 14px; margin: 2px 0 0; line-height: 1.4;
}
/* Slider dots */
.testimonial-area--elegant .slick-dots { display: flex; justify-content: center; gap: 10px; list-style: none; padding: 0; margin: 30px 0 0; }
.testimonial-area--elegant .slick-dots button {
    width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; font-size: 0; cursor: pointer;
    background: #c8d7db; transition: background .3s, transform .3s;
}
.testimonial-area--elegant .slick-dots .slick-active button { background: var(--accent); transform: scale(1.25); }
@media (max-width: 767px) {
    .testimonial-area--elegant .tst-head h2 { font-size: 30px; }
    .testimonial-area--elegant .testimonial-caption { margin: 0 4px; padding: 40px 24px 30px; }
    .testimonial-area--elegant .testimonial-caption .testimonial-top-cap p { font-size: 17px; }
}

/* Brand logos: keep uploaded logos of any size consistent and vertically centred. */
.brand-active .slick-track { display: flex; align-items: center; }
.brand-active .single-brand { display: flex !important; justify-content: center; align-items: center; height: 80px; padding: 0 15px; }
.brand-active .single-brand img { max-width: 100%; max-height: 70px; width: auto; height: auto; }

/* Call-to-action photo: uploaded photos of any shape show as a neat circle. */
.want-wrapper .wants-wrapper blockquote img { width: 104px; height: 104px; border-radius: 50%; object-fit: cover; }

/* Hero images uploaded in /manage/hero/ (set as CSS variables on the hero element). */
[style*="--hero-img"] { background-image: var(--hero-img) !important; background-position: var(--hero-pos, center) !important; background-size: cover !important; }
@media (max-width: 991px) { [style*="--hero-img"] { background-image: var(--hero-img-sm) !important; } }

/* Language dropdown on the right of the header. */
.lang-dd { position: relative; display: inline-block; vertical-align: middle; margin-right: 22px; }
.lang-dd summary {
    list-style: none; cursor: pointer; user-select: none; display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 12px; border: 1px solid #DDE7EA; border-radius: 4px; background: #fff;
    font-size: 14px; font-weight: 700; letter-spacing: .5px; color: #042E3C; line-height: 1; transition: border-color .2s, color .2s;
}
.lang-dd summary::-webkit-details-marker { display: none; }
.lang-dd summary:hover, .lang-dd[open] summary { border-color: var(--accent); color: var(--accent); }
.lang-dd__chev { width: 12px; height: 12px; transition: transform .2s; }
.lang-dd[open] .lang-dd__chev { transform: rotate(180deg); }
.lang-dd__menu {
    position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; min-width: 180px; margin: 0; padding: 6px 0;
    list-style: none; background: #fff; border: 1px solid #DDE7EA; border-radius: 6px; box-shadow: 0 14px 30px rgba(4,46,60,.12);
}
.lang-dd__menu a { display: flex; align-items: center; gap: 10px; padding: 10px 16px; font-size: 15px; color: #042E3C; }
.lang-dd__menu a:hover { background: #F3F6F7; color: var(--accent); }
.lang-dd__menu a.is-active { color: var(--accent); font-weight: 600; }
.lang-dd__menu a.is-active::after { content: "✓"; margin-left: auto; }
.lang-dd__code { display: inline-block; width: 26px; font-size: 12px; font-weight: 700; color: #6f8288; }

/* Phone menu copy of the switcher (the desktop menu hides it; the dropdown above is used there). */
.main-menu ul li.lang-switch { display: none !important; }
.slicknav_nav li.lang-switch { display: flex; gap: 8px; padding: 8px 15px; }
.slicknav_nav li.lang-switch a { padding: 4px 10px !important; border: 1px solid #ddd; border-radius: 4px; margin: 0 !important; }
.slicknav_nav li.lang-switch a.is-active { border-color: var(--accent); color: var(--accent) !important; }

/* Inner-page hero titles are <h1> (one main heading per page for search engines); same look as the old <h2>. */
.slider-area .hero-caption.hero-caption2 h1 { color: #fff; font-size: 70px; display: block; font-weight: 400; line-height: 1.4; margin-bottom: 6px; }
@media only screen and (min-width: 768px) and (max-width: 991px) { .slider-area .hero-caption.hero-caption2 h1 { font-size: 50px; } }
@media only screen and (min-width: 576px) and (max-width: 767px) { .slider-area .hero-caption.hero-caption2 h1 { margin-bottom: 20px; } }
@media (max-width: 575px) { .slider-area .hero-caption.hero-caption2 h1 { font-size: 40px; } }
.slider-area .hero-caption.hero-caption--long h1 { font-size: 46px; margin-bottom: 18px; }
@media (max-width: 767px) { .slider-area .hero-caption.hero-caption--long h1 { font-size: 34px; } }
.about-right-img img { height: auto; } /* uploaded About photos keep their own proportions */

/* 404 page */
.nf-area { padding: 110px 0 100px; background: #F3F6F7; }
.nf-box { max-width: 620px; margin: 0 auto; text-align: center; }
.nf-code { display: block; font-size: 120px; line-height: 1; font-weight: 900; color: var(--accent); opacity: .15; letter-spacing: 4px; }
.nf-box h1 { font-size: 40px; color: #042E3C; margin: -30px 0 14px; }
.nf-actions { display: flex; gap: 24px; justify-content: center; align-items: center; flex-wrap: wrap; margin: 30px 0; }
.nf-link { color: var(--accent); font-weight: 600; }
.nf-links { display: flex; gap: 10px 22px; justify-content: center; flex-wrap: wrap; padding-top: 24px; border-top: 1px solid #DDE7EA; }
.nf-links a { color: #4F6168; }
.nf-links a:hover { color: var(--accent); }

/* ===== Practice area detail page ===== */
.pa-crumbs { font-size: 14px; color: rgba(255, 255, 255, .75); margin-bottom: 10px; }
.pa-crumbs a { color: rgba(255, 255, 255, .85); }
.pa-crumbs a:hover { color: #fff; text-decoration: underline; }
.pa-page { padding: 80px 0 60px; }
.pa-preview-note { background: #fff6e0; border: 1px solid #f1d58a; color: #6b4e00; padding: 12px 18px; border-radius: 6px; margin-bottom: 30px; font-size: 15px; }
.pa-preview-note a { color: #6b4e00; text-decoration: underline; }
.pa-az-only { display: inline-block; font-size: 13px; color: #6f8288; background: #F3F6F7; border-radius: 4px; padding: 4px 12px; margin-bottom: 20px; }
.pa-body { color: #33464d; font-size: 17px; line-height: 1.85; }
.pa-body h2 { font-size: 28px; color: #042E3C; margin: 34px 0 14px; }
.pa-body h3 { font-size: 22px; color: #042E3C; margin: 26px 0 10px; }
.pa-body p { font-size: 17px; line-height: 1.85; color: #33464d; margin-bottom: 16px; }
.pa-body ul, .pa-body ol { margin: 0 0 18px; padding-left: 22px; }
.pa-body li { margin-bottom: 8px; color: #33464d; }
.pa-body ul li::marker { color: var(--accent); }
.pa-body blockquote { border-left: 3px solid var(--accent); margin: 20px 0; padding: 6px 20px; background: #F3F6F7; color: #4F6168; }
.pa-body img { max-width: 100%; height: auto; border-radius: 6px; }
.pa-body a { color: var(--accent); text-decoration: underline; }

.pa-faq, .pa-section { margin-top: 50px; }
.pa-faq h2, .pa-section h2 { font-size: 28px; color: #042E3C; margin-bottom: 20px; }
.pa-faq__item { border: 1px solid #DDE7EA; background: #fff; margin-bottom: 10px; transition: border-color .2s; }
.pa-faq__item[open] { border-color: color-mix(in srgb, var(--accent) 40%, #DDE7EA); }
.pa-faq__item summary { cursor: pointer; list-style: none; padding: 18px 54px 18px 22px; position: relative; font-weight: 600; color: #042E3C; font-size: 17px; line-height: 1.5; }
.pa-faq__item summary::-webkit-details-marker { display: none; }
.pa-faq__item summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 300; color: var(--accent); }
.pa-faq__item[open] summary::after { content: "−"; }
.pa-faq__answer { padding: 0 22px 8px; }
.pa-faq__answer p { font-size: 16px; line-height: 1.75; color: #4F6168; }

.pa-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.pa-person { display: flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid #DDE7EA; background: #fff; transition: box-shadow .3s, border-color .3s; }
.pa-person:hover { border-color: transparent; box-shadow: 0 12px 26px rgba(4,46,60,.08); }
.pa-person img, .pa-person__initials { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex: 0 0 64px; }
.pa-person__initials { display: flex; align-items: center; justify-content: center; background: var(--accent); color: var(--accent-ink); font-weight: 700; }
.pa-person strong { display: block; color: #042E3C; font-size: 16px; }
.pa-person small { display: block; color: var(--accent); font-size: 13px; margin-top: 2px; }

.pa-posts { list-style: none; padding: 0; margin: 0; border-top: 1px solid #DDE7EA; }
.pa-posts li { padding: 16px 0; border-bottom: 1px solid #DDE7EA; }
.pa-posts a { display: block; font-size: 18px; color: #042E3C; font-weight: 600; line-height: 1.45; }
.pa-posts a:hover { color: var(--accent); }
.pa-posts small { display: block; color: #9a8a8a; font-size: 13px; margin-top: 4px; }

.pa-side { border: 1px solid #DDE7EA; background: #fff; padding: 26px; margin-bottom: 30px; }
.pa-side h3 { font-size: 20px; color: #042E3C; margin-bottom: 12px; }
.pa-side--cta { border-top: 3px solid var(--accent); background: #F3F6F7; }
.pa-side--cta p { font-size: 15px; color: #4F6168; }
.pa-side .pa-side__btn { padding: 18px 26px; display: inline-block; margin: 6px 0 14px; }
.pa-side__phone { display: block; font-weight: 700; color: var(--accent); font-size: 17px; }
.pa-others { list-style: none; padding: 0; margin: 0; }
.pa-others li + li { border-top: 1px solid #E5EDEF; }
.pa-others a { display: flex; align-items: center; gap: 12px; padding: 10px 0; color: #042E3C; font-size: 15px; }
.pa-others a:hover { color: var(--accent); }
.pa-others img { flex: 0 0 34px; }
@media (min-width: 992px) { .pa-page aside { position: sticky; top: 110px; align-self: flex-start; } }

/* "Learn more" link on practice area cards */
.single-services1 .pa-more { display: inline-block; margin: -10px 0 26px; font-size: 14px; font-weight: 600; color: var(--accent); letter-spacing: .3px; }
.single-services1 .pa-more:hover { text-decoration: underline; }
/* Related practice areas under an article */
.post-areas { margin-top: 26px; padding-top: 18px; border-top: 1px solid #f2f2f2; font-size: 14px; color: #6f8288; }
.post-areas a { display: inline-block; margin: 4px 6px 0 0; padding: 4px 12px; border: 1px solid #DDE7EA; border-radius: 20px; color: #042E3C; }
.post-areas a:hover { border-color: var(--accent); color: var(--accent); }
