/* UPLAND SITES — Professional 3-layer header
   Add this AFTER css/style.css in your existing template. */
:root { --up-navy: #0b2444; --up-navy-deep: #071c35; --up-red: #d91f3b; --up-red-hover: #bd1530; --up-blue: #235a9a; --up-muted: #697c91; }
.up-header, .up-header * { box-sizing: border-box; }
.up-header { position: relative; z-index: 100; font-family: 'Open Sans', 'Poppins', Arial, sans-serif; color: var(--up-navy); }
.up-header a { text-decoration: none; }
.up-header button { font: inherit; }
.up-container { width: min(1250px, calc(100% - 70px)); margin-inline: auto; }
.up-utility { background: var(--up-navy-deep); color: #e9f0f8; min-height: 39px; }
.up-utility-inner { display:flex; align-items:center; justify-content:space-between; min-height:39px; gap:18px; }
.up-utility-location { display: inline-flex; align-items:center; gap:10px; font-size:11px; font-weight:750; letter-spacing:1.25px; text-transform:uppercase; }
.up-utility-dot { display:inline-block; height:7px; width:7px; border-radius:50%; background:#ef3553; box-shadow:0 0 0 4px rgba(239,53,83,.14); }
.up-utility-right { display: flex; align-items:center; gap:21px; font-size:11.5px; color:#b8cadd; }
.up-utility-right a { color:#fff; font-weight:750; letter-spacing:.2px; border-left:1px solid #35506b; padding-left:21px; transition:color .2s; }
.up-utility-right a:hover { color: #ff6176; }
.up-utility-right a span { margin-left:5px; color: #f04b63; }
.up-brandbar { background:#fff; }
.up-brandbar-inner { display:flex; align-items:center; justify-content:space-between; min-height:132px; gap:32px; }
.up-brand { display:inline-flex; align-items:center; flex:none; }
.up-brand img { display:block; height:auto; width:242px; max-width:100%; object-fit:contain; }
.up-brand-notes { display:flex; align-items:center; gap:27px; }
.up-brand-note { display:flex; align-items:center; gap:14px; min-width:225px; }
.up-note-icon { display:grid; place-items:center; width:47px; height:47px; flex:none; color:var(--up-blue); background:#f0f5fa; border:1px solid #e0eaf4; border-radius:12px; }
.up-note-icon svg { width:23px; height:23px; }
.up-brand-note strong, .up-brand-note small { display:block; }
.up-brand-note strong { color:var(--up-navy); font-size:13px; font-weight:780; letter-spacing:-.2px; white-space:nowrap; }
.up-brand-note small { color:#75869a; font-size:11.5px; margin-top:6px; }
.up-note-divider { height:39px; width:1px; background:#e5eaf0; }
/* Navigation stays away from the left/right edges. */
.up-nav-outer { background:#fff; padding-bottom:21px; }
.up-navigation { display:flex; justify-content:space-between; align-items:stretch; min-height:70px; width:100%; padding:0 11px 0 18px; border-radius:8px; background:linear-gradient(105deg, #0c2a4f 0%, #0a213d 100%); box-shadow:0 14px 28px rgba(6,27,52,.16); border-bottom:3px solid var(--up-red); }
.up-nav-links { display:flex; align-items:stretch; gap:1px; min-width:0; }
.up-nav-link { position:relative; border:0; border-radius:0; background:transparent; color:#e6edf6 !important; font-size:12.8px; letter-spacing:.05px; font-weight:650; padding:0 17px; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; cursor:pointer; transition:background .2s,color .2s; }
.up-nav-link::after { position:absolute; bottom:0; left:17px; right:17px; height:3px; background:#ec3651; content:''; transform:scaleX(0); transform-origin:center; transition:transform .22s ease; }
.up-nav-link:hover, .up-nav-link:focus-visible, .up-nav-link.is-active { color:#fff !important; background:rgba(255,255,255,.055); }
.up-nav-link:hover::after, .up-nav-link.is-active::after, .up-dropdown:focus-within>.up-nav-link::after { transform:scaleX(1); }
.up-nav-cta { display:inline-flex; align-items:center; justify-content:center; align-self:center; gap:10px; padding:15px 17px; border-radius:5px; background:var(--up-red); color:#fff !important; font-size:12.5px; letter-spacing:.05px; font-weight:800; white-space:nowrap; transition:transform .2s,background .2s,box-shadow .2s; }
.up-nav-cta:hover { background:var(--up-red-hover); transform:translateY(-2px); box-shadow:0 9px 19px rgba(217,31,59,.28); }
.up-cta-arrow { font-size:18px; line-height:1; margin-left:4px; }
.up-dropdown { position:relative; display:flex; align-items:stretch; }
.up-dropdown-trigger { appearance:none; -webkit-appearance:none; }
.up-dropdown-trigger svg { transition: transform .2s; }
.up-dropdown.is-open .up-dropdown-trigger svg { transform:rotate(180deg); }
.up-dropdown-menu { position:absolute; z-index:120; top:calc(100% - 1px); left:0; min-width:230px; background:#fff; border:1px solid #e5eaf0; border-top:3px solid var(--up-red); border-radius:0 0 7px 7px; padding:9px; box-shadow:0 19px 34px rgba(5,20,40,.18); opacity:0; visibility:hidden; transform:translateY(9px); transition:opacity .2s,transform .2s,visibility .2s; }
.up-dropdown:hover .up-dropdown-menu, .up-dropdown:focus-within .up-dropdown-menu, .up-dropdown.is-open .up-dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); }
.up-dropdown-menu a { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 13px; color:#223b57 !important; font-size:12.7px; font-weight:650; border-radius:4px; transition:background .18s,color .18s; }
.up-dropdown-menu a span:last-child { color:var(--up-red); }
.up-dropdown-menu a:hover, .up-dropdown-menu a:focus-visible { background:#edf3f9; color:var(--up-red) !important; }
.up-menu-toggle { display:none; width:46px; height:44px; padding:11px; flex-direction:column; align-items:center; justify-content:center; gap:5px; background:#edf3f8; border:1px solid #d7e3ef; border-radius:6px; cursor:pointer; }
.up-menu-toggle span { width:20px; height:2px; border-radius:2px; background:var(--up-navy); transition:transform .2s,opacity .2s; }
.up-menu-toggle[aria-expanded='true'] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.up-menu-toggle[aria-expanded='true'] span:nth-child(2) { opacity:0; }
.up-menu-toggle[aria-expanded='true'] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.up-header a:focus-visible, .up-header button:focus-visible { outline:2px solid #ff526b; outline-offset:2px; }
@media (max-width: 1150px) {
  .up-container { width:min(1130px,calc(100% - 44px)); }
  .up-nav-link { padding-inline:11px; font-size:12px; }
  .up-nav-link::after { left:11px; right:11px; }
  .up-nav-cta { padding-inline:12px; font-size:12px; }
  .up-brand-note { min-width:0; }
}
@media (max-width: 970px) {
  .up-brandbar-inner { min-height:102px; }
  .up-brand img { width:205px; }
  .up-brand-notes { gap:15px; }
  .up-brand-note { gap:9px; }
  .up-note-icon { width:40px; height:40px; }
  .up-brand-note strong { font-size:12px; }
  .up-brand-note small { font-size:10px; }
  .up-menu-toggle { display:flex; }
  .up-navigation { display:none; flex-direction:column; align-items:stretch; min-height:0; padding:8px 13px 16px; }
  .up-navigation.is-open { display:flex; animation:up-slide-in .2s ease both; }
  .up-nav-links { flex-direction:column; gap:0; }
  .up-nav-link { width:100%; min-height:48px; padding:0 14px; font-size:13.5px; border-bottom:1px solid rgba(255,255,255,.105); justify-content:space-between; }
  .up-nav-link::after { left:0; right:auto; width:3px; height:26px; bottom:10px; transform:scaleY(0); }
  .up-nav-link.is-active::after, .up-nav-link:hover::after { transform:scaleY(1); }
  .up-dropdown { display:block; }
  .up-dropdown-menu { position:static; display:none; opacity:1; visibility:visible; transform:none; min-width:unset; padding:5px 9px; box-shadow:none; border:0; border-left:2px solid #ed536a; border-radius:0; margin:5px 3px 10px 15px; }
  .up-dropdown:hover .up-dropdown-menu { display:none; }
  .up-dropdown.is-open .up-dropdown-menu { display:block; }
  .up-nav-cta { align-self:stretch; margin:14px 1px 0; min-height:47px; }
  @keyframes up-slide-in { from { opacity:0; transform:translateY(-7px); } to { opacity:1; transform:translateY(0); } }
}
@media (max-width: 640px) {
  .up-container { width:calc(100% - 30px); }
  .up-utility { min-height:35px; }
  .up-utility-inner { min-height:35px; }
  .up-utility-location { font-size:9.6px; letter-spacing:.7px; }
  .up-utility-right { gap:0; }
  .up-utility-right>span { display:none; }
  .up-utility-right a { border-left:0; padding-left:0; font-size:10px; }
  .up-brandbar-inner { min-height:94px; }
  .up-brand img { width:186px; }
  .up-brand-notes { display:none; }
  .up-nav-outer { padding-bottom:12px; }
  .up-navigation { border-radius:6px; }
}
@media (prefers-reduced-motion:reduce) { .up-header *, .up-header *::before, .up-header *::after { transition:none !important; animation:none !important; } }




/* ==============================================
   UPLAND SITES - COMPACT THREE-LAYER HEADER
   Corrected to match existing HTML classes
   ============================================== */

/* LAYER 1: Slim top information bar */
.up-header .up-utility {
    min-height: 30px;
}

.up-header .up-utility-inner {
    min-height: 30px;
    padding-top: 3px;
    padding-bottom: 3px;
}

/* LAYER 2: Shorter white branding section */
.up-header .up-brandbar {
    padding: 0;
    background: #ffffff;
}

.up-header .up-brandbar-inner {
    min-height: 76px;
    height: 76px;
    padding-top: 5px;
    padding-bottom: 5px;
    gap: 20px;
}

/* Resize official Upland Sites logo */
.up-header .up-brand img {
    width: 190px;
    max-height: 64px;
    height: auto;
    object-fit: contain;
}

/* Reduce spacing between branding elements */
.up-header .up-brand-notes {
    gap: 18px;
}

.up-header .up-brand-note {
    gap: 10px;
    min-width: 0;
}

/* Smaller information icons */
.up-header .up-note-icon {
    width: 38px;
    height: 38px;
    border-radius: 8px;
}

.up-header .up-note-icon svg {
    width: 19px;
    height: 19px;
}

/* Compact branding text */
.up-header .up-brand-note strong {
    font-size: 12px;
}

.up-header .up-brand-note small {
    font-size: 10.5px;
    margin-top: 3px;
}

.up-header .up-note-divider {
    height: 32px;
}

/* LAYER 3: Compact inset navigation bar */
.up-header .up-nav-outer {
    padding-bottom: 12px;
}

.up-header .up-navigation {
    min-height: 54px;
    padding: 0 10px 0 14px;
    border-radius: 7px;
}

/* Compact navigation links */
.up-header .up-nav-link {
    padding: 0 14px;
    font-size: 12.5px;
}

/* Reduce red action button height */
.up-header .up-nav-cta {
    padding: 10px 16px;
    font-size: 12px;
}

/* ==============================================
   TABLETS AND SMALL SCREENS
   ============================================== */

@media (max-width: 970px) {

    .up-header .up-brandbar-inner {
        min-height: 65px;
        height: 65px;
        padding: 4px 0;
    }

    .up-header .up-brand img {
        width: 165px;
        max-height: 55px;
    }

    .up-header .up-note-icon {
        width: 34px;
        height: 34px;
    }

    .up-header .up-menu-toggle {
        width: 40px;
        height: 38px;
    }

    .up-header .up-navigation {
        min-height: 0;
        padding: 8px 12px 12px;
    }

    .up-header .up-nav-link {
        min-height: 43px;
        padding: 0 12px;
    }

    .up-header .up-nav-cta {
        min-height: 42px;
    }
}

/* ==============================================
   MOBILE PHONES
   ============================================== */

@media (max-width: 640px) {

    .up-header .up-utility,
    .up-header .up-utility-inner {
        min-height: 29px;
    }

    .up-header .up-brandbar-inner {
        min-height: 60px;
        height: 60px;
        padding: 3px 0;
    }

    .up-header .up-brand img {
        width: 152px;
        max-height: 52px;
    }

    .up-header .up-nav-outer {
        padding-bottom: 8px;
    }

    .up-header .up-navigation {
        border-radius: 6px;
    }
}



/* ==========================================
   UPLAND SITES
   SMALLER & FIXED THREE-LAYER HEADER
   ========================================== */

/* FIX ENTIRE HEADER AT TOP */
.up-header {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: #ffffff;
    box-shadow: 0 5px 20px rgba(5, 25, 50, 0.10);
}

/* Prevent page content from hiding under header */
body {
    padding-top: 148px;
}

/* Smooth anchor scrolling */
html {
    scroll-padding-top: 155px;
}

/* FIRST LAYER: Navy information bar */
.up-header .up-utility,
.up-header .up-utility-inner {
    min-height: 27px;
}

.up-header .up-utility-inner {
    padding-top: 2px;
    padding-bottom: 2px;
}

/* SECOND LAYER: White logo section */
.up-header .up-brandbar {
    padding: 0;
}

.up-header .up-brandbar-inner {
    height: 65px;
    min-height: 65px;
    padding: 3px 0;
    gap: 15px;
}

/* Smaller logo */
.up-header .up-brand img {
    width: 173px;
    max-height: 58px;
    height: auto;
    object-fit: contain;
}

/* Compact branding notes */
.up-header .up-brand-notes {
    gap: 13px;
}

.up-header .up-brand-note {
    gap: 9px;
    min-width: 0;
}

.up-header .up-note-icon {
    width: 34px;
    height: 34px;
    border-radius: 7px;
}

.up-header .up-note-icon svg {
    width: 17px;
    height: 17px;
}

.up-header .up-brand-note strong {
    font-size: 11.5px;
}

.up-header .up-brand-note small {
    font-size: 10px;
    margin-top: 2px;
}

.up-header .up-note-divider {
    height: 28px;
}

/* THIRD LAYER: Inset navy navigation */
.up-header .up-nav-outer {
    padding-bottom: 8px;
}

.up-header .up-navigation {
    min-height: 48px;
    padding: 0 10px 0 12px;
    border-radius: 6px;
}

/* Smaller menu links */
.up-header .up-nav-link {
    padding: 0 12px;
    font-size: 12px;
}

/* Compact red call-to-action button */
.up-header .up-nav-cta {
    padding: 8px 14px;
    font-size: 11.5px;
}

/* ==========================================
   TABLET VIEW
   ========================================== */

@media (max-width: 970px) {

    body {
        padding-top: 119px;
    }

    html {
        scroll-padding-top: 125px;
    }

    .up-header .up-brandbar-inner {
        height: 60px;
        min-height: 60px;
    }

    .up-header .up-brand img {
        width: 158px;
        max-height: 53px;
    }

    .up-header .up-navigation {
        min-height: 0;
        padding: 8px 12px 12px;
    }

    .up-header .up-nav-link {
        min-height: 42px;
    }

    /* Allow mobile menu to scroll independently */
    .up-header .up-navigation.is-open {
        max-height: calc(100dvh - 120px);
        overflow-y: auto;
    }
}

/* ==========================================
   MOBILE VIEW
   ========================================== */

@media (max-width: 640px) {

    body {
        padding-top: 105px;
    }

    html {
        scroll-padding-top: 112px;
    }

    .up-header .up-utility,
    .up-header .up-utility-inner {
        min-height: 25px;
    }

    .up-header .up-brandbar-inner {
        height: 55px;
        min-height: 55px;
        padding: 2px 0;
    }

    .up-header .up-brand img {
        width: 148px;
        max-height: 49px;
    }

    .up-header .up-nav-outer {
        padding-bottom: 6px;
    }

    .up-header .up-navigation.is-open {
        max-height: calc(100dvh - 105px);
    }
}


/* ==========================================
   UPLAND SITES
   FLOATING / PROTRUDING NAVIGATION
   ========================================== */

/* Fixed header without white background
   extending beneath the navigation */
.up-header {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: transparent !important;
    box-shadow: none !important;
}

/* Top navy information layer */
.up-header .up-utility {
    background: #071c35;
}

/* Middle white layer */
.up-header .up-brandbar {
    position: relative;
    background: #ffffff;
    padding-bottom: 18px;
    box-shadow: 0 3px 12px rgba(7, 28, 53, 0.05);
}

.up-header .up-brandbar-inner {
    height: 65px;
    min-height: 65px;
    padding: 3px 0;
}

/* Remove white background from
   the navigation's outer container */
.up-header .up-nav-outer {
    position: relative;
    z-index: 10;
    background: transparent !important;
    margin-top: -24px;
    padding-bottom: 0;
}

/* Protruding navy navigation bar */
.up-header .up-navigation {
    position: relative;
    min-height: 48px;
    background: linear-gradient(
        105deg,
        #0c2a4f 0%,
        #071c35 100%
    );
    border-radius: 7px;
    border-bottom: 3px solid #d91f3b;

    box-shadow:
        0 12px 25px rgba(7, 28, 53, 0.22);

    padding: 0 12px;
}

/* Maintain margins on both sides */
.up-header .up-nav-outer .up-container {
    width: min(1250px, calc(100% - 70px));
    margin-left: auto;
    margin-right: auto;
}

/* Keep dropdown above page content */
.up-header .up-dropdown-menu {
    z-index: 10001;
}

/* Tablet adjustments */
@media (max-width: 1150px) {
    .up-header .up-nav-outer .up-container {
        width: calc(100% - 44px);
    }
}

/* Mobile responsiveness */
@media (max-width: 970px) {

    .up-header .up-brandbar {
        padding-bottom: 14px;
    }

    .up-header .up-brandbar-inner {
        height: 60px;
        min-height: 60px;
    }

    .up-header .up-nav-outer {
        margin-top: -20px;
    }

    .up-header .up-navigation {
        min-height: 0;
    }

    .up-header .up-navigation.is-open {
        max-height: calc(100dvh - 115px);
        overflow-y: auto;
    }
}

/* Small mobile screens */
@media (max-width: 640px) {

    .up-header .up-brandbar {
        padding-bottom: 12px;
    }

    .up-header .up-brandbar-inner {
        height: 55px;
        min-height: 55px;
    }

    .up-header .up-nav-outer {
        margin-top: -18px;
    }

    .up-header .up-nav-outer .up-container {
        width: calc(100% - 30px);
    }

    .up-header .up-navigation.is-open {
        max-height: calc(100dvh - 105px);
    }
}



/* =====================================================
   UPLAND SITES - PREMIUM REAL ESTATE HERO SLIDER
   Complete consolidated stylesheet
   ===================================================== */

:root {
    --hero-navy: #071c35;
    --hero-blue: #0b2444;
    --hero-red: #d91f3b;
    --hero-red-hover: #b91530;
    --hero-white: #ffffff;
}

/* =====================================================
   1. HEADER AND CAROUSEL ALIGNMENT
   ===================================================== */

/* Ensure fixed header stays above carousel */
.up-header {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background: transparent !important;
}

/* Keep navigation floating over hero */
.up-header .up-nav-outer {
    position: relative;
    z-index: 100;
    background: transparent !important;
    padding-bottom: 0;
}

/* =====================================================
   2. FULL-WIDTH HERO SECTION
   ===================================================== */

body .up-hero-section {
    position: relative;
    display: block;

    /* Full browser width */
    width: 100vw !important;
    max-width: none !important;

    /* Break out of centered containers */
    left: 50%;
    margin-left: -50vw !important;
    margin-right: 0 !important;

    padding: 0 !important;

    /* Pull slider underneath floating navigation */
    margin-top: -30px !important;

    z-index: 1;
    background: var(--hero-navy);
}

/* Remove inherited layout constraints */
body .up-hero-section .carousel,
body .up-hero-section .carousel-inner {
    position: relative;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* Carousel container */
.up-hero-section .carousel {
    overflow: hidden;
    background: var(--hero-navy);
}

/* =====================================================
   3. SLIDE DIMENSIONS
   ===================================================== */

.up-hero-section .carousel-item {
    position: relative;
    width: 100%;
    height: 560px;
    min-height: 560px;
    overflow: hidden;
}

/* =====================================================
   4. HERO BACKGROUND IMAGES
   ===================================================== */

.up-hero-image {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    transform: scale(1.07);
    transition: transform 8s ease;
    will-change: transform;
}

/* Gentle cinematic zoom */
.up-hero-section .carousel-item.active
.up-hero-image {
    transform: scale(1);
}

/* =====================================================
   5. PROFESSIONAL NAVY GRADIENT OVERLAY
   ===================================================== */

.up-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;

    background: linear-gradient(
        90deg,
        rgba(5, 20, 39, 0.95) 0%,
        rgba(7, 28, 53, 0.87) 28%,
        rgba(7, 28, 53, 0.55) 56%,
        rgba(7, 28, 53, 0.14) 100%
    );
}

/* =====================================================
   6. HERO TEXT POSITIONING
   ===================================================== */

.up-hero-content {
    position: absolute;
    inset: 0;
    z-index: 3;

    display: flex;
    align-items: center;

    width: 100%;
    padding: 70px max(55px, 7.5%);
}

.up-hero-inner {
    width: 100%;
    max-width: 670px;
}

/* =====================================================
   7. EYEBROW / SMALL LABEL
   ===================================================== */

.up-hero-label {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    margin-bottom: 23px;

    color: var(--hero-white);
    font-family: 'Open Sans', sans-serif;

    font-size: 11px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.up-hero-label::before {
    content: "";
    display: block;

    width: 30px;
    height: 3px;

    background: var(--hero-red);
    flex-shrink: 0;
}

/* =====================================================
   8. MAIN HERO HEADINGS
   ===================================================== */

.up-hero-inner h1,
.up-hero-inner h2 {
    color: var(--hero-white);

    font-family: 'Poppins', sans-serif;
    font-size: clamp(42px, 4.8vw, 68px);
    font-weight: 700;
    line-height: 1.14;
    letter-spacing: -2px;

    margin: 0 0 24px;
    padding: 0;

    text-transform: none;
}

/* Second line */
.up-hero-inner h1 span,
.up-hero-inner h2 span {
    color: var(--hero-white);
    font-weight: 400;
}

/* =====================================================
   9. HERO DESCRIPTION
   ===================================================== */

.up-hero-inner p {
    max-width: 480px;

    color: #e4eaf2;
    font-family: 'Open Sans', sans-serif;

    font-size: 15.5px;
    line-height: 1.85;
    font-weight: 400;

    margin: 0 0 30px;
    padding: 0;
}

/* =====================================================
   10. RED CALL-TO-ACTION BUTTON
   ===================================================== */

.up-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 22px;

    min-height: 49px;
    padding: 14px 24px;

    background: var(--hero-red);
    color: var(--hero-white) !important;

    border: 1px solid var(--hero-red);
    border-radius: 4px;

    font-family: 'Open Sans', sans-serif;
    font-size: 13px;
    font-weight: 700;

    text-decoration: none !important;

    transition:
        background .3s ease,
        border-color .3s ease,
        transform .3s ease,
        box-shadow .3s ease;
}

.up-hero-btn:hover {
    background: var(--hero-red-hover);
    border-color: var(--hero-red-hover);

    color: var(--hero-white) !important;

    transform: translateY(-3px);

    box-shadow:
        0 12px 25px rgba(217, 31, 59, .25);
}

.up-hero-btn i {
    font-size: 12px;
    transition: transform .3s ease;
}

.up-hero-btn:hover i {
    transform: translateX(5px);
}

/* =====================================================
   11. BOTTOM CAROUSEL DETAILS
   ===================================================== */

.up-hero-bottom {
    position: absolute;

    left: 7.5%;
    right: 7.5%;
    bottom: 28px;

    z-index: 6;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.up-hero-progress {
    display: flex;
    align-items: center;
    gap: 14px;
}

.up-hero-line {
    display: block;

    width: 32px;
    height: 2px;

    background: var(--hero-red);
}

.up-hero-bottom-text {
    color: rgba(255,255,255,.76);

    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
}

/* =====================================================
   12. CAROUSEL NAVIGATION ARROWS
   ===================================================== */

.up-hero-controls {
    display: flex;
    align-items: center;
    gap: 9px;
}

.up-hero-controls button {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    padding: 0;

    background: rgba(255,255,255,.10);
    color: var(--hero-white);

    border: 1px solid rgba(255,255,255,.4);
    border-radius: 4px;

    font-size: 13px;
    cursor: pointer;

    backdrop-filter: blur(5px);

    transition:
        background .25s,
        border-color .25s,
        transform .25s;
}

.up-hero-controls button:hover {
    background: var(--hero-red);
    border-color: var(--hero-red);
    transform: translateY(-2px);
}

/* Hide any inherited template navigation */
.up-hero-section .carousel-control-prev,
.up-hero-section .carousel-control-next {
    display: none !important;
}

/* =====================================================
   13. SLIDE INDICATORS
   ===================================================== */

.up-hero-section .up-hero-indicators {
    position: absolute;
    z-index: 7;

    left: auto;
    right: 142px;
    bottom: 43px;

    display: flex;
    align-items: center;
    gap: 8px;

    width: auto;

    padding: 0;
    margin: 0;
}

.up-hero-section .up-hero-indicators button {
    width: 7px;
    height: 7px;

    padding: 0;
    margin: 0;

    border: 0;
    border-radius: 50%;

    background: #ffffff;
    opacity: .45;

    transition:
        opacity .2s,
        background .2s,
        transform .2s;
}

.up-hero-section .up-hero-indicators button.active {
    background: var(--hero-red);
    opacity: 1;
    transform: scale(1.2);
}

/* =====================================================
   14. DESKTOP RESPONSIVENESS
   ===================================================== */

@media (min-width: 1400px) {

    .up-hero-section .carousel-item {
        height: 600px;
        min-height: 600px;
    }

    .up-hero-content {
        padding-left: max(90px, 8%);
        padding-right: 8%;
    }
}

/* =====================================================
   15. TABLET RESPONSIVENESS
   ===================================================== */

@media (max-width: 991px) {

    body .up-hero-section {
        margin-top: -22px !important;
    }

    .up-hero-section .carousel-item {
        height: 500px;
        min-height: 500px;
    }

    .up-hero-content {
        padding: 55px 48px;
    }

    .up-hero-inner {
        max-width: 590px;
    }

    .up-hero-inner h1,
    .up-hero-inner h2 {
        font-size: clamp(40px, 5vw, 54px);
        letter-spacing: -1.5px;
    }

    .up-hero-overlay {
        background: linear-gradient(
            90deg,
            rgba(5,20,39,.94) 0%,
            rgba(7,28,53,.78) 52%,
            rgba(7,28,53,.35) 100%
        );
    }
}

/* =====================================================
   16. MOBILE RESPONSIVENESS
   ===================================================== */

@media (max-width: 640px) {

    body .up-hero-section {
        width: 100vw !important;
        margin-top: -14px !important;
    }

    .up-hero-section .carousel-item {
        height: 500px;
        min-height: 500px;
    }

    .up-hero-image {
        background-position: center center;
    }

    .up-hero-content {
        padding: 50px 26px 85px;
        align-items: center;
    }

    .up-hero-inner {
        max-width: 100%;
    }

    .up-hero-label {
        font-size: 9px;
        letter-spacing: 1.7px;
        gap: 10px;
        margin-bottom: 19px;
    }

    .up-hero-label::before {
        width: 22px;
    }

    .up-hero-inner h1,
    .up-hero-inner h2 {
        font-size: clamp(35px, 9vw, 44px);
        line-height: 1.18;
        letter-spacing: -1.3px;
        margin-bottom: 19px;
    }

    .up-hero-inner p {
        max-width: 330px;
        font-size: 13.5px;
        line-height: 1.75;
        margin-bottom: 24px;
    }

    .up-hero-overlay {
        background: linear-gradient(
            90deg,
            rgba(5,20,39,.93),
            rgba(7,28,53,.68)
        );
    }

    .up-hero-btn {
        min-height: 45px;
        padding: 12px 18px;
        gap: 14px;
        font-size: 12px;
    }

    .up-hero-bottom {
        left: 26px;
        right: 26px;
        bottom: 21px;
    }

    .up-hero-bottom-text {
        font-size: 8px;
        letter-spacing: 1px;
    }

    .up-hero-line {
        width: 23px;
    }

    .up-hero-controls {
        gap: 6px;
    }

    .up-hero-controls button {
        width: 34px;
        height: 34px;
        font-size: 11px;
    }

    .up-hero-section .up-hero-indicators {
        display: none;
    }
}

/* =====================================================
   17. SMALL MOBILE DEVICES
   ===================================================== */

@media (max-width: 375px) {

    .up-hero-content {
        padding-left: 20px;
        padding-right: 20px;
    }

    .up-hero-inner h1,
    .up-hero-inner h2 {
        font-size: 33px;
    }

    .up-hero-label {
        font-size: 8px;
        letter-spacing: 1px;
    }

    .up-hero-bottom {
        left: 20px;
        right: 20px;
    }
}

/* =====================================================
   18. ACCESSIBILITY
   ===================================================== */

.up-hero-section button:focus-visible,
.up-hero-section a:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .up-hero-section *,
    .up-hero-section *::before,
    .up-hero-section *::after {
        animation: none !important;
        transition: none !important;
    }

    .up-hero-image {
        transform: none !important;
    }
}

/* =====================================================
   19. PREVENT HORIZONTAL OVERFLOW
   ===================================================== */

html,
body {
    max-width: 100%;
    overflow-x: clip;
}



/* ===========================================
   UPLAND SITES - PREMIUM CORPORATE FOOTER
   =========================================== */

.upland-footer {
    --uf-navy: #071c35;
    --uf-dark: #06172b;
    --uf-red: #d91f3b;
    --uf-white: #ffffff;
    --uf-muted: #a9b9cc;

    font-family: 'Open Sans', sans-serif;
    background: var(--uf-navy);
    color: var(--uf-white);
    position: relative;
    overflow: hidden;
}

.upland-footer,
.upland-footer * {
    box-sizing: border-box;
}

.upland-footer a {
    text-decoration: none;
}

/* ===========================================
   UPPER CALL TO ACTION
   =========================================== */

.uf-cta {
    position: relative;
    background: linear-gradient(
        115deg,
        #102f54 0%,
        #0a2443 55%,
        #071c35 100%
    );
    border-bottom: 1px solid rgba(255,255,255,.09);
    overflow: hidden;
}

.uf-cta::after {
    content: "";
    position: absolute;
    top: -85px;
    right: -65px;
    width: 300px;
    height: 300px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 50%;
    pointer-events: none;
}

.uf-cta-inner {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    padding: 38px 0;
}

.uf-eyebrow {
    display: block;
    color: #ff667d;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2.4px;
    margin-bottom: 10px;
}

.uf-cta-content h2 {
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: clamp(23px, 2.5vw, 32px);
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 8px;
}

.uf-cta-content p {
    color: #c1cede;
    font-size: 13px;
    line-height: 1.7;
    margin: 0;
}

.uf-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    flex-shrink: 0;

    background: var(--uf-red);
    color: #ffffff !important;
    border: 1px solid var(--uf-red);
    border-radius: 5px;

    padding: 15px 22px;
    font-size: 12.5px;
    font-weight: 750;

    transition:
        background .3s ease,
        transform .3s ease,
        box-shadow .3s ease;
}

.uf-cta-button:hover {
    background: #b91530;
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(217,31,59,.25);
}

.uf-cta-button i {
    transition: transform .3s;
}

.uf-cta-button:hover i {
    transform: translateX(4px);
}

/* ===========================================
   MAIN FOOTER
   =========================================== */

.uf-main {
    position: relative;
    background: #071c35;
    padding: 65px 0 60px;
}

.uf-main::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(217,31,59,.4),
        transparent
    );
}

/* ===========================================
   COMPANY BRAND COLUMN
   =========================================== */

.uf-company {
    padding-right: 24px;
}

.uf-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    padding: 10px 15px;
    border-radius: 6px;
    margin-bottom: 24px;
}

.uf-logo img {
    display: block;
    width: 175px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.uf-description {
    color: var(--uf-muted);
    font-size: 12.8px;
    line-height: 1.95;
    margin: 0 0 22px;
    max-width: 320px;
}

.uf-values {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 15px;
}

.uf-values span {
    color: #dbe5ef;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.uf-values i {
    color: #ed425c;
    font-size: 10px;
}

/* ===========================================
   FOOTER COLUMN HEADINGS
   =========================================== */

.uf-column h4 {
    position: relative;
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 28px;
    padding-bottom: 16px;
}

.uf-column h4::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 30px;
    height: 3px;
    border-radius: 2px;
    background: var(--uf-red);
}

/* ===========================================
   FOOTER NAVIGATION LINKS
   =========================================== */

.uf-links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.uf-links li {
    margin: 0 0 15px;
}

.uf-links a {
    display: inline-flex;
    align-items: center;
    color: #aebed0;
    font-size: 12.5px;
    line-height: 1.6;
    transition:
        color .25s ease,
        transform .25s ease;
}

.uf-links a::before {
    content: "";
    width: 0;
    height: 2px;
    margin-right: 0;
    background: var(--uf-red);
    transition:
        width .25s ease,
        margin-right .25s ease;
}

.uf-links a:hover {
    color: #ffffff;
    transform: translateX(3px);
}

.uf-links a:hover::before {
    width: 12px;
    margin-right: 8px;
}

/* ===========================================
   CONTACT COLUMN
   =========================================== */

.uf-contact-intro {
    color: #aebed0;
    font-size: 12.5px;
    line-height: 1.85;
    margin: 0 0 22px;
}

.uf-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 20px;
}

.uf-contact-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255,255,255,.13);
    background: rgba(255,255,255,.055);
    color: #ff526d;
    border-radius: 6px;
    font-size: 12px;
}

.uf-contact-item strong {
    display: block;
    color: #ffffff;
    font-size: 12px;
    margin-bottom: 5px;
    font-weight: 700;
}

.uf-contact-item span,
.uf-contact-item a {
    display: block;
    color: #aebed0;
    font-size: 12px;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.uf-contact-item a:hover {
    color: #ffffff;
}

.uf-contact-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    color: #ffffff !important;
    font-size: 12px;
    font-weight: 700;

    padding: 11px 0 9px;
    margin-top: 2px;

    border-bottom: 1px solid var(--uf-red);
    transition: color .25s ease;
}

.uf-contact-action i {
    color: #ed425c;
    transform: rotate(45deg);
    transition: transform .25s;
}

.uf-contact-action:hover i {
    transform: rotate(45deg) translateY(-4px);
}

/* ===========================================
   BOTTOM COPYRIGHT BAR
   =========================================== */

.uf-bottom {
    background: #041326;
    border-top: 1px solid rgba(255,255,255,.08);
    padding: 21px 0;
}

.uf-bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.uf-copyright {
    color: #9bacc0;
    font-size: 11.5px;
    line-height: 1.8;
}

.uf-copyright a {
    color: #ffffff;
    font-weight: 700;
}

.uf-bottom-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    color: #9bacc0;
    font-size: 11.5px;
    line-height: 1.8;
}

.uf-bottom-right > a {
    color: #aebed0;
}

.uf-bottom-right > a:hover {
    color: #ffffff;
}

.uf-divider {
    width: 1px;
    height: 12px;
    background: rgba(255,255,255,.20);
}

.uf-developer {
    color: #9bacc0;
}

.uf-developer a {
    color: #ffffff;
    font-weight: 700;
    transition: color .25s;
}

.uf-developer a:hover {
    color: #ff5b73;
}

/* ===========================================
   BACK TO TOP BUTTON
   =========================================== */

.uf-back-to-top {
    position: fixed;
    right: 25px;
    bottom: 25px;
    z-index: 1050;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 47px;
    height: 47px;

    padding: 0;
    background: var(--uf-red);
    color: #ffffff;

    border: 1px solid rgba(255,255,255,.3);
    border-radius: 50%;

    font-size: 15px;
    cursor: pointer;

    box-shadow: 0 9px 25px rgba(7,28,53,.25);

    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);

    transition:
        opacity .3s ease,
        visibility .3s ease,
        transform .3s ease,
        background .3s ease;
}

.uf-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.uf-back-to-top:hover {
    background: #af102a;
    transform: translateY(-4px);
}

/* ===========================================
   TABLET RESPONSIVENESS
   =========================================== */

@media (max-width: 991px) {

    .uf-main {
        padding: 55px 0;
    }

    .uf-company {
        padding-right: 0;
    }

    .uf-cta-inner {
        padding: 34px 0;
    }

    .uf-bottom-inner {
        flex-direction: column;
        text-align: center;
        gap: 10px;
    }

    .uf-bottom-right {
        justify-content: center;
    }
}

/* ===========================================
   MOBILE RESPONSIVENESS
   =========================================== */

@media (max-width: 640px) {

    .uf-cta-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 22px;
        padding: 32px 0;
    }

    .uf-cta-content h2 {
        font-size: 24px;
    }

    .uf-cta-content p {
        font-size: 12px;
    }

    .uf-cta-button {
        padding: 13px 18px;
        font-size: 12px;
    }

    .uf-main {
        padding: 42px 0;
    }

    .uf-logo img {
        width: 155px;
    }

    .uf-description {
        max-width: 100%;
    }

    .uf-column h4 {
        font-size: 14px;
        margin-bottom: 22px;
    }

    .uf-links a {
        font-size: 12px;
    }

    .uf-bottom {
        padding: 19px 0;
    }

    .uf-bottom-right {
        gap: 8px 12px;
    }

    .uf-developer {
        flex-basis: 100%;
    }

    .uf-back-to-top {
        right: 16px;
        bottom: 18px;
        width: 42px;
        height: 42px;
    }
}

/* ===========================================
   ACCESSIBILITY
   =========================================== */

.upland-footer a:focus-visible,
.uf-back-to-top:focus-visible {
    outline: 2px solid #ff667d;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .upland-footer *,
    .uf-back-to-top {
        transition: none !important;
        animation: none !important;
    }
}


/* ======================================================
   UPLAND SITES - PROFESSIONAL HOMEPAGE CONTENT
   White / Soft Grey / Deep Navy / Corporate Red
   ====================================================== */

.us-home {
    --ush-navy: #0b2444;
    --ush-dark: #071c35;
    --ush-red: #d91f3b;
    --ush-grey: #f5f7fa;
    --ush-text: #657386;
    --ush-border: #e8edf2;
    font-family: 'Open Sans', Arial, sans-serif;
    color: var(--ush-navy);
    background: #fff;
}

.us-home,
.us-home * {
    box-sizing: border-box;
}

.us-home a {
    text-decoration: none;
}

.us-home img {
    max-width: 100%;
}

/* ------------------------------------------
   GLOBAL TYPOGRAPHY AND SPACING
   ------------------------------------------ */

.ush-section {
    padding: 92px 0;
}

.ush-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ush-red);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 17px;
}

.ush-eyebrow::before {
    content: "";
    width: 25px;
    height: 2px;
    background: var(--ush-red);
}

.ush-heading {
    font-family: 'Poppins', sans-serif;
    color: var(--ush-navy);
    font-size: clamp(29px, 3vw, 42px);
    font-weight: 650;
    letter-spacing: -1.2px;
    line-height: 1.28;
    margin: 0 0 22px;
}

.ush-heading span {
    color: var(--ush-red);
}

.ush-section-intro {
    max-width: 690px;
    margin: 0 auto 45px;
}

.ush-section-intro .ush-eyebrow {
    justify-content: center;
}

.ush-section-intro p {
    color: var(--ush-text);
    font-size: 14px;
    line-height: 1.85;
    margin: 0;
}

.ush-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 22px;
    min-height: 47px;
    padding: 13px 21px;
    font-size: 12px;
    font-weight: 750;
    border-radius: 4px;
    transition: all .3s ease;
}

.ush-button i {
    transition: transform .25s ease;
}

.ush-button:hover i {
    transform: translateX(4px);
}

.ush-button-navy {
    background: var(--ush-navy);
    color: #fff !important;
}

.ush-button-navy:hover {
    background: #173c68;
    color: #fff;
    transform: translateY(-2px);
}

.ush-button-red {
    background: var(--ush-red);
    color: #fff !important;
}

.ush-button-red:hover {
    background: #b91530;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(217,31,59,.18);
}

.ush-text-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--ush-navy) !important;
    font-size: 12px;
    font-weight: 800;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--ush-red);
    white-space: nowrap;
    transition: gap .25s ease;
}

.ush-text-link:hover {
    gap: 18px;
}

.ush-text-link i {
    color: var(--ush-red);
}

.ush-split-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 38px;
}

.ush-split-heading .ush-heading {
    max-width: 660px;
    margin-bottom: 0;
}

/* ==========================================
   SECTION 1 - ABOUT US
   ========================================== */

.ush-about {
    background: #ffffff;
}

.ush-about-visual {
    position: relative;
    padding: 0 28px 28px 0;
}

.ush-about-photo {
    position: relative;
    height: 445px;
    overflow: hidden;
    border-radius: 6px;
    background: #e7edf3;
    z-index: 2;
}

.ush-about-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .65s ease;
}

.ush-about-visual:hover img {
    transform: scale(1.045);
}

.ush-photo-accent {
    position: absolute;
    width: 73%;
    height: 78%;
    bottom: 0;
    right: 0;
    border: 7px solid #eaf0f5;
    border-radius: 6px;
    z-index: 1;
}

.ush-photo-tag {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 12px;
    right: 0;
    bottom: 52px;
    z-index: 3;
    background: var(--ush-navy);
    padding: 16px 20px;
    border-left: 4px solid var(--ush-red);
    border-radius: 4px;
    box-shadow: 0 12px 25px rgba(0,0,0,.15);
}

.ush-photo-tag > i {
    color: #ff667d;
    font-size: 23px;
}

.ush-photo-tag strong {
    display: block;
    color: #fff;
    font-size: 12px;
    margin-bottom: 5px;
}

.ush-photo-tag span {
    display: block;
    color: #c0d0e0;
    font-size: 10px;
}

.ush-about-copy {
    padding-left: 10px;
}

.ush-about-copy .ush-lead {
    color: var(--ush-navy);
    font-size: 16px;
    font-weight: 650;
    line-height: 1.7;
}

.ush-about-copy p:not(.ush-lead) {
    color: var(--ush-text);
    font-size: 13.5px;
    line-height: 1.95;
    margin-bottom: 16px;
}

.ush-about-points {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 13px 15px;
    margin: 25px 0 30px;
}

.ush-about-points div {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #263e59;
    font-size: 12px;
    font-weight: 700;
}

.ush-about-points i {
    display: grid;
    place-items: center;
    background: #fff0f2;
    color: var(--ush-red);
    width: 23px;
    height: 23px;
    border-radius: 50%;
    flex-shrink: 0;
    font-size: 10px;
}

/* ==========================================
   SECTION 2 - WHY CHOOSE US
   ========================================== */

.ush-why {
    background: var(--ush-grey);
    border-top: 1px solid var(--ush-border);
    border-bottom: 1px solid var(--ush-border);
}

.ush-benefit {
    position: relative;
    height: 100%;
    min-height: 275px;
    background: #ffffff;
    padding: 32px 25px 30px;
    border: 1px solid #e9edf2;
    border-radius: 6px;
    overflow: hidden;
    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}

.ush-benefit:hover {
    transform: translateY(-7px);
    box-shadow: 0 16px 38px rgba(10,36,68,.08);
    border-color: #d9e3ee;
}

.ush-benefit-icon {
    width: 57px;
    height: 57px;
    display: grid;
    place-items: center;
    background: #f0f5fa;
    color: #245a9b;
    font-size: 22px;
    border-radius: 9px;
    margin-bottom: 29px;
}

.ush-benefit-number {
    position: absolute;
    top: 30px;
    right: 23px;
    font-size: 12px;
    font-weight: 800;
    color: #c8d2dc;
    letter-spacing: 1px;
}

.ush-benefit h3 {
    color: var(--ush-navy);
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 650;
    margin: 0 0 14px;
}

.ush-benefit p {
    color: var(--ush-text);
    font-size: 12.5px;
    line-height: 1.85;
    margin: 0;
}

.ush-benefit::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 3px;
    background: var(--ush-red);
    transition: width .3s ease;
}

.ush-benefit:hover::after {
    width: 100%;
}

/* ==========================================
   SECTION 3 - LAND OPPORTUNITIES
   ========================================== */

.ush-opportunities {
    background: #ffffff;
}

.ush-estate-feature {
    background: #f5f7f9;
    border: 1px solid #e8edf2;
    border-radius: 7px;
    overflow: hidden;
}

.ush-estate-image {
    position: relative;
    height: 100%;
    min-height: 430px;
    background: #e5eaef;
    overflow: hidden;
}

.ush-estate-image img {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    object-fit: cover;
    transition: transform .6s ease;
}

.ush-estate-feature:hover .ush-estate-image img {
    transform: scale(1.035);
}

.ush-image-chip {
    position: absolute;
    z-index: 2;
    left: 25px;
    bottom: 25px;
    background: rgba(7,28,53,.94);
    color: #fff;
    padding: 12px 17px;
    border-left: 3px solid var(--ush-red);
    border-radius: 3px;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: 1.2px;
}

.ush-estate-content {
    padding: 52px 43px;
}

.ush-mini-label {
    display: block;
    color: var(--ush-red);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.6px;
    margin-bottom: 17px;
}

.ush-estate-content h3 {
    font-family: 'Poppins', sans-serif;
    color: var(--ush-navy);
    font-size: clamp(24px, 2.4vw, 32px);
    line-height: 1.35;
    font-weight: 650;
    margin-bottom: 20px;
}

.ush-estate-content p {
    color: var(--ush-text);
    font-size: 13px;
    line-height: 1.9;
    margin-bottom: 22px;
}

.ush-estate-content ul {
    padding: 0;
    margin: 0 0 30px;
    list-style: none;
}

.ush-estate-content li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 13px;
    color: #334860;
    font-size: 12px;
    line-height: 1.65;
    font-weight: 650;
}

.ush-estate-content li i {
    color: var(--ush-red);
    font-size: 14px;
    margin-top: 3px;
}

/* ==========================================
   SECTION 4 - OWNERSHIP PROCESS
   ========================================== */

.ush-process {
    background: #f7f8fa;
    border-top: 1px solid #edf0f4;
}

.ush-step {
    position: relative;
    height: 100%;
    text-align: center;
    padding: 25px 17px 15px;
}

.ush-step-number {
    position: absolute;
    top: 2px;
    right: 20px;
    color: #d6dfe8;
    font-family: 'Poppins', sans-serif;
    font-size: 34px;
    font-weight: 750;
}

.ush-step-icon {
    width: 74px;
    height: 74px;
    margin: 0 auto 25px;
    display: grid;
    place-items: center;
    background: #ffffff;
    color: #20548e;
    border: 1px solid #e1e8ef;
    border-radius: 50%;
    font-size: 24px;
    box-shadow: 0 9px 22px rgba(14,41,74,.035);
    transition: all .3s ease;
}

.ush-step:hover .ush-step-icon {
    background: var(--ush-navy);
    border-color: var(--ush-navy);
    color: #ffffff;
    transform: translateY(-5px);
}

.ush-step h3 {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    font-weight: 650;
    color: var(--ush-navy);
    margin-bottom: 13px;
}

.ush-step p {
    color: var(--ush-text);
    font-size: 12.5px;
    line-height: 1.85;
    margin: 0 auto;
    max-width: 250px;
}

.ush-process-note {
    color: #7a8897;
    font-size: 11.5px;
    line-height: 1.6;
    margin-top: 37px;
}

.ush-process-note i {
    color: var(--ush-red);
    margin-right: 6px;
}

/* ==========================================
   SECTION 5 - REFER & EARN COMMISSION
   PRIMARY PROMOTIONAL SECTION
   ========================================== */

.ush-referral {
    background: #ffffff;
    padding: 90px 0;
}

.ush-referral-panel {
    position: relative;
    padding: 67px 68px;
    background:
        radial-gradient(
            circle at 93% 7%,
            rgba(56,101,151,.26),
            transparent 37%
        ),
        linear-gradient(
            115deg,
            #071c35 0%,
            #0b294c 100%
        );
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 20px 45px rgba(7,28,53,.12);
}

.ush-referral-panel::before {
    content: "";
    position: absolute;
    top: -165px;
    right: -130px;
    width: 460px;
    height: 460px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 50%;
    pointer-events: none;
}

.ush-referral-panel::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    height: 4px;
    width: 34%;
    background: var(--ush-red);
}

.ush-referral-panel .row {
    position: relative;
    z-index: 2;
}

.ush-referral-tag {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: rgba(255,255,255,.085);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 30px;
    color: #fff;
    padding: 10px 15px;
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: 1.3px;
    margin-bottom: 25px;
}

.ush-referral-tag i {
    color: #ff6b83;
}

.ush-referral h2 {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(32px, 3.8vw, 49px);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -1.5px;
    color: #ffffff;
    margin: 0 0 22px;
}

.ush-referral h2 span {
    display: block;
    color: #ff6078;
}

.ush-referral-lead {
    font-size: 16px;
    font-weight: 650;
    color: #ffffff;
    line-height: 1.7;
    margin: 0 0 13px;
}

.ush-referral-copy {
    font-size: 13px;
    color: #bfcede;
    line-height: 1.95;
    max-width: 540px;
    margin: 0 0 29px;
}

.ush-referral-copy strong {
    color: #fff;
}

.ush-referral-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
}

