/* Public website only: no dashboard selectors, dependencies or global JS. */
/* Website enquiries remain isolated from all Filament/CRM styles. */
.enquiry-form { margin: 2rem 0; padding: 2rem; background: white; border: 1px solid #deded3; border-radius: 6px; }
.enquiry-form fieldset { border: 0; padding: 0; min-width: 0; }
.enquiry-form legend { font-size: 1.4rem; font-weight: bold; margin-bottom: 1.5rem; }
.enquiry-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.4rem; }
.enquiry-wide { grid-column: 1 / -1; }
.enquiry-fields label { display: block; margin-bottom: .5rem; font-weight: bold; }
.enquiry-fields input,.enquiry-fields select,.enquiry-fields textarea { width: 100%; padding: .8rem; font: inherit; border: 1px solid #687d74; border-radius: 4px; background: #fff; color: #0b1917; }
.enquiry-form input:focus-visible,.enquiry-form select:focus-visible,.enquiry-form textarea:focus-visible,.enquiry-form button:focus-visible { outline: 3px solid #c49e50; outline-offset: 3px; }
.enquiry-fields small { display: block; margin-top: .5rem; line-height: 1.5; }
.enquiry-consent { display: flex; align-items: start; gap: .8rem; margin: 1.5rem 0; line-height: 1.7; }
.enquiry-consent input { width: 1.2rem; height: 1.2rem; flex-shrink: 0; }
.enquiry-privacy { margin-top: 1.5rem; }
.enquiry-form button { border: 0; cursor: pointer; }
.enquiry-form button:disabled { cursor: default; opacity: .65; }
.enquiry-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.enquiry-success,.enquiry-errors,.preview-form-notice { padding: 1.2rem; margin-block: 1rem; border: 1px solid #3b675c; background: #edf0e9; }
.enquiry-errors,.field-error { color: #922323; }
.field-error { display: block; margin-top: .4rem; }
@media(max-width:600px) { .enquiry-fields { grid-template-columns: 1fr; } .enquiry-form { padding: 1.2rem; } }
:root {
    --ink:#0b1917;
    --green:#3b675c;
    --cream:#fbf5ef;
    --sand:#bea68f;
    --line:#deded3;
    --white:#fff;
    color:var(--ink);
    background:var(--cream);
    font-family:Arial,Tahoma,sans-serif;
    font-synthesis:none;
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
}
a {
    color:inherit;
}
img {
    display:block;
    max-width:100%;
    height:auto;
}
button,input,summary {
    font:inherit;
}
p {
    overflow-wrap:anywhere;
    line-height:1.8;
    white-space:pre-line;
}
h1,h2,h3,p {
    margin-top:0;
}
h1,h2,h3 {
    text-wrap:balance;
    overflow-wrap:anywhere;
}
h1 {
    font-size:clamp(2.8rem,7vw,6.8rem);
    line-height:1.06;
    letter-spacing:-.045em;
    max-width:1000px;
    margin-bottom:1.8rem;
}
h2 {
    font-size:clamp(2rem,4vw,3.4rem);
    line-height:1.2;
    letter-spacing:-.03em;
    margin-bottom:1.4rem;
}
h3 {
    font-size:1.3rem;
    line-height:1.4;
}
a:focus-visible,summary:focus-visible {
    outline:3px solid #c49e50;
    outline-offset:5px;
}
section {
    scroll-margin-top:2rem;
}
.skip-link {
    position:fixed;
    top:-100px;
    inset-inline-start:1rem;
    z-index:20;
    padding:1rem;
    background:white;
}
.skip-link:focus {
    top:1rem;
}
.preview-bar {
    padding:1rem 4%;
    background:#f0dfac;
    display:flex;
    flex-wrap:wrap;
    gap:.7rem;
    font-size:.85rem;
}
.preview-bar a {
    font-weight:bold;
}
.site-header {
    padding:1.4rem 5%;
    display:flex;
    align-items:center;
    gap:2rem;
    border-bottom:1px solid var(--line);
    min-height:105px;
    position:relative;
}
.brand {
    max-width:220px;
    margin-inline-end:auto;
    text-decoration:none;
}
.brand img {
    width:220px;
}
.desktop-navigation {
    display:flex;
    gap:.25rem;
    align-items:center;
    font-size:.9rem;
}
.desktop-navigation a,.mobile-navigation nav a {
    position:relative;
    padding:.75rem .85rem;
    border-radius:10px;
    text-decoration:none;
    color:var(--nav-color, var(--ink));
    background:var(--nav-background, transparent);
}
.desktop-navigation a::after {
    content:"";
    position:absolute;
    inset-inline:.85rem;
    bottom:.35rem;
    height:2px;
    border-radius:2px;
    background:var(--green);
    opacity:var(--nav-accent, 0);
    transform:scaleX(var(--nav-accent, 0));
    transform-origin:left;
    pointer-events:none;
}
[dir=rtl] .desktop-navigation a::after { transform-origin:right; }
.desktop-navigation a:focus-visible,.mobile-navigation nav a:focus-visible {
    --nav-color:#245346;
    --nav-background:#e7eee8;
    --nav-accent:1;
}
.language-link {
    white-space:nowrap;
    text-decoration:none;
    border:1px solid var(--line);
    border-radius:99px;
    padding:.7rem 1rem;
}
.mobile-navigation {
    display:none;
}
.web-section {
    padding:6rem 5%;
    border-bottom:1px solid var(--line);
}
.section-inner {
    max-width:1240px;
    margin:auto;
    position:relative;
}
.section-heading {
    max-width:780px;
    margin-bottom:2.8rem;
}
.section-body {
    font-size:1.1rem;
    max-width:780px;
    color:#4b5e57;
}
.section-hero {
    background:var(--ink);
    color:var(--cream);
    padding-block:7rem;
    overflow:hidden;
    position:relative;
}
.section-hero .section-body {
    color:#d7e0d7;
    max-width:670px;
    font-size:1.2rem;
}
.hero-copy {
    position:relative;
    z-index:1;
}
.hero-pattern {
    position:absolute;
    inset-inline-end:-17%;
    top:-80px;
    width:800px;
    opacity:.09;
    pointer-events:none;
}
.eyebrow {
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.13em;
    font-weight:700;
    color:var(--green);
}
.section-hero .eyebrow {
    color:var(--sand);
}
.button-row {
    display:flex;
    flex-wrap:wrap;
    gap:1.4rem;
    align-items:center;
    margin-top:1.4rem;
}
.button-row:empty {
    display:none;
}
.site-button {
    padding:1rem 1.3rem;
    background:var(--green);
    color:white;
    display:inline-flex;
    gap:2rem;
    border-radius:4px;
    text-decoration:none;
    font-weight:bold;
    font-size:.95rem;
}
.section-hero .site-button {
    background:var(--cream);
    color:var(--ink);
}
.text-link {
    text-underline-offset:.3rem;
    font-weight:bold;
}
.content-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.4rem;
}
.content-card {
    padding:2rem;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--white);
    min-width:0;
}
.content-card p {
    color:#4b5e57;
    font-size:.98rem;
}
.content-card img {
    width:100%;
    max-height:220px;
    object-fit:contain;
    margin-bottom:1.5rem;
}
.section-insurance_solutions {
    background:#edf0e9;
}
.section-insurance_solutions .content-card {
    border-top:4px solid var(--green);
}
.section-services .content-grid {
    counter-reset:service;
}
.section-services .content-card:before {
    counter-increment:service;
    content:counter(service,decimal-leading-zero);
    font-size:2rem;
    color:var(--sand);
    display:block;
    margin-bottom:1.3rem;
}
.section-about .section-inner {
    display:grid;
    grid-template-columns:1.3fr .7fr;
    gap:4rem;
    align-items:center;
}
.section-about .section-heading {
    margin:0;
}
.section-about .section-image {
    grid-column:2;
    grid-row:1 / span 3;
    width:100%;
    max-height:540px;
    object-fit:cover;
    border-radius:6px;
}
.section-about .content-grid:empty {
    display:none;
}
.section-vision_values {
    background:var(--green);
    color:white;
}
.section-vision_values .section-body {
    color:#e2e8e0;
}
.section-vision_values .content-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.section-vision_values .content-card {
    background:transparent;
    color:white;
    border-color:#88a296;
}
.section-vision_values .content-card p {
    color:#e2e8e0;
}
.logo-grid {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:1rem;
}
.logo-grid .content-card {
    padding:1.4rem;
    text-align:center;
}
.logo-grid img {
    height:90px;
    object-fit:contain;
}
.logo-grid h3 {
    font-size:.9rem;
    margin:0;
}
.draft-badge {
    display:inline-block;
    width:fit-content;
    background:#f0dfac;
    color:#453a19;
    border:1px dashed #9b813e;
    font-size:.7rem;
    padding:.3rem .5rem;
    margin-bottom:.7rem;
    border-radius:3px;
}
.faq-list {
    max-width:900px;
    display:grid;
    gap:.85rem;
}
.faq-list details {
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--white);
    box-shadow:0 3px 12px #173f3406;
}
.faq-list details[open],.faq-list details:focus-within {
    border-color:#73988a;
    background:#f6f9f5;
}
.faq-list summary {
    position:relative;
    display:block;
    list-style:none;
    padding-block:1.25rem;
    padding-inline:1.25rem 3.5rem;
    border-radius:12px;
    overflow-wrap:anywhere;
}
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::marker { content:""; }
.faq-list summary::before,.faq-list summary::after {
    content:"";
    position:absolute;
    inset-inline-end:1.25rem;
    top:2rem;
    width:14px;
    height:2px;
    margin-top:-1px;
    border-radius:2px;
    background:var(--green);
    pointer-events:none;
}
.faq-list summary::after { transform:rotate(90deg); }
.faq-list details[open] summary::after { transform:rotate(0); }
.faq-list details[open] summary { color:#245346; }
@media(hover:hover) and (pointer:fine) {
    .faq-list summary:hover { color:#245346; background:#e7eee8; }
}
@media(prefers-reduced-motion:no-preference) {
    .faq-list details { transition:border-color 180ms ease,background-color 180ms ease; }
    .faq-list summary { transition:color 180ms ease,background-color 180ms ease; }
    .faq-list summary::after { transition:transform 180ms ease; }
}
summary {
    cursor:pointer;
    line-height:1.5;
    font-weight:bold;
}
.faq-list p {
    margin:0;
    padding-block:0 1.25rem;
    padding-inline:1.25rem 3.5rem;
    color:#4b5e57;
}
.section-contact {
    background:#e2e8df;
}
.contact-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem;
}
.contact-card {
    padding:1.6rem;
    background:white;
    border:1px solid var(--line);
    text-decoration:none;
    overflow-wrap:anywhere;
    border-radius:12px;
}
.contact-card span {
    display:block;
    color:var(--green);
    margin-bottom:.6rem;
}
.contact-card b {
    display:inline-block;
    font-size:1.3rem;
}
.site-footer {
    background:var(--ink);
    color:var(--cream);
    padding:4rem 5% 1.5rem;
}
.footer-top {
    display:flex;
    justify-content:space-between;
    gap:3rem;
    max-width:1240px;
    margin:auto;
}
.footer-logo {
    width:250px;
    margin-bottom:1.6rem;
}
.site-footer h2 {
    font-size:1rem;
    font-weight:400;
}
.footer-links {
    display:flex;
    flex-wrap:wrap;
    gap:1.4rem;
    align-content:start;
}
.footer-links a {
    font-size:.9rem;
}
.footer-bottom {
    max-width:1240px;
    margin:3rem auto 0;
    padding-top:1.3rem;
    border-top:1px solid #394b43;
    display:flex;
    justify-content:space-between;
    gap:1rem;
    font-size:.8rem;
}
.privacy {
    max-width:1240px;
    margin:2rem auto;
}
.privacy p {
    max-width:900px;
}
.empty-preview,.page-title {
    padding:4rem 5%;
}
.page-title {
    font-size:2rem;
}
[dir=rtl] {
    font-family:Tahoma,Arial,sans-serif;
}
[dir=rtl] h1,[dir=rtl] h2,[dir=rtl] .eyebrow {
    letter-spacing:0;
}
[dir=rtl] h1 {
    line-height:1.3;
}
@media(max-width:1000px) {
    [dir=rtl] .site-header {
        flex-direction:row-reverse;
    }
    .site-header .brand {
        margin-inline:0;
        margin-right:auto;
    }
    .site-header .language-link {
        order:1;
    }
    .desktop-navigation {
        display:none;
    }
    .mobile-navigation {
        display:block;
        order:2;
    }
    .mobile-navigation nav {
        position:absolute;
        top:100%;
        inset-inline:0;
        z-index:10;
        background:var(--cream);
        padding:1.5rem 5%;
        box-shadow:0 8px 15px #0002;
        display:grid;
        gap:1.3rem;
    }
    .mobile-navigation summary {
        list-style:none;
    }
    .mobile-navigation summary::-webkit-details-marker {
        display:none;
    }
    .logo-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .content-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .site-header {
        gap:1rem;
    }
    .section-about .section-inner {
        gap:2rem;
    }
}
@media(max-width:600px) {
    .site-header {
        padding:1rem 5%;
        gap:.7rem;
        min-height:85px;
    }
    .brand {
        max-width:145px;
    }
    .language-link {
        padding:.5rem;
        font-size:.8rem;
    }
    .mobile-navigation summary {
        font-size:.8rem;
    }
    .web-section {
        padding:3.5rem 5%;
    }
    .section-hero {
        padding-block:4rem;
    }
    .content-grid,.section-vision_values .content-grid,.contact-grid {
        grid-template-columns:1fr;
    }
    .logo-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .content-card {
        padding:1.5rem;
    }
    .section-about .section-inner {
        display:block;
    }
    .section-about .section-image {
        max-height:440px;
        margin-top:2rem;
    }
    .footer-top {
        display:block;
    }
    .footer-links {
        margin-top:2rem;
    }
    .hero-pattern {
        width:650px;
        max-width:none;
        inset-inline-end:-300px;
    }
    .section-heading {
        margin-bottom:1.8rem;
    }
    .footer-bottom {
        flex-wrap:wrap;
    }
}
@media(prefers-reduced-motion:no-preference) {
    html {
        scroll-behavior:smooth;
    }
}
.section-about .section-inner:not(:has(.section-image)) {
    display:block;
}
/* Strong focus rings on both cream and dark sections; comfortable touch targets. */
a:focus-visible, summary:focus-visible, .enquiry-form :is(input,select,textarea,button):focus-visible {
    outline:3px solid #245346;
    outline-offset:3px;
    box-shadow:0 0 0 3px white;
}
.language-link,.mobile-navigation summary,.mobile-navigation nav a {
    min-height:44px;
    display:inline-flex;
    align-items:center;
}
.enquiry-fields input,.enquiry-fields select,.enquiry-fields textarea { font-size:1rem; }
.section-services .content-card:before { color:var(--green); }
[dir=rtl] h2,[dir=rtl] h3 { line-height:1.5; }
@media(forced-colors:active) {
    a:focus-visible,summary:focus-visible,.enquiry-form :focus-visible { outline-color:Highlight; }
}

/* Website-only interaction feedback, with the same treatment for keyboard users. */
.content-card,.contact-card {
    --card-hover-surface:#f6f9f5;
    --card-hover-border:#73988a;
    --card-hover-shadow:0 14px 30px -12px #173f3430;
}
.section-vision_values .content-card {
    --card-hover-surface:#456f64;
    --card-hover-border:#c3d5ca;
    --card-hover-shadow:0 14px 30px -12px #071e2450;
}
.content-card:focus-within,.contact-card:focus-visible {
    background:var(--card-hover-surface);
    border-color:var(--card-hover-border);
    box-shadow:var(--card-hover-shadow);
}
.language-link:focus-visible {
    background:var(--green);
    border-color:var(--green);
    color:white;
}
.mobile-navigation summary { gap:.35rem; border-radius:8px; }
.mobile-navigation[open] summary { color:#245346; background:#e7eee8; }

@media(hover:hover) and (pointer:fine) {
    .desktop-navigation a:hover,.mobile-navigation nav a:hover {
        --nav-color:#245346;
        --nav-background:#e7eee8;
        --nav-accent:1;
    }
    .language-link:hover { background:var(--green); border-color:var(--green); color:white; }
    .mobile-navigation summary:hover { color:#245346; background:#e7eee8; }
    .content-card:hover,.contact-card:hover {
        background:var(--card-hover-surface);
        border-color:var(--card-hover-border);
        box-shadow:var(--card-hover-shadow);
    }
}
@media(prefers-reduced-motion:no-preference) {
    .desktop-navigation a,.mobile-navigation nav a,.language-link,.mobile-navigation summary {
        transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease;
    }
    .desktop-navigation a::after { transition:transform 180ms ease,opacity 180ms ease; }
    .content-card,.contact-card {
        transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease,background-color 220ms ease;
    }
    @media(hover:hover) and (pointer:fine) {
        .content-card:hover,.contact-card:hover { transform:translateY(-5px); }
    }
}
