/* =========================================================
   MICHAEL WOOD — LANDING PAGES V2
   Applies only inside .ukLanding so existing global header/footer
   styling stays untouched.
========================================================= */

.ukLanding {
    --lp-ink: #081225;
    --lp-copy: #53617a;
    --lp-dark: #050b1a;
    --lp-soft: #f8faff;
    --lp-white: #ffffff;
    --lp-border: #e1e6ed;
    --lp-blue: #3f67e8;
    --lp-cyan: #62d9f4;
    --lp-purple: #825fe7;

    color: var(--lp-ink);
    background: var(--lp-white);
}

.ukLanding .container {
    width: min(1500px, calc(100% - 60px));
    margin-inline: auto;
}


/* =========================================================
   HERO
========================================================= */

.ukLanding > .hero:first-of-type,
.ukLanding .hero {
    position: relative;
    overflow: hidden;
    padding: 92px 0 102px;
    color: #fff;
    background:
        radial-gradient(680px 380px at 88% 8%, rgba(130,95,231,.12), transparent 68%),
        radial-gradient(620px 380px at 0% 55%, rgba(63,103,232,.11), transparent 70%),
        linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.018) 1px, transparent 1px),
        var(--lp-dark);
    background-size: auto, auto, 72px 72px, 72px 72px, auto;
}

.ukLanding .hero::after {
    content: "";
    position: absolute;
    right: -220px;
    bottom: -300px;
    width: 560px;
    height: 560px;
    border-radius: 50%;
    background: rgba(98,217,244,.045);
    filter: blur(60px);
    pointer-events: none;
}

.ukLanding .hero .container {
    position: relative;
    z-index: 2;
}

.ukLanding .hero .h1,
.ukLanding .hero h1 {
    max-width: 1120px;
    margin: 24px 0 22px;
    color: #fff;
    font-size: clamp(52px, 6vw, 94px);
    line-height: .94;
    letter-spacing: -.067em;
}

