/* ==========================================================
   SW CONTACT US
   ========================================================== */

:root{

    --sw-green:#6AA744;
    --sw-green-dark:#568936;
    --sw-green-light:#EDF6E8;

    --sw-text:#17221B;
    --sw-muted:#5C6B62;

    --sw-border:#E3E7E5;

    --sw-white:#ffffff;

    --sw-bg:#F8FAF8;

    --sw-radius-sm:12px;
    --sw-radius:18px;
    --sw-radius-lg:28px;

    --sw-shadow-sm:0 8px 20px rgba(0,0,0,.06);

    --sw-shadow:
        0 18px 45px rgba(0,0,0,.08);

    --sw-shadow-lg:
        0 30px 70px rgba(0,0,0,.12);

    --sw-transition:.30s ease;

}

.sw-contact-page{

    background:#fff;

    color:var(--sw-text);

    overflow:hidden;

}

.sw-contact-container{

    width:min(1400px,92%);

    margin:auto;

}

.sw-contact-page section{

    position:relative;

    padding:110px 0;

}

.sw-contact-page h1,
.sw-contact-page h2,
.sw-contact-page h3,
.sw-contact-page h4{

    margin:0;

    line-height:1.1;

    color:var(--sw-text);

    font-weight:800;

}

.sw-contact-page p{

    margin:0;

    line-height:1.75;

}

.sw-contact-page a{

    text-decoration:none;

}

/* ==========================================================
   SECTION HEADINGS
   ========================================================== */

.sw-section-heading{

    max-width:760px;

    margin:0 auto 60px;

    text-align:center;

}

.sw-section-heading>p:first-child{

    color:var(--sw-green);

    font-size:14px;

    text-transform:uppercase;

    letter-spacing:.18em;

    font-weight:800;

    margin-bottom:16px;

}

.sw-section-heading h2{

    font-size:48px;

    margin-bottom:18px;

}

.sw-section-description{

    color:var(--sw-muted);

    font-size:18px;

}

/* ==========================================================
   BUTTONS
   ========================================================== */

.sw-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:54px;

    padding:0 30px;

    border-radius:999px;

    transition:var(--sw-transition);

    font-weight:700;

    font-size:15px;

}

.sw-btn-primary{

    background:var(--sw-green);

    color:#fff;

    box-shadow:var(--sw-shadow-sm);

}

.sw-btn-primary:hover{

    background:var(--sw-green-dark);

    transform:translateY(-2px);

}

.sw-btn-secondary{

    border:2px solid var(--sw-border);

    color:var(--sw-text);

    background:#fff;

}

.sw-btn-secondary:hover{

    border-color:var(--sw-green);

    color:var(--sw-green);

}

.sw-btn-outline{

    border:2px solid var(--sw-green);

    color:var(--sw-green);

    background:#fff;

}

.sw-btn-outline:hover{

    background:var(--sw-green);

    color:#fff;

}

.sw-btn-light{

    background:#fff;

    color:var(--sw-green);

}

.sw-btn-light:hover{

    transform:translateY(-2px);

}

.sw-btn-outline-light{

    border:2px solid rgba(255,255,255,.4);

    color:#fff;

}

.sw-btn-outline-light:hover{

    background:#fff;

    color:var(--sw-green);

}

/* ==========================================================
   HERO
   ========================================================== */