.ush-referral-secondary {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #ffffff !important;
    font-size: 12px;
    font-weight: 700;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,.45);
}

.ush-referral-secondary:hover {
    color: #ff8093 !important;
}

.ush-referral-secondary i {
    font-size: 11px;
}

/* Referral reward card */

.ush-referral-card {
    background: #ffffff;
    border-radius: 8px;
    padding: 35px 30px;
    box-shadow: 0 15px 35px rgba(0,0,0,.12);
}

.ush-referral-card-icon {
    width: 55px;
    height: 55px;
    display: grid;
    place-items: center;
    background: #fff0f2;
    color: var(--ush-red);
    font-size: 23px;
    border-radius: 10px;
    margin-bottom: 22px;
}

.ush-card-kicker {
    display: block;
    color: var(--ush-red);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.6px;
    margin-bottom: 10px;
}

.ush-referral-card h3 {
    font-family: 'Poppins', sans-serif;
    font-size: 23px;
    line-height: 1.35;
    font-weight: 650;
    color: var(--ush-navy);
    margin: 0 0 23px;
}

.ush-referral-choice {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 8px;
    margin-bottom: 23px;
}

.ush-referral-choice > div:not(.ush-choice-or) {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 11px;
    background: #f5f7fa;
    border: 1px solid #e9edf2;
    border-radius: 6px;
    min-height: 115px;
    padding: 15px 8px;
}

.ush-referral-choice i {
    color: #225791;
    font-size: 23px;
}

.ush-referral-choice span {
    color: #223c5b;
    font-size: 11px;
    font-weight: 750;
}

.ush-choice-or {
    color: #92a0ae;
    font-size: 10px;
    font-weight: 800;
}

.ush-referral-card > p {
    color: #778596;
    font-size: 11px;
    line-height: 1.75;
    margin: 0;
}

/* ==========================================
   SECTION 6 - TESTIMONIALS
   ========================================== */

.ush-testimonials {
    background: #f7f8fa;
    border-top: 1px solid #eef0f3;
}

.ush-testimonial-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 290px;
    background: #ffffff;
    padding: 34px 30px 29px;
    border: 1px solid #e8edf2;
    border-radius: 7px;
    transition:
        box-shadow .3s ease,
        transform .3s ease;
}

.ush-testimonial-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 32px rgba(7,28,53,.07);
}

.ush-quote-icon {
    color: var(--ush-red);
    font-size: 23px;
    margin-bottom: 19px;
}

.ush-testimonial-card > p {
    color: #40556b;
    font-size: 13px;
    line-height: 1.95;
    margin: 0 0 28px;
    flex-grow: 1;
}

.ush-testimonial-person {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 19px;
    border-top: 1px solid #edf0f3;
}

.ush-avatar {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    border-radius: 50%;
    background: #e9eff6;
    color: #225791;
    font-size: 11px;
    font-weight: 800;
}

.ush-testimonial-person strong {
    display: block;
    color: var(--ush-navy);
    font-size: 12px;
    font-weight: 750;
    margin-bottom: 3px;
}

.ush-testimonial-person small {
    display: block;
    color: #8290a0;
    font-size: 10.5px;
}

/* ==========================================
   SECTION 7 - FINAL CTA
   ========================================== */

.ush-final-cta {
    background: #ffffff;
    padding: 57px 0;
}

.ush-final-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
}

.ush-final-cta .ush-eyebrow {
    margin-bottom: 12px;
}

.ush-final-cta h2 {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(22px, 2.5vw, 31px);
    line-height: 1.35;
    font-weight: 650;
    color: var(--ush-navy);
    margin: 0 0 9px;
}

.ush-final-cta p {
    color: var(--ush-text);
    font-size: 12.8px;
    line-height: 1.8;
    margin: 0;
}

.ush-final-cta .ush-button {
    flex-shrink: 0;
}

/* ==========================================
   TABLETS
   ========================================== */

@media (max-width: 991px) {

    .ush-section {
        padding: 70px 0;
    }

    .ush-about-copy {
        padding-left: 0;
    }

    .ush-about-photo {
        height: 390px;
    }

    .ush-estate-image {
        min-height: 370px;
    }

    .ush-estate-content {
        padding: 37px 35px;
    }

    .ush-referral {
        padding: 70px 0;
    }

    .ush-referral-panel {
        padding: 48px 43px;
    }

    .ush-final-cta-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 23px;
    }
}

/* ==========================================
   MOBILE PHONES
   ========================================== */

@media (max-width: 640px) {

    .ush-section {
        padding: 54px 0;
    }

    .ush-heading {
        font-size: 28px;
        letter-spacing: -.7px;
    }

    .ush-section-intro {
        margin-bottom: 32px;
    }

    .ush-section-intro p {
        font-size: 12.5px;
    }

    .ush-about-visual {
        padding-right: 15px;
        padding-bottom: 17px;
    }

    .ush-about-photo {
        height: 300px;
    }

    .ush-photo-tag {
        bottom: 32px;
        padding: 12px 13px;
    }

    .ush-photo-tag strong {
        font-size: 10.5px;
    }

    .ush-photo-tag span {
        font-size: 9px;
    }

    .ush-about-copy .ush-lead {
        font-size: 14px;
    }

    .ush-about-copy p:not(.ush-lead) {
        font-size: 12.5px;
    }

    .ush-about-points {
        grid-template-columns: 1fr;
    }

    .ush-benefit {
        min-height: 0;
        padding: 27px 23px;
    }

    .ush-benefit-icon {
        margin-bottom: 20px;
    }

    .ush-split-heading {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        margin-bottom: 27px;
    }

    .ush-estate-image {
        min-height: 280px;
    }

    .ush-estate-content {
        padding: 30px 25px;
    }

    .ush-estate-content h3 {
        font-size: 25px;
    }

    .ush-step {
        padding: 17px 12px;
    }

    .ush-step-number {
        right: 25%;
    }

    .ush-referral {
        padding: 55px 0;
    }

    .ush-referral-panel {
        padding: 34px 24px;
        border-radius: 7px;
    }

    .ush-referral h2 {
        font-size: 33px;
        letter-spacing: -.8px;
    }

    .ush-referral-lead {
        font-size: 14px;
    }

    .ush-referral-copy {
        font-size: 12.5px;
    }

    .ush-referral-actions {
        gap: 19px;
    }

    .ush-referral-card {
        padding: 27px 23px;
    }

    .ush-referral-card h3 {
        font-size: 21px;
    }

    .ush-testimonial-card {
        min-height: 0;
        padding: 27px 24px;
    }

    .ush-final-cta {
        padding: 46px 0;
    }

    .ush-final-cta h2 {
        font-size: 23px;
    }
}

/* ==========================================
   ACCESSIBILITY & REDUCED MOTION
   ========================================== */