.ukLanding .hero .gradientText {
    background: linear-gradient(90deg,#d7e5ff,#aab9ff,#aa90ff,#71dfff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.ukLanding .hero .sub,
.ukLanding .hero p {
    color: rgba(238,243,255,.64);
}

.ukLanding .hero .sub {
    margin: 0;
    font-size: 15px;
    line-height: 1.76;
}

.ukLanding .hero .sub strong,
.ukLanding .hero .sub b,
.ukLanding .hero p strong,
.ukLanding .hero p b {
    color: rgba(255,255,255,.94);
}

.ukLanding .heroActions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 30px;
}


/* =========================================================
   BUTTONS / LINKS / PILLS
========================================================= */

.ukLanding .btn {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 18px;
    border: 1px solid #d8dee8;
    border-radius: 5px;
    color: #26324c;
    background: #fff;
    box-shadow: 0 9px 22px rgba(15,23,42,.04);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .055em;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ukLanding .btn:hover {
    transform: translateY(-2px);
    border-color: #bcc8d9;
    box-shadow: 0 14px 32px rgba(15,23,42,.075);
}

.ukLanding .btn.primary {
    color: #fff;
    border-color: rgba(98,217,244,.27);
    background: linear-gradient(110deg,#3f67e8,#7659df);
    box-shadow: 0 16px 38px rgba(54,75,210,.17);
}

.ukLanding .hero .btn:not(.primary) {
    color: rgba(255,255,255,.76);
    border-color: rgba(255,255,255,.13);
    background: rgba(255,255,255,.025);
    box-shadow: none;
}

.ukLanding .link {
    color: #315fc4;
    font-weight: 800;
    text-decoration: none;
}

.ukLanding .link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ukLanding .pill {
    width: fit-content;
    max-width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 11px;
    border: 1px solid #dde3eb;
    border-radius: 999px;
    color: #607087;
    background: rgba(255,255,255,.72);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.ukLanding .hero .pill {
    color: rgba(255,255,255,.62);
    border-color: rgba(255,255,255,.11);
    background: rgba(255,255,255,.035);
}

.ukLanding .dot {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-radius: 50%;
    background: var(--lp-cyan);
    box-shadow: 0 0 10px rgba(98,217,244,.3);
}


/* =========================================================
   SECTIONS
========================================================= */

.ukLanding .section {
    position: relative;
    padding: 92px 0;
    color: var(--lp-ink);
    background: #fff;
    border-top: 1px solid rgba(15,23,42,.04);
}

.ukLanding .section:nth-of-type(odd) {
    background: var(--lp-soft);
}

.ukLanding .sectionHead {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 45px;
    margin-bottom: 30px;
}

.ukLanding .sectionHead > div:first-child {
    min-width: 0;
}

.ukLanding .kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #315f93;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.ukLanding .kicker::before {
    content: "";
    width: 25px;
    height: 1px;
    background: #5577a0;
}

.ukLanding .section h2,
.ukLanding .card h2 {
    max-width: 1000px;
    margin: 10px 0 0;
    color: var(--lp-ink);
    font-size: clamp(34px,4.3vw,60px);
    line-height: 1;
    letter-spacing: -.052em;
}

.ukLanding .section h3,
.ukLanding .card h3,
.ukLanding .service h3 {
    color: var(--lp-ink);
    letter-spacing: -.025em;
}

.ukLanding .section p,
.ukLanding .card p,
.ukLanding .mut,
.ukLanding .sub:not(.hero .sub) {
    color: var(--lp-copy);
    line-height: 1.72;
}


/* =========================================================
   GRIDS / CARDS
========================================================= */

.ukLanding .grid2,
.ukLanding .grid3,
.ukLanding .twoCol {
    display: grid;
    gap: 13px;
}

.ukLanding .grid2,
.ukLanding .twoCol {
    grid-template-columns: repeat(2,minmax(0,1fr));
}

.ukLanding .grid3 {
    grid-template-columns: repeat(3,minmax(0,1fr));
}

.ukLanding .card,
.ukLanding .service {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--lp-border);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15,23,42,.035);
}

.ukLanding .card.pad,
.ukLanding .pad {
    padding: 27px;
}

.ukLanding .service {
    min-height: 210px;
    padding: 25px;
}

.ukLanding .card h3,
.ukLanding .service h3 {
    margin: 0 0 10px;
    font-size: 21px;
    line-height: 1.12;
}

.ukLanding .card p,
.ukLanding .service p {
    margin: 0 0 14px;
    font-size: 12px;
}

.ukLanding .card .link,
.ukLanding .service .link {
    display: inline-flex;
    margin-top: 9px;
    font-size: 10px;
}


/* =========================================================
   LISTS / NOTICES
========================================================= */

.ukLanding .miniList {
    display: grid;
    gap: 8px;
}

.ukLanding .miniList > div {
    padding: 10px 12px;
    border: 1px solid #e4e9f0;
    border-radius: 9px;
    color: #556176;
    background: #fafbfc;
    font-size: 11px;
    line-height: 1.48;
}

.ukLanding .notice {
    padding: 14px 16px;
    border: 1px solid #dfe5ed;
    border-radius: 11px;
    color: #59657b;
    background: #f7f9fc;
    font-size: 11px;
    line-height: 1.65;
}

.ukLanding .hero .notice {
    border-color: rgba(255,255,255,.1);
    color: rgba(255,255,255,.55);
    background: rgba(255,255,255,.025);
}

.ukLanding .hero .notice b,
.ukLanding .hero .notice strong {
    color: #fff;
}


/* =========================================================
   FAQ
========================================================= */

.ukLanding details {
    border-bottom: 1px solid #dde3eb;
}

.ukLanding details:first-of-type {
    border-top: 1px solid #dde3eb;
}

.ukLanding details summary {
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #182038;
    cursor: pointer;
    list-style: none;
    font-size: 13px;
    font-weight: 800;
}

.ukLanding details summary::-webkit-details-marker {
    display: none;
}

.ukLanding details summary::after {
    content: "+";
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    flex: 0 0 32px;
    border: 1px solid #dbe1ea;
    border-radius: 50%;
    color: var(--lp-blue);
    transition: transform .2s ease;
}

.ukLanding details[open] summary::after {
    transform: rotate(45deg);
}

.ukLanding details > div,
.ukLanding details > p {
    padding-bottom: 18px;
    color: var(--lp-copy);
    font-size: 12px;
    line-height: 1.7;
}


/* =========================================================
   GOOGLE REVIEWS PRESENT ON THE LARGER CITY PAGES
========================================================= */

.ukLanding .googleReviewsWrap {
    padding: 4px 0;
}

.ukLanding .googleReviewsHeader {
    margin-bottom: 18px;
}

.ukLanding .googleReviewsHeader h3 {
    color: var(--lp-ink);
}

.ukLanding .googleLogoText {
    color: #263653;
}

.ukLanding .googleLogoText::before {
    color: #315fc4;
    border-color: #dce3ec;
    background: #f7f9fc;
}

.ukLanding .googleReviewCard {
    border-color: var(--lp-border) !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(15,23,42,.035);
}

.ukLanding .googleReviewTop h3,
.ukLanding .reviewText {
    color: var(--lp-ink) !important;
}

.ukLanding .reviewText {
    opacity: .76;
}

.ukLanding .reviewStars span,
.ukLanding .googleReviewFoot {
    color: #7c8799 !important;
}

.ukLanding .reviewReadMore {
    color: #315fc4 !important;
}

.ukLanding .reviewArrow {
    border-color: #dce3ec !important;
    color: #26324c !important;
    background: rgba(255,255,255,.92) !important;
}

.ukLanding .reviewDots button {
    background: #d8dee8 !important;
}

.ukLanding .reviewDots button.is-active {
    background: #315fc4 !important;
}


/* =========================================================
   REVEALS
========================================================= */

.ukLanding .reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .7s ease, transform .75s cubic-bezier(.2,.8,.2,1);
}