.sw-contact-hero{

    background:

        radial-gradient(circle at top right,
        rgba(106,167,68,.12),
        transparent 40%),

        linear-gradient(180deg,
        #fff 0%,
        #F7FAF6 100%);

}

.sw-contact-hero::before{

    content:"";

    position:absolute;

    width:700px;

    height:700px;

    border-radius:50%;

    background:

        rgba(106,167,68,.05);

    right:-250px;

    top:-250px;

}

.sw-contact-hero-grid{

    display:grid;

    grid-template-columns:1.3fr 460px;

    gap:70px;

    align-items:center;

}

.sw-contact-eyebrow{

    color:var(--sw-green);

    text-transform:uppercase;

    font-weight:800;

    letter-spacing:.18em;

    margin-bottom:24px;

}

.sw-contact-hero h1{

    font-size:68px;

    line-height:1.05;

    max-width:700px;

    margin-bottom:30px;

}

.sw-contact-description{

    max-width:680px;

    font-size:20px;

    color:var(--sw-muted);

}

.sw-contact-buttons{

    display:flex;

    gap:20px;

    margin-top:45px;

    flex-wrap:wrap;

}

/* ==========================================================
   CUSTOMER SERVICE CARD
   ========================================================== */

.sw-contact-service-card{

    background:#17301E;

    color:#fff;

    border-radius:24px;

    padding:38px;

    box-shadow:var(--sw-shadow-lg);

}

.sw-service-top{

    margin-bottom:34px;

}

.sw-service-top h3{

    color:#fff;

    font-size:30px;

    margin-bottom:12px;

}

.sw-service-top span{

    display:inline-flex;

    padding:8px 16px;

    border-radius:999px;

    background:rgba(255,255,255,.08);

    color:#fff;

    font-size:14px;

}

.sw-service-item{

    padding:18px 0;

    border-top:1px solid rgba(255,255,255,.12);

}

.sw-service-item:first-of-type{

    border-top:none;

}

.sw-service-item strong{

    display:block;

    margin-bottom:8px;

    color:#9FCB82;

    text-transform:uppercase;

    font-size:12px;

    letter-spacing:.12em;

}

.sw-service-item a{

    color:#fff;

    font-size:18px;

}

.sw-service-item span{

    color:#fff;

    font-size:18px;

}

/* ==========================================================
   HOW CAN WE HELP?
   ========================================================== */

.sw-contact-quick-nav{

    background:#fff;

    padding-top:90px;

}

.sw-quick-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:28px;

}

.sw-quick-card{

    background:#fff;

    border:1px solid var(--sw-border);

    border-radius:24px;

    padding:40px;

    transition:var(--sw-transition);

    position:relative;

    overflow:hidden;

    box-shadow:var(--sw-shadow-sm);

}

.sw-quick-card::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:5px;

    height:100%;

    background:var(--sw-green);

    transform:scaleY(0);

    transform-origin:top;

    transition:.35s ease;

}

.sw-quick-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--sw-shadow);

}

.sw-quick-card:hover::before{

    transform:scaleY(1);

}

.sw-quick-number{

    width:54px;

    height:54px;

    border-radius:16px;

    background:var(--sw-green-light);

    color:var(--sw-green);

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:800;

    margin-bottom:30px;

}

.sw-quick-card h3{

    font-size:24px;

    margin-bottom:16px;

}

.sw-quick-card p{

    color:var(--sw-muted);

}

/* ==========================================================
   REGIONAL FINDER
   ========================================================== */

.sw-region-section{

    background:var(--sw-bg);

}

.sw-region-layout{

    display:grid;

    grid-template-columns:1.3fr 430px;

    gap:50px;

    align-items:start;

}

.sw-map-column{

    background:#fff;

    border-radius:28px;

    padding:40px;

    box-shadow:var(--sw-shadow);

}

.sw-state-select{

    margin-bottom:35px;

}

.sw-state-select label{

    display:block;

    font-weight:700;

    margin-bottom:12px;

}

.sw-state-select select{

    width:100%;

    height:60px;

    border-radius:16px;

    border:1px solid var(--sw-border);

    padding:0 20px;

    font-size:16px;

    background:#fff;

    transition:var(--sw-transition);

}

.sw-state-select select:focus{

    border-color:var(--sw-green);

    outline:none;

}

.sw-map-wrapper{

    width:100%;

    min-height:620px;

    display:flex;

    align-items:center;

    justify-content:center;

}

.sw-map-wrapper object{

    width:100%;

    max-width:900px;

}

/* ==========================================================
   REGION CONTACT CARD
   ========================================================== */

.sw-region-card{

    position:sticky;

    top:120px;

    background:#fff;

    border-radius:28px;

    padding:38px;

    box-shadow:var(--sw-shadow);

}

.sw-region-label{

    display:inline-flex;

    background:var(--sw-green-light);

    color:var(--sw-green);

    padding:8px 18px;

    border-radius:999px;

    font-size:13px;

    font-weight:700;

    margin-bottom:24px;

}

.sw-region-card h3{

    font-size:38px;

    margin-bottom:35px;

}