.us-home a:focus-visible {
    outline: 3px solid var(--ush-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .us-home *,
    .us-home *::before,
    .us-home *::after {
        transition: none !important;
        animation: none !important;
    }
}



/* ============================================
   UPLAND SITES - WHY CHOOSE US
   PREMIUM BACKGROUND IMAGE + OVERLAY
   ============================================ */

.ush-why-premium {
    --why-navy: #071c35;
    --why-red: #d91f3b;
    --why-blue: #235a9a;

    position: relative;
    isolation: isolate;

    width: 100%;
    padding: 90px 0 75px;

    background-image: url('../img/n2.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    overflow: hidden;
}

/* Navy overlay above photograph */
.ush-why-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;

    background: linear-gradient(
        115deg,
        rgba(5, 22, 43, .94) 0%,
        rgba(7, 28, 53, .87) 50%,
        rgba(7, 28, 53, .78) 100%
    );
}

/* Section content */
.ush-why-container {
    position: relative;
    z-index: 2;
}

/* ============================================
   SECTION INTRODUCTION
   ============================================ */

.ush-why-heading {
    max-width: 760px;
    margin: 0 auto 48px;
}

.ush-why-eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    color: #ff7288;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2.3px;

    margin-bottom: 19px;
}

.ush-why-accent-line {
    width: 22px;
    height: 2px;
    background: var(--why-red);
}

.ush-why-heading h2 {
    color: #ffffff;
    font-family: 'Poppins', sans-serif;
    font-size: clamp(29px, 3.4vw, 44px);
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: -1.1px;
    margin: 0 0 20px;
}

.ush-why-heading h2 span {
    display: block;
    color: #ffffff;
    font-weight: 400;
}

.ush-why-heading p {
    max-width: 630px;
    margin: 0 auto;
    color: #d4e0ed;
    font-size: 13.5px;
    line-height: 1.85;
}

/* ============================================
   FEATURE CARDS
   ============================================ */

.ush-why-card {
    position: relative;
    display: flex;
    flex-direction: column;

    height: 100%;
    min-height: 275px;

    padding: 30px 26px 33px;

    background: rgba(255,255,255,.96);
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 7px;

    box-shadow: 0 16px 35px rgba(0,0,0,.11);
    overflow: hidden;

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        background .35s ease;
}

.ush-why-card:hover {
    transform: translateY(-9px);
    background: #ffffff;
    box-shadow: 0 22px 43px rgba(0,0,0,.20);
}

/* Card top row */
.ush-why-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;

    margin-bottom: 27px;
}

/* Icon */
.ush-why-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 59px;
    height: 59px;

    background: #edf3f8;
    color: var(--why-blue);

    border-radius: 9px;
    font-size: 22px;

    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease;
}

.ush-why-card:hover .ush-why-icon {
    background: var(--why-navy);
    color: #ffffff;
    transform: rotate(-4deg);
}

/* Card number */
.ush-why-card-number {
    font-family: 'Poppins', sans-serif;
    color: #cbd6e1;
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -1px;
}

/* Text */
.ush-why-card-body {
    flex-grow: 1;
}

.ush-why-card h3 {
    color: var(--why-navy);
    font-family: 'Poppins', sans-serif;

    font-size: 16px;
    font-weight: 650;
    line-height: 1.4;

    margin: 0 0 14px;
}

.ush-why-card p {
    color: #627488;
    font-family: 'Open Sans', sans-serif;

    font-size: 12.5px;
    font-weight: 400;
    line-height: 1.85;

    margin: 0;
}

/* Bottom red detail */
.ush-why-card-bottom {
    position: absolute;
    left: 0;
    bottom: 0;

    width: 45px;
    height: 3px;

    background: var(--why-red);
    transition: width .4s ease;
}

.ush-why-card:hover .ush-why-card-bottom {
    width: 100%;
}

/* ============================================
   BOTTOM CALL TO ACTION
   ============================================ */

.ush-why-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    flex-wrap: wrap;
    margin-top: 40px;
}

.ush-why-footer > span {
    color: #d1ddec;
    font-size: 12.5px;
}

.ush-why-footer a {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    color: #ffffff !important;
    border-bottom: 1px solid #f14c65;

    padding: 6px 0;

    font-size: 12px;
    font-weight: 750;
    text-decoration: none;

    transition:
        color .25s ease,
        gap .25s ease;
}

.ush-why-footer a:hover {
    color: #ff7188 !important;
    gap: 16px;
}

.ush-why-footer a i {
    color: #ff7188;
    font-size: 11px;
}

/* ============================================
   TABLET
   ============================================ */

@media (max-width: 991px) {

    .ush-why-premium {
        padding: 75px 0 65px;
    }

    .ush-why-heading {
        margin-bottom: 38px;
    }

    .ush-why-card {
        min-height: 255px;
    }
}

/* ============================================
   MOBILE
   ============================================ */

@media (max-width: 640px) {

    .ush-why-premium {
        padding: 58px 0 50px;
        background-position: center;
    }

    .ush-why-heading {
        margin-bottom: 32px;
    }

    .ush-why-heading h2 {
        font-size: 29px;
        letter-spacing: -.6px;
    }

    .ush-why-heading p {
        font-size: 12.5px;
    }

    .ush-why-eyebrow {
        font-size: 9px;
        letter-spacing: 1.5px;
    }

    .ush-why-card {
        min-height: 0;
        padding: 26px 24px 29px;
    }

    .ush-why-card-top {
        margin-bottom: 20px;
    }

    .ush-why-icon {
        width: 50px;
        height: 50px;
        font-size: 20px;
    }

    .ush-why-card-number {
        font-size: 28px;
    }

    .ush-why-card h3 {
        font-size: 15px;
    }

    .ush-why-card p {
        font-size: 12px;
    }

    .ush-why-footer {
        gap: 12px;
        margin-top: 30px;
    }
}

/* ============================================
   ACCESSIBILITY
   ============================================ */

.ush-why-premium a:focus-visible {
    outline: 2px solid #ff7188;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .ush-why-premium *,
    .ush-why-premium *::before,
    .ush-why-premium *::after {
        transition: none !important;
        animation: none !important;
    }
}



/* =====================================================
   UPLAND SITES | ABOUT PAGE
   Editorial Real Estate Design
   Space Grotesk / Navy / Red / White / Soft Grey
   ===================================================== */

.ua-about-page {
    --ua-navy: #0b2444;
    --ua-deep: #071c35;
    --ua-red: #d91f3b;
    --ua-grey: #f5f6f7;
    --ua-text: #647184;
    --ua-line: #e4e9ee;
    color: var(--ua-navy);
    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.ua-about-page *,
.ua-about-page *::before,
.ua-about-page *::after {
    box-sizing: border-box;
}

.ua-about-page a {
    text-decoration: none;
}

.ua-about-page img {
    max-width: 100%;
}

.ua-section {
    padding: 105px 0;
}

.ua-kicker {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--ua-red);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.ua-kicker::before {
    content: "";
    width: 25px;
    height: 2px;
    background: currentColor;
}

.ua-section-heading {
    font-size: clamp(34px, 3.8vw, 54px);
    line-height: 1.15;
    letter-spacing: -2px;
    font-weight: 700;
    color: var(--ua-navy);
    margin: 0 0 28px;
}

.ua-section-heading span {
    display: block;
    font-weight: 400;
}

.ua-about-page p {
    font-family: 'Space Grotesk', sans-serif;
}

.ua-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 27px;
    color: var(--ua-navy);
    font-size: 14px;
    font-weight: 700;
    padding: 10px 0;
    border-bottom: 2px solid var(--ua-red);
    transition: gap .3s, color .3s;
}

.ua-link-arrow:hover {
    gap: 39px;
    color: var(--ua-red);
}

.ua-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    padding: 15px 24px;
    min-height: 50px;
    font-size: 13px;
    font-weight: 700;
    border-radius: 3px;
    transition: transform .3s, background .3s, box-shadow .3s;
}

.ua-button:hover {
    transform: translateY(-3px);
}

.ua-button-red {
    background: var(--ua-red);
    color: #fff !important;
}

.ua-button-red:hover {
    background: #b91530;
    box-shadow: 0 13px 24px rgba(217,31,59,.2);
}

.ua-button-light {
    background: #fff;
    color: var(--ua-navy) !important;
}

.ua-button-light:hover {
    background: #f0f3f6;
}

/* =====================================================
   01. PAGE BANNER
   ===================================================== */

.ua-page-hero {
    min-height: 385px;
    position: relative;
    display: flex;
    align-items: center;
    background: var(--ua-deep);
    overflow: hidden;
}

.ua-page-hero-image {
    position: absolute;
    inset: 0;
    background: url('../img/about-banner.jpg')
                center 52% / cover no-repeat;
    transform: scale(1.04);
    transition: transform 9s ease;
}

.ua-page-hero:hover .ua-page-hero-image {
    transform: scale(1);
}

.ua-page-hero-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(5,19,37,.96) 0%,
        rgba(8,29,53,.85) 40%,
        rgba(8,29,53,.33) 100%
    );
}

.ua-page-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 80px;
    padding-bottom: 75px;
}

.ua-hero-eyebrow {
    color: #ff7188;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
}

.ua-page-hero h1 {
    color: #fff;
    font-size: clamp(48px, 5.5vw, 76px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -3.5px;
    margin: 20px 0;
}

.ua-page-hero h1 em {
    font-style: normal;
    font-weight: 400;
}

.ua-page-hero-content p {
    color: #cfdae8;
    font-size: 15px;
    max-width: 480px;
    line-height: 1.8;
    margin: 0 0 28px;
}

.ua-breadcrumb {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0;
    margin: 0;
    list-style: none;
    font-size: 12px;
}

.ua-breadcrumb a {
    color: #e7edf5;
}

.ua-breadcrumb a:hover {
    color: #ff7188;
}

.ua-breadcrumb li {
    color: #ff7188;
}

.ua-breadcrumb li:nth-child(2) {
    color: #9bacbf;
}

.ua-hero-side-label {
    position: absolute;
    right: 28px;
    bottom: 36px;
    z-index: 2;
    color: rgba(255,255,255,.65);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 3px;
    writing-mode: vertical-rl;
}

/* =====================================================
   02. INTRODUCTION
   ===================================================== */

.ua-introduction {
    background: #fff;
}

.ua-intro-images {
    position: relative;
    padding: 0 30px 35px 0;
}

.ua-intro-main-photo {
    position: relative;
    z-index: 2;
    height: 555px;
    margin: 0;
    overflow: hidden;
    background: #e8edf2;
}

.ua-intro-main-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .85s cubic-bezier(.2,.7,.2,1);
}

.ua-intro-images:hover img {
    transform: scale(1.055);
}

.ua-intro-geometry {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 65%;
    height: 70%;
    background: #edf1f5;
    z-index: 0;
}

.ua-intro-photo-label {
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 65px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 24px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(8,29,53,.12);
}

.ua-intro-label-line {
    width: 3px;
    height: 36px;
    background: var(--ua-red);
}

.ua-intro-photo-label strong {
    display: block;
    color: var(--ua-navy);
    font-size: 12px;
    letter-spacing: .8px;
}

.ua-intro-photo-label small {
    display: block;
    color: #7b8999;
    font-size: 11px;
    margin-top: 5px;
}

.ua-intro-copy {
    padding-left: 32px;
}

.ua-intro-lead {
    color: #233f5b;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.6;
    margin-bottom: 19px;
}

.ua-intro-copy > p:not(.ua-intro-lead) {
    font-size: 14px;
    line-height: 1.95;
    color: var(--ua-text);
    margin-bottom: 17px;
}

.ua-intro-principle {
    display: flex;
    align-items: flex-start;
    gap: 17px;
    border-left: 2px solid var(--ua-red);
    background: #f7f8fa;
    padding: 22px 25px;
    margin: 30px 0 25px;
}

.ua-principle-mark {
    color: var(--ua-red);
    font-size: 17px;
}

.ua-intro-principle p {
    color: var(--ua-navy);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.6;
    margin: 0;
}

/* =====================================================
   03. OUR STORY
   ===================================================== */

.ua-story {
    background: #f5f6f7;
}

.ua-story-grid {
    display: grid;
    grid-template-columns: 42% 1fr;
    gap: 80px;
}

.ua-story-aside {
    position: relative;
}

.ua-story-aside .ua-section-heading {
    max-width: 430px;
}

.ua-story-index {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 55px;
    color: #8995a3;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

.ua-story-index-line {
    width: 65px;
    height: 1px;
    background: #c5cdd6;
}

.ua-story-text {
    padding-top: 10px;
    border-top: 1px solid #cdd6df;
}

.ua-story-text p {
    color: #657285;
    font-size: 14px;
    line-height: 1.95;
    margin-bottom: 19px;
}

.ua-story-text .ua-story-opening {
    color: var(--ua-navy);
    font-size: 21px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: -.4px;
    margin-bottom: 25px;
}

.ua-story-quote {
    position: relative;
    margin-top: 78px;
    padding: 52px 9%;
    background: #fff;
    border-left: 4px solid var(--ua-red);
}

.ua-quote-symbol {
    position: absolute;
    top: 8px;
    left: 30px;
    font-family: Georgia, serif;
    font-size: 100px;
    line-height: 1;
    color: #edf0f4;
}

.ua-story-quote blockquote {
    position: relative;
    margin: 0 0 23px;
    color: var(--ua-navy);
    font-size: clamp(24px, 2.9vw, 39px);
    line-height: 1.4;
    letter-spacing: -1.5px;
    font-weight: 500;
    max-width: 850px;
}

.ua-quote-attribution {
    color: var(--ua-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

/* =====================================================
   04. PURPOSE / MISSION / VISION
   ===================================================== */



/* ============================================
   UPLAND SITES - COMPACT MISSION & VISION
   ============================================ */

.ua-about-page .ua-purpose-compact {
    background: #f7f8fa;
    padding: 62px 0 66px;
    border-top: 1px solid #e9edf2;
    border-bottom: 1px solid #e9edf2;
}

/* Section heading */
.ua-purpose-compact .ua-purpose-header {
    text-align: center;
    margin-bottom: 34px;
}

.ua-purpose-compact .ua-purpose-header h2 {
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(27px, 2.8vw, 35px);
    font-weight: 700;
    color: #0b2444;
    letter-spacing: -1px;
    line-height: 1.25;
    margin: 0;
}

.ua-purpose-compact .ua-purpose-header h2 span {
    font-weight: 400;
}

/* Two-column layout */
.ua-purpose-compact .ua-purpose-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
    border: 1px solid #e4eaf0;
    border-radius: 5px;
    overflow: hidden;
}

/* Individual column */
.ua-purpose-compact .ua-purpose-item {
    position: relative;
    padding: 30px 40px 34px;
    min-width: 0;
    transition: background .3s ease;
}

/* Divider between columns */
.ua-purpose-compact .ua-purpose-item:first-child {
    border-right: 1px solid #e4eaf0;
}

/* Subtle hover */
.ua-purpose-compact .ua-purpose-item:hover {
    background: #fbfcfd;
}

/* Icon and number */
.ua-purpose-compact .ua-purpose-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.ua-purpose-compact .ua-purpose-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    background: #eef3f8;
    color: #235a9a;
    border-radius: 5px;
    font-size: 18px;
    transition: background .3s, color .3s;
}

.ua-purpose-compact .ua-purpose-item:hover
.ua-purpose-icon {
    background: #0b2444;
    color: #ffffff;
}

.ua-purpose-compact .ua-purpose-num {
    color: #a0acb9;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.3px;
}

/* Headings */
.ua-purpose-compact .ua-purpose-item h3 {
    font-family: 'Space Grotesk', sans-serif;
    color: #0b2444;
    font-size: 21px;
    font-weight: 700;
    margin: 0 0 12px;
    line-height: 1.3;
}

/* Statements */
.ua-purpose-compact .ua-purpose-item p {
    color: #5f7083;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 13.5px;
    line-height: 1.8;
    margin: 0;
    padding: 0;
    min-height: 0;
    max-width: 490px;
}

/* Bottom red accent */
.ua-purpose-compact .ua-purpose-accent {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 48px;
    height: 3px;
    background: #d91f3b;
    transition: width .4s ease;
}

.ua-purpose-compact .ua-purpose-item:hover
.ua-purpose-accent {
    width: 100%;
}

/* ============================================
   TABLET
   ============================================ */

@media (max-width: 991px) {

    .ua-about-page .ua-purpose-compact {
        padding: 54px 0;
    }

    .ua-purpose-compact .ua-purpose-item {
        padding: 27px 26px 32px;
    }
}

/* ============================================
   MOBILE
   ============================================ */

@media (max-width: 640px) {

    .ua-about-page .ua-purpose-compact {
        padding: 45px 0;
    }

    .ua-purpose-compact .ua-purpose-header {
        margin-bottom: 25px;
    }

    .ua-purpose-compact .ua-purpose-header h2 {
        font-size: 28px;
    }

    .ua-purpose-compact .ua-purpose-layout {
        grid-template-columns: 1fr;
    }

    .ua-purpose-compact .ua-purpose-item {
        padding: 26px 24px 30px;
    }

    .ua-purpose-compact .ua-purpose-item:first-child {
        border-right: 0;
        border-bottom: 1px solid #e4eaf0;
    }

    .ua-purpose-compact .ua-purpose-item h3 {
        font-size: 19px;
    }

    .ua-purpose-compact .ua-purpose-item p {
        font-size: 13px;
        line-height: 1.75;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .ua-purpose-compact .ua-purpose-item,
    .ua-purpose-compact .ua-purpose-icon,
    .ua-purpose-compact .ua-purpose-accent {
        transition: none !important;
    }
}





/* =====================================================
   05. SITE SELECTION - EDITORIAL ROWS
   ===================================================== */

.ua-selection {
    background: #fff;
}

.ua-selection-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 60px;
    margin-bottom: 50px;
}

.ua-selection-heading > div {
    max-width: 620px;
}

.ua-selection-heading .ua-section-heading {
    margin-bottom: 0;
}

.ua-selection-heading > p {
    max-width: 350px;
    color: var(--ua-text);
    font-size: 14px;
    line-height: 1.85;
    margin-bottom: 5px;
}

.ua-selection-list {
    border-top: 1px solid #d7dfe7;
}

.ua-selection-item {
    display: grid;
    grid-template-columns: 90px 1fr 75px;
    align-items: center;
    gap: 30px;
    padding: 31px 15px;
    border-bottom: 1px solid #d7dfe7;
    transition: background .3s, padding .3s;
}

.ua-selection-item:hover {
    background: #f6f8fa;
    padding-left: 27px;
}

.ua-selection-number {
    font-size: 14px;
    color: var(--ua-red);
    font-weight: 700;
}

.ua-selection-copy {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) 1.2fr;
    align-items: center;
    gap: 35px;
}

.ua-selection-copy h3 {
    color: var(--ua-navy);
    font-size: 21px;
    font-weight: 600;
    letter-spacing: -.5px;
    margin: 0;
}

.ua-selection-copy p {
    color: var(--ua-text);
    font-size: 13px;
    line-height: 1.75;
    margin: 0;
}

.ua-selection-icon {
    display: grid;
    place-items: center;
    width: 55px;
    height: 55px;
    border: 1px solid #dde4ec;
    border-radius: 50%;
    color: #426489;
    font-size: 18px;
    transition: all .3s;
}

.ua-selection-item:hover .ua-selection-icon {
    background: var(--ua-navy);
    border-color: var(--ua-navy);
    color: #fff;
    transform: rotate(-10deg);
}

/* =====================================================
   06. IMAGE INTERLUDE
   ===================================================== */

.ua-image-interlude {
    position: relative;
    background: url('../img/about-landscape.jpg')
                center / cover no-repeat;
    min-height: 400px;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.ua-interlude-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(7,28,53,.92),
        rgba(7,28,53,.60) 65%,
        rgba(7,28,53,.22)
    );
}

.ua-interlude-content {
    position: relative;
    z-index: 2;
    padding-top: 75px;
    padding-bottom: 75px;
}

.ua-image-interlude .ua-kicker {
    color: #ff7188;
}

.ua-image-interlude h2 {
    color: #fff;
    font-size: clamp(33px, 4vw, 53px);
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: -2px;
    max-width: 790px;
    margin: 0 0 28px;
}

.ua-image-interlude h2 span {
    display: block;
    font-weight: 400;
}

/* =====================================================
   07. OUR VALUES - MINIMAL TYPOGRAPHIC ROWS
   ===================================================== */

.ua-values {
    background: #fff;
}

.ua-values-intro p {
    color: var(--ua-text);
    font-size: 14px;
    line-height: 1.85;
    max-width: 320px;
}

.ua-values-list {
    border-top: 1px solid #dce3eb;
}

.ua-value-row {
    display: grid;
    grid-template-columns: 45px 1fr 35px;
    gap: 18px;
    align-items: center;
    padding: 24px 10px;
    border-bottom: 1px solid #dce3eb;
    transition: background .3s, padding .3s;
}

.ua-value-row:hover {
    background: #f7f8fa;
    padding-left: 22px;
}

.ua-value-row > span {
    color: var(--ua-red);
    font-size: 12px;
    font-weight: 700;
}

.ua-value-row h3 {
    color: var(--ua-navy);
    font-size: 21px;
    font-weight: 650;
    margin: 0 0 7px;
}

.ua-value-row p {
    color: var(--ua-text);
    font-size: 12.5px;
    line-height: 1.7;
    margin: 0;
}

.ua-value-row > i {
    color: #b4bfca;
    transition: color .3s, transform .3s;
}

.ua-value-row:hover > i {
    color: var(--ua-red);
    transform: translateX(5px);
}

/* =====================================================
   08. REFERRAL STRIP
   ===================================================== */

.ua-referral-strip {
    padding: 72px 0;
    background: #f3f5f7;
}

.ua-referral-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

.ua-referral-inner > div {
    max-width: 690px;
}

.ua-referral-inner h2 {
    color: var(--ua-navy);
    font-size: clamp(27px, 3vw, 40px);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -1px;
    margin: 0 0 14px;
}

.ua-referral-inner p {
    color: var(--ua-text);
    font-size: 14px;
    line-height: 1.8;
    margin: 0;
}

.ua-referral-inner .ua-button {
    flex-shrink: 0;
}

/* =====================================================
   SCROLL REVEAL
   Content visible by default for no-JS visitors
   ===================================================== */

.ua-about-page.ua-motion-ready .ua-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity .7s ease,
        transform .7s cubic-bezier(.2,.7,.2,1);
}

.ua-about-page.ua-motion-ready
.ua-reveal[data-ua-reveal="left"] {
    transform: translateX(-35px);
}

.ua-about-page.ua-motion-ready
.ua-reveal[data-ua-reveal="right"] {
    transform: translateX(35px);
}

.ua-about-page.ua-motion-ready
.ua-reveal.ua-visible {
    opacity: 1;
    transform: translate3d(0,0,0);
}

/* =====================================================
   TABLET
   ===================================================== */

@media (max-width: 991px) {

    .ua-section {
        padding: 75px 0;
    }

    .ua-intro-main-photo {
        height: 430px;
    }

    .ua-intro-copy {
        padding-left: 0;
    }

    .ua-story-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .ua-story-index {
        margin-top: 25px;
    }

    .ua-story-quote {
        margin-top: 45px;
    }

    .ua-purpose-column {
        padding: 65px 40px;
    }

    .ua-purpose p {
        min-height: 0;
    }

    .ua-selection-heading {
        align-items: start;
        flex-direction: column;
        gap: 15px;
    }

    .ua-selection-copy {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .ua-referral-inner {
        align-items: start;
        flex-direction: column;
        gap: 25px;
    }
}

/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 640px) {

    .ua-section {
        padding: 58px 0;
    }

    .ua-section-heading {
        font-size: 33px;
        letter-spacing: -1px;
    }

    .ua-page-hero {
        min-height: 315px;
    }

    .ua-page-hero-content {
        padding-top: 60px;
        padding-bottom: 50px;
    }

    .ua-page-hero h1 {
        font-size: 45px;
        letter-spacing: -2px;
    }

    .ua-page-hero-content p {
        font-size: 13px;
    }

    .ua-hero-side-label {
        display: none;
    }

    .ua-intro-images {
        padding: 0 15px 20px 0;
    }

    .ua-intro-main-photo {
        height: 315px;
    }

    .ua-intro-photo-label {
        bottom: 38px;
        padding: 15px;
    }

    .ua-intro-photo-label strong {
        font-size: 10px;
    }

    .ua-intro-copy {
        padding-top: 5px;
    }

    .ua-intro-lead {
        font-size: 18px;
    }

    .ua-intro-copy > p:not(.ua-intro-lead) {
        font-size: 13px;
    }

    .ua-story-text .ua-story-opening {
        font-size: 19px;
    }

    .ua-story-quote {
        padding: 37px 28px;
    }

    .ua-story-quote blockquote {
        font-size: 24px;
        letter-spacing: -.7px;
    }

    .ua-purpose {
        grid-template-columns: 1fr;
    }

    .ua-purpose-column {
        padding: 55px 25px;
    }

    .ua-purpose h2 {
        font-size: 31px;
    }

    .ua-purpose p {
        font-size: 14px;
    }

    .ua-selection-heading {
        margin-bottom: 32px;
    }

    .ua-selection-item {
        grid-template-columns: 30px 1fr;
        gap: 15px;
        padding: 25px 5px;
    }

    .ua-selection-copy h3 {
        font-size: 18px;
    }

    .ua-selection-copy p {
        font-size: 12px;
    }

    .ua-selection-icon {
        display: none;
    }

    .ua-image-interlude {
        min-height: 335px;
    }

    .ua-image-interlude h2 {
        font-size: 32px;
    }

    .ua-value-row {
        grid-template-columns: 28px 1fr 20px;
        gap: 10px;
    }

    .ua-value-row h3 {
        font-size: 19px;
    }

    .ua-referral-strip {
        padding: 55px 0;
    }

    .ua-referral-inner h2 {
        font-size: 29px;
    }
}

/* =====================================================
   ACCESSIBILITY
   ===================================================== */

.ua-about-page a:focus-visible {
    outline: 3px solid var(--ua-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .ua-about-page *,
    .ua-about-page *::before,
    .ua-about-page *::after {
        transition: none !important;
        animation: none !important;
        scroll-behavior: auto !important;
    }

    .ua-about-page.ua-motion-ready .ua-reveal {
        opacity: 1;
        transform: none;
    }
}


/* ============================================
   UPLAND SITES - ABOUT PAGE HERO ALIGNMENT
   Floating Navigation Overlapping Banner
   ============================================ */

/* Keep fixed header above page banner */
.up-header {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999 !important;
    background: transparent !important;
}

/* Preserve floating navigation */
.up-header .up-nav-outer {
    position: relative;
    z-index: 100;
    background: transparent !important;
    padding-bottom: 0 !important;
}

/* Move About banner underneath navigation */
.ua-about-page .ua-page-hero {
    position: relative;
    width: 100%;
    margin-top: -30px !important;
    padding-top: 30px;
    z-index: 1;
}

/* Ensure hero background covers entire banner */
.ua-about-page .ua-page-hero-image,
.ua-about-page .ua-page-hero-shade {
    position: absolute;
    inset: 0;
}

/* Keep text safely below floating navigation */
.ua-about-page .ua-page-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 90px;
    padding-bottom: 65px;
}

/* Tablet */
@media (max-width: 970px) {

    .ua-about-page .ua-page-hero {
        margin-top: -22px !important;
        padding-top: 22px;
    }

    .ua-about-page .ua-page-hero-content {
        padding-top: 75px;
        padding-bottom: 55px;
    }
}

/* Mobile */
@media (max-width: 640px) {

    .ua-about-page .ua-page-hero {
        margin-top: -15px !important;
        padding-top: 15px;
    }

    .ua-about-page .ua-page-hero-content {
        padding-top: 65px;
        padding-bottom: 45px;
    }
}


/* ==========================================
   UPLAND SITES - COMPACT ABOUT PAGE BANNER
   ========================================== */

/* Reduce overall banner height */
.ua-about-page .ua-page-hero {
    min-height: 260px !important;
    height: 260px;
    padding: 0 !important;
    margin-top: -30px !important;
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
}

/* Background image */
.ua-page-hero-image {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 52%;
}