.ukLanding .reveal.is-visible,
.ukLanding .reveal.in-view,
.ukLanding .reveal.visible,
.ukLanding .reveal.show {
    opacity: 1;
    transform: none;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 980px) {
    .ukLanding .sectionHead {
        align-items: flex-start;
        flex-direction: column;
    }

    .ukLanding .grid3 {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width: 720px) {
    .ukLanding .container {
        width: calc(100% - 28px);
    }

    .ukLanding .hero {
        padding: 66px 0 76px;
    }

    .ukLanding .hero .h1,
    .ukLanding .hero h1 {
        font-size: clamp(47px,14vw,70px);
    }

    .ukLanding .hero .sub {
        font-size: 14px;
    }

    .ukLanding .heroActions {
        display: grid;
    }

    .ukLanding .btn {
        width: 100%;
        justify-content: space-between;
    }

    .ukLanding .section {
        padding: 70px 0;
    }

    .ukLanding .section h2,
    .ukLanding .card h2 {
        font-size: clamp(33px,10vw,48px);
    }

    .ukLanding .twoCol,
    .ukLanding .grid2 {
        grid-template-columns: 1fr;
    }

    /* Three-card groups become swipeable instead of making pages endlessly tall. */
    .ukLanding .grid3 {
        width: calc(100vw - 14px);
        display: flex;
        gap: 12px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        padding-right: 28px;
    }

    .ukLanding .grid3::-webkit-scrollbar {
        display: none;
    }

    .ukLanding .grid3 > * {
        width: calc(100vw - 52px);
        min-width: calc(100vw - 52px);
        scroll-snap-align: start;
    }

    .ukLanding .card.pad,
    .ukLanding .pad,
    .ukLanding .service {
        padding: 22px;
    }

    .ukLanding .service {
        min-height: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ukLanding .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* =========================================================
   V5 — LIGHT SECTION COLOUR REFINEMENT
========================================================= */
.ukLanding {
    --lp-ink: #081225;
    --lp-copy: #53617a;
    --lp-soft: #f8faff;
    --lp-border: #dde5f0;
}