.sw-region-contact{

    display:flex;

    gap:22px;

    align-items:center;

    margin-bottom:35px;

}

.sw-contact-photo{

    width:92px;

    height:92px;

    border-radius:50%;

    overflow:hidden;

    background:#F5F5F5;

    flex-shrink:0;

}

.sw-contact-photo img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.sw-contact-info h4{

    font-size:24px;

    margin-bottom:8px;

}

.sw-contact-info p{

    color:var(--sw-muted);

}

.sw-region-states{

    margin-bottom:35px;

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}

.sw-region-states span{

    background:var(--sw-green-light);

    color:var(--sw-green);

    padding:8px 14px;

    border-radius:999px;

    font-size:14px;

    font-weight:600;

}

.sw-region-actions{

    display:flex;

    gap:16px;

}

.sw-region-actions .sw-btn{

    flex:1;

}

/* ==========================================================
   MAP
   ========================================================== */

.sw-map-wrapper svg{

    width:100%;

    height:auto;

}

.sw-map-wrapper path{

    fill:#E8ECE9;

    stroke:#fff;

    stroke-width:2;

    transition:var(--sw-transition);

    cursor:pointer;

}

.sw-map-wrapper path:hover{

    fill:var(--sw-green);

}

.sw-map-wrapper path.active{

    fill:var(--sw-green);

}

.sw-map-wrapper path.region-selected{

    stroke:#17221B;

    stroke-width:3;

}

/* ==========================================================
   OUTSIDE SALES MANAGERS
   ========================================================== */

.sw-directory-section{

    background:#fff;

}

.sw-directory-alt{

    background:var(--sw-bg);

}

.sw-directory-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(330px,1fr));

    gap:34px;

}

.sw-person-card{

    position:relative;

    background:#fff;

    border-radius:28px;

    border:1px solid var(--sw-border);

    overflow:hidden;

    transition:all .35s ease;

    box-shadow:var(--sw-shadow-sm);

}

.sw-person-card::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:100%;

    height:6px;

    background:var(--sw-green);

    transform:scaleX(0);

    transform-origin:left;

    transition:.35s ease;

}

.sw-person-card:hover{

    transform:translateY(-10px);

    box-shadow:var(--sw-shadow-lg);

}

.sw-person-card:hover::before{

    transform:scaleX(1);

}

.sw-person-image{

    position:relative;

    width:100%;

    height:300px;

    background:#F7F9F7;

    display:flex;

    align-items:center;

    justify-content:center;

}

.sw-person-image img{

    width:100%;

    height:100%;

    object-fit:cover;

}

.sw-person-content{

    padding:34px;

}

.sw-person-type{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:8px 16px;

    border-radius:999px;

    background:var(--sw-green-light);

    color:var(--sw-green);

    font-size:13px;

    font-weight:700;

    margin-bottom:22px;

}

.sw-person-content h3{

    font-size:32px;

    margin-bottom:10px;

}

.sw-person-title{

    color:var(--sw-muted);

    font-size:17px;

    margin-bottom:28px;

}

.sw-person-region{

    margin-bottom:16px;

    font-size:17px;

}

.sw-person-region strong{

    color:var(--sw-green-dark);

}

.sw-person-states{

    color:var(--sw-muted);

    font-size:15px;

    line-height:1.8;

    margin-bottom:32px;

}

.sw-person-actions{

    display:flex;

    gap:16px;

}

.sw-person-actions .sw-btn{

    flex:1;

}

/* ==========================================================
   ACCOUNT DEVELOPMENT MANAGERS
   ========================================================== */

.sw-supported-title{

    font-weight:700;

    font-size:17px;

    margin-bottom:18px;

}

.sw-supported-distributors{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

    margin-bottom:34px;

}

.sw-distributor-pill{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    background:#F4F7F3;

    border:1px solid #DCE8D7;

    color:var(--sw-green-dark);

    padding:10px 18px;

    border-radius:999px;

    font-size:14px;

    font-weight:600;

    transition:var(--sw-transition);

}

.sw-distributor-pill:hover{

    background:var(--sw-green-light);

}

/* ==========================================================
   PERSON IMAGE FALLBACK
   ========================================================== */

.sw-person-image{

    overflow:hidden;

}