/* Compact content area */
.ua-about-page .ua-page-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 55px !important;
    padding-bottom: 20px !important;
}

/* Smaller headline */
.ua-page-hero h1 {
    font-size: clamp(36px, 4vw, 53px);
    line-height: 1.1;
    letter-spacing: -2px;
    margin: 10px 0 12px;
}

/* Eyebrow label */
.ua-hero-eyebrow {
    font-size: 10px;
    letter-spacing: 2px;
}

/* Short description */
.ua-page-hero-content p {
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 14px;
}

/* Breadcrumb */
.ua-breadcrumb {
    font-size: 11px;
    gap: 10px;
}

/* ==========================================
   TABLET
   ========================================== */

@media (max-width: 970px) {

    .ua-about-page .ua-page-hero {
        height: 240px;
        min-height: 240px !important;
        margin-top: -22px !important;
    }

    .ua-about-page .ua-page-hero-content {
        padding-top: 48px !important;
        padding-bottom: 15px !important;
    }

    .ua-page-hero h1 {
        font-size: 42px;
    }
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 640px) {

    .ua-about-page .ua-page-hero {
        height: 215px;
        min-height: 215px !important;
        margin-top: -15px !important;
    }

    .ua-about-page .ua-page-hero-content {
        padding-top: 43px !important;
        padding-bottom: 10px !important;
    }

    .ua-page-hero h1 {
        font-size: 34px;
        letter-spacing: -1px;
    }

    .ua-page-hero-content p {
        font-size: 11.5px;
        margin-bottom: 10px;
    }

    .ua-hero-eyebrow {
        font-size: 9px;
    }

    .ua-breadcrumb {
        font-size: 10px;
    }

    .ua-hero-side-label {
        display: none;
    }
}




/* ==============================================
   UPLAND SITES - CINEMATIC CAROUSEL ANIMATION
   Zoom In and Zoom Out / Ken Burns Effect
   ============================================== */

/* Keep moving images within carousel boundaries */
.up-hero-section .carousel-item {
    position: relative;
    overflow: hidden;
}

/* Background image movement */
.up-hero-section .up-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    transform: scale(1);
    transform-origin: center center;

    /* Disable previous zoom transition */
    transition: none !important;

    backface-visibility: hidden;
}

/* Run animation on active slide only */
.up-hero-section .carousel-item.active .up-hero-image {
    animation: uplandHeroZoom 6.5s ease-in-out both;
}

/* Zoom in, then zoom out */
@keyframes uplandHeroZoom {

    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.13);
    }

    100% {
        transform: scale(1);
    }

}

/* Different movement for second slide */
.up-hero-section
.carousel-item:nth-child(2).active
.up-hero-image {
    animation: uplandHeroZoomReverse 6.5s ease-in-out both;
}

@keyframes uplandHeroZoomReverse {

    0% {
        transform: scale(1.12);
    }

    50% {
        transform: scale(1);
    }

    100% {
        transform: scale(1.12);
    }

}

/* Slightly softer zoom for third slide */
.up-hero-section
.carousel-item:nth-child(3).active
.up-hero-image {
    animation: uplandHeroZoomSoft 6.5s ease-in-out both;
}

@keyframes uplandHeroZoomSoft {

    0% {
        transform: scale(1.02);
    }

    50% {
        transform: scale(1.10);
    }

    100% {
        transform: scale(1.02);
    }

}

/* Keep navy overlay stationary */
.up-hero-section .up-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

/* Keep text and controls stationary */
.up-hero-section .up-hero-content {
    position: absolute;
    inset: 0;
    z-index: 3;
}

/* Improve performance */
.up-hero-section .up-hero-image {
    will-change: transform;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {

    .up-hero-section .carousel-item .up-hero-image,
    .up-hero-section .carousel-item.active .up-hero-image {
        animation: none !important;
        transform: scale(1) !important;
        will-change: auto;
    }

}




/* =============================================
   UPLAND SITES - TESTIMONIAL CAROUSEL
   ============================================= */

.ush-testimonials-slider {
    --testi-gap: 24px;
    --testi-visible: 3;

    background: #f6f7f9;
    padding: 85px 0;
    overflow: hidden;
}

/* Header */
.ush-testi-heading {
    align-items: end;
    margin-bottom: 38px;
}

.ush-testi-intro {
    color: #69788a;
    font-size: 13px;
    line-height: 1.8;
    max-width: 500px;
    margin: 0;
}

/* Controls */
.ush-testi-controls {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-shrink: 0;
}

.ush-testi-arrow {
    width: 43px;
    height: 43px;
    display: flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;
    color: #0b2444;
    border: 1px solid #dce3eb;
    border-radius: 4px;

    cursor: pointer;
    transition: all .25s ease;
}

.ush-testi-arrow:hover {
    background: #0b2444;
    color: #ffffff;
    border-color: #0b2444;
}

.ush-testi-pause {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    height: 43px;
    min-width: 95px;
    padding: 0 15px;

    background: #0b2444;
    color: #ffffff;
    border: 1px solid #0b2444;
    border-radius: 4px;

    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background .25s ease;
}

.ush-testi-pause:hover {
    background: #d91f3b;
    border-color: #d91f3b;
}

/* Carousel window */
.ush-testi-viewport {
    width: 100%;
    overflow: hidden;
    outline-offset: 5px;
}

.ush-testi-track {
    display: flex;
    gap: var(--testi-gap);
    transition: transform .65s cubic-bezier(.22,.68,0,1);
    will-change: transform;
}

.ush-testi-slide {
    flex: 0 0 calc(
        (100% - (var(--testi-visible) - 1) * var(--testi-gap))
        / var(--testi-visible)
    );

    min-width: 0;
    display: flex;
}

/* Testimonial card */
.ush-testi-card {
    position: relative;
    display: flex;
    flex-direction: column;

    width: 100%;
    min-height: 300px;
    padding: 35px 31px 28px;

    background: #ffffff;
    border: 1px solid #e6ebf0;
    border-bottom: 3px solid transparent;
    border-radius: 5px;

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}

.ush-testi-card:hover {
    transform: translateY(-5px);
    border-bottom-color: #d91f3b;
    box-shadow: 0 15px 35px rgba(7,28,53,.08);
}

.ush-testi-quote {
    font-size: 24px;
    color: #d91f3b;
    margin-bottom: 25px;
}

.ush-testi-text {
    color: #45596f;
    font-size: 13px;
    line-height: 1.95;
    margin: 0 0 30px;
    flex-grow: 1;
}

/* Client photograph and identity */
.ush-testi-client {
    display: flex;
    align-items: center;
    gap: 13px;

    padding-top: 20px;
    border-top: 1px solid #e9edf2;
}

.ush-testi-client img {
    display: block;

    width: 55px;
    height: 55px;
    flex: 0 0 55px;

    border-radius: 50%;
    object-fit: cover;
    object-position: center;

    border: 3px solid #edf1f5;
    background: #e8edf2;

    transition:
        transform .3s ease,
        border-color .3s ease;
}

.ush-testi-card:hover .ush-testi-client img {
    transform: scale(1.07);
    border-color: #d91f3b;
}

.ush-testi-client strong {
    display: block;
    color: #0b2444;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 4px;
}

.ush-testi-client span {
    display: block;
    color: #8a97a5;
    font-size: 11px;
}

/* Bottom details */
.ush-testi-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    margin-top: 31px;
}

.ush-testi-counter {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #8a98a8;
    font-size: 12px;
    font-weight: 700;
}

.ush-testi-counter span:first-child {
    color: #0b2444;
    font-size: 16px;
}

.ush-testi-counter-line {
    display: block;
    width: 27px;
    height: 1px;
    background: #bfc9d3;
}

.ush-testi-progress {
    flex: 1;
    max-width: 260px;
    height: 3px;
    background: #dfe5eb;
    overflow: hidden;
}

.ush-testi-progress-fill {
    display: block;
    height: 100%;
    width: 16.6667%;
    background: #d91f3b;
    transition: width .4s ease;
}

.ush-testi-more {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #0b2444 !important;
    font-size: 12px;
    font-weight: 700;
    transition: gap .25s ease;
}

.ush-testi-more:hover {
    gap: 18px;
}

.ush-testi-more i {
    color: #d91f3b;
}

/* Tablet - show 2 slides */
@media (max-width: 991px) {

    .ush-testimonials-slider {
        --testi-visible: 2;
        --testi-gap: 20px;
        padding: 65px 0;
    }

    .ush-testi-card {
        padding: 30px 25px;
    }
}

/* Mobile - show 1 slide */
@media (max-width: 640px) {

    .ush-testimonials-slider {
        --testi-visible: 1;
        --testi-gap: 15px;
        padding: 55px 0;
    }

    .ush-testi-heading {
        flex-direction: column;
        align-items: flex-start;
        gap: 22px;
    }

    .ush-testi-controls {
        width: 100%;
    }

    .ush-testi-pause {
        margin-left: auto;
    }

    .ush-testi-card {
        min-height: 270px;
        padding: 27px 24px;
    }

    .ush-testi-bottom {
        flex-wrap: wrap;
        gap: 18px;
    }

    .ush-testi-progress {
        max-width: none;
    }

    .ush-testi-more {
        flex-basis: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ush-testi-track,
    .ush-testi-card,
    .ush-testi-client img {
        transition: none !important;
    }
}




/* ==============================================
   UPLAND SITES - CORE VALUES SECTION
   Photographic Background + Navy Overlay
   ============================================== */

/* Main section */
.ua-about-page .ua-values {
    position: relative;
    isolation: isolate;
    overflow: hidden;

    padding: 100px 0;

    background: #071c35;
    color: #ffffff;
}

/* Background photograph */
.ua-about-page .ua-values::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;

    background-image: url('../img/n1.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    transform: scale(1);
    transition: transform 1.2s ease;
}

/* Slow zoom when hovering */
.ua-about-page .ua-values:hover::before {
    transform: scale(1.045);
}

/* Deep navy-blue overlay */
.ua-about-page .ua-values::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;

    background: linear-gradient(
        105deg,
        rgba(5, 19, 38, 0.96) 0%,
        rgba(7, 28, 53, 0.92) 48%,
        rgba(7, 28, 53, 0.82) 100%
    );

    pointer-events: none;
}

/* Keep content over the overlay */
.ua-about-page .ua-values > .container {
    position: relative;
    z-index: 2;
}

/* ==============================================
   LEFT SIDE - INTRODUCTION
   ============================================== */

.ua-about-page .ua-values-intro {
    padding-right: 25px;
}

/* Eyebrow */
.ua-about-page .ua-values .ua-kicker {
    color: #ff7188;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
}

/* Main heading */
.ua-about-page .ua-values .ua-section-heading {
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;

    font-size: clamp(36px, 3.6vw, 49px);
    font-weight: 700;
    line-height: 1.18;

    margin-bottom: 24px;
}

/* Second heading line */
.ua-about-page .ua-values .ua-section-heading span {
    color: #ffffff;
    font-weight: 400;
}

/* Description */
.ua-about-page .ua-values-intro p {
    color: #c4d1df;
    font-size: 14px;
    line-height: 1.9;
    max-width: 340px;
}

/* ==============================================
   RIGHT SIDE - VALUES LIST
   ============================================== */

.ua-about-page .ua-values-list {
    border-top: 1px solid rgba(255,255,255,.23);
}

/* Each value row */
.ua-about-page .ua-value-row {
    display: grid;
    grid-template-columns: 45px 1fr 35px;
    gap: 18px;
    align-items: center;

    padding: 25px 18px;

    background: transparent;
    border-bottom: 1px solid rgba(255,255,255,.23);

    transition:
        background .35s ease,
        padding-left .35s ease;
}

/* Hover highlight */
.ua-about-page .ua-value-row:hover {
    background: rgba(255,255,255,.075);
    padding-left: 30px;
}

/* Value numbering */
.ua-about-page .ua-value-row > span {
    color: #ff7188;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
}

/* Value headings */
.ua-about-page .ua-value-row h3 {
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;

    font-size: 21px;
    font-weight: 600;

    margin: 0 0 7px;
}

/* Value descriptions */
.ua-about-page .ua-value-row p {
    color: #c5d1df;
    font-size: 12.5px;
    line-height: 1.75;
    margin: 0;
}

/* Right-side arrows */
.ua-about-page .ua-value-row > i {
    color: rgba(255,255,255,.55);
    font-size: 14px;

    transition:
        color .3s ease,
        transform .3s ease;
}

/* Arrow animation */
.ua-about-page .ua-value-row:hover > i {
    color: #ff7188;
    transform: translateX(7px);
}

/* ==============================================
   TABLET RESPONSIVENESS
   ============================================== */

@media (max-width: 991px) {

    .ua-about-page .ua-values {
        padding: 75px 0;
    }

    .ua-about-page .ua-values-intro {
        padding-right: 0;
    }

    .ua-about-page .ua-values-intro p {
        max-width: 580px;
    }

    .ua-about-page .ua-values::after {
        background: rgba(5, 20, 40, .90);
    }
}

/* ==============================================
   MOBILE RESPONSIVENESS
   ============================================== */

@media (max-width: 640px) {

    .ua-about-page .ua-values {
        padding: 60px 0;
    }

    .ua-about-page .ua-values .ua-section-heading {
        font-size: 35px;
    }

    .ua-about-page .ua-values-intro p {
        font-size: 13px;
    }

    .ua-about-page .ua-value-row {
        grid-template-columns: 30px 1fr 20px;
        gap: 12px;
        padding: 22px 8px;
    }

    .ua-about-page .ua-value-row:hover {
        padding-left: 13px;
    }

    .ua-about-page .ua-value-row h3 {
        font-size: 18px;
    }

    .ua-about-page .ua-value-row p {
        font-size: 12px;
    }

    .ua-about-page .ua-value-row > i {
        font-size: 12px;
    }

    .ua-about-page .ua-values::before {
        background-position: 60% center;
    }

}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {

    .ua-about-page .ua-values::before,
    .ua-about-page .ua-value-row,
    .ua-about-page .ua-value-row > i {
        transition: none !important;
    }

}




/* ==============================================
   UPLAND SITES - PREMIUM OUR STORY SECTION
   ============================================== */

.ua-about-page .ua-story-premium {
    background: #ffffff;
    padding: 95px 0;
    overflow: hidden;
}

/* Two-column layout */
.ua-story-premium .ua-story-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 75px;
}

/* ==============================================
   LEFT SIDE - STORY
   ============================================== */

.ua-story-premium .ua-story-aside {
    padding-right: 5px;
}

.ua-story-premium .ua-kicker {
    margin-bottom: 18px;
}

.ua-story-premium .ua-section-heading {
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(34px, 3.5vw, 48px);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -1.6px;
    color: #0b2444;
    margin: 0 0 27px;
}

.ua-story-premium .ua-section-heading span {
    display: block;
    font-weight: 400;
}

/* Main story paragraphs */
.ua-story-description p {
    color: #647184;
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 17px;
}

/* Last highlighted paragraph */
.ua-story-description .ua-story-emphasis {
    color: #0b2444;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.75;
    margin-top: 25px;
    margin-bottom: 0;
    padding-left: 17px;
    border-left: 3px solid #d91f3b;
}

/* ==============================================
   RED ACTION BUTTON
   ============================================== */

.ua-story-actions {
    margin-top: 31px;
}

.ua-story-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 24px;

    min-height: 48px;
    padding: 13px 23px;

    background: #d91f3b;
    color: #ffffff !important;
    border: 1px solid #d91f3b;
    border-radius: 4px;

    font-family: 'Space Grotesk', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none !important;

    transition:
        background .3s ease,
        transform .3s ease,
        box-shadow .3s ease;
}

.ua-story-btn:hover {
    background: #b91530;
    border-color: #b91530;
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(217,31,59,.22);
}

.ua-story-btn i {
    font-size: 12px;
    transition: transform .3s ease;
}

.ua-story-btn:hover i {
    transform: translateX(6px);
}

/* ==============================================
   RIGHT SIDE - IMAGE COMPOSITION
   ============================================== */

.ua-story-visual {
    position: relative;
    padding: 0 24px 35px 0;
    min-width: 0;
}

/* Main image */
.ua-story-image-wrap {
    position: relative;
    z-index: 2;
}

.ua-story-image {
    position: relative;
    width: 100%;
    height: 510px;
    margin: 0;
    overflow: hidden;
    background: #e8edf2;
    border-radius: 5px;
}

/* Image fills container */
.ua-story-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;

    transform: scale(1);
    transition:
        transform 1.1s cubic-bezier(.2,.7,.2,1),
        filter .6s ease;
}

/* Zoom image on hover */
.ua-story-visual:hover .ua-story-image img {
    transform: scale(1.075);
}

/* Gentle image shading */
.ua-story-image::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;

    background: linear-gradient(
        180deg,
        transparent 55%,
        rgba(7,28,53,.23) 100%
    );
}

/* Grey framing behind photograph */
.ua-story-image-frame {
    position: absolute;
    z-index: 0;
    right: 0;
    bottom: 0;
    width: 72%;
    height: 78%;
    background: #edf1f5;
    border-radius: 5px;
}

/* Thin red vertical accent */
.ua-story-image-accent {
    position: absolute;
    z-index: 3;
    top: 35px;
    right: 0;
    width: 4px;
    height: 85px;
    background: #d91f3b;
}

/* ==============================================
   OVERLAPPING IMAGE CAPTION
   ============================================== */

.ua-story-image-caption {
    position: absolute;
    z-index: 4;
    left: -25px;
    bottom: 35px;

    display: flex;
    align-items: center;
    gap: 15px;

    min-width: 270px;
    padding: 18px 22px;

    background: #ffffff;
    border-radius: 4px;
    box-shadow: 0 15px 38px rgba(7,28,53,.17);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

/* Caption moves slightly on hover */
.ua-story-visual:hover .ua-story-image-caption {
    transform: translateY(-7px);
    box-shadow: 0 20px 43px rgba(7,28,53,.2);
}

/* Red detail */
.ua-caption-line {
    width: 3px;
    height: 36px;
    background: #d91f3b;
    flex-shrink: 0;
}

/* Caption heading */
.ua-story-image-caption strong {
    display: block;
    color: #0b2444;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .7px;
    margin-bottom: 5px;
}

/* Caption subtitle */
.ua-story-image-caption small {
    display: block;
    color: #8290a0;
    font-size: 11px;
}

/* Caption icon */
.ua-story-image-caption > i {
    color: #d91f3b;
    font-size: 19px;
    margin-left: auto;
}

/* ==============================================
   TABLET
   ============================================== */

@media (max-width: 991px) {

    .ua-about-page .ua-story-premium {
        padding: 70px 0;
    }

    .ua-story-premium .ua-story-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .ua-story-visual {
        max-width: 680px;
        margin: 0 auto;
        width: 100%;
    }

    .ua-story-image {
        height: 430px;
    }
}

/* ==============================================
   MOBILE
   ============================================== */

@media (max-width: 640px) {

    .ua-about-page .ua-story-premium {
        padding: 55px 0;
    }

    .ua-story-premium .ua-story-grid {
        gap: 36px;
    }

    .ua-story-premium .ua-section-heading {
        font-size: 33px;
        letter-spacing: -1px;
    }

    .ua-story-description p {
        font-size: 12.8px;
        line-height: 1.85;
    }

    .ua-story-description .ua-story-emphasis {
        font-size: 14px;
    }

    .ua-story-actions {
        margin-top: 27px;
    }

    .ua-story-btn {
        padding: 12px 19px;
        font-size: 12px;
    }

    .ua-story-visual {
        padding-right: 13px;
        padding-bottom: 22px;
    }

    .ua-story-image {
        height: 335px;
    }

    .ua-story-image-caption {
        left: -8px;
        bottom: 24px;
        min-width: 0;
        max-width: 92%;
        padding: 14px 16px;
    }

    .ua-story-image-caption strong {
        font-size: 10px;
    }

    .ua-story-image-caption small {
        font-size: 10px;
    }

    .ua-story-image-caption > i {
        font-size: 16px;
    }

    .ua-story-image-accent {
        top: 22px;
        height: 60px;
    }
}

/* ==============================================
   ACCESSIBILITY
   ============================================== */

.ua-story-btn:focus-visible {
    outline: 3px solid #d91f3b;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .ua-story-image img,
    .ua-story-image-caption,
    .ua-story-btn,
    .ua-story-btn i {
        transition: none !important;
    }
}




/* ==============================================
   UPLAND SITES - RETHINKING POSSIBILITIES
   Cinematic Background + Navy Overlay
   ============================================== */

.ua-about-page .ua-possibilities {
    position: relative;
    isolation: isolate;
    width: 100%;
    min-height: 530px;
    display: flex;
    align-items: center;
    padding: 95px 0;
    overflow: hidden;
    background: #071c35;
}

/* ==============================================
   BACKGROUND PHOTOGRAPH
   ============================================== */

.ua-possibilities-bg {
    position: absolute;
    inset: 0;
    z-index: -2;

    background-image: url('../img/n3.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    transform: scale(1);
    transition: transform 1.5s ease;
}

/* Subtle cinematic hover */
.ua-possibilities:hover .ua-possibilities-bg {
    transform: scale(1.06);
}

/* Navy blue overlay */
.ua-possibilities-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;

    background: linear-gradient(
        105deg,
        rgba(4, 18, 37, .96) 0%,
        rgba(7, 28, 53, .91) 48%,
        rgba(7, 28, 53, .76) 100%
    );

    pointer-events: none;
}

.ua-possibilities-container {
    position: relative;
    z-index: 2;
}

/* ==============================================
   LEFT SIDE
   ============================================== */

.ua-possibilities-content {
    padding-right: 35px;
}

.ua-possibilities-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #ff7188;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    margin-bottom: 23px;
}

.ua-possibilities-eyebrow::before {
    content: "";
    display: block;
    width: 29px;
    height: 2px;
    background: #d91f3b;
}

.ua-possibilities-content h2 {
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(34px, 3.9vw, 52px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -1.8px;
    margin: 0 0 28px;
}

.ua-possibilities-content h2 span {
    display: block;
    font-weight: 400;
    color: #ffffff;
}

.ua-possibilities-content p {
    max-width: 660px;
    color: #d6e0eb;
    font-size: 13.5px;
    line-height: 1.95;
    margin: 0 0 17px;
}

/* Red action button */
.ua-possibilities-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    min-height: 49px;
    margin-top: 17px;
    padding: 14px 23px;
    background: #d91f3b;
    border: 1px solid #d91f3b;
    border-radius: 4px;
    color: #ffffff !important;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background .3s, transform .3s, box-shadow .3s;
}

.ua-possibilities-btn:hover {
    background: #b91530;
    border-color: #b91530;
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(217,31,59,.25);
}

.ua-possibilities-btn i {
    transition: transform .3s ease;
}

.ua-possibilities-btn:hover i {
    transform: translateX(5px);
}

/* ==============================================
   RIGHT SIDE - EDITORIAL QUOTATION
   ============================================== */

.ua-possibilities-message {
    position: relative;
    padding: 40px 0 35px 40px;
    border-left: 1px solid rgba(255,255,255,.28);
}

.ua-possibilities-quote {
    display: block;
    font-size: 30px;
    color: #ff607b;
    margin-bottom: 23px;
}

.ua-possibilities-highlight {
    color: #d0ddea;
    font-size: 15px;
    font-weight: 500;
    font-style: italic;
    margin-bottom: 14px;
}

.ua-possibilities-message h3 {
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(27px, 2.7vw, 37px);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -1px;
    margin: 0 0 20px;
}

.ua-possibilities-message h3 span {
    display: block;
    font-weight: 400;
    color: #ff7188;
}

.ua-possibilities-message-text {
    color: #cfdae7;
    font-size: 13px;
    line-height: 1.9;
    margin-bottom: 28px;
}

.ua-possibilities-signature {
    display: flex;
    align-items: center;
    gap: 13px;
}

.ua-possibilities-signature span {
    display: block;
    width: 30px;
    height: 2px;
    background: #d91f3b;
}

.ua-possibilities-signature strong {
    color: #e1eaf4;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.7px;
}

/* ==============================================
   TABLET
   ============================================== */

@media (max-width: 991px) {

    .ua-about-page .ua-possibilities {
        padding: 75px 0;
    }

    .ua-possibilities-content {
        padding-right: 0;
    }

    .ua-possibilities-message {
        padding: 28px 0 15px 30px;
    }
}

/* ==============================================
   MOBILE
   ============================================== */

@media (max-width: 640px) {

    .ua-about-page .ua-possibilities {
        padding: 60px 0;
        min-height: auto;
    }

    .ua-possibilities-content h2 {
        font-size: 34px;
        letter-spacing: -1px;
    }

    .ua-possibilities-content p {
        font-size: 12.8px;
        line-height: 1.85;
    }

    .ua-possibilities-message {
        padding: 25px 0 5px 23px;
    }

    .ua-possibilities-message h3 {
        font-size: 30px;
    }

    .ua-possibilities-message-text {
        font-size: 12.5px;
    }

    .ua-possibilities-bg {
        background-position: 60% center;
    }
}

/* ==============================================
   ACCESSIBILITY
   ============================================== */

.ua-possibilities-btn:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .ua-possibilities-bg,
    .ua-possibilities-btn,
    .ua-possibilities-btn i {
        transition: none !important;
    }
}



/* ==============================================
   UPLAND SITES - FLOATING QUICK ACTIONS
   WhatsApp + Referral
   ============================================== */

.up-floating-actions {
    position: fixed;
    left: 22px;
    bottom: 25px;
    z-index: 9998;

    display: flex;
    flex-direction: column;
    gap: 13px;

    font-family: 'Space Grotesk', sans-serif;
}

/* Individual action */
.up-float-item {
    position: relative;
    display: flex;
    align-items: center;
    width: 54px;
    height: 54px;
}

/* Circular floating button */
.up-float-icon {
    position: relative;
    z-index: 2;

    width: 54px;
    height: 54px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
    color: #ffffff !important;
    font-size: 23px;
    text-decoration: none !important;

    box-shadow: 0 8px 24px rgba(0,0,0,.20);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

/* WhatsApp green */
.up-float-whatsapp .up-float-icon {
    background: #25D366;
}

/* Referral red */
.up-float-referral .up-float-icon {
    background: #d91f3b;
}

/* Hover movement */
.up-float-item:hover .up-float-icon,
.up-float-item:focus-within .up-float-icon {
    transform: scale(1.08);
    box-shadow: 0 12px 27px rgba(0,0,0,.23);
}

/* ==============================================
   PROTRUDING INFORMATION CARD
   ============================================== */

.up-float-card {
    position: absolute;
    left: calc(100% + 15px);
    bottom: 0;

    width: 265px;
    padding: 21px 22px;

    background: #ffffff;
    border: 1px solid #e7ecf1;
    border-radius: 7px;

    box-shadow: 0 18px 46px rgba(7,28,53,.17);

    opacity: 0;
    visibility: hidden;

    transform: translateX(-12px);
    pointer-events: none;

    transition:
        opacity .25s ease,
        visibility .25s ease,
        transform .3s ease;
}

/* Show card when button/card is hovered */
.up-float-item:hover .up-float-card,
.up-float-item:focus-within .up-float-card {
    opacity: 1;
    visibility: visible;

    transform: translateX(0);
    pointer-events: auto;
}

/* Connecting hover bridge */
.up-float-card::before {
    content: "";
    position: absolute;
    right: 100%;
    bottom: 0;
    width: 18px;
    height: 60px;
}

/* Small label */
.up-float-card-label {
    display: block;
    color: #d91f3b;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.5px;
    margin-bottom: 8px;
}

/* WhatsApp label */
.up-float-whatsapp .up-float-card-label {
    color: #169c4a;
}

/* Heading */
.up-float-card h4 {
    font-family: 'Space Grotesk', sans-serif;
    color: #0b2444;
    font-size: 19px;
    font-weight: 700;
    margin: 0 0 9px;
}

/* Description */
.up-float-card p {
    color: #68788a;
    font-size: 12px;
    line-height: 1.75;
    margin: 0 0 15px;
}

/* Action link */
.up-float-card-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    color: #0b2444 !important;
    font-size: 11.5px;
    font-weight: 750;
    text-decoration: none !important;

    padding-bottom: 5px;
    border-bottom: 2px solid #d91f3b;

    transition:
        gap .25s ease,
        color .25s ease;
}

.up-float-card-link:hover {
    gap: 18px;
    color: #d91f3b !important;
}

.up-float-whatsapp .up-float-card-link {
    border-bottom-color: #25D366;
}

/* ==============================================
   MOBILE ADJUSTMENTS
   ============================================== */

@media (max-width: 640px) {

    .up-floating-actions {
        left: 13px;
        bottom: 18px;
        gap: 10px;
    }

    .up-float-item,
    .up-float-icon {
        width: 46px;
        height: 46px;
    }

    .up-float-icon {
        font-size: 20px;
    }

    .up-float-card {
        width: min(245px, calc(100vw - 95px));
        left: calc(100% + 9px);
        padding: 17px 18px;
    }

    .up-float-card h4 {
        font-size: 17px;
    }

    .up-float-card p {
        font-size: 11.5px;
    }
}

/* Accessibility */
.up-float-icon:focus-visible,
.up-float-card-link:focus-visible {
    outline: 3px solid #0b2444;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .up-float-icon,
    .up-float-card,
    .up-float-card-link {
        transition: none !important;
    }
}

/* ==============================================
   UPLAND SITES - BACK TO TOP
   ============================================== */

.up-back-to-top {
    position: fixed;
    right: 24px;
    bottom: 25px;
    z-index: 9997;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    background: #0b2444;
    color: #ffffff;

    border: 1px solid rgba(255,255,255,.15);
    border-radius: 5px;

    font-size: 17px;
    cursor: pointer;

    box-shadow: 0 8px 25px rgba(7,28,53,.23);

    /* Hidden initially */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(18px);

    transition:
        opacity .3s ease,
        visibility .3s ease,
        transform .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}

/* Show after scrolling */
.up-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

/* Hover effect */
.up-back-to-top:hover {
    background: #d91f3b;
    color: #ffffff;
    transform: translateY(-5px);
    box-shadow: 0 12px 28px rgba(217,31,59,.28);
}

/* Arrow movement */
.up-back-to-top i {
    transition: transform .3s ease;
}

.up-back-to-top:hover i {
    transform: translateY(-3px);
}

/* Keyboard accessibility */
.up-back-to-top:focus-visible {
    outline: 3px solid #d91f3b;
    outline-offset: 4px;
}

/* Mobile */
@media (max-width: 640px) {

    .up-back-to-top {
        right: 14px;
        bottom: 18px;

        width: 44px;
        height: 44px;

        font-size: 15px;
    }

}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {

    .up-back-to-top,
    .up-back-to-top i {
        transition: none !important;
    }

}




/* =============================================
   UPLAND SITES - PREMIUM CONTACT PAGE
   ============================================= */

.uc-contact-page {
    --uc-navy: #071c35;
    --uc-blue: #0b2444;
    --uc-red: #d91f3b;
    --uc-muted: #66778b;
    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.uc-contact-page *,
.uc-contact-page *::before,
.uc-contact-page *::after {
    box-sizing: border-box;
}

/* =============================================
   SHARED TYPOGRAPHY
   ============================================= */

.uc-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--uc-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.uc-eyebrow::before {
    content: "";
    display: inline-block;
    width: 25px;
    height: 2px;
    background: currentColor;
}

.uc-eyebrow-light {
    color: #ff8195;
}

.uc-heading {
    color: var(--uc-blue);
    font-size: clamp(32px, 3.5vw, 47px);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -1.7px;
    margin: 0 0 23px;
}

.uc-heading span {
    display: block;
    font-weight: 400;
}

.uc-contact-page p {
    font-family: 'Space Grotesk', sans-serif;
}

/* =============================================
   01. PHOTOGRAPHIC HERO
   ============================================= */

.uc-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: 265px;
    margin-top: -30px;
    padding: 67px 0 35px;
    background: var(--uc-navy);
    overflow: hidden;
}

.uc-hero-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n2.jpg') center 54% / cover no-repeat;
    animation: uc-hero-zoom 17s ease-in-out infinite alternate;
}

@keyframes uc-hero-zoom {
    from { transform: scale(1); }
    to   { transform: scale(1.12); }
}

.uc-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        95deg,
        rgba(4, 17, 35, .96) 0%,
        rgba(7, 28, 53, .85) 52%,
        rgba(7, 28, 53, .48) 100%
    );
}

.uc-hero-content {
    position: relative;
    z-index: 2;
}

.uc-hero h1 {
    color: #fff;
    font-size: clamp(38px, 4.4vw, 56px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -2px;
    margin: 0 0 13px;
}

.uc-hero h1 em {
    font-style: normal;
    font-weight: 400;
}

.uc-hero-content p {
    color: #d5dfea;
    font-size: 13px;
    line-height: 1.7;
    max-width: 485px;
    margin: 0 0 14px;
}

.uc-breadcrumb {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0;
    margin: 0;
    font-size: 11px;
    color: #ff8195;
}

.uc-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.uc-breadcrumb a:hover {
    color: #ff8195;
}

.uc-hero-side {
    position: absolute;
    right: 30px;
    bottom: 22px;
    z-index: 2;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    color: rgba(255,255,255,.7);
}

/* =============================================
   02. MAIN CONTACT SECTION
   ============================================= */

.uc-connect {
    padding: 95px 0 105px;
    background: #fff;
}

.uc-connect-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
    align-items: start;
    gap: clamp(35px, 6vw, 100px);
}

.uc-connect-info {
    padding-top: 24px;
    min-width: 0;
}

.uc-connect-intro {
    max-width: 485px;
    color: var(--uc-muted);
    font-size: 14px;
    line-height: 1.9;
    margin: 0 0 32px;
}

/* Contact information: editorial rows, not cards */
.uc-contact-lines {
    border-top: 1px solid #e6ecf2;
}

.uc-contact-line {
    display: flex;
    align-items: center;
    gap: 17px;
    padding: 20px 4px;
    border-bottom: 1px solid #e6ecf2;
    transition:
        padding .3s ease,
        background .3s ease;
}

.uc-contact-line:hover {
    padding-left: 12px;
    background: #f8fafc;
}

.uc-contact-icon {
    width: 43px;
    height: 43px;
    flex: 0 0 43px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eff3f8;
    color: var(--uc-blue);
    border-radius: 4px;
    font-size: 16px;
    transition: background .3s, color .3s;
}

.uc-contact-line:hover .uc-contact-icon {
    background: var(--uc-blue);
    color: #fff;
}

.uc-contact-line-text {
    min-width: 0;
    flex: 1;
}

.uc-contact-line-text > span {
    display: block;
    color: #9aa8b7;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.25px;
    margin-bottom: 5px;
}

.uc-contact-line-text a,
.uc-contact-line-text strong {
    display: inline-block;
    color: var(--uc-blue);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.uc-contact-line-text a:hover {
    color: var(--uc-red);
}

.uc-line-arrow {
    margin-left: auto;
    color: #b3bfcc;
    font-size: 12px;
    transform: rotate(45deg);
    transition: color .25s, transform .25s;
}

.uc-contact-line:hover .uc-line-arrow {
    color: var(--uc-red);
    transform: rotate(45deg) translateY(-4px);
}

/* Information note */
.uc-connect-note {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-top: 29px;
    padding: 19px 21px;
    background: #f5f7fa;
    border-left: 3px solid var(--uc-red);
}

.uc-note-icon {
    color: var(--uc-red);
    font-size: 17px;
}

.uc-connect-note p {
    color: #637489;
    font-size: 12px;
    line-height: 1.8;
    margin: 0;
}

.uc-connect-note strong {
    color: var(--uc-blue);
}

/* =============================================
   FORM AREA
   ============================================= */

.uc-form-wrap {
    position: relative;
    background: #f7f9fb;
    border: 1px solid #e7ecf1;
    padding: 40px;
    box-shadow: 0 20px 55px rgba(7,28,53,.065);
}

.uc-form-topline {
    position: absolute;
    left: 0;
    top: 0;
    width: 100px;
    height: 4px;
    background: var(--uc-red);
}

.uc-form-header {
    margin-bottom: 27px;
}

.uc-form-header h2 {
    color: var(--uc-blue);
    font-size: clamp(26px, 2.6vw, 34px);
    font-weight: 700;
    letter-spacing: -1px;
    margin: 0 0 10px;
}

.uc-form-header p {
    color: var(--uc-muted);
    font-size: 12.5px;
    line-height: 1.7;
    margin: 0;
}

.uc-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 17px;
}

.uc-field {
    min-width: 0;
}

.uc-field-full {
    grid-column: 1 / -1;
}

/* Make hidden date row actually disappear */
.uc-field[hidden] {
    display: none !important;
}

.uc-field label {
    display: block;
    font-size: 11.5px;
    color: var(--uc-blue);
    font-weight: 700;
    margin-bottom: 9px;
}

.uc-field label span {
    color: var(--uc-red);
}

.uc-field input,
.uc-field select,
.uc-field textarea {
    display: block;
    width: 100%;
    min-width: 0;
    border: 1px solid #dfe6ed;
    outline: none;
    border-radius: 3px;
    background: #fff;
    color: var(--uc-blue);
    font-family: 'Space Grotesk', sans-serif;
    font-size: 12.5px;
    padding: 13px 15px;
    transition:
        border-color .25s ease,
        box-shadow .25s ease;
}

.uc-field input,
.uc-field select {
    height: 48px;
}

.uc-field textarea {
    min-height: 128px;
    resize: vertical;
}

.uc-field input::placeholder,
.uc-field textarea::placeholder {
    color: #a1adbb;
}

.uc-field input:focus,
.uc-field select:focus,
.uc-field textarea:focus {
    border-color: #6888ac;
    box-shadow: 0 0 0 3px rgba(35,88,147,.08);
}

.uc-form-consent {
    margin: 22px 0;
}

.uc-form-consent label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

.uc-form-consent input {
    accent-color: var(--uc-red);
    margin-top: 3px;
}

.uc-form-consent span {
    color: #758397;
    font-size: 11px;
    line-height: 1.7;
}

.uc-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    width: 100%;
    min-height: 50px;
    padding: 13px 20px;
    background: var(--uc-red);
    color: #fff;
    border: 1px solid var(--uc-red);
    border-radius: 3px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition:
        background .3s ease,
        transform .3s ease;
}

.uc-submit-btn:hover {
    background: #b91731;
    transform: translateY(-2px);
}

.uc-submit-btn i {
    transition: transform .3s ease;
}

.uc-submit-btn:hover i {
    transform: translateX(5px);
}

.uc-form-footnote {
    color: #8d9aab;
    font-size: 10.5px;
    line-height: 1.6;
    text-align: center;
    margin: 15px 0 0;
}

.uc-honeypot {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

.uc-form-message {
    margin-top: 15px;
    padding: 12px 14px;
    font-size: 12px;
    border-left: 3px solid var(--uc-red);
    background: #fff;
    color: var(--uc-blue);
}

.uc-form-message[hidden] {
    display: none;
}

/* =============================================
   03. SITE VISIT FEATURE
   ============================================= */

.uc-visit-feature {
    padding: 90px 0;
    background: #f4f6f9;
}

.uc-visit-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    align-items: center;
    gap: clamp(40px, 6vw, 95px);
}

.uc-visit-image {
    position: relative;
    min-height: 390px;
    overflow: hidden;
    background: #dce5ec;
}

.uc-visit-image img {
    display: block;
    width: 100%;
    height: 390px;
    object-fit: cover;
    transition: transform 1s cubic-bezier(.2,.7,.2,1);
}

.uc-visit-image:hover img {
    transform: scale(1.07);
}

.uc-visit-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        transparent 45%,
        rgba(7,28,53,.73) 100%
    );
    pointer-events: none;
}

.uc-visit-image-label {
    position: absolute;
    bottom: 27px;
    left: 30px;
    right: 30px;
    z-index: 2;
    color: #fff;
}

.uc-visit-image-label span {
    display: block;
    font-size: 10px;
    letter-spacing: 1.7px;
    color: #ff8ba0;
    margin-bottom: 7px;
}

.uc-visit-image-label strong {
    font-size: 23px;
    line-height: 1.2;
    font-weight: 600;
}

.uc-visit-content p {
    max-width: 510px;
    color: var(--uc-muted);
    font-size: 13.5px;
    line-height: 1.9;
    margin-bottom: 18px;
}

.uc-visit-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px;
    margin-top: 28px;
}

.uc-primary-btn,
.uc-bottom-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 14px 22px;
    min-height: 48px;
    background: var(--uc-red);
    color: #fff !important;
    border: 1px solid var(--uc-red);
    border-radius: 3px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background .3s, transform .3s;
}

.uc-primary-btn:hover,
.uc-bottom-btn:hover {
    background: #b91731;
    transform: translateY(-3px);
}

.uc-text-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 12px;
    font-weight: 700;
    color: var(--uc-blue);
    text-decoration: none;
}

.uc-text-btn:hover {
    color: var(--uc-red);
}

/* =============================================
   04. PHOTOGRAPHIC BOTTOM STRIP
   ============================================= */

.uc-bottom-banner {
    position: relative;
    isolation: isolate;
    background: var(--uc-navy);
    padding: 65px 0;
    overflow: hidden;
}

.uc-bottom-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    transition: transform 1.4s ease;
}

.uc-bottom-banner:hover .uc-bottom-bg {
    transform: scale(1.05);
}

.uc-bottom-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        100deg,
        rgba(4,17,35,.96),
        rgba(7,28,53,.9) 55%,
        rgba(7,28,53,.63)
    );
}

.uc-bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 45px;
}

.uc-bottom-inner h2 {
    color: #fff;
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -1.3px;
    margin: 0 0 12px;
}

.uc-bottom-inner h2 span {
    display: block;
    font-weight: 400;
}

.uc-bottom-inner p {
    color: #d4dfe9;
    font-size: 13px;
    line-height: 1.75;
    margin: 0;
    max-width: 560px;
}

.uc-bottom-btn {
    white-space: nowrap;
    flex-shrink: 0;
}

/* =============================================
   SCROLL REVEAL
   ============================================= */

.uc-motion-ready .uc-reveal {
    opacity: 0;
    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.2,.7,.2,1);
}

.uc-motion-ready [data-uc-reveal="left"] {
    transform: translateX(-36px);
}

.uc-motion-ready [data-uc-reveal="right"] {
    transform: translateX(36px);
}

.uc-motion-ready [data-uc-reveal="up"] {
    transform: translateY(27px);
}

.uc-motion-ready .uc-reveal.uc-visible {
    opacity: 1;
    transform: none;
}

/* =============================================
   TABLET
   ============================================= */

@media (max-width: 991px) {
    .uc-hero {
        min-height: 245px;
        margin-top: -22px;
    }

    .uc-connect {
        padding: 75px 0;
    }

    .uc-connect-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .uc-connect-info {
        padding-top: 0;
    }

    .uc-visit-feature {
        padding: 70px 0;
    }

    .uc-visit-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .uc-visit-image {
        min-height: 350px;
    }

    .uc-visit-image img {
        height: 350px;
    }

    .uc-bottom-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: 27px;
    }
}

/* =============================================
   MOBILE
   ============================================= */

@media (max-width: 640px) {
    .uc-hero {
        min-height: 225px;
        margin-top: -15px;
        padding: 51px 0 22px;
    }

    .uc-hero h1 {
        font-size: 37px;
        letter-spacing: -1px;
    }

    .uc-hero-content p {
        font-size: 12px;
    }

    .uc-hero-side {
        display: none;
    }

    .uc-connect {
        padding: 55px 0;
    }

    .uc-heading {
        font-size: 33px;
        letter-spacing: -1px;
    }

    .uc-connect-intro {
        font-size: 13px;
    }

    .uc-contact-line {
        gap: 12px;
    }

    .uc-contact-line-text a,
    .uc-contact-line-text strong {
        font-size: 12.5px;
    }

    .uc-form-wrap {
        padding: 30px 21px;
    }

    .uc-form-grid {
        grid-template-columns: 1fr;
    }

    .uc-field-full {
        grid-column: auto;
    }

    .uc-visit-feature {
        padding: 55px 0;
    }

    .uc-visit-image,
    .uc-visit-image img {
        height: 290px;
        min-height: 290px;
    }

    .uc-visit-image-label {
        left: 22px;
        bottom: 22px;
    }

    .uc-visit-image-label strong {
        font-size: 19px;
    }

    .uc-visit-content p {
        font-size: 13px;
    }

    .uc-bottom-banner {
        padding: 55px 0;
    }

    .uc-bottom-inner h2 {
        font-size: 29px;
    }

    .uc-bottom-btn {
        white-space: normal;
    }
}

/* =============================================
   ACCESSIBILITY
   ============================================= */

.uc-contact-page a:focus-visible,
.uc-contact-page button:focus-visible {
    outline: 3px solid var(--uc-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .uc-contact-page *,
    .uc-contact-page *::before,
    .uc-contact-page *::after {
        animation: none !important;
        transition: none !important;
    }

    .uc-motion-ready .uc-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}


/* Offset anchored sections beneath fixed header */
.uc-contact-page #site-visit,
.uc-contact-page #visit-our-sites,
.uc-contact-page #contact-details {
    scroll-margin-top: 175px;
}




/* ============================================
   UPLAND SITES - TESTIMONIALS PAGE
   ============================================ */

.utp-page {
    --utp-navy: #071c35;
    --utp-blue: #0b2444;
    --utp-red: #d91f3b;
    --utp-grey: #64758a;

    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.utp-page *,
.utp-page *::before,
.utp-page *::after {
    box-sizing: border-box;
}

/* ============================================
   HERO BANNER
   ============================================ */

.utp-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;

    width: 100%;
    height: 260px;
    min-height: 260px;
    margin-top: -30px;
    padding: 55px 0 20px;

    overflow: hidden;
    background: var(--utp-navy);
}

.utp-hero-image {
    position: absolute;
    inset: 0;
    z-index: -2;

    background-image: url('../img/n3.jpg');
    background-position: center 55%;
    background-size: cover;
    background-repeat: no-repeat;

    animation: utpHeroZoom 16s ease-in-out infinite alternate;
}

@keyframes utpHeroZoom {
    from { transform: scale(1); }
    to   { transform: scale(1.12); }
}

.utp-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;

    background: linear-gradient(
        95deg,
        rgba(4,17,35,.96) 0%,
        rgba(7,28,53,.86) 50%,
        rgba(7,28,53,.52) 100%
    );
}

.utp-hero-content {
    position: relative;
    z-index: 2;
}

.utp-hero-eyebrow {
    color: #ff8497;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.utp-hero h1 {
    color: #fff;
    font-size: clamp(37px, 4.1vw, 54px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -1.7px;
    margin: 10px 0 12px;
}

.utp-hero h1 em {
    font-style: normal;
    font-weight: 400;
}

.utp-hero-content p {
    color: #d4deea;
    font-size: 13px;
    line-height: 1.7;
    max-width: 490px;
    margin: 0 0 14px;
}

.utp-breadcrumb {
    display: flex;
    gap: 11px;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 0;
    color: #ff8497;
    font-size: 11px;
}

.utp-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.utp-breadcrumb a:hover {
    color: #ff8497;
}

.utp-hero-side {
    position: absolute;
    right: 26px;
    bottom: 24px;
    z-index: 2;
    color: rgba(255,255,255,.68);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

/* ============================================
   MAIN EXPERIENCES SECTION
   ============================================ */

.utp-experiences {
    padding: 85px 0 95px;
    background: #f7f8fa;

    --utp-visible: 3;
    --utp-gap: 23px;
}

/* Editorial introduction */
.utp-intro {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    align-items: end;
    gap: 60px;
    margin-bottom: 54px;
}

.utp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--utp-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.utp-eyebrow::before {
    content: "";
    width: 27px;
    height: 2px;
    background: currentColor;
}

.utp-intro h2 {
    max-width: 690px;
    color: var(--utp-blue);
    font-size: clamp(35px, 3.8vw, 52px);
    font-weight: 700;
    line-height: 1.17;
    letter-spacing: -1.7px;
    margin: 0;
}

.utp-intro h2 span {
    display: block;
    font-weight: 400;
}

.utp-intro-right {
    padding-bottom: 5px;
}

.utp-intro-right p {
    max-width: 470px;
    color: var(--utp-grey);
    font-size: 13.5px;
    line-height: 1.85;
    margin: 0 0 24px;
}

.utp-intro-rule {
    width: 100%;
    height: 1px;
    background: #dce3ea;
    position: relative;
}

.utp-intro-rule::after {
    content: "";
    display: block;
    width: 70px;
    height: 2px;
    background: var(--utp-red);
}

/* ============================================
   SLIDER TOOLBAR
   ============================================ */

.utp-slider-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 23px;
}

.utp-slider-label {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #6c7e91;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.7px;
}

.utp-small-line {
    width: 24px;
    height: 2px;
    background: var(--utp-red);
}

.utp-slider-controls {
    display: flex;
    align-items: center;
    gap: 9px;
}

.utp-arrow,
.utp-pause {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    border-radius: 4px;
    cursor: pointer;
    transition:
        background .25s ease,
        color .25s ease,
        transform .25s ease;
}

.utp-arrow {
    width: 44px;
    background: #fff;
    color: var(--utp-blue);
    border: 1px solid #dce4eb;
}

.utp-arrow:hover {
    background: var(--utp-blue);
    color: #fff;
    transform: translateY(-2px);
}

.utp-pause {
    gap: 9px;
    min-width: 98px;
    padding: 0 15px;
    background: var(--utp-blue);
    color: #fff;
    border: 1px solid var(--utp-blue);
    font-size: 12px;
    font-weight: 700;
}

.utp-pause:hover {
    background: var(--utp-red);
    border-color: var(--utp-red);
}

/* ============================================
   SLIDER
   ============================================ */

.utp-slider-viewport {
    width: 100%;
    overflow: hidden;
    outline-offset: 4px;
    touch-action: pan-y;
}

.utp-slider-track {
    display: flex;
    gap: var(--utp-gap);
    align-items: stretch;
    transition: transform .65s cubic-bezier(.22,.68,0,1);
    will-change: transform;
}

.utp-slide {
    flex: 0 0 calc(
        (100% - (var(--utp-visible) - 1) * var(--utp-gap))
        / var(--utp-visible)
    );
    min-width: 0;
    display: flex;
}

/* ============================================
   PREMIUM TESTIMONIAL CARD
   ============================================ */

.utp-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    min-height: 520px;
    background: #fff;
    border: 1px solid #e3e9ef;
    border-bottom: 3px solid transparent;
    overflow: hidden;

    transition:
        border-color .35s ease,
        box-shadow .35s ease,
        transform .35s ease;
}

.utp-card:hover {
    transform: translateY(-6px);
    border-bottom-color: var(--utp-red);
    box-shadow: 0 22px 45px rgba(7,28,53,.11);
}

/* Navy image-style header */
.utp-card-header {
    position: relative;
    isolation: isolate;
    height: 105px;
    background: var(--utp-blue);
    overflow: hidden;
}

.utp-card-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(
            100deg,
            rgba(7,28,53,.92),
            rgba(7,28,53,.55)
        ),
        url('../img/n1.jpg') center / cover no-repeat;
    transition: transform .8s ease;
}

.utp-card:hover .utp-card-header::before {
    transform: scale(1.1);
}

.utp-card-header::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 70px;
    height: 3px;
    background: var(--utp-red);
}

.utp-card-number {
    position: relative;
    z-index: 1;
    display: inline-block;
    padding: 20px 23px;
    color: rgba(255,255,255,.86);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.2px;
}

.utp-card-decoration {
    position: absolute;
    right: 22px;
    top: 15px;
    width: 50px;
    height: 50px;
    border: 1px solid rgba(255,255,255,.12);
    transform: rotate(45deg);
}

/* Client profile */
.utp-card-person {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 26px;
    margin-top: -28px;
    position: relative;
    z-index: 2;
}

.utp-client-photo {
    width: 81px;
    height: 81px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 50%;
    border: 4px solid #fff;
    background: #e7edf2;
    box-shadow: 0 5px 15px rgba(7,28,53,.13);
}

.utp-client-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    transition: transform .5s ease;
}

.utp-card:hover .utp-client-photo img {
    transform: scale(1.1);
}

.utp-person-name {
    padding-top: 27px;
    min-width: 0;
}

.utp-person-name h3 {
    color: var(--utp-blue);
    font-size: 15px;
    line-height: 1.3;
    font-weight: 700;
    margin: 0 0 5px;
}

.utp-person-name span {
    color: #8897a7;
    font-size: 11px;
}

/* Full testimonial */
.utp-card-body {
    position: relative;
    flex: 1;
    padding: 25px 29px 26px;
}

.utp-quote-mark {
    display: block;
    color: var(--utp-red);
    font-size: 23px;
    margin-bottom: 14px;
}

.utp-card-body blockquote {
    margin: 0;
    padding: 0;
    border: 0;
    color: #55677c;
    font-size: 12.7px;
    line-height: 1.9;
    font-weight: 400;
}

/* Subtle card footer */
.utp-card-footer {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 28px 22px;
}

.utp-card-footer-line {
    width: 25px;
    height: 2px;
    background: var(--utp-red);
}

.utp-card-footer > span:last-child {
    color: #9ba9b6;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
}

/* ============================================
   PROGRESS / COUNTER
   ============================================ */

.utp-slider-bottom {
    display: flex;
    align-items: center;
    gap: 26px;
    margin-top: 30px;
}

.utp-counter {
    display: flex;
    align-items: center;
    gap: 11px;
    white-space: nowrap;
    font-size: 12px;
    color: #8796a6;
}

.utp-counter strong {
    color: var(--utp-blue);
    font-size: 17px;
}

.utp-counter-divider {
    width: 25px;
    height: 1px;
    background: #bbc6d1;
}

.utp-progress {
    height: 3px;
    flex: 1;
    background: #dee5ec;
    overflow: hidden;
}

.utp-progress-fill {
    display: block;
    width: 16.6667%;
    height: 100%;
    background: var(--utp-red);
    transition: width .4s ease;
}

.utp-slider-hint {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: #8493a4;
    font-size: 11px;
    white-space: nowrap;
}

/* ============================================
   PHOTOGRAPHIC NEXT STEP SECTION
   ============================================ */

.utp-next-step {
    position: relative;
    isolation: isolate;
    padding: 75px 0;
    overflow: hidden;
    background: var(--utp-navy);
}

.utp-next-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    transition: transform 1.2s ease;
}

.utp-next-step:hover .utp-next-bg {
    transform: scale(1.055);
}

.utp-next-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        100deg,
        rgba(4,17,35,.96),
        rgba(7,28,53,.87) 52%,
        rgba(7,28,53,.58)
    );
}

.utp-next-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 45px;
}

.utp-eyebrow-light {
    color: #ff8195;
}

.utp-next-inner h2 {
    color: #fff;
    font-size: clamp(29px, 3.2vw, 42px);
    line-height: 1.2;
    letter-spacing: -1px;
    margin: 0 0 15px;
}

.utp-next-inner h2 span {
    display: block;
    font-weight: 400;
}

.utp-next-inner p {
    max-width: 550px;
    color: #d7e0e9;
    font-size: 13px;
    line-height: 1.8;
    margin: 0;
}

.utp-next-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-shrink: 0;
    min-height: 49px;
    padding: 14px 23px;

    color: #fff !important;
    background: var(--utp-red);
    border: 1px solid var(--utp-red);
    border-radius: 4px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;

    transition:
        background .3s ease,
        transform .3s ease;
}

.utp-next-button:hover {
    background: #b91731;
    transform: translateY(-3px);
}

.utp-next-button i {
    transition: transform .3s ease;
}

.utp-next-button:hover i {
    transform: translateX(5px);
}

/* ============================================
   SCROLL REVEAL ANIMATIONS
   ============================================ */

.utp-motion-ready .utp-reveal {
    opacity: 0;
    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.2,.7,.2,1);
}

.utp-motion-ready [data-utp-reveal="left"] {
    transform: translateX(-35px);
}

.utp-motion-ready [data-utp-reveal="right"] {
    transform: translateX(35px);
}

.utp-motion-ready [data-utp-reveal="up"] {
    transform: translateY(25px);
}

.utp-motion-ready .utp-reveal.utp-visible {
    opacity: 1;
    transform: none;
}