.sw-person-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        to top,

        rgba(0,0,0,.18),

        transparent 45%

    );

    pointer-events:none;

}

.sw-person-image img[src*="sw-logo"]{

    object-fit:contain;

    padding:45px;

    background:#fff;

}

/* ==========================================================
   DIRECTORY ANIMATIONS
   ========================================================== */

.sw-person-card{

    opacity:0;

    transform:translateY(40px);

    animation:swFadeUp .7s ease forwards;

}

.sw-directory-grid .sw-person-card:nth-child(2){

    animation-delay:.08s;

}

.sw-directory-grid .sw-person-card:nth-child(3){

    animation-delay:.16s;

}

.sw-directory-grid .sw-person-card:nth-child(4){

    animation-delay:.24s;

}

.sw-directory-grid .sw-person-card:nth-child(5){

    animation-delay:.32s;

}

.sw-directory-grid .sw-person-card:nth-child(6){

    animation-delay:.40s;

}

@keyframes swFadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================================================
   CARD MICRO DETAILS
   ========================================================== */

.sw-person-content h3{

    transition:var(--sw-transition);

}

.sw-person-card:hover h3{

    color:var(--sw-green);

}

.sw-person-card:hover .sw-person-image{

    transform:scale(1.01);

}

.sw-person-image{

    transition:transform .45s ease;

}

/* ==========================================================
   CONTACT FORM
   ========================================================== */

.sw-contact-form-section{

    background:linear-gradient(
        135deg,
        var(--sw-green) 0%,
        var(--sw-green-dark) 100%
    );

}

.sw-contact-form-section .sw-section-heading{

    color:#fff;

}

.sw-contact-form-section .sw-section-heading h2{

    color:#fff;

}

.sw-contact-form-section .sw-section-heading p{

    color:#fff;

}

.sw-contact-form-card{

    background:rgba(255,255,255,.08);

    backdrop-filter:blur(18px);

    border-radius:32px;

    padding:60px;

    border:1px solid rgba(255,255,255,.18);

}

/* ==========================================================
   HUBSPOT
   ========================================================== */

#sw-hubspot-form{

    color:#fff;

}

#sw-hubspot-form label{

    color:#fff !important;

    font-weight:700;

    margin-bottom:8px;

}

#sw-hubspot-form input,

#sw-hubspot-form textarea,

#sw-hubspot-form select{

    width:100%;

    border-radius:14px;

    border:none;

    background:#fff;

    min-height:54px;

    padding:14px 18px;

    color:var(--sw-text);

    margin-top:8px;

    margin-bottom:20px;

    box-sizing:border-box;

}

#sw-hubspot-form textarea{

    min-height:170px;

    resize:vertical;

}

#sw-hubspot-form input:focus,

#sw-hubspot-form textarea:focus,

#sw-hubspot-form select:focus{

    outline:none;

    box-shadow:
        0 0 0 4px rgba(255,255,255,.25);

}

#sw-hubspot-form input[type=submit],

#sw-hubspot-form .hs-button{

    background:#fff !important;

    color:var(--sw-green) !important;

    border:none !important;

    min-height:56px;

    border-radius:999px;

    padding:0 34px;

    font-weight:800;

    cursor:pointer;

    transition:.3s ease;

    box-shadow:var(--sw-shadow);

}

#sw-hubspot-form input[type=submit]:hover,

#sw-hubspot-form .hs-button:hover{

    transform:translateY(-3px);

}

#sw-hubspot-form .hs-error-msg,

#sw-hubspot-form .hs-error-msgs{

    color:#fff !important;

}

#sw-hubspot-form .submitted-message{

    color:#fff;

    font-size:20px;

    line-height:1.7;

}

/* ==========================================================
   CTA
   ========================================================== */

.sw-contact-cta{

    background:#17301E;

}

.sw-contact-cta-card{

    max-width:900px;

    margin:auto;

    text-align:center;

    color:#fff;

}

.sw-contact-cta-eyebrow{

    color:#9FCB82;

    text-transform:uppercase;

    letter-spacing:.16em;

    font-weight:700;

    margin-bottom:22px;

}

.sw-contact-cta h2{

    color:#fff;

    font-size:56px;

    margin-bottom:26px;

}