/* ============================================
   TABLET
   ============================================ */

@media (max-width: 991px) {

    .utp-hero {
        height: 240px;
        min-height: 240px;
        margin-top: -22px;
    }

    .utp-experiences {
        --utp-visible: 2;
        --utp-gap: 20px;
        padding: 70px 0;
    }

    .utp-intro {
        gap: 35px;
    }

    .utp-card {
        min-height: 520px;
    }

    .utp-next-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
    }
}

/* ============================================
   MOBILE
   ============================================ */

@media (max-width: 640px) {

    .utp-hero {
        height: 220px;
        min-height: 220px;
        margin-top: -15px;
        padding-top: 48px;
    }

    .utp-hero h1 {
        font-size: 35px;
        letter-spacing: -1px;
    }

    .utp-hero-content p {
        font-size: 11.5px;
    }

    .utp-hero-side {
        display: none;
    }

    .utp-experiences {
        --utp-visible: 1;
        --utp-gap: 16px;
        padding: 55px 0 65px;
    }

    .utp-intro {
        grid-template-columns: 1fr;
        gap: 18px;
        margin-bottom: 37px;
    }

    .utp-intro h2 {
        font-size: 33px;
        letter-spacing: -1px;
    }

    .utp-intro-right p {
        font-size: 12.5px;
    }

    .utp-slider-top {
        flex-wrap: wrap;
        gap: 17px;
    }

    .utp-slider-controls {
        width: 100%;
    }

    .utp-pause {
        margin-left: auto;
    }

    .utp-card {
        min-height: 0;
    }

    .utp-card-body {
        padding: 23px 24px 24px;
    }

    .utp-card-person {
        padding: 0 22px;
    }

    .utp-card-body blockquote {
        font-size: 12.5px;
    }

    .utp-slider-bottom {
        gap: 15px;
    }

    .utp-slider-hint {
        display: none;
    }

    .utp-next-step {
        padding: 60px 0;
    }

    .utp-next-inner h2 {
        font-size: 30px;
    }

    .utp-next-inner p {
        font-size: 12.5px;
    }

    .utp-next-button {
        white-space: normal;
    }
}

/* ============================================
   ACCESSIBILITY
   ============================================ */

.utp-page button:focus-visible,
.utp-page a:focus-visible,
.utp-slider-viewport:focus-visible {
    outline: 3px solid var(--utp-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .utp-hero-image {
        animation: none !important;
    }

    .utp-page *,
    .utp-page *::before,
    .utp-page *::after {
        transition: none !important;
    }

    .utp-motion-ready .utp-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}



/* ==========================================
   UPLAND SITES - EXCLUSIVE OUR STORY PAGE
   ========================================== */

.us-story-page {
    --us-navy: #071c35;
    --us-blue: #0b2444;
    --us-red: #d91f3b;
    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.us-story-page *,
.us-story-page *::before,
.us-story-page *::after {
    box-sizing: border-box;
}

/* ==========================================
   HERO
   ========================================== */

.us-story-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    height: 260px;
    min-height: 260px;
    margin-top: -30px;
    padding: 55px 0 22px;
    background: var(--us-navy);
    overflow: hidden;
}

.us-story-hero-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center 55% / cover no-repeat;
    animation: usStoryCinematic 16s ease-in-out infinite alternate;
}

@keyframes usStoryCinematic {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

.us-story-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        95deg,
        rgba(4,17,35,.96),
        rgba(7,28,53,.85) 52%,
        rgba(7,28,53,.52)
    );
}

.us-story-hero-content {
    position: relative;
    z-index: 2;
}

.us-story-eyebrow {
    color: #ff8598;
    font-size: 10px;
    letter-spacing: 2.2px;
    font-weight: 700;
}

.us-story-hero h1 {
    color: #fff;
    font-size: clamp(38px, 4.3vw, 56px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -1.8px;
    margin: 10px 0 12px;
}

.us-story-hero h1 em {
    font-style: normal;
    font-weight: 400;
}

.us-story-hero-content p {
    color: #d6e0eb;
    font-size: 13px;
    line-height: 1.7;
    max-width: 510px;
    margin: 0 0 14px;
}

.us-story-breadcrumb {
    display: flex;
    align-items: center;
    gap: 11px;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 11px;
    color: #ff8598;
}

.us-story-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.us-story-breadcrumb a:hover {
    color: #ff8598;
}

.us-story-hero-tag {
    position: absolute;
    z-index: 2;
    right: 27px;
    bottom: 23px;
    color: rgba(255,255,255,.73);
    font-size: 9px;
    letter-spacing: 2px;
    font-weight: 700;
}

/* ==========================================
   MAIN EDITORIAL STORY
   ========================================== */

.us-story-chapter {
    padding: 90px 0 100px;
    background: #fafafa;
}

.us-story-chapter-grid {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    align-items: center;
    gap: clamp(40px, 6vw, 95px);
}

.us-story-narrative {
    min-width: 0;
}

.us-story-chapter-label {
    display: flex;
    align-items: center;
    gap: 13px;
    color: var(--us-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.8px;
    margin-bottom: 24px;
}

.us-story-chapter-line {
    width: 30px;
    height: 2px;
    background: currentColor;
}

.us-story-narrative h2 {
    color: var(--us-blue);
    font-size: clamp(37px, 4vw, 53px);
    line-height: 1.14;
    letter-spacing: -1.8px;
    font-weight: 700;
    margin: 0 0 30px;
}

.us-story-narrative h2 span {
    display: block;
    font-weight: 400;
}

.us-story-lead {
    color: var(--us-blue) !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
    font-weight: 600;
}

.us-story-narrative > p {
    color: #667487;
    font-size: 13.5px;
    line-height: 1.95;
    margin: 0 0 16px;
}

/* Highlighted original story statement */
.us-story-statement {
    position: relative;
    display: flex;
    gap: 12px;
    margin-top: 25px;
    padding: 18px 0 18px 20px;
    border-left: 3px solid var(--us-red);
}

.us-story-statement-mark {
    color: var(--us-red);
    font-size: 43px;
    font-weight: 700;
    line-height: 1;
}

.us-story-statement p {
    color: var(--us-blue);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.7;
    margin: 0;
}

/* Editorial action link */
.us-story-explore {
    display: inline-flex;
    align-items: center;
    gap: 19px;
    color: var(--us-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    margin-top: 23px;
}

.us-story-explore span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--us-red);
    color: var(--us-red);
    transition: background .3s, color .3s, transform .3s;
}

.us-story-explore:hover span {
    background: var(--us-red);
    color: #fff;
    transform: translateX(6px);
}

/* ==========================================
   EDITORIAL IMAGE
   ========================================== */

.us-story-visual {
    position: relative;
    min-width: 0;
}

.us-story-photo-shell {
    position: relative;
    height: 560px;
    overflow: hidden;
    background: #e5ebf0;
}

.us-story-photo {
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
}

.us-story-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1);
    transition: transform 1.2s cubic-bezier(.2,.7,.2,1);
}

.us-story-photo-shell:hover img {
    transform: scale(1.08);
}

.us-story-photo-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        transparent 48%,
        rgba(5,20,40,.78) 100%
    );
}

.us-story-photo-caption {
    position: absolute;
    left: 33px;
    right: 33px;
    bottom: 30px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.us-photo-caption-number {
    color: #ff8899;
    font-size: 10px;
    letter-spacing: 2px;
    font-weight: 700;
}

.us-story-photo-caption strong {
    color: #fff;
    font-size: clamp(23px, 2.5vw, 34px);
    font-weight: 600;
    line-height: 1.2;
}

.us-story-photo-edge {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 110px;
    height: 110px;
    border-top: 3px solid var(--us-red);
    border-right: 3px solid var(--us-red);
    pointer-events: none;
}

.us-story-image-footnote {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #8b98a8;
    font-size: 10px;
    letter-spacing: 1.8px;
    font-weight: 700;
    margin-top: 19px;
}

.us-footnote-line {
    width: 33px;
    height: 2px;
    background: var(--us-red);
}

/* ==========================================
   RETHINKING DISTANCE
   ========================================== */

.us-story-distance {
    position: relative;
    isolation: isolate;
    padding: 105px 0;
    background: var(--us-navy);
    overflow: hidden;
}

.us-story-distance-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    transform: scale(1);
    transition: transform 1.5s ease;
}

.us-story-distance:hover .us-story-distance-bg {
    transform: scale(1.055);
}

.us-story-distance-shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        105deg,
        rgba(4,17,35,.97) 0%,
        rgba(7,28,53,.91) 50%,
        rgba(7,28,53,.73) 100%
    );
}

.us-story-distance-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(45px, 6vw, 100px);
    align-items: center;
}

.us-story-distance-title .us-story-chapter-label {
    color: #ff8295;
}

.us-story-distance-title h2 {
    color: #fff;
    font-size: clamp(53px, 6vw, 83px);
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: -3.5px;
    margin: 0 0 35px;
}

.us-story-distance-title h2 em {
    display: block;
    color: #fff;
    font-weight: 400;
    font-style: normal;
}

.us-story-distance-rule {
    display: block;
    width: 90px;
    height: 3px;
    background: var(--us-red);
}

.us-story-distance-copy {
    padding-left: 42px;
    border-left: 1px solid rgba(255,255,255,.25);
}

.us-story-distance-eyebrow {
    display: block;
    color: #ff8295;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.8px;
    margin-bottom: 15px;
}

.us-story-distance-copy h3 {
    color: #fff;
    font-size: clamp(24px, 2.5vw, 33px);
    font-weight: 600;
    line-height: 1.27;
    margin: 0 0 22px;
}

.us-story-distance-copy p {
    color: #d4dfeb;
    font-size: 13px;
    line-height: 1.9;
    margin: 0 0 16px;
}

.us-story-distance-copy
.us-story-distance-conclusion {
    color: #fff;
    font-weight: 600;
    padding-left: 17px;
    border-left: 3px solid var(--us-red);
    margin-top: 21px;
}

.us-story-distance-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 21px;
    background: var(--us-red);
    color: #fff !important;
    min-height: 48px;
    padding: 13px 22px;
    margin-top: 18px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background .3s, transform .3s;
}

.us-story-distance-btn:hover {
    background: #b91631;
    transform: translateY(-4px);
}

/* ==========================================
   CLEAN CLOSING SIGNATURE
   ========================================== */

.us-story-ending {
    background: #fff;
    padding: 50px 0;
}

.us-story-ending-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    border-top: 1px solid #e4e9ef;
    padding-top: 26px;
}

.us-story-ending-mark {
    color: var(--us-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.us-story-ending-inner p {
    color: var(--us-blue);
    font-size: 24px;
    font-weight: 600;
    margin: 0;
}

.us-story-ending-inner a {
    display: inline-flex;
    gap: 13px;
    align-items: center;
    color: var(--us-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.us-story-ending-inner a:hover {
    color: var(--us-red);
}

/* ==========================================
   SCROLL REVEAL
   ========================================== */

.us-motion-ready .us-reveal {
    opacity: 0;
    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.2,.7,.2,1);
}

.us-motion-ready [data-us-reveal="left"] {
    transform: translateX(-35px);
}

.us-motion-ready [data-us-reveal="right"] {
    transform: translateX(35px);
}

.us-motion-ready [data-us-reveal="up"] {
    transform: translateY(25px);
}

.us-motion-ready .us-reveal.us-visible {
    opacity: 1;
    transform: none;
}

/* ==========================================
   TABLET
   ========================================== */

@media (max-width: 991px) {

    .us-story-hero {
        height: 240px;
        min-height: 240px;
        margin-top: -22px;
    }

    .us-story-chapter {
        padding: 75px 0;
    }

    .us-story-chapter-grid,
    .us-story-distance-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .us-story-photo-shell {
        height: 480px;
    }

    .us-story-distance {
        padding: 75px 0;
    }

    .us-story-distance-copy {
        padding-left: 30px;
    }
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 640px) {

    .us-story-hero {
        height: 220px;
        min-height: 220px;
        margin-top: -15px;
        padding-top: 45px;
    }

    .us-story-hero h1 {
        font-size: 36px;
        letter-spacing: -1px;
    }

    .us-story-hero-content p {
        font-size: 11.5px;
    }

    .us-story-hero-tag {
        display: none;
    }

    .us-story-chapter {
        padding: 55px 0;
    }

    .us-story-chapter-grid {
        gap: 38px;
    }

    .us-story-narrative h2 {
        font-size: 35px;
        letter-spacing: -1px;
    }

    .us-story-narrative > p {
        font-size: 12.8px;
    }

    .us-story-photo-shell {
        height: 365px;
    }

    .us-story-photo-edge {
        top: -9px;
        right: -9px;
        width: 70px;
        height: 70px;
    }

    .us-story-photo-caption {
        left: 22px;
        right: 22px;
        bottom: 23px;
    }

    .us-story-distance {
        padding: 65px 0;
    }

    .us-story-distance-title h2 {
        font-size: 54px;
        letter-spacing: -2px;
    }

    .us-story-distance-copy {
        padding-left: 21px;
    }

    .us-story-distance-copy p {
        font-size: 12.5px;
    }

    .us-story-ending {
        padding: 35px 0;
    }

    .us-story-ending-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
}

/* ==========================================
   ACCESSIBILITY
   ========================================== */

.us-story-page a:focus-visible {
    outline: 3px solid var(--us-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .us-story-hero-image {
        animation: none !important;
    }

    .us-story-page *,
    .us-story-page *::before,
    .us-story-page *::after {
        transition: none !important;
    }

    .us-motion-ready .us-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}



/* ============================================
   UPLAND SITES - HOW IT WORKS PAGE
   ============================================ */

.uhw-page {
    --uhw-navy: #071c35;
    --uhw-blue: #0b2444;
    --uhw-red: #d91f3b;
    --uhw-grey: #657589;

    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.uhw-page *,
.uhw-page *::before,
.uhw-page *::after {
    box-sizing: border-box;
}

/* ============================================
   01. HERO
   ============================================ */

.uhw-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: 260px;
    margin-top: -30px;
    padding: 58px 0 25px;
    background: var(--uhw-navy);
    overflow: hidden;
}

.uhw-hero-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n2.jpg') center 55% / cover no-repeat;
    animation: uhwHeroZoom 17s ease-in-out infinite alternate;
}

@keyframes uhwHeroZoom {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

.uhw-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        95deg,
        rgba(4,17,35,.96),
        rgba(7,28,53,.85) 52%,
        rgba(7,28,53,.50)
    );
}

.uhw-hero-content {
    position: relative;
    z-index: 2;
}

.uhw-hero-eyebrow {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #ff8296;
}

.uhw-hero h1 {
    font-size: clamp(38px, 4.2vw, 55px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -1.8px;
    color: #fff;
    margin: 11px 0 13px;
}

.uhw-hero h1 em {
    font-style: normal;
    font-weight: 400;
}

.uhw-hero-content p {
    max-width: 490px;
    color: #d5e0ec;
    font-size: 13px;
    line-height: 1.7;
    margin: 0 0 14px;
}

.uhw-breadcrumb {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
    color: #ff8296;
    font-size: 11px;
}

.uhw-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.uhw-breadcrumb a:hover {
    color: #ff8296;
}

.uhw-hero-side {
    position: absolute;
    right: 28px;
    bottom: 24px;
    z-index: 2;
    color: rgba(255,255,255,.72);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

/* ============================================
   SHARED TYPOGRAPHY
   ============================================ */

.uhw-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--uhw-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 17px;
}

.uhw-kicker::before {
    content: "";
    width: 27px;
    height: 2px;
    background: currentColor;
}

/* ============================================
   02. INTRODUCTION
   ============================================ */

.uhw-intro {
    padding: 80px 0 70px;
    background: #fff;
}

.uhw-intro-grid {
    display: grid;
    grid-template-columns: 1fr .9fr;
    gap: clamp(40px, 6vw, 100px);
    align-items: center;
}

.uhw-intro h2,
.uhw-process-header h2 {
    color: var(--uhw-blue);
    font-size: clamp(34px, 3.8vw, 50px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -1.6px;
    margin: 0;
}

.uhw-intro h2 span,
.uhw-process-header h2 span {
    display: block;
    font-weight: 400;
}

.uhw-intro-right {
    padding-left: 30px;
    border-left: 2px solid #e5ebf1;
}

.uhw-intro-right p {
    color: var(--uhw-grey);
    font-size: 13.5px;
    line-height: 1.85;
    margin: 0 0 14px;
}

.uhw-intro-right p:last-child {
    margin-bottom: 0;
}

/* ============================================
   03. JOURNEY SECTION
   ============================================ */

.uhw-process {
    padding: 80px 0 100px;
    background: #f7f8fa;
}

.uhw-process-header {
    max-width: 670px;
    margin-bottom: 65px;
}

.uhw-process-header p {
    max-width: 550px;
    color: var(--uhw-grey);
    font-size: 13.5px;
    line-height: 1.8;
    margin: 19px 0 0;
}

/* Timeline layout */
.uhw-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.uhw-timeline::before {
    content: "";
    position: absolute;
    left: 31px;
    top: 25px;
    bottom: 65px;
    width: 1px;
    background: #d5dde6;
}

.uhw-step {
    position: relative;
    display: grid;
    grid-template-columns:
        65px minmax(0, 1fr) minmax(0, .95fr);
    align-items: center;
    gap: clamp(22px, 4vw, 65px);
    padding: 0 0 65px;
}

.uhw-step:last-child {
    padding-bottom: 0;
}

/* Step number */
.uhw-step-marker {
    display: flex;
    justify-content: center;
    align-self: start;
    padding-top: 19px;
    position: relative;
    z-index: 2;
}

.uhw-step-marker span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background: var(--uhw-blue);
    border: 5px solid #f7f8fa;
    border-radius: 50%;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    transition: background .3s, transform .3s;
}

.uhw-step:hover .uhw-step-marker span {
    background: var(--uhw-red);
    transform: scale(1.09);
}

/* Step description */
.uhw-step-copy {
    max-width: 470px;
}

.uhw-step-label {
    color: var(--uhw-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.7px;
}

.uhw-step-copy h3 {
    color: var(--uhw-blue);
    font-size: clamp(24px, 2.8vw, 32px);
    font-weight: 700;
    letter-spacing: -1px;
    margin: 11px 0 16px;
}

.uhw-step-copy p {
    color: var(--uhw-grey);
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 18px;
}

.uhw-step-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--uhw-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid var(--uhw-red);
    padding-bottom: 6px;
    transition: color .25s, gap .25s;
}

.uhw-step-link:hover {
    color: var(--uhw-red);
    gap: 19px;
}

/* Timeline photographs */
.uhw-step-visual {
    position: relative;
    height: 245px;
    overflow: hidden;
    background: #e5ebf1;
}

.uhw-step-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1s cubic-bezier(.2,.7,.2,1);
}

.uhw-step:hover .uhw-step-visual img {
    transform: scale(1.075);
}

.uhw-step-visual:has(img)::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        transparent 55%,
        rgba(7,28,53,.40)
    );
    pointer-events: none;
}

.uhw-visual-tag {
    position: absolute;
    left: 21px;
    bottom: 20px;
    z-index: 2;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

/* Editorial information panel */
.uhw-step-detail {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 32px;
    background: #eaf0f5;
    border-left: 3px solid var(--uhw-red);
}

.uhw-detail-icon {
    color: var(--uhw-blue);
    font-size: 29px;
    margin-bottom: 18px;
}

.uhw-detail-heading {
    color: var(--uhw-blue);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.2px;
    margin-bottom: 9px;
}

.uhw-step-detail p {
    color: var(--uhw-grey);
    font-size: 13px;
    line-height: 1.8;
    margin: 0;
}

/* Final symbolic panel */
.uhw-step-final {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 13px;
    padding: 35px;
    background: var(--uhw-blue);
    color: #fff;
}

.uhw-final-symbol {
    font-size: 31px;
    color: #ff758b;
}

.uhw-step-final strong {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.2;
}

.uhw-step-final > span:last-child {
    font-size: 10px;
    letter-spacing: 2px;
    color: #c7d6e4;
}

/* ============================================
   04. SITE VISIT OVERLAY SECTION
   ============================================ */

.uhw-visit {
    position: relative;
    isolation: isolate;
    padding: 95px 0;
    overflow: hidden;
    background: var(--uhw-navy);
}

.uhw-visit-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    transition: transform 1.4s ease;
}

.uhw-visit:hover .uhw-visit-bg {
    transform: scale(1.06);
}

.uhw-visit-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        100deg,
        rgba(4,17,35,.96),
        rgba(7,28,53,.88) 57%,
        rgba(7,28,53,.65)
    );
}

.uhw-visit-inner {
    display: grid;
    grid-template-columns: 1.3fr .7fr;
    align-items: center;
    gap: 70px;
}

.uhw-light-kicker {
    color: #ff8296;
}

.uhw-visit h2 {
    color: #fff;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 700;
    line-height: 1.17;
    letter-spacing: -1.6px;
    margin: 0 0 22px;
}

.uhw-visit h2 span {
    display: block;
    font-weight: 400;
}

.uhw-visit-inner > div:first-child > p {
    max-width: 580px;
    color: #d4dfea;
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 28px;
}

.uhw-visit-button,
.uhw-ending-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    min-height: 49px;
    padding: 14px 23px;
    background: var(--uhw-red);
    color: #fff !important;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid var(--uhw-red);
    border-radius: 3px;
    text-decoration: none !important;
    transition: background .3s, transform .3s;
}

.uhw-visit-button:hover,
.uhw-ending-button:hover {
    background: #b91731;
    transform: translateY(-3px);
}

.uhw-visit-side {
    border-left: 1px solid rgba(255,255,255,.3);
    padding-left: 42px;
}

.uhw-visit-quote-mark {
    display: block;
    font-size: 66px;
    line-height: 1;
    color: #ff8296;
    font-weight: 700;
}

.uhw-visit-side p {
    color: #fff;
    font-size: clamp(24px, 2.7vw, 34px);
    font-weight: 400;
    line-height: 1.4;
    margin: 4px 0 23px;
}

.uhw-visit-side-line {
    display: block;
    height: 3px;
    width: 50px;
    background: var(--uhw-red);
}

/* ============================================
   05. ENDING STRIP
   ============================================ */

.uhw-ending {
    padding: 70px 0;
    background: #fff;
}

.uhw-ending-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
}

.uhw-ending h2 {
    font-size: clamp(28px, 3.2vw, 39px);
    font-weight: 700;
    color: var(--uhw-blue);
    line-height: 1.2;
    letter-spacing: -1px;
    margin: 0;
}

.uhw-ending h2 span {
    display: block;
    font-weight: 400;
}

.uhw-ending-button {
    flex-shrink: 0;
}

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */

.uhw-motion-ready .uhw-reveal {
    opacity: 0;
    transition:
        opacity .75s ease,
        transform .75s cubic-bezier(.2,.7,.2,1);
}

.uhw-motion-ready [data-uhw-reveal="left"] {
    transform: translateX(-34px);
}

.uhw-motion-ready [data-uhw-reveal="right"] {
    transform: translateX(34px);
}

.uhw-motion-ready [data-uhw-reveal="up"] {
    transform: translateY(25px);
}

.uhw-motion-ready .uhw-reveal.uhw-visible {
    opacity: 1;
    transform: none;
}

/* ============================================
   TABLET
   ============================================ */

@media (max-width: 991px) {

    .uhw-hero {
        min-height: 240px;
        margin-top: -22px;
    }

    .uhw-intro-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .uhw-intro-right {
        padding-left: 20px;
    }

    .uhw-step {
        grid-template-columns: 65px minmax(0, 1fr);
        gap: 25px;
    }

    .uhw-step-visual {
        grid-column: 2;
        height: 260px;
    }

    .uhw-visit-inner {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .uhw-visit-side {
        padding-left: 25px;
    }
}

/* ============================================
   MOBILE
   ============================================ */

@media (max-width: 640px) {

    .uhw-hero {
        min-height: 220px;
        margin-top: -15px;
        padding: 48px 0 20px;
    }

    .uhw-hero h1 {
        font-size: 36px;
        letter-spacing: -1px;
    }

    .uhw-hero-content p {
        font-size: 11.5px;
    }

    .uhw-hero-side {
        display: none;
    }

    .uhw-intro {
        padding: 55px 0;
    }

    .uhw-intro h2,
    .uhw-process-header h2 {
        font-size: 34px;
    }

    .uhw-intro-right p {
        font-size: 12.8px;
    }

    .uhw-process {
        padding: 55px 0 65px;
    }

    .uhw-process-header {
        margin-bottom: 43px;
    }

    .uhw-timeline::before {
        left: 21px;
    }

    .uhw-step {
        grid-template-columns: 45px minmax(0, 1fr);
        gap: 14px;
        padding-bottom: 45px;
    }

    .uhw-step-marker {
        padding-top: 10px;
    }

    .uhw-step-marker span {
        width: 42px;
        height: 42px;
        font-size: 11px;
        border-width: 4px;
    }

    .uhw-step-copy h3 {
        font-size: 25px;
    }

    .uhw-step-copy p {
        font-size: 12.5px;
        line-height: 1.85;
    }

    .uhw-step-visual {
        grid-column: 2;
        height: 190px;
    }

    .uhw-step-detail,
    .uhw-step-final {
        padding: 23px;
    }

    .uhw-visit {
        padding: 65px 0;
    }

    .uhw-visit h2 {
        font-size: 34px;
    }

    .uhw-visit-inner > div:first-child > p {
        font-size: 12.8px;
    }

    .uhw-visit-side p {
        font-size: 25px;
    }

    .uhw-ending {
        padding: 55px 0;
    }

    .uhw-ending-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
    }

    .uhw-ending h2 {
        font-size: 30px;
    }
}

/* ============================================
   ACCESSIBILITY
   ============================================ */

.uhw-page a:focus-visible {
    outline: 3px solid var(--uhw-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .uhw-hero-image {
        animation: none !important;
    }

    .uhw-page *,
    .uhw-page *::before,
    .uhw-page *::after {
        transition: none !important;
    }

    .uhw-motion-ready .uhw-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}




/* ============================================
   UPLAND SITES - FAQs PAGE
   ============================================ */

.ufaq-page {
    --ufaq-navy: #071c35;
    --ufaq-blue: #0b2444;
    --ufaq-red: #d91f3b;

    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.ufaq-page *,
.ufaq-page *::before,
.ufaq-page *::after {
    box-sizing: border-box;
}

/* ============================================
   01. PAGE HERO
   ============================================ */

.ufaq-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    height: 260px;
    min-height: 260px;
    margin-top: -30px;
    padding: 55px 0 22px;
    background: var(--ufaq-navy);
    overflow: hidden;
}

.ufaq-hero-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n2.jpg') center 55% / cover no-repeat;
    animation: ufaqHeroZoom 16s ease-in-out infinite alternate;
}

@keyframes ufaqHeroZoom {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

.ufaq-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        95deg,
        rgba(4,17,35,.96),
        rgba(7,28,53,.85) 52%,
        rgba(7,28,53,.50)
    );
}

.ufaq-hero-content {
    position: relative;
    z-index: 2;
}

.ufaq-hero-eyebrow {
    color: #ff8296;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.ufaq-hero h1 {
    color: #fff;
    font-size: clamp(35px, 4vw, 53px);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -1.7px;
    margin: 10px 0 12px;
}

.ufaq-hero h1 em {
    font-style: normal;
    font-weight: 400;
}

.ufaq-hero-content p {
    color: #d7e0eb;
    font-size: 13px;
    line-height: 1.7;
    margin: 0 0 14px;
    max-width: 490px;
}

.ufaq-breadcrumb {
    display: flex;
    align-items: center;
    gap: 11px;
    list-style: none;
    padding: 0;
    margin: 0;
    color: #ff8296;
    font-size: 11px;
}

.ufaq-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.ufaq-breadcrumb a:hover {
    color: #ff8296;
}

.ufaq-hero-side {
    position: absolute;
    right: 27px;
    bottom: 23px;
    z-index: 2;
    color: rgba(255,255,255,.7);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

/* ============================================
   02. FAQ SECTION
   ============================================ */

.ufaq-section {
    padding: 85px 0 95px;
    background: #f8f9fb;
}

/* Section intro */
.ufaq-heading {
    text-align: center;
    max-width: 690px;
    margin: 0 auto 42px;
}

.ufaq-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ufaq-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.ufaq-eyebrow::before {
    content: "";
    width: 26px;
    height: 2px;
    background: currentColor;
}

.ufaq-heading h2 {
    color: var(--ufaq-blue);
    font-size: clamp(32px, 3.5vw, 46px);
    font-weight: 700;
    letter-spacing: -1.5px;
    line-height: 1.2;
    margin: 0 0 15px;
}

.ufaq-heading h2 span {
    font-weight: 400;
}

.ufaq-heading p {
    color: #69798c;
    font-size: 13px;
    line-height: 1.85;
    margin: 0;
}

/* Main FAQ list */
.ufaq-list {
    max-width: 890px;
    margin: 0 auto;
    border-top: 1px solid #dfe6ee;
}

/* Individual question */
.ufaq-item {
    border-bottom: 1px solid #dfe6ee;
    background: transparent;
    transition:
        background .3s ease,
        box-shadow .3s ease;
}

.ufaq-item:hover {
    background: #fff;
}

.ufaq-item[open] {
    background: #fff;
    box-shadow: 0 10px 26px rgba(7,28,53,.045);
}

/* Question row */
.ufaq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    list-style: none;
    cursor: pointer;
    padding: 23px 22px;
    color: var(--ufaq-blue);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    transition:
        color .25s ease,
        padding-left .25s ease;
}

.ufaq-item summary::-webkit-details-marker {
    display: none;
}

.ufaq-item summary::marker {
    content: "";
}

.ufaq-item:hover summary {
    padding-left: 29px;
}

/* Plus icon */
.ufaq-item summary i {
    flex-shrink: 0;
    font-size: 12px;
    color: var(--ufaq-blue);
    transition:
        transform .3s ease,
        color .3s ease;
}

.ufaq-item[open] summary {
    color: var(--ufaq-red);
}

.ufaq-item[open] summary i {
    color: var(--ufaq-red);
    transform: rotate(45deg);
}

/* Answer */
.ufaq-answer {
    padding: 0 58px 25px 22px;
    animation: ufaqAnswerEnter .35s ease both;
}

@keyframes ufaqAnswerEnter {
    from {
        opacity: 0;
        transform: translateY(-7px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ufaq-answer p {
    color: #627386;
    font-size: 13px;
    line-height: 1.9;
    max-width: 750px;
    margin: 0 0 11px;
}

.ufaq-answer p:last-child {
    margin-bottom: 0;
}

.ufaq-answer a {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--ufaq-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid var(--ufaq-red);
    padding-bottom: 4px;
    margin-top: 9px;
    transition: gap .25s, color .25s;
}

.ufaq-answer a:hover {
    color: var(--ufaq-red);
    gap: 17px;
}

/* ============================================
   03. CONTACT STRIP
   ============================================ */

.ufaq-contact {
    padding: 67px 0;
    background: #fff;
}

.ufaq-contact-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.ufaq-contact h2 {
    color: var(--ufaq-blue);
    font-size: clamp(29px, 3.1vw, 40px);
    font-weight: 700;
    letter-spacing: -1.3px;
    margin: 0 0 10px;
}

.ufaq-contact h2 span {
    font-weight: 400;
}

.ufaq-contact p {
    color: #728095;
    font-size: 13px;
    line-height: 1.7;
    margin: 0;
}

.ufaq-contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-shrink: 0;
    min-height: 48px;
    padding: 13px 23px;
    background: var(--ufaq-red);
    border: 1px solid var(--ufaq-red);
    color: #fff !important;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background .3s, transform .3s;
}

.ufaq-contact-btn:hover {
    background: #b91631;
    transform: translateY(-3px);
}

.ufaq-contact-btn i {
    transition: transform .3s ease;
}

.ufaq-contact-btn:hover i {
    transform: translateX(5px);
}

/* ============================================
   SCROLL-IN EFFECTS
   ============================================ */

.ufaq-motion-ready .ufaq-reveal {
    opacity: 0;
    transition:
        opacity .65s ease,
        transform .65s cubic-bezier(.2,.7,.2,1);
}

.ufaq-motion-ready [data-ufaq-reveal="up"] {
    transform: translateY(22px);
}

.ufaq-motion-ready .ufaq-reveal.ufaq-visible {
    opacity: 1;
    transform: none;
}

/* ============================================
   TABLET
   ============================================ */

@media (max-width: 991px) {
    .ufaq-hero {
        height: 240px;
        min-height: 240px;
        margin-top: -22px;
    }

    .ufaq-section {
        padding: 70px 0;
    }
}

/* ============================================
   MOBILE
   ============================================ */

@media (max-width: 640px) {
    .ufaq-hero {
        height: 220px;
        min-height: 220px;
        margin-top: -15px;
        padding-top: 45px;
    }

    .ufaq-hero h1 {
        font-size: 33px;
        letter-spacing: -1px;
    }

    .ufaq-hero-content p {
        font-size: 11.5px;
    }

    .ufaq-hero-side {
        display: none;
    }

    .ufaq-section {
        padding: 55px 0 65px;
    }

    .ufaq-heading {
        margin-bottom: 30px;
    }

    .ufaq-heading h2 {
        font-size: 33px;
    }

    .ufaq-heading p {
        font-size: 12.5px;
    }

    .ufaq-item summary {
        padding: 19px 9px;
        font-size: 13.5px;
    }

    .ufaq-item:hover summary {
        padding-left: 13px;
    }

    .ufaq-answer {
        padding: 0 15px 20px 9px;
    }

    .ufaq-answer p {
        font-size: 12.5px;
    }

    .ufaq-contact {
        padding: 55px 0;
    }

    .ufaq-contact-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
    }

    .ufaq-contact h2 {
        font-size: 30px;
    }
}

/* ============================================
   ACCESSIBILITY
   ============================================ */

.ufaq-page a:focus-visible,
.ufaq-page summary:focus-visible {
    outline: 2px solid var(--ufaq-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .ufaq-hero-image,
    .ufaq-answer {
        animation: none !important;
    }

    .ufaq-page *,
    .ufaq-page *::before,
    .ufaq-page *::after {
        transition: none !important;
    }

    .ufaq-motion-ready .ufaq-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}




/* =============================================
   UPLAND SITES - REFER & EARN PAGE
   ============================================= */

.ur-page {
    --ur-navy: #071c35;
    --ur-blue: #0b2444;
    --ur-red: #d91f3b;
    --ur-muted: #65768a;
    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.ur-page *,
.ur-page *::before,
.ur-page *::after {
    box-sizing: border-box;
}

/* =============================================
   HERO BANNER
   ============================================= */

.ur-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    height: 260px;
    min-height: 260px;
    margin-top: -30px;
    padding: 55px 0 22px;
    background: var(--ur-navy);
    overflow: hidden;
}

.ur-hero-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n2.jpg') center 55% / cover no-repeat;
    animation: urHeroZoom 16s ease-in-out infinite alternate;
}

@keyframes urHeroZoom {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

.ur-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        95deg,
        rgba(4,17,35,.96),
        rgba(7,28,53,.86) 55%,
        rgba(7,28,53,.50)
    );
}

.ur-hero-content {
    position: relative;
    z-index: 2;
}

.ur-hero-eyebrow {
    color: #ff8296;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.ur-hero h1 {
    color: #fff;
    font-size: clamp(38px, 4.3vw, 56px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -1.8px;
    margin: 10px 0 12px;
}

.ur-hero h1 em {
    font-weight: 400;
    font-style: normal;
}

.ur-hero-content p {
    color: #d6e0ea;
    font-size: 13px;
    line-height: 1.75;
    max-width: 510px;
    margin: 0 0 14px;
}

.ur-breadcrumb {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 11px;
    color: #ff8296;
}

.ur-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.ur-breadcrumb a:hover {
    color: #ff8296;
}

.ur-hero-side {
    position: absolute;
    right: 27px;
    bottom: 24px;
    z-index: 2;
    color: rgba(255,255,255,.7);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

/* =============================================
   SHARED TYPOGRAPHY
   ============================================= */

.ur-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--ur-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    margin-bottom: 17px;
}

.ur-eyebrow::before {
    content: "";
    display: block;
    width: 27px;
    height: 2px;
    background: currentColor;
}

/* =============================================
   OFFER SECTION
   ============================================= */

.ur-offer {
    padding: 95px 0 105px;
    background: #fff;
}

.ur-offer-grid {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
    align-items: center;
    gap: clamp(45px, 6vw, 95px);
}

.ur-offer-copy h2,
.ur-process-heading h2,
.ur-enquiry-info h2 {
    color: var(--ur-blue);
    font-size: clamp(34px, 3.8vw, 51px);
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -1.7px;
    margin: 0 0 25px;
}

.ur-offer-copy h2 span,
.ur-process-heading h2 span,
.ur-enquiry-info h2 span {
    display: block;
    font-weight: 400;
}

.ur-offer-copy p {
    color: var(--ur-muted);
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 17px;
}

.ur-offer-copy .ur-offer-lead {
    color: var(--ur-blue);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.75;
}

.ur-main-button,
.ur-feature-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    min-height: 49px;
    padding: 14px 24px;
    margin-top: 17px;
    background: var(--ur-red);
    border: 1px solid var(--ur-red);
    border-radius: 3px;
    color: #fff !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    transition:
        background .3s ease,
        transform .3s ease,
        box-shadow .3s ease;
}

.ur-main-button:hover,
.ur-feature-button:hover {
    background: #b91631;
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(217,31,59,.22);
}

.ur-main-button i,
.ur-feature-button i {
    transition: transform .3s;
}

.ur-main-button:hover i,
.ur-feature-button:hover i {
    transform: translateX(5px);
}

/* Large estate image */
.ur-offer-visual {
    position: relative;
    padding: 0 0 33px 22px;
    min-width: 0;
}

.ur-offer-photo {
    position: relative;
    height: 480px;
    overflow: hidden;
    background: #e2e8ee;
}

.ur-offer-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.1s ease;
}

.ur-offer-visual:hover .ur-offer-photo img {
    transform: scale(1.075);
}

.ur-offer-photo-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        transparent 47%,
        rgba(4,17,35,.75) 100%
    );
    pointer-events: none;
}

.ur-offer-photo-caption {
    position: absolute;
    left: 29px;
    bottom: 30px;
    z-index: 2;
    color: #fff;
}

.ur-offer-photo-caption span {
    display: block;
    color: #ffa0af;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 8px;
}

.ur-offer-photo-caption strong {
    font-size: 26px;
    line-height: 1.2;
    font-weight: 600;
}

/* Floating commission feature */
.ur-offer-reward {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 260px;
    padding: 19px 25px;
    background: #fff;
    border-left: 4px solid var(--ur-red);
    box-shadow: 0 15px 40px rgba(7,28,53,.15);
    transition: transform .35s ease;
}

.ur-offer-visual:hover .ur-offer-reward {
    transform: translateY(-7px);
}

.ur-reward-icon {
    font-size: 26px;
    color: var(--ur-red);
}

.ur-offer-reward small {
    display: block;
    color: #8493a3;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.ur-offer-reward strong {
    display: block;
    color: var(--ur-blue);
    font-size: 22px;
    font-weight: 700;
}

/* =============================================
   THREE-STEP REFERRAL PROCESS
   ============================================= */

.ur-process {
    padding: 85px 0 95px;
    background: #f6f8fa;
}

.ur-process-heading {
    max-width: 660px;
    margin-bottom: 43px;
}

.ur-process-heading h2 {
    margin-bottom: 17px;
}

.ur-process-heading p {
    color: var(--ur-muted);
    font-size: 13.5px;
    line-height: 1.85;
    margin: 0;
}

/* Editorial horizontal rows */
.ur-process-list {
    border-top: 1px solid #dbe3eb;
}

.ur-process-step {
    display: grid;
    grid-template-columns: 65px 65px 1fr 35px;
    align-items: center;
    gap: 25px;
    padding: 30px 18px;
    border-bottom: 1px solid #dbe3eb;
    transition:
        background .3s,
        padding-left .3s;
}

.ur-process-step:hover {
    background: #fff;
    padding-left: 30px;
}

.ur-step-num {
    color: #a6b2bf;
    font-size: 15px;
    font-weight: 700;
}

.ur-step-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    color: var(--ur-blue);
    background: #e8eef4;
    border-radius: 4px;
    font-size: 19px;
    transition: background .3s, color .3s;
}

.ur-process-step:hover .ur-step-icon {
    background: var(--ur-blue);
    color: #fff;
}

.ur-step-content h3 {
    color: var(--ur-blue);
    font-size: 20px;
    font-weight: 700;
    margin: 0 0 9px;
}

.ur-step-content p {
    color: var(--ur-muted);
    font-size: 12.8px;
    line-height: 1.85;
    max-width: 725px;
    margin: 0;
}

.ur-step-arrow {
    color: #aab6c2;
    transition: color .3s, transform .3s;
}

.ur-process-step:hover .ur-step-arrow {
    color: var(--ur-red);
    transform: translateX(7px);
}

/* =============================================
   PHOTOGRAPHIC FEATURE
   ============================================= */

.ur-feature {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 95px 0;
    background: var(--ur-navy);
}

.ur-feature-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    transition: transform 1.4s ease;
}

.ur-feature:hover .ur-feature-bg {
    transform: scale(1.06);
}

.ur-feature-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        105deg,
        rgba(4,17,35,.97) 0%,
        rgba(7,28,53,.9) 52%,
        rgba(7,28,53,.65) 100%
    );
}

.ur-feature-inner {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    align-items: center;
    gap: clamp(50px, 7vw, 105px);
}

.ur-eyebrow-light {
    color: #ff8195;
}

.ur-feature h2 {
    color: #fff;
    font-size: clamp(35px, 3.8vw, 51px);
    line-height: 1.17;
    font-weight: 700;
    letter-spacing: -1.6px;
    margin: 0 0 21px;
}

.ur-feature h2 span {
    display: block;
    font-weight: 400;
}

.ur-feature-inner > div:first-child > p {
    color: #d4dfeb;
    max-width: 560px;
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 13px;
}

.ur-feature-note {
    padding: 26px 0 26px 40px;
    border-left: 1px solid rgba(255,255,255,.25);
}

.ur-feature-note i {
    display: block;
    color: #ff8195;
    font-size: 30px;
    margin-bottom: 24px;
}

.ur-feature-note p {
    color: #fff;
    font-size: clamp(25px, 2.6vw, 35px);
    font-weight: 500;
    line-height: 1.4;
    margin: 0 0 22px;
}

.ur-feature-note > span {
    color: #b8cbdd;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.7px;
}

/* =============================================
   REFERRAL ENQUIRY
   ============================================= */

.ur-enquiry {
    padding: 95px 0 105px;
    background: #fff;
    scroll-margin-top: 175px;
}

.ur-enquiry-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1fr);
    align-items: start;
    gap: clamp(45px, 6vw, 100px);
}

.ur-enquiry-info {
    padding-top: 28px;
}

.ur-enquiry-info h2 {
    margin-bottom: 21px;
}

.ur-enquiry-info > p {
    color: var(--ur-muted);
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 29px;
}

.ur-enquiry-point {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 0;
    border-bottom: 1px solid #e5ebf1;
    color: #52657a;
    font-size: 13px;
    line-height: 1.75;
}

.ur-enquiry-point i {
    margin-top: 4px;
    color: var(--ur-red);
    font-size: 15px;
}

.ur-enquiry-notice {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-top: 29px;
    padding: 19px;
    background: #f5f7fa;
    border-left: 3px solid var(--ur-red);
}

.ur-enquiry-notice i {
    color: var(--ur-red);
    font-size: 17px;
}

.ur-enquiry-notice p {
    color: #65768a;
    font-size: 12px;
    line-height: 1.8;
    margin: 0;
}

/* Form */
.ur-form-panel {
    position: relative;
    padding: 39px;
    background: #f7f9fb;
    border: 1px solid #e5ebf1;
    border-top: 4px solid var(--ur-red);
    box-shadow: 0 17px 43px rgba(7,28,53,.06);
}

.ur-form-kicker {
    display: block;
    color: var(--ur-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.8px;
    margin-bottom: 11px;
}

.ur-form-panel h3 {
    color: var(--ur-blue);
    font-size: 29px;
    font-weight: 700;
    letter-spacing: -1px;
    margin: 0 0 10px;
}

.ur-form-intro {
    color: var(--ur-muted);
    font-size: 12.5px;
    line-height: 1.8;
    margin: 0 0 27px;
}

.ur-form-fields {
    display: grid;
    gap: 19px;
}

.ur-field label {
    display: block;
    color: var(--ur-blue);
    font-size: 11.5px;
    font-weight: 700;
    margin-bottom: 9px;
}

.ur-field label span {
    color: var(--ur-red);
}

.ur-field input,
.ur-field select,
.ur-field textarea {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 12px 14px;
    background: #fff;
    color: var(--ur-blue);
    border: 1px solid #dce4ec;
    border-radius: 3px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 12.5px;
    outline: none;
    transition: border-color .25s, box-shadow .25s;
}

.ur-field input,
.ur-field select {
    height: 47px;
}

.ur-field textarea {
    resize: vertical;
    min-height: 105px;
}

.ur-field input:focus,
.ur-field select:focus,
.ur-field textarea:focus {
    border-color: #7292b6;
    box-shadow: 0 0 0 3px rgba(35,88,147,.08);
}

.ur-field input::placeholder,
.ur-field textarea::placeholder {
    color: #a5b0bd;
}

.ur-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 23px 0;
    cursor: pointer;
}

.ur-consent input {
    accent-color: var(--ur-red);
    margin-top: 3px;
}

.ur-consent span {
    color: #6c7d90;
    font-size: 11px;
    line-height: 1.7;
}

.ur-submit {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    width: 100%;
    min-height: 49px;
    padding: 13px 20px;
    color: #fff;
    background: var(--ur-red);
    border: 1px solid var(--ur-red);
    border-radius: 3px;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .3s, transform .3s;
}

.ur-submit:hover {
    background: #b91631;
    transform: translateY(-2px);
}

.ur-form-footnote {
    color: #8b99a8;
    font-size: 10.5px;
    line-height: 1.7;
    text-align: center;
    margin: 14px 0 0;
}

.ur-honeypot {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

/* =============================================
   SCROLL-IN ANIMATIONS
   ============================================= */

.ur-motion-ready .ur-reveal {
    opacity: 0;
    transition:
        opacity .8s ease,
        transform .8s cubic-bezier(.2,.7,.2,1);
}

.ur-motion-ready [data-ur-reveal="left"] {
    transform: translateX(-35px);
}

.ur-motion-ready [data-ur-reveal="right"] {
    transform: translateX(35px);
}

.ur-motion-ready [data-ur-reveal="up"] {
    transform: translateY(25px);
}

.ur-motion-ready .ur-reveal.ur-visible {
    opacity: 1;
    transform: none;
}

/* =============================================
   TABLET
   ============================================= */

@media (max-width: 991px) {
    .ur-hero {
        height: 240px;
        min-height: 240px;
        margin-top: -22px;
    }

    .ur-offer,
    .ur-enquiry {
        padding: 75px 0;
    }

    .ur-offer-grid,
    .ur-enquiry-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .ur-offer-visual {
        max-width: 700px;
        width: 100%;
    }

    .ur-process {
        padding: 70px 0;
    }

    .ur-feature {
        padding: 75px 0;
    }

    .ur-feature-inner {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .ur-feature-note {
        padding-left: 27px;
    }

    .ur-enquiry-info {
        padding-top: 0;
    }
}

/* =============================================
   MOBILE
   ============================================= */

@media (max-width: 640px) {
    .ur-hero {
        height: 220px;
        min-height: 220px;
        margin-top: -15px;
        padding: 47px 0 20px;
    }

    .ur-hero h1 {
        font-size: 36px;
    }

    .ur-hero-content p {
        font-size: 11.5px;
    }

    .ur-hero-side {
        display: none;
    }

    .ur-offer,
    .ur-enquiry {
        padding: 55px 0;
    }

    .ur-offer-copy h2,
    .ur-process-heading h2,
    .ur-enquiry-info h2 {
        font-size: 34px;
        letter-spacing: -1px;
    }

    .ur-offer-copy p {
        font-size: 12.8px;
    }

    .ur-offer-visual {
        padding: 0 0 25px 12px;
    }

    .ur-offer-photo {
        height: 340px;
    }

    .ur-offer-reward {
        min-width: 0;
        padding: 15px 19px;
    }

    .ur-offer-reward strong {
        font-size: 19px;
    }

    .ur-process {
        padding: 55px 0 65px;
    }

    .ur-process-step {
        grid-template-columns: 30px 42px 1fr;
        gap: 12px;
        padding: 24px 8px;
    }

    .ur-process-step:hover {
        padding-left: 11px;
    }

    .ur-step-icon {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }

    .ur-step-content h3 {
        font-size: 17px;
    }

    .ur-step-content p {
        font-size: 12px;
    }

    .ur-step-arrow {
        display: none;
    }

    .ur-feature {
        padding: 65px 0;
    }

    .ur-feature h2 {
        font-size: 35px;
    }

    .ur-feature-note p {
        font-size: 26px;
    }

    .ur-form-panel {
        padding: 29px 22px;
    }

    .ur-form-panel h3 {
        font-size: 26px;
    }
}

/* =============================================
   ACCESSIBILITY
   ============================================= */

.ur-page a:focus-visible,
.ur-page button:focus-visible {
    outline: 3px solid var(--ur-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .ur-hero-image {
        animation: none !important;
    }

    .ur-page *,
    .ur-page *::before,
    .ur-page *::after {
        transition: none !important;
    }

    .ur-motion-ready .ur-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}





/* ==========================================
   UPLAND SITES - WHY CHOOSE US
   ========================================== */

.uwc-page {
    --uwc-navy: #071c35;
    --uwc-blue: #0b2444;
    --uwc-red: #d91f3b;
    --uwc-muted: #647589;
    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.uwc-page *,
.uwc-page *::before,
.uwc-page *::after {
    box-sizing: border-box;
}

/* HERO */
.uwc-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    height: 260px;
    min-height: 260px;
    margin-top: -30px;
    padding: 55px 0 22px;
    background: #761024;
    overflow: hidden;
}

.uwc-hero-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n2.jpg') center 55% / cover no-repeat;
    animation: uwcHeroZoom 16s ease-in-out infinite alternate;
}

@keyframes uwcHeroZoom {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

/* Corporate red transitioning into navy */
.uwc-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        100deg,
        rgba(111, 12, 34, .96) 0%,
        rgba(153, 19, 47, .87) 45%,
        rgba(7, 28, 53, .65) 100%
    );
}

.uwc-hero-content {
    position: relative;
    z-index: 2;
}

.uwc-hero-eyebrow {
    color: #ffe0e5;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.uwc-hero h1 {
    color: #fff;
    font-size: clamp(38px, 4.3vw, 56px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -1.8px;
    margin: 10px 0 12px;
}

.uwc-hero h1 em {
    font-style: normal;
    font-weight: 400;
}

.uwc-hero-content p {
    color: #f4e3e8;
    font-size: 13px;
    line-height: 1.75;
    max-width: 540px;
    margin: 0 0 14px;
}

.uwc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 11px;
    list-style: none;
    padding: 0;
    margin: 0;
    color: #ffd8e1;
    font-size: 11px;
}

.uwc-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.uwc-breadcrumb a:hover {
    color: #ffd8e1;
}

.uwc-hero-side {
    position: absolute;
    z-index: 2;
    right: 27px;
    bottom: 23px;
    color: rgba(255,255,255,.77);
    font-size: 9px;
    letter-spacing: 2px;
    font-weight: 700;
}

/* SHARED TYPOGRAPHY */
.uwc-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--uwc-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.9px;
    margin-bottom: 18px;
    text-transform: uppercase;
}

.uwc-kicker::before {
    content: "";
    width: 27px;
    height: 2px;
    background: currentColor;
}

.uwc-heading {
    color: var(--uwc-blue);
    font-size: clamp(34px, 3.8vw, 50px);
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: -1.6px;
    margin: 0 0 23px;
}

.uwc-heading span {
    display: block;
    font-weight: 400;
}

/* INTRODUCTION */
.uwc-intro {
    padding: 82px 0;
    background: #fff;
}

.uwc-intro-grid {
    display: grid;
    grid-template-columns: 1fr .95fr;
    align-items: center;
    gap: clamp(35px, 6vw, 95px);
}

.uwc-intro-copy {
    border-left: 2px solid #e4eaf0;
    padding-left: 30px;
}

.uwc-intro-copy p {
    color: var(--uwc-muted);
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 16px;
}

.uwc-intro-copy p:last-child {
    margin-bottom: 0;
}



/* LOCATION FEATURE */
.uwc-location {
    background: #fff;
    padding: 95px 0;
}

.uwc-location-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(40px, 6vw, 95px);
    align-items: center;
}

.uwc-location-visual {
    position: relative;
    padding: 0 18px 18px 0;
    min-width: 0;
}

.uwc-location-photo {
    position: relative;
    height: 500px;
    background: #e5ebf1;
    overflow: hidden;
}

.uwc-location-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.1s ease;
}

.uwc-location-visual:hover img {
    transform: scale(1.075);
}

.uwc-location-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        transparent 48%,
        rgba(7,28,53,.78)
    );
    pointer-events: none;
}

.uwc-location-label {
    position: absolute;
    bottom: 32px;
    left: 30px;
    right: 25px;
    color: #fff;
}

.uwc-location-label span {
    display: block;
    font-size: 10px;
    letter-spacing: 2px;
    font-weight: 700;
    color: #ffa0af;
    margin-bottom: 9px;
}

.uwc-location-label strong {
    display: block;
    font-size: 27px;
    font-weight: 600;
    line-height: 1.2;
}

.uwc-photo-accent {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 60%;
    height: 60%;
    border-right: 3px solid var(--uwc-red);
    border-bottom: 3px solid var(--uwc-red);
    pointer-events: none;
}

.uwc-location-content > p {
    color: var(--uwc-muted);
    font-size: 13.2px;
    line-height: 1.85;
    margin-bottom: 25px;
}

.uwc-location-list {
    border-top: 1px solid #e0e7ee;
    margin-bottom: 27px;
}

.uwc-location-row {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 17px 0;
    border-bottom: 1px solid #e0e7ee;
    transition: padding .3s;
}

.uwc-location-row:hover {
    padding-left: 9px;
}

.uwc-location-row > span {
    color: var(--uwc-red);
    font-size: 11px;
    font-weight: 700;
    margin-top: 4px;
}

.uwc-location-row strong {
    color: var(--uwc-blue);
    font-size: 14px;
    font-weight: 700;
}

.uwc-location-row p {
    color: var(--uwc-muted);
    font-size: 12px;
    line-height: 1.75;
    margin: 5px 0 0;
}

.uwc-text-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--uwc-blue);
    text-decoration: none;
    border-bottom: 1px solid var(--uwc-red);
    font-size: 12px;
    font-weight: 700;
    padding-bottom: 6px;
    transition: gap .25s, color .25s;
}

.uwc-text-link:hover {
    gap: 18px;
    color: var(--uwc-red);
}

/* NAVY VALUES FEATURE */
.uwc-values-feature {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--uwc-navy);
    padding: 85px 0;
}

.uwc-values-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    transition: transform 1.3s ease;
}

.uwc-values-feature:hover .uwc-values-bg {
    transform: scale(1.055);
}

.uwc-values-overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        100deg,
        rgba(4,17,35,.97),
        rgba(7,28,53,.90) 55%,
        rgba(7,28,53,.72)
    );
}

.uwc-values-inner {
    display: grid;
    grid-template-columns: 1fr .85fr;
    align-items: center;
    gap: clamp(45px, 7vw, 105px);
}

.uwc-kicker-light {
    color: #ff8296;
}

.uwc-values-inner h2 {
    color: #fff;
    font-size: clamp(33px, 3.7vw, 49px);
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: -1.5px;
    margin: 0 0 21px;
}

.uwc-values-inner h2 span {
    display: block;
    font-weight: 400;
}

.uwc-values-inner > div:first-child > p {
    color: #d3dfeb;
    font-size: 13.2px;
    line-height: 1.9;
    max-width: 555px;
    margin: 0;
}