.sw-contact-cta p{

    color:rgba(255,255,255,.82);

    font-size:20px;

    max-width:700px;

    margin:0 auto 40px;

}

.sw-contact-cta-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media(max-width:1200px){

.sw-contact-hero-grid{

grid-template-columns:1fr;

}

.sw-region-layout{

grid-template-columns:1fr;

}

.sw-region-card{

position:relative;

top:auto;

}

.sw-quick-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:992px){

.sw-contact-page section{

padding:90px 0;

}

.sw-contact-hero h1{

font-size:54px;

}

.sw-section-heading h2{

font-size:40px;

}

.sw-directory-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:768px){

.sw-contact-page section{

padding:70px 0;

}

.sw-contact-hero h1{

font-size:42px;

}

.sw-contact-description{

font-size:18px;

}

.sw-contact-buttons{

flex-direction:column;

}

.sw-btn{

width:100%;

}

.sw-quick-grid{

grid-template-columns:1fr;

}

.sw-directory-grid{

grid-template-columns:1fr;

}

.sw-region-actions{

flex-direction:column;

}

.sw-person-actions{

flex-direction:column;

}

.sw-contact-form-card{

padding:35px;

}

.sw-contact-cta h2{

font-size:38px;

}

.sw-map-wrapper{

min-height:400px;

}

}

@media(max-width:480px){

.sw-contact-container{

width:94%;

}

.sw-contact-hero h1{

font-size:34px;

}

.sw-section-heading h2{

font-size:32px;

}

.sw-person-content{

padding:24px;

}

.sw-contact-form-card{

padding:24px;

}

}

/* ==========================================================
   UTILITIES
   ========================================================== */

.sw-hidden{

display:none!important;

}

.sw-text-center{

text-align:center;

}

.sw-mb-0{

margin-bottom:0!important;

}

.sw-mt-0{

margin-top:0!important;

}

.sw-fade{

animation:swFade .6s ease;

}

@keyframes swFade{

from{

opacity:0;

}

to{

opacity:1;

}

}

/* ==========================================================
   VISIBLE CLICKABLE CONTACT DETAILS
   ========================================================== */

.sw-contact-detail-links {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.sw-contact-detail-link {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    min-width: 0;
    padding: 15px 17px;
    border: 1px solid var(--sw-border);
    border-radius: 16px;
    background: #fff;
    color: var(--sw-text);
    transition: var(--sw-transition);
}

.sw-contact-detail-link:hover {
    border-color: var(--sw-green);
    background: var(--sw-green-light);
    color: var(--sw-text);
    transform: translateY(-2px);
}

.sw-contact-detail-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 50%;
    background: var(--sw-green-light);
    color: var(--sw-green-dark);
    font-size: 18px;
}

.sw-contact-detail-copy {
    display: block;
    min-width: 0;
}

.sw-contact-detail-copy small {
    display: block;
    margin-bottom: 3px;
    color: var(--sw-muted);
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.sw-contact-detail-copy strong {
    display: block;
    color: var(--sw-text);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    overflow-wrap: anywhere;
    user-select: text;
}

.sw-region-actions.sw-contact-detail-links {
    display: grid;
    grid-template-columns: 1fr;
}

.sw-person-actions.sw-contact-detail-links {
    display: grid;
    grid-template-columns: 1fr;
}


/* ==========================================================
   MAP FOCUS + CONTACT FORM WIDTH POLISH
   ========================================================== */

/* The SVG is embedded through an object element, so the JS also
   removes focus after mouse selection. This prevents browser focus
   rectangles from appearing around a clicked state. */
.sw-map-wrapper object:focus {
    outline: none;
}

/* Keep the form intentionally narrower than the full page container. */
.sw-contact-form-card {
    width: min(100%, 980px);
    margin: 0 auto;
    padding: 52px 60px;
    box-sizing: border-box;
}

#sw-hubspot-form {
    width: 100%;
    max-width: 820px;
    margin: 0 auto;
}

#sw-hubspot-form .hbspt-form,
#sw-hubspot-form form {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 768px) {
    .sw-contact-form-card {
        width: 100%;
        padding: 32px 24px;
    }

    #sw-hubspot-form {
        max-width: none;
    }
}