.uwc-values-list {
    border-top: 1px solid rgba(255,255,255,.24);
}

.uwc-values-list > div {
    display: flex;
    align-items: center;
    gap: 25px;
    padding: 18px 12px;
    border-bottom: 1px solid rgba(255,255,255,.24);
    transition: background .3s, padding .3s;
}

.uwc-values-list > div:hover {
    background: rgba(255,255,255,.07);
    padding-left: 23px;
}

.uwc-values-list span {
    font-size: 11px;
    font-weight: 700;
    color: #ff8296;
}

.uwc-values-list strong {
    font-size: 21px;
    font-weight: 500;
    color: #fff;
}

/* CLIENT EXPERIENCE */
.uwc-experience {
    padding: 90px 0;
    background: #f7f8fa;
}

.uwc-experience-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(35px, 6vw, 90px);
    align-items: center;
}

.uwc-experience-grid > div:first-child > p {
    color: var(--uwc-muted);
    font-size: 13.5px;
    line-height: 1.9;
    margin-bottom: 24px;
}

.uwc-quote {
    background: #fff;
    padding: 38px 40px;
    border-left: 3px solid var(--uwc-red);
    box-shadow: 0 12px 35px rgba(7,28,53,.055);
    transition: transform .3s, box-shadow .3s;
}

.uwc-quote:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 43px rgba(7,28,53,.10);
}

.uwc-quote > i {
    color: var(--uwc-red);
    font-size: 25px;
    margin-bottom: 20px;
}

.uwc-quote blockquote {
    padding: 0;
    border: 0;
    margin: 0 0 25px;
    color: #52657a;
    font-size: 14px;
    line-height: 1.9;
}

.uwc-quote-person {
    display: flex;
    align-items: center;
    gap: 13px;
    padding-top: 18px;
    border-top: 1px solid #e7edf2;
}

.uwc-quote-person img {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    object-fit: cover;
}

.uwc-quote-person strong {
    display: block;
    color: var(--uwc-blue);
    font-size: 13px;
    margin-bottom: 4px;
}

.uwc-quote-person span {
    display: block;
    color: #8897a7;
    font-size: 11px;
}

/* FINAL CTA */
.uwc-ending {
    padding: 68px 0;
    background: #fff;
}

.uwc-ending-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 35px;
}

.uwc-ending h2 {
    color: var(--uwc-blue);
    font-size: clamp(29px, 3.2vw, 41px);
    line-height: 1.2;
    letter-spacing: -1.2px;
    margin: 0 0 13px;
}

.uwc-ending h2 span {
    display: block;
    font-weight: 400;
}

.uwc-ending p {
    color: var(--uwc-muted);
    font-size: 13px;
    margin: 0;
}

.uwc-ending-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    min-height: 49px;
    padding: 14px 24px;
    background: var(--uwc-red);
    color: #fff !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
    border-radius: 3px;
    transition: background .3s, transform .3s;
}

.uwc-ending-button:hover {
    background: #b91631;
    transform: translateY(-3px);
}

/* SCROLL REVEALS */
.uwc-motion-ready .uwc-reveal {
    opacity: 0;
    transition: opacity .8s ease,
                transform .8s cubic-bezier(.2,.7,.2,1);
}

.uwc-motion-ready [data-uwc-reveal="left"] {
    transform: translateX(-35px);
}

.uwc-motion-ready [data-uwc-reveal="right"] {
    transform: translateX(35px);
}

.uwc-motion-ready [data-uwc-reveal="up"] {
    transform: translateY(26px);
}

.uwc-motion-ready .uwc-reveal.uwc-visible {
    opacity: 1;
    transform: none;
}

/* TABLET */
@media (max-width: 991px) {
    .uwc-hero {
        height: 240px;
        min-height: 240px;
        margin-top: -22px;
    }

    .uwc-intro-grid,
    .uwc-location-grid,
    .uwc-values-inner,
    .uwc-experience-grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .uwc-reasons-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .uwc-location-photo {
        height: 440px;
    }

    .uwc-intro,
    .uwc-reasons,
    .uwc-location,
    .uwc-values-feature,
    .uwc-experience {
        padding: 70px 0;
    }
}

/* MOBILE */
@media (max-width: 640px) {
    .uwc-hero {
        height: 220px;
        min-height: 220px;
        margin-top: -15px;
        padding: 46px 0 20px;
    }

    .uwc-hero h1 {
        font-size: 36px;
    }

    .uwc-hero-content p {
        font-size: 11.5px;
    }

    .uwc-hero-side {
        display: none;
    }

    .uwc-intro,
    .uwc-reasons,
    .uwc-location,
    .uwc-values-feature,
    .uwc-experience {
        padding: 55px 0;
    }

    .uwc-heading {
        font-size: 34px;
        letter-spacing: -1px;
    }

    .uwc-intro-copy {
        padding-left: 20px;
    }

    .uwc-reasons-grid {
        grid-template-columns: 1fr;
    }

    .uwc-reason {
        min-height: 0;
    }

    .uwc-location-photo {
        height: 340px;
    }

    .uwc-location-label strong {
        font-size: 22px;
    }

    .uwc-values-inner h2 {
        font-size: 35px;
    }

    .uwc-values-list strong {
        font-size: 18px;
    }

    .uwc-quote {
        padding: 29px 25px;
    }

    .uwc-ending {
        padding: 55px 0;
    }

    .uwc-ending-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
    }

    .uwc-ending-button {
        white-space: normal;
    }
}

.uwc-page a:focus-visible {
    outline: 3px solid var(--uwc-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .uwc-hero-image {
        animation: none !important;
    }

    .uwc-page *,
    .uwc-page *::before,
    .uwc-page *::after {
        transition: none !important;
    }

    .uwc-motion-ready .uwc-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}






/* ==========================================
   UPLAND SITES - EDITORIAL ADVANTAGES
   ========================================== */

.uwc-page .uwc-reasons-editorial {
    background: #fafafa;
    padding: 85px 0;
    overflow: hidden;
}

/* Main composition */
.uwc-editorial-grid {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    gap: clamp(45px, 6vw, 95px);
    align-items: center;
}

/* ==========================================
   LEFT - PHOTOGRAPHIC FEATURE
   ========================================== */

.uwc-editorial-visual {
    position: relative;
    min-width: 0;
    padding: 0 17px 22px 0;
}

.uwc-editorial-photo {
    position: relative;
    height: 565px;
    overflow: hidden;
    background: #e5ebf0;
}

/* Photograph */
.uwc-editorial-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;

    transform: scale(1);
    transition: transform 1.2s cubic-bezier(.2,.7,.2,1);
}

.uwc-editorial-visual:hover .uwc-editorial-photo img {
    transform: scale(1.07);
}

/* Soft overlay over lower part of photograph */
.uwc-editorial-photo-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        transparent 38%,
        rgba(5,20,40,.80) 100%
    );
    pointer-events: none;
}

/* Text on photograph */
.uwc-editorial-photo-content {
    position: absolute;
    z-index: 2;
    left: 35px;
    right: 30px;
    bottom: 37px;
}

.uwc-editorial-photo-content > span {
    display: block;
    color: #ff8b9e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 12px;
}

.uwc-editorial-photo-content strong {
    display: block;
    max-width: 400px;
    color: #ffffff;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(29px, 3vw, 40px);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -1.2px;
}

.uwc-editorial-photo-content strong em {
    display: block;
    font-style: normal;
    font-weight: 400;
}

/* Red corner detail */
.uwc-editorial-corner {
    position: absolute;
    top: -10px;
    right: 6px;
    width: 95px;
    height: 95px;

    border-top: 3px solid #d91f3b;
    border-right: 3px solid #d91f3b;

    pointer-events: none;
}

/* Small brand footer */
.uwc-editorial-photo-footer {
    display: flex;
    align-items: center;
    gap: 12px;

    margin-top: 18px;

    color: #8492a3;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.7px;
}

.uwc-editorial-photo-footer span {
    width: 30px;
    height: 2px;
    background: #d91f3b;
}

/* ==========================================
   RIGHT - EDITORIAL CONTENT
   ========================================== */

.uwc-editorial-content {
    min-width: 0;
}

.uwc-editorial-heading {
    margin-bottom: 29px;
}

.uwc-editorial-heading h2 {
    color: #0b2444;
    font-family: 'Space Grotesk', sans-serif;
    font-size: clamp(34px, 3.5vw, 47px);
    font-weight: 700;
    line-height: 1.17;
    letter-spacing: -1.5px;
    margin: 0 0 16px;
}

.uwc-editorial-heading h2 span {
    display: block;
    font-weight: 400;
}

.uwc-editorial-heading p {
    max-width: 480px;
    color: #66778b;
    font-size: 13px;
    line-height: 1.8;
    margin: 0;
}

/* ==========================================
   ADVANTAGE ACCORDION
   ========================================== */

.uwc-editorial-list {
    border-top: 1px solid #dbe3eb;
}

.uwc-editorial-item {
    border-bottom: 1px solid #dbe3eb;
    background: transparent;

    transition: background .3s ease;
}

.uwc-editorial-item:hover,
.uwc-editorial-item[open] {
    background: rgba(255,255,255,.80);
}

/* Accordion heading */
.uwc-editorial-item summary {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 32px;
    gap: 15px;
    align-items: center;

    padding: 22px 8px;

    list-style: none;
    cursor: pointer;

    transition: padding-left .3s ease;
}

.uwc-editorial-item summary::-webkit-details-marker {
    display: none;
}

.uwc-editorial-item summary::marker {
    content: "";
}

.uwc-editorial-item:hover summary {
    padding-left: 17px;
}

/* Numbers */
.uwc-editorial-number {
    color: #a8b4c1;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    transition: color .3s ease;
}

.uwc-editorial-item[open] .uwc-editorial-number {
    color: #d91f3b;
}

/* Advantage title */
.uwc-editorial-item h3 {
    color: #0b2444;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 19px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0;
}

/* Plus icon */
.uwc-editorial-toggle {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 30px;
    height: 30px;

    color: #0b2444;
    background: #edf1f5;
    border-radius: 50%;

    font-size: 10px;

    transition:
        background .3s,
        color .3s,
        transform .3s;
}

/* Open item */
.uwc-editorial-item[open] .uwc-editorial-toggle {
    background: #d91f3b;
    color: #fff;
    transform: rotate(45deg);
}

/* Expanded description */
.uwc-editorial-answer {
    padding: 0 48px 24px 59px;
    animation: uwcEditorialReveal .35s ease both;
}

.uwc-editorial-answer p {
    color: #66778b;
    font-size: 12.8px;
    line-height: 1.85;
    margin: 0;
}

@keyframes uwcEditorialReveal {
    from {
        opacity: 0;
        transform: translateY(-7px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Section link */
.uwc-editorial-link {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-top: 28px;
    padding-bottom: 6px;

    color: #0b2444;
    border-bottom: 1px solid #d91f3b;

    font-size: 12px;
    font-weight: 700;
    text-decoration: none;

    transition: gap .25s, color .25s;
}

.uwc-editorial-link:hover {
    gap: 20px;
    color: #d91f3b;
}

/* ==========================================
   TABLET
   ========================================== */

@media (max-width: 991px) {

    .uwc-page .uwc-reasons-editorial {
        padding: 70px 0;
    }

    .uwc-editorial-grid {
        grid-template-columns: 1fr;
        gap: 37px;
    }

    .uwc-editorial-visual {
        max-width: 650px;
        width: 100%;
    }

    .uwc-editorial-photo {
        height: 440px;
    }
}

/* ==========================================
   MOBILE
   ========================================== */

@media (max-width: 640px) {

    .uwc-page .uwc-reasons-editorial {
        padding: 55px 0;
    }

    .uwc-editorial-visual {
        padding: 0 10px 18px 0;
    }

    .uwc-editorial-photo {
        height: 345px;
    }

    .uwc-editorial-photo-content {
        left: 22px;
        right: 20px;
        bottom: 25px;
    }

    .uwc-editorial-photo-content strong {
        font-size: 29px;
    }

    .uwc-editorial-corner {
        width: 65px;
        height: 65px;
        right: 1px;
    }

    .uwc-editorial-heading h2 {
        font-size: 34px;
    }

    .uwc-editorial-item summary {
        grid-template-columns: 27px 1fr 28px;
        gap: 10px;
        padding: 19px 4px;
    }

    .uwc-editorial-item h3 {
        font-size: 16px;
    }

    .uwc-editorial-answer {
        padding: 0 15px 20px 41px;
    }

    .uwc-editorial-answer p {
        font-size: 12.2px;
    }
}

/* ==========================================
   ACCESSIBILITY
   ========================================== */

.uwc-editorial-item summary:focus-visible,
.uwc-editorial-link:focus-visible {
    outline: 3px solid #d91f3b;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {

    .uwc-editorial-photo img,
    .uwc-editorial-item,
    .uwc-editorial-toggle,
    .uwc-editorial-answer {
        animation: none !important;
        transition: none !important;
    }
}



/* ============================================
   UPLAND SITES - OUR SITES
   Premium Property Discovery
   ============================================ */

.usp-page {
    --usp-navy: #071c35;
    --usp-blue: #0b2444;
    --usp-red: #d91f3b;
    --usp-grey: #657589;
    font-family: 'Space Grotesk', sans-serif;
    overflow: clip;
}

.usp-page *,
.usp-page *::before,
.usp-page *::after {
    box-sizing: border-box;
}

/* ============================================
   HERO BANNER
   ============================================ */

.usp-hero {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    height: 260px;
    min-height: 260px;
    margin-top: -30px;
    padding: 55px 0 22px;
    background: var(--usp-navy);
    overflow: hidden;
}

.usp-hero-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    animation: uspCinematic 16s ease-in-out infinite alternate;
}

@keyframes uspCinematic {
    from { transform: scale(1); }
    to { transform: scale(1.12); }
}

.usp-hero-shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        100deg,
        rgba(4,17,35,.95),
        rgba(7,28,53,.85) 50%,
        rgba(7,28,53,.52)
    );
}

.usp-hero-content {
    position: relative;
    z-index: 2;
}

.usp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--usp-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 17px;
}

.usp-eyebrow::before {
    content: "";
    width: 27px;
    height: 2px;
    background: currentColor;
}

.usp-eyebrow-light {
    color: #ff8799;
}

.usp-hero h1 {
    color: #fff;
    font-size: clamp(38px, 4.3vw, 55px);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -1.8px;
    margin: 0 0 12px;
}

.usp-hero h1 em {
    font-weight: 400;
    font-style: normal;
}

.usp-hero-content p {
    color: #d5e0eb;
    max-width: 520px;
    font-size: 13px;
    line-height: 1.75;
    margin: 0 0 14px;
}

.usp-breadcrumb {
    display: flex;
    align-items: center;
    gap: 11px;
    list-style: none;
    padding: 0;
    margin: 0;
    color: #ff8799;
    font-size: 11px;
}

.usp-breadcrumb a {
    color: #fff;
    text-decoration: none;
}

.usp-hero-side {
    position: absolute;
    right: 26px;
    bottom: 22px;
    z-index: 2;
    color: rgba(255,255,255,.7);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

/* ============================================
   SELECTION PHILOSOPHY
   ============================================ */

.usp-philosophy {
    background: #fff;
    padding: 75px 0 48px;
}

.usp-philosophy-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: clamp(35px, 6vw, 95px);
    align-items: center;
}

.usp-heading {
    color: var(--usp-blue);
    font-size: clamp(33px, 3.6vw, 47px);
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -1.5px;
    margin: 0;
}

.usp-heading span {
    display: block;
    font-weight: 400;
}

.usp-philosophy-copy {
    padding-left: 28px;
    border-left: 2px solid #e5ebf1;
}

.usp-philosophy-copy p {
    color: var(--usp-grey);
    font-size: 13.5px;
    line-height: 1.85;
    margin: 0 0 15px;
}

.usp-philosophy-copy p:last-child {
    margin-bottom: 0;
}

.usp-selection-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 55px;
    padding: 23px 0;
    border-top: 1px solid #e3e9ef;
    border-bottom: 1px solid #e3e9ef;
    color: #8392a3;
}

.usp-selection-line span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.1px;
}

.usp-selection-line i {
    color: var(--usp-red);
    font-size: 5px;
}

/* ============================================
   ESTATE DISCOVERY
   ============================================ */

.usp-estates {
    background: #f8f9fb;
    padding: 75px 0 105px;
}

.usp-estates-intro {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 45px;
    margin-bottom: 50px;
}

.usp-estates-intro > p {
    max-width: 360px;
    color: var(--usp-grey);
    font-size: 13px;
    line-height: 1.85;
    margin: 0;
}

/* Estate showcase */
.usp-estate {
    background: #fff;
    border: 1px solid #e5eaf0;
    margin-bottom: 45px;
    box-shadow: 0 12px 35px rgba(7,28,53,.035);
}

.usp-estate:last-child {
    margin-bottom: 0;
}

/* Estate title area */
.usp-estate-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    padding: 29px 35px 25px;
    border-bottom: 1px solid #e7edf2;
}

.usp-estate-index {
    display: block;
    color: var(--usp-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.7px;
    margin-bottom: 9px;
}

.usp-estate-header h3 {
    color: var(--usp-blue);
    font-size: clamp(26px, 2.7vw, 36px);
    letter-spacing: -1px;
    font-weight: 700;
    margin: 0 0 8px;
}

.usp-estate-location {
    color: #77889a;
    font-size: 12px;
}

.usp-estate-location i {
    color: var(--usp-red);
    margin-right: 7px;
}

.usp-estate-demo {
    color: #876021;
    background: #fff5e5;
    border: 1px solid #f0dab8;
    padding: 8px 12px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .6px;
}

/* Main image / information grid */
.usp-estate-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.07fr) minmax(0, .93fr);
    gap: 0;
}

.usp-estate-media {
    min-width: 0;
    padding: 28px 0 28px 28px;
}

.usp-estate-main-image {
    position: relative;
    width: 100%;
    height: 460px;
    background: #e3eaf0;
    overflow: hidden;
}

.usp-gallery-main {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 1s ease, opacity .25s ease;
}

.usp-estate-main-image:hover .usp-gallery-main {
    transform: scale(1.055);
}

.usp-photo-label {
    position: absolute;
    left: 20px;
    bottom: 20px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 11px 15px;
    background: rgba(7,28,53,.87);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .8px;
}

.usp-photo-demo {
    position: absolute;
    top: 15px;
    left: 15px;
    background: rgba(255,255,255,.94);
    color: #80591b;
    padding: 8px 11px;
    font-size: 10px;
}

.usp-photo-placeholder {
    height: 100%;
    display: grid;
    place-items: center;
    padding: 20px;
    text-align: center;
    color: #6a7c90;
    font-size: 13px;
}

/* Gallery thumbnails */
.usp-gallery-thumbs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 10px;
    margin-top: 10px;
}

.usp-thumb {
    height: 78px;
    border: 3px solid transparent;
    padding: 0;
    background: #e3e9ef;
    cursor: pointer;
    overflow: hidden;
}

.usp-thumb.is-active {
    border-color: var(--usp-red);
}

.usp-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .35s;
}

.usp-thumb:hover img {
    transform: scale(1.1);
}

/* Estate information */
.usp-estate-information {
    padding: 32px 35px 35px;
    min-width: 0;
}

.usp-info-kicker {
    display: block;
    color: var(--usp-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.7px;
    margin-bottom: 17px;
}

.usp-estate-description {
    color: #596d82;
    font-size: 13.5px;
    line-height: 1.9;
    margin: 0 0 25px;
}

/* Unique offering */
.usp-unique-feature {
    border-left: 3px solid var(--usp-red);
    background: #f6f8fa;
    padding: 18px 21px;
    margin-bottom: 26px;
}

.usp-unique-feature span {
    display: block;
    color: var(--usp-red);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.2px;
    margin-bottom: 8px;
}

.usp-unique-feature p {
    color: var(--usp-blue);
    font-size: 13px;
    line-height: 1.75;
    font-weight: 500;
    margin: 0;
}

/* Amenities */
.usp-amenities {
    margin-bottom: 25px;
}

.usp-amenities h4 {
    color: var(--usp-blue);
    font-size: 14px;
    font-weight: 700;
    margin: 0 0 15px;
}

.usp-amenity-list {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.usp-amenity-list span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 11px;
    background: #f0f4f7;
    color: #53677c;
    font-size: 11px;
}

.usp-amenity-list i {
    color: var(--usp-red);
    font-size: 9px;
}

/* Location map */
.usp-estate-map {
    margin-bottom: 25px;
    border: 1px solid #e2e9f0;
}

.usp-map-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding: 13px 16px;
    background: #f7f9fb;
    border-bottom: 1px solid #e2e9f0;
}

.usp-map-heading > div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.usp-map-heading strong {
    font-size: 12px;
    color: var(--usp-blue);
}

.usp-map-heading i {
    color: var(--usp-red);
}

.usp-map-heading a {
    color: var(--usp-blue);
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.usp-estate-map iframe {
    display: block;
    width: 100%;
    height: 195px;
    border: 0;
}

.usp-map-placeholder {
    min-height: 145px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 11px;
    text-align: center;
    padding: 20px;
    color: #78899b;
    background: repeating-linear-gradient(
        45deg,
        #f9fafb,
        #f9fafb 14px,
        #f3f6f9 14px,
        #f3f6f9 28px
    );
}

.usp-map-placeholder > i {
    font-size: 25px;
    color: var(--usp-red);
}

.usp-map-placeholder span {
    font-size: 12px;
}

.usp-map-placeholder a {
    color: var(--usp-blue);
    font-weight: 700;
    font-size: 11px;
}

/* Estate action buttons */
.usp-estate-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
}

.usp-site-visit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    min-height: 47px;
    padding: 13px 19px;
    background: var(--usp-red);
    color: #fff !important;
    font-size: 12px;
    font-weight: 700;
    border-radius: 3px;
    text-decoration: none !important;
    transition: background .3s, transform .3s;
}

.usp-site-visit-btn:hover {
    background: #b91530;
    transform: translateY(-3px);
}

.usp-enquiry-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--usp-blue);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: color .3s, gap .3s;
}

.usp-enquiry-link:hover {
    color: var(--usp-red);
    gap: 15px;
}

/* ============================================
   SITE VISIT PHOTOGRAPHIC STRIP
   ============================================ */

.usp-visit {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: var(--usp-navy);
    padding: 80px 0;
}

.usp-visit-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: url('../img/n3.jpg') center / cover no-repeat;
    transition: transform 1.3s;
}

.usp-visit:hover .usp-visit-bg {
    transform: scale(1.055);
}

.usp-visit-shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        100deg,
        rgba(4,17,35,.97),
        rgba(7,28,53,.88) 56%,
        rgba(7,28,53,.62)
    );
}

.usp-visit-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 45px;
}

.usp-visit h2 {
    color: #fff;
    font-size: clamp(32px, 3.6vw, 47px);
    letter-spacing: -1.4px;
    line-height: 1.2;
    margin: 0 0 18px;
}

.usp-visit h2 span {
    display: block;
    font-weight: 400;
}

.usp-visit-inner p {
    color: #d5e0eb;
    max-width: 540px;
    font-size: 13px;
    line-height: 1.9;
    margin: 0;
}

.usp-visit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    flex-shrink: 0;
    min-height: 49px;
    padding: 14px 23px;
    background: var(--usp-red);
    color: #fff !important;
    font-size: 12px;
    font-weight: 700;
    border-radius: 3px;
    text-decoration: none !important;
    transition: transform .3s, background .3s;
}

.usp-visit-button:hover {
    background: #b91530;
    transform: translateY(-3px);
}

/* ============================================
   SCROLL-IN EFFECTS
   ============================================ */

.usp-motion-ready .usp-reveal {
    opacity: 0;
    transition: opacity .8s ease,
                transform .8s cubic-bezier(.2,.7,.2,1);
}

.usp-motion-ready [data-usp-reveal="left"] {
    transform: translateX(-32px);
}

.usp-motion-ready [data-usp-reveal="right"] {
    transform: translateX(32px);
}

.usp-motion-ready [data-usp-reveal="up"] {
    transform: translateY(25px);
}

.usp-motion-ready .usp-reveal.usp-visible {
    opacity: 1;
    transform: none;
}

/* TABLET */
@media (max-width: 991px) {
    .usp-hero {
        height: 240px;
        min-height: 240px;
        margin-top: -22px;
    }

    .usp-philosophy-grid,
    .usp-estate-layout {
        grid-template-columns: 1fr;
    }

    .usp-estate-media {
        padding: 22px 22px 0;
    }

    .usp-estate-information {
        padding: 28px;
    }

    .usp-visit-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* MOBILE */
@media (max-width: 640px) {
    .usp-hero {
        height: 220px;
        min-height: 220px;
        margin-top: -15px;
        padding: 47px 0 20px;
    }

    .usp-hero h1 {
        font-size: 36px;
    }

    .usp-hero-content p {
        font-size: 11.5px;
    }

    .usp-hero-side {
        display: none;
    }

    .usp-philosophy,
    .usp-estates {
        padding: 55px 0;
    }

    .usp-heading {
        font-size: 33px;
    }

    .usp-philosophy-grid {
        gap: 25px;
    }

    .usp-philosophy-copy {
        padding-left: 18px;
    }

    .usp-selection-line {
        justify-content: flex-start;
        flex-wrap: wrap;
        margin-top: 35px;
        gap: 13px;
    }

    .usp-estates-intro {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
        margin-bottom: 35px;
    }

    .usp-estate-header {
        padding: 23px 20px;
    }

    .usp-estate-media {
        padding: 15px 15px 0;
    }

    .usp-estate-main-image {
        height: 280px;
    }

    .usp-gallery-thumbs {
        gap: 6px;
    }

    .usp-thumb {
        height: 60px;
    }

    .usp-estate-information {
        padding: 25px 20px;
    }

    .usp-estate-description {
        font-size: 12.7px;
    }

    .usp-visit {
        padding: 60px 0;
    }

    .usp-visit h2 {
        font-size: 33px;
    }
}

.usp-page a:focus-visible,
.usp-page button:focus-visible {
    outline: 3px solid var(--usp-red);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .usp-hero-image {
        animation: none !important;
    }

    .usp-page *,
    .usp-page *::before,
    .usp-page *::after {
        transition: none !important;
    }

    .usp-motion-ready .usp-reveal {
        opacity: 1 !important;
        transform: none !important;
    }
}





/* ==========================================
   UPLAND SITES - GLOBAL TYPOGRAPHY
   SPACE GROTESK
   ========================================== */

:root {
    --up-font: 'Space Grotesk', sans-serif;
}

/* Apply font across the entire website */
html,
body,
button,
input,
textarea,
select {
    font-family: var(--up-font);
}

/* Override existing template typography */
body .up-header,
body .up-hero-section,
body .us-home,
body .upland-footer,
body .ush-why-premium {
    font-family: var(--up-font);
}

/* All headings */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6 {
    font-family: var(--up-font) !important;
    letter-spacing: -0.035em;
}

/* Paragraphs */
body p {
    font-family: var(--up-font) !important;
    letter-spacing: -0.01em;
}

/* Navigation, buttons, links, forms */
body a,
body button,
body input,
body textarea,
body select,
body label,
body span,
body small,
body li {
    font-family: var(--up-font) !important;
}

/* Override previous component-specific fonts */
body .up-header *,
body .up-hero-section *,
body .us-home *,
body .upland-footer *,
body .ush-why-premium * {
    font-family: var(--up-font) !important;
}

/* Premium headline weights */
body h1,
body h2 {
    font-weight: 700;
}

/* Section and card headings */
body h3,
body h4,
body h5,
body h6 {
    font-weight: 600;
}

/* Body copy */
body {
    font-weight: 400;
    line-height: 1.7;
}

/* Preserve Font Awesome icons */
body .fas,
body .far,
body .fab,
body .fa {
    font-family: "Font Awesome 5 Free" !important;
}

body .fas,
body .fa {
    font-weight: 900;
}

body .far {
    font-weight: 400;
}

body .fab {
    font-family: "Font Awesome 5 Brands" !important;
    font-weight: 400;
}

/* Preserve Bootstrap Icons */
body [class^="bi-"],
body [class*=" bi-"] {
    font-family: bootstrap-icons !important;
}