/* ==========================================================
   MAP CONTROLS
   ========================================================== */

.sw-state-control-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
}

.sw-map-reset {
    min-height: 60px;
    padding: 0 22px;
    border: 1px solid var(--sw-border);
    border-radius: 16px;
    background: #fff;
    color: var(--sw-text);
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    cursor: pointer;
    transition: var(--sw-transition);
}

.sw-map-reset:hover {
    border-color: var(--sw-green);
    background: var(--sw-green-light);
    color: var(--sw-green-dark);
    transform: translateY(-1px);
}

.sw-map-wrapper {
    position: relative;
}

/* ==========================================================
   MAP HOVER CONTACT CARD
   ========================================================== */

.sw-map-tooltip {
    position: absolute;
    z-index: 20;
    width: min(310px, calc(100% - 24px));
    padding: 17px;
    border: 1px solid rgba(23, 34, 27, .12);
    border-radius: 18px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 18px 45px rgba(0, 0, 0, .18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    pointer-events: none;
    transition:
        opacity .15s ease,
        visibility .15s ease,
        transform .15s ease;
}

.sw-map-tooltip.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.sw-map-tooltip-header {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
}

.sw-map-tooltip-header img {
    width: 58px;
    height: 58px;
    padding: 4px;
    border: 1px solid var(--sw-border);
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}

.sw-map-tooltip-header span,
.sw-map-tooltip-header strong,
.sw-map-tooltip-header small {
    display: block;
}

.sw-map-tooltip-header span {
    margin-bottom: 4px;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.sw-map-tooltip-header strong {
    color: var(--sw-text);
    font-size: 17px;
    line-height: 1.25;
}

.sw-map-tooltip-header small {
    margin-top: 3px;
    color: var(--sw-muted);
    font-size: 12px;
    line-height: 1.35;
}

.sw-map-tooltip-contact {
    display: grid;
    gap: 6px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--sw-border);
}

.sw-map-tooltip-contact a {
    color: var(--sw-text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    overflow-wrap: anywhere;
    pointer-events: auto;
}

/* ==========================================================
   COMPACT TEAM DIRECTORY — FOUR CARDS
   ========================================================== */

.sw-directory-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.sw-person-card {
    border-radius: 20px;
}

.sw-person-image {
    height: 185px;
}

.sw-person-image img[src*="SW_Logo_Green"],
.sw-person-image img[src*="SW_Logo"],
.sw-person-image img[src*="sw-logo"] {
    object-fit: contain;
    padding: 34px;
    background: #fff;
}

.sw-person-content {
    padding: 23px;
}

.sw-person-type {
    padding: 6px 11px;
    margin-bottom: 15px;
    font-size: 10px;
}

.sw-person-content h3 {
    font-size: 23px;
}

.sw-person-title {
    min-height: 42px;
    margin-bottom: 18px;
    font-size: 14px;
}

.sw-person-region {
    margin-bottom: 11px;
    font-size: 14px;
}

.sw-person-states {
    margin-bottom: 19px;
    font-size: 12px;
    line-height: 1.6;
}

.sw-supported-title {
    margin-bottom: 10px;
    font-size: 14px;
}

.sw-supported-distributors {
    gap: 7px;
    margin-bottom: 19px;
}

.sw-distributor-pill {
    padding: 7px 11px;
    font-size: 11px;
}

.sw-person-actions.sw-contact-detail-links {
    gap: 8px;
}

.sw-person-actions .sw-contact-detail-link {
    gap: 9px;
    padding: 10px 11px;
    border-radius: 12px;
}

.sw-person-actions .sw-contact-detail-icon {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    font-size: 14px;
}

.sw-person-actions .sw-contact-detail-copy small {
    font-size: 9px;
}

.sw-person-actions .sw-contact-detail-copy strong {
    font-size: 11px;
}

@media (max-width: 1200px) {
    .sw-directory-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .sw-directory-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .sw-state-control-row {
        grid-template-columns: 1fr;
    }

    .sw-map-reset {
        width: 100%;
    }

    .sw-directory-grid {
        grid-template-columns: 1fr;
    }

    .sw-person-image {
        height: 220px;
    }

    .sw-map-tooltip {
        display: none;
    }
}

/* ==========================================================
   END
   ========================================================== */