/* Bradleys Mortgages – Master Stylesheet */
/* ============================================================
TOKENS
============================================================ */
:root {
--navy:        #051B3F;
--yellow:        #ffed00;
--yellow-dark:   #766F00;
--soft-grey:   #eef3f7;
--section-grey:#f6f6f6;
--text:        #061b3d;
--muted:       #526079;
--shadow:      0 12px 26px rgba(5,27,63,.14);
--radius-sm:   10px;
--radius-md:   12px;
--radius-lg:   18px;
--radius-xl:   24px;
--transition:  .25s ease;
}

/* ============================================================
BASE
============================================================ */
*, *::before, *::after {
box-sizing: border-box;
}

body {
font-family: "Montserrat", Arial, sans-serif;
font-size: 16px;
color: var(--text);
background: #fff;
overflow-x: hidden;
}

img {
max-width: 100%;
height: auto;
}

/* ============================================================
TYPOGRAPHY UTILITIES
============================================================ */
.section-title {
color: var(--navy);
font-weight: 800;
letter-spacing: -.04em;
}

.eyebrow {
color: var(--yellow);
font-weight: 800;
font-size: .78rem;
letter-spacing: .14em;
text-transform: uppercase;
}

/* ============================================================
BUTTON
============================================================ */
.btn-brand {
background: var(--navy);
color: var(--yellow);
border: 0;
border-radius: var(--radius-sm);
padding: .85rem 1.65rem;
font-size: .9rem;
font-weight: 600;
box-shadow: 0 8px 18px rgba(5,27,63,.2);
transition: transform var(--transition), box-shadow var(--transition),
background var(--transition), color var(--transition);
}

.btn-brand:hover {
background: #09285b;
color: #fff;
transform: translateY(-3px);
box-shadow: 0 14px 28px rgba(5,27,63,.28);
}

/* ============================================================
NAVIGATION
============================================================ */
.navbar {
background: var(--navy);
padding: 1.15rem 0;
}

.home-navbar {
position: absolute;
inset: 0 0 auto;
z-index: 20;
background: transparent;
}

.navbar-brand {
color: #fff;
font-size: 2.2rem;
font-weight: 500;
line-height: .9;
letter-spacing: -.04em;
}

.home-navbar .navbar-brand {
font-size: 3.7rem;
}

.navbar-brand span {
display: block;
color: var(--yellow);
font-size: .68rem;
font-weight: 800;
/* was unset – matches eyebrow style */
letter-spacing: .16em;
text-transform: uppercase;
margin: .1rem 0 0 .2rem;
}

.home-navbar .navbar-brand span {
font-size: 1rem;
}

.navbar-brand img {
max-width: 200px;
}

.navbar .nav-link {
color: #fff;
font-size: 1rem;
font-weight: 600;
margin-left: 1.8rem;
transition: color var(--transition);
}

/* home variant only overrides font-size;
margin-left is shared */
.home-navbar .nav-link {
font-size: 1.08rem;
}

.navbar .nav-link:hover {
color: var(--yellow);
}

/* Mobile menu button */
.mobile-menu-btn {
display: flex;
flex-direction: column;
justify-content: center;
gap: 6px;
width: 44px;
height: 34px;
margin-left: 1.5rem;
}

.mobile-menu-btn span {
display: block;
height: 2px;
width: 100%;
background: #fff;
border-radius: 999px;
}

/* Offcanvas */
.offcanvas-mobile {
background: var(--navy);
color: #fff;
}

.offcanvas-mobile .offcanvas-title {
color: #fff;
font-weight: 700;
}

.offcanvas-mobile .btn-close {
filter: invert(1);
opacity: 1;
}

.mobile-nav-link {
display: block;
color: #fff;
font-size: 1.1rem;
font-weight: 600;
padding: 1rem 0;
text-decoration: none;
border-bottom: 1px solid rgba(255,255,255,.14);
}

.mobile-nav-link:hover {
color: var(--yellow);
}

/* ============================================================
NAVY BAND HELPERS  (stats / reviews / cta / support)
============================================================ */
.stats-band,
.reviews,
.cta-band,
.support-strip {
background: var(--navy);
color: #fff;
}

.stats-band {
padding: 3.5rem 0;
}

.reviews {
padding: 3.2rem 0;
}

.cta-band {
padding: 4rem 0;
}

.support-strip {
padding: 4.5rem 0;
}

.stats-band img {
max-height: 100px;
}

.stat-item i {
font-size: 3rem;
color: #fff;
opacity: .95;
}

.stat-item p {
margin: .8rem 0 0;
font-size: .93rem;
opacity: .9;
}

.cta-band h2,
.support-strip h2 {
font-weight: 800;
letter-spacing: -.04em;
}

.cta-band p,
.support-strip p {
color: rgba(255,255,255,.78);
max-width: 760px;
}

.cta-band p {
max-width: 670px;
}

/* ============================================================
HOME PAGE
============================================================ */
.hero-home {
min-height: 700px;
background:
linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.17) 45%, rgba(0,0,0,.08)),
url("../images/bfm-hero.webp") center / cover no-repeat;
display: flex;
align-items: center;
color: #fff;
position: relative;
}

.hero-home h1 {
font-size: clamp(3rem, 6vw, 5.35rem);
font-weight: 800;
line-height: .97;
letter-spacing: -.045em;
max-width: 760px;
margin-bottom: 1rem;
animation: fadeUp .9s ease both;
}

.hero-home p {
font-size: clamp(1.2rem, 2vw, 1.85rem);
font-weight: 500;
animation: fadeUp .9s .18s ease both;
}

/* Split intro */
.split-intro .image-panel {
min-height: 405px;
background: url("../images/moving.webp") center / cover no-repeat;
}

.intro-card {
padding: clamp(3rem, 6vw, 5rem);
min-height: 405px;
display: flex;
flex-direction: column;
justify-content: center;
}

.intro-card p {
max-width: 590px;
font-size: 1rem;
line-height: 1.65;
}

/* Lenders carousel */
.lenders {
background: var(--soft-grey);
padding: 3rem 0 3.5rem;
}

.lender-row {
display: flex;
align-items: center;
justify-content: center;
gap: 1.2rem;
flex-wrap: nowrap;
padding: 0 4rem;
}

.lender-card img {
max-width: 160px;
max-height: 160px;
}

.lender-card small {
display: block;
font-size: .65rem;
font-weight: 600;
opacity: .7;
text-align: center;
}

.lender-control {
width: 52px;
opacity: 1;
}

.lender-control .carousel-control-prev-icon,
.lender-control .carousel-control-next-icon {
background-color: var(--navy);
background-size: 55%;
border-radius: 50%;
width: 42px;
height: 42px;
padding: 1.2rem;
}

/* About home */
.about-home {
padding: 5.5rem 0;
}

.motto-pill {
background: var(--soft-grey);
border-radius: 11px;
padding: .7rem 1rem;
max-width: 420px;
text-align: center;
font-size: .85rem;
font-weight: bold;
color: #000;
}

/* Shared image panels with hover scale */
.about-image,
.review-image {
border-radius: 22px;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
transition: transform .35s ease;
}

.about-image:hover,
.review-image:hover {
transform: scale(1.025);
}

.about-image {
min-height: 440px;
background-image: url("../images/about-us.webp");
box-shadow: var(--shadow);
}

.review-image {
min-height: 220px;
background-image: url("../images/advisors.webp");
background-size: contain !important;
}

.reviews h2 {
font-weight: 800;
line-height: 1.05;
letter-spacing: -.035em;
font-size: clamp(2rem, 4vw, 3rem);
}

/* ============================================================
SHARED CARDS
(service-card, process-card, start-card, calculator-card-v2)
============================================================ */
.service-card,
.process-card,
.start-card,
.calculator-card-v2 {
background: var(--soft-grey);
border-radius: var(--radius-md);
box-shadow: var(--shadow);
height: 100%;
transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
}

.service-card,
.process-card,
.start-card {
padding: 1.55rem;
}

.calculator-card-v2 {
padding: 2rem;
min-height: 230px;
display: flex;
flex-direction: column;
justify-content: space-between;
}

.service-card:hover,
.process-card:hover,
.start-card:hover,
.calculator-card-v2:hover {
transform: translateY(-8px);
background: #fff;
box-shadow: 0 20px 38px rgba(5,27,63,.18);
}

/* Card headings */
.service-card h3,
.start-card h3,
.calculator-card-v2 h3 {
color: var(--navy);
font-weight: 800;
}

.service-card h3,
.start-card h3 {
font-size: 1.2rem;
margin-bottom: .8rem;
}

.calculator-card-v2 h3 {
font-size: 1.35rem;
}

/* Card body text */
.service-card p,
.service-card li,
.process-card p,
.start-card p {
font-size: .82rem;
line-height: 1.38;
}

/* Service card list */
.service-card ul {
list-style: none;
padding: 0;
margin: .9rem 0 0;
columns: 2;
}

.service-card li {
margin-bottom: .45rem;
break-inside: avoid;
}

.service-card li::before {
content: "✓";
margin-right: .35rem;
font-weight: 800;
}

/* Calculator card text */
.calculator-card-v2 p {
color: var(--muted);
font-size: .92rem;
line-height: 1.5;
}

.calculator-link {
color: var(--navy);
font-weight: 800;
text-decoration: none;
}

/* Icons inside start / calculator cards */
.check-item i,
.start-card i,
.calculator-card-v2 i {
color: var(--navy);
font-size: 2rem;
}

.start-card i,
.calculator-card-v2 i {
margin-bottom: .8rem;
display: inline-block;
}

/* ============================================================
SERVICES SECTION (home)
============================================================ */
.services {
background: var(--section-grey);
padding: 4rem 0 3.8rem;
}

/* ============================================================
ABOUT PAGE
============================================================ */
.hero-about {
min-height: 450px;
background:
linear-gradient(90deg, rgba(5,27,63,.08), rgba(5,27,63,.05)),
url("../images/about-us-hero.webp") center / cover no-repeat;
display: flex;
align-items: center;
position: relative;
}

.hero-card {
background: #fff;
border-radius: var(--radius-lg);
padding: 2rem 2.2rem;
max-width: 490px;
box-shadow: var(--shadow);
animation: fadeUp .75s ease both;
}

.hero-card h1 {
font-size: clamp(2rem, 4vw, 3rem);
font-weight: 800;
letter-spacing: -.04em;
margin-bottom: 1.2rem;
}

.trust-box {
position: absolute;
right: 8%;
bottom: 5rem;
color: #fff;
text-align: right;
font-size: .8rem;
text-shadow: 0 2px 8px rgba(0,0,0,.35);
}

.trust-box strong {
display: block;
color: var(--yellow);
font-size: 1.05rem;
}

.about-main {
padding: 4.8rem 0;
}

.about-main p {
font-size: .95rem;
line-height: 1.65;
}

.support-line {
max-width: 650px;
margin: 2.5rem auto 0;
text-align: center;
}

.trust-cta {
min-height: 330px;
background:
linear-gradient(90deg, rgba(5,27,63,.82), rgba(5,27,63,.62)),
url("../images/about-us.webp") 0px -180px / cover no-repeat;
display: flex;
align-items: center;
color: #fff;
}

.trust-cta h2 {
font-weight: 700;
font-size: clamp(2.1rem, 4vw, 3.2rem);
line-height: 1.04;
letter-spacing: -.04em;
max-width: 520px;
}

/* Process */
.process {
padding: 4.5rem 0 8rem;
position: relative;
}

.process-line {
position: absolute;
left: 0;
right: 0;
top: 37%;
height: 120px;
opacity: .85;
z-index: 0;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='2200' height='160' viewBox='0 0 2200 160' preserveAspectRatio='xMidYMid meet'%3E%3Ccircle cx='18' cy='80' r='12' fill='%23051B3F'/%3E%3Cpath d='M10 80 Q 140 20 280 80 T 560 80 T 840 80 T 1120 80 T 1400 80 T 1680 80 T 1960 80 T 2170 80' fill='none' stroke='%23051B3F' stroke-width='3' stroke-dasharray='8 10' stroke-linecap='round'/%3E%3Ccircle cx='2182' cy='80' r='12' fill='%23051B3F'/%3E%3C/svg%3E") no-repeat center / cover;
}

.process-card {
position: relative;
z-index: 1;
text-align: center;
min-height: 150px;
}

.step-badge {
width: 34px;
height: 34px;
border-radius: 50%;
background: var(--navy);
color: #fff;
display: inline-grid;
place-items: center;
font-weight: 800;
margin: -2.4rem 0 1rem;
border: 4px solid #fff;
}

/* Interviews */
.interviews {
background: var(--section-grey);
padding: 4.5rem 0;
}

.check-list {
display: grid;
gap: 2.3rem;
}

.check-item {
display: grid;
grid-template-columns: 42px 1fr;
gap: 1rem;
align-items: center;
font-weight: 700;
}

.ready, .trustist {
padding: 4rem 0;
}

.trustist {
background: var(--soft-grey);
}

/* ============================================================
TEAM PAGE
============================================================ */
.hero-team {
background: var(--section-grey);
padding: 5rem 0 4.25rem;
position: relative;
overflow: hidden;
}

.hero-team::after {
content: "";
position: absolute;
right: -120px;
top: -150px;
width: 420px;
height: 420px;
border-radius: 50%;
background: rgba(205,194,12,.18);
}

.hero-team p {
max-width: 740px;
line-height: 1.65;
color: var(--muted);
}

.team-section {
padding: 4.5rem 0 5rem;
background: #fff;
}

/* Masonry grid */
.masonry-grid {
column-count: 3;
column-gap: 1.5rem;
}

/* Staff card */
.staff-card {
display: inline-block;
width: 100%;
margin: 0 0 1.5rem;
background: var(--soft-grey);
border-radius: var(--radius-lg);
overflow: hidden;
box-shadow: var(--shadow);
break-inside: avoid;
transition: transform .28s ease, box-shadow .28s ease;
}

.staff-card:hover {
transform: translateY(-7px);
box-shadow: 0 20px 38px rgba(5,27,63,.18);
}

.staff-image-btn {
display: block;
width: 100%;
border: 0;
padding: 0;
background: transparent;
position: relative;
cursor: pointer;
text-align: left;
}

.staff-image-btn img {
width: 100%;
display: block;
aspect-ratio: 4 / 5;
object-fit: cover;
filter: saturate(.95);
transition: transform .35s ease, filter .35s ease;
}

.staff-card:nth-child(2n) .staff-image-btn img {
aspect-ratio: 4 / 4.35;
}

.staff-card:nth-child(3n) .staff-image-btn img {
aspect-ratio: 4 / 5.65;
}

.staff-card:hover img {
transform: scale(1.035);
filter: saturate(1.05);
}

.staff-image-btn::after {
content: "Click to read bio";
position: absolute;
left: 1rem;
bottom: 1rem;
background: var(--navy);
color: var(--yellow);
font-size: .75rem;
font-weight: 700;
padding: .5rem .75rem;
border-radius: 999px;
opacity: 0;
transform: translateY(8px);
transition: opacity var(--transition), transform var(--transition);
}

.staff-card:hover .staff-image-btn::after {
opacity: 1;
transform: translateY(0);
}

.staff-summary {
padding: 1.35rem 1.4rem 1.45rem;
}

.staff-summary h3 {
color: var(--navy);
font-weight: 800;
font-size: 1.25rem;
margin: 0;
}

.staff-role {
margin: .3rem 0 0;
color: #5f6d82;
font-size: .86rem;
font-weight: 600;
}

.bio-panel {
max-height: 0;
overflow: hidden;
background: #fff;
transition: max-height .38s ease;
}

.staff-card.is-open .bio-panel {
max-height: 1400px;
}

.staff-card.bio-large.is-open .bio-panel {
max-height: 2400px;
}

.bio-inner {
padding: 1.4rem 1.4rem 1.45rem;
}

.bio-inner p {
font-size: .88rem;
line-height: 1.6;
color: #38465e;
margin-bottom: 1rem;
}

.bio-meta {
display: flex;
gap: .5rem;
flex-wrap: wrap;
}

.bio-pill {
background: var(--navy);
color: var(--yellow);
border-radius: 999px;
font-size: .72rem;
font-weight: 700;
padding: .42rem .68rem;
}

/* ============================================================
CONTACT
============================================================ */
.contact-section {
background: #fff;
padding: 5rem 0;
}

.contact-card {
background: var(--soft-grey);
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
padding: clamp(2rem, 5vw, 3.5rem);
}

.contact-card label {
color: var(--navy);
font-weight: 600;
font-size: .9rem;
margin-bottom: .45rem;
}

.contact-card .form-control {
border: 1px solid rgba(5,27,63,.12);
border-radius: var(--radius-sm);
padding: .85rem 1rem;
font-size: .95rem;
}

.contact-card .form-control:focus {
border-color: var(--navy);
box-shadow: 0 0 0 .2rem rgba(5,27,63,.12);
}

.contact-note {
font-size: .82rem;
color: #5e6878;
}

/* ============================================================
SERVICES PAGE
============================================================ */
.services-v2 {
background: #fff;
}

.services-hero {
background:
linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.17) 45%, rgba(0,0,0,.08)),
url("../images/services-hero.webp") center / cover no-repeat;
color: #fff;
padding: 6.5rem 0 6rem;
position: relative;}

.services-hero-card {
max-width: 640px;
background: rgba(255,255,255,.95);
color: var(--navy);
border-radius: var(--radius-xl);
padding: clamp(2rem, 5vw, 3.2rem);
box-shadow: var(--shadow);
}

.services-hero-card h1 {
font-weight: 800;
letter-spacing: -.045em;
line-height: 1.02;
}

/* Shared muted text colour for several service contexts */
.services-hero-card p,
.service-content p,
.final-services-cta p,
.calculator-card-v2 p {
color: var(--muted);
line-height: 1.65;
}

/* Service pathway */
.service-pathway {
padding: 5rem 0;
}

.service-pathway-alt {
background: var(--section-grey);
}

.service-pathway .service-image {
min-height: 410px;
border-radius: 26px;
background-size: cover;
background-position: center;
box-shadow: var(--shadow);
}

.service-content h2 {
color: var(--navy);
font-weight: 800;
letter-spacing: -.04em;
font-size: clamp(2rem, 4vw, 3rem);
margin-bottom: 1rem;
}

.service-content p {
max-width: 600px;
}

/* Chip grid */
.service-chip-grid {
display: flex;
flex-wrap: wrap;
gap: .7rem;
margin: 1.5rem 0 1.8rem;
}

.service-chip {
background: var(--soft-grey);
color: var(--navy);
border-radius: 999px;
padding: .55rem .85rem;
font-size: .82rem;
font-weight: 700;
}

/* Accordion check list */
.service-check-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: .7rem;
}

.service-check-list li {
color: var(--navy);
font-size: .95rem;
}

.service-check-list li::before {
content: none;
}

/* Toggle */
.service-toggle {
width: 100%;
border: 0;
background: var(--soft-grey);
color: var(--navy);
border-radius: var(--radius-md);
padding: .85rem 1rem;
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
font-weight: 800;
text-align: left;
transition: background var(--transition), box-shadow var(--transition), transform var(--transition);
}

.service-toggle:hover,
.service-toggle:focus {
background: #fff;
box-shadow: 0 10px 22px rgba(5,27,63,.12);
transform: translateY(-2px);
outline: none;
}

.service-toggle-text {
flex: 1;
}

.service-toggle-icon {
font-size: 1.15rem;
line-height: 1;
transition: transform var(--transition);
}

.service-toggle[aria-expanded="true"] .service-toggle-icon {
transform: rotate(45deg);
}

.service-detail {
max-height: 0;
overflow: hidden;
transition: max-height .35s ease;
}

.service-detail-inner {
background: #fff;
border-left:   4px solid var(--yellow);
border-bottom: 4px solid var(--yellow);
border-radius: 0 0 var(--radius-md) var(--radius-md);
margin: 0 .35rem;
padding: .9rem 1rem 1rem;
color: var(--muted);
font-size: .9rem;
line-height: 1.55;
box-shadow: 0 8px 18px rgba(5,27,63,.07);
}

.service-check-list li.is-open .service-detail {
max-height: 220px;
}

/* Bottom CTA */
.final-services-cta {
background: #fff;
padding: 4.5rem 0;
text-align: center;
}

.final-services-cta p {
max-width: 660px;
margin: 0 auto 1.5rem;
}

/* Calculator panel on services page */
.calculator-panel {
background: var(--section-grey);
padding: 5rem 0;
}

/* ============================================================
CALCULATORS
============================================================ */
.calculator-page,
.stamp-duty-page {
background: #fff;
}

.repayment-calculator-section,
.stamp-duty-section {

padding: 5rem 0;
display: flex;

}

.mrc-hero {
background:url("../images/mrc-hero.webp") center/cover no-repeat;color:#fff;padding:6rem 0 5.25rem}

/* Shared calculator wrapper */
.repayment-calculator,
.stamp-duty-calculator {
max-width: 980px;
margin: 0 auto !important;
text-align: center;
}

.repayment-calculator {
max-width: 900px;
margin: 0 auto !important;
text-align: center;
}

.repayment-calculator h1,
.stamp-duty-calculator h1 {
color: var(--navy);
font-weight: 800;
letter-spacing: -.04em;
font-size: clamp(2.2rem, 5vw, 3.4rem);
margin-bottom: 1.6rem;
}

/* Intro copy – stamp version slightly wider/smaller */
.calculator-intro,
.stamp-duty-intro {
max-width: 780px;
margin: 0 auto 3rem;
color: #000;
font-size: 1.08rem;
line-height: 1.4;
}

.calculator-intro {
max-width: 760px;
margin-bottom: 0.5rem;
font-size: 1.12rem;
line-height: 1.35;
}

/* Form grids */
.calculator-form-grid,
.stamp-duty-grid {
display: grid;
gap: 1.5rem;
text-align: left;
}

.calculator-form-grid {
max-width: 560px;
margin: 0 auto;
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stamp-duty-grid {
grid-template-columns: 1fr 1fr;
align-items: start;
}

/* Labels */
.calc-field label,
.stamp-field label,
.buyer-type-label {
display: block;
color: var(--navy);
font-weight: 800;
margin-bottom: .85rem;
}

/* Input wrappers */
.calc-input-wrap,
.stamp-input-wrap {
position: relative;
}

.calc-input-wrap span,
.stamp-input-wrap span {
position: absolute;
left: 1rem;
top: 50%;
transform: translateY(-50%);
color: var(--navy);
font-weight: 500;
font-size: 1.15rem;
pointer-events: none;
}

/* Inputs */
.calc-input,
.stamp-input {
width: 100%;
border: 0;
background: #dedede;
border-radius: 8px;
min-height: 48px;
padding: .7rem 1rem .7rem 2.2rem;
color: var(--navy);
font-size: 1rem;
outline: none;
}

.stamp-input {
min-height: 52px;
}

.calc-input:focus,
.stamp-input:focus {
box-shadow: 0 0 0 .2rem rgba(5,27,63,.12);
}

/* Range slider */
.term-control {
max-width: 660px;
margin: 3rem auto 0;
position: relative;
}

.term-slider {
width: 100%;
height: 44px;
accent-color: var(--navy);
touch-action: pan-y;
cursor: pointer;
background: transparent;
}

/* Track */
.term-slider::-webkit-slider-runnable-track,
.term-slider::-moz-range-track {
height: 6px;
background: #dedede;
border-radius: 999px;
}

/* Thumb */
.term-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 34px;
height: 34px;
border-radius: 50%;
background: var(--navy);
border: 4px solid #fff;
box-shadow: 0 4px 12px rgba(5,27,63,.24);
margin-top: -14px;
}

.term-slider::-moz-range-thumb {
width: 34px;
height: 34px;
border-radius: 50%;
background: var(--navy);
border: 4px solid #fff;
box-shadow: 0 4px 12px rgba(5,27,63,.24);
}

.term-bubble {
position: absolute;
left: 71.4%;
top: 0;
transform: translateX(-50%);
background: var(--navy);
color: #fff;
border-radius: 999px;
min-width: 105px;
min-height: 48px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 1rem;
font-size: 1.35rem;
line-height: 1;
box-shadow: 0 8px 18px rgba(5,27,63,.16);
pointer-events: none;
}

.term-bubble span:first-child,
.term-bubble span:last-child {
font-size: 1.45rem;
font-weight: 400;
}

.term-labels {
display: flex;
justify-content: space-between;
margin-top: 1.1rem;
color: #000;
font-size: .98rem;
}

/* Results */
.repayment-result {
margin-top: 4rem;
color: var(--navy);
font-size: clamp(1.25rem, 2.4vw, 1.65rem);
font-weight: 800;
}

.repayment-note,
.stamp-note {
max-width: 760px;
margin: 1.4rem auto 0;
color: #5f6d82;
font-size: .85rem;
line-height: 1.5;
}

.repayment-note {
max-width: 690px;
margin-top: 1rem;
}

/* Stamp duty card */
.stamp-duty-card {
background: #fff;
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
padding: clamp(2rem, 5vw, 3rem);
}

.buyer-type-options {
display: grid;
gap: .7rem;
}

.buyer-option {
position: relative;
}

.buyer-option input {
position: absolute;
opacity: 0;
pointer-events: none;
}

.buyer-option span {
display: block;
background: var(--soft-grey);
border: 2px solid transparent;
border-radius: var(--radius-md);
padding: .85rem 1rem;
color: var(--navy);
font-weight: 700;
cursor: pointer;
transition: background var(--transition), border-color var(--transition), transform var(--transition);
}

.buyer-option input:checked + span {
background: var(--navy);
color: var(--yellow);
border-color: var(--navy);
}

.buyer-option span:hover {
transform: translateY(-2px);
}

.stamp-result-panel {
margin-top: 2.5rem;
background: var(--soft-grey);
border-radius: 20px;
padding: 2rem;
text-align: center;
}

.stamp-result-label {
color: #526079;
font-weight: 700;
margin-bottom: .4rem;
}

.stamp-result-value {
color: var(--navy);
font-size: clamp(2rem, 5vw, 3.25rem);
font-weight: 800;
letter-spacing: -.04em;
}

.stamp-effective-rate {
color: #526079;
font-size: .95rem;
margin-top: .35rem;
}

.stamp-breakdown {
margin-top: 1.8rem;
text-align: left;
}

.stamp-breakdown h2 {
color: var(--navy);
font-size: 1.2rem;
font-weight: 800;
margin-bottom: 1rem;
}

.stamp-breakdown-list {
display: grid;
gap: .65rem;
}

.stamp-breakdown-row {
display: flex;
justify-content: space-between;
gap: 1rem;
background: #fff;
border-radius: var(--radius-sm);
padding: .85rem 1rem;
color: var(--navy);
font-size: .92rem;
}

.stamp-breakdown-row strong {
white-space: nowrap;
}

/* ============================================================
ANIMATIONS
============================================================ */
.reveal {
opacity: 0;
transform: translateY(34px);
transition: opacity .7s ease, transform .7s ease;
}

.reveal.is-visible {
opacity: 1;
transform: none;
}

.reveal-delay-1 {
transition-delay: .12s;
}

.reveal-delay-2 {
transition-delay: .24s;
}

.reveal-delay-3 {
transition-delay: .36s;
}

.reveal-delay-4 {
transition-delay: .48s;
}

@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(28px);
}

to {
opacity: 1;
transform: none;
}

}

/* ============================================================
RESPONSIVE
============================================================ */
@media (max-width: 1199.98px) {
.masonry-grid {
column-count: 2;
}

.lender-row {
flex-wrap: wrap;
}

.lender-card {
width: 140px;
}

}

@media (max-width: 991.98px) {
.navbar .nav {
display: none;
}

/*.mobile-menu-btn {
display: flex;
}

*/
.home-navbar .navbar-brand {
font-size: 2.25rem;
}

.home-navbar .navbar-brand span {
font-size: .68rem;
}

.hero-home {
min-height: 580px;
}

.split-intro .image-panel {
min-height: 300px;
}

.intro-card {
padding: 3rem 1.5rem;
}

.hero-team {
padding: 4rem 0 3.5rem;
}

.hero-about {
min-height: 420px;
}

.trust-box,
.process-line {
display: none;
}

.process {
padding-bottom: 4.5rem;
}

.services-hero {
padding: 4rem 0;
}

.service-pathway {
padding: 3.5rem 0;
}

.service-pathway .service-image {
min-height: 310px;
}

.service-check-list {
columns: 1;
}

}

@media (max-width: 768px) {
.lender-row {
padding: 0 2rem;
}

.lender-card {
width: 120px;
height: 78px;
font-size: .9rem;
}

.service-card ul {
columns: 1;
}

.hero-card {
padding: 1.6rem;
}

.calculator-form-grid,
.stamp-duty-grid {
grid-template-columns: 1fr;
}

.repayment-calculator-section,
.stamp-duty-section {
min-height: auto;
}

.stamp-breakdown-row {
flex-direction: column;
gap: .25rem;
}

/* Body text scale-up for readability on mobile */
p,
.lead,
.calculator-intro,
.stamp-duty-intro,
.service-content p,
.services-bottom-copy p,
.repayment-note,
.stamp-note,
.bio-inner p,
.service-card p,
.service-card li {
font-size: 1.05rem;
line-height: 1.75;
}

.service-check-list li,
.service-detail-inner,
.staff-role {
font-size: .95rem;
}

.mobile-nav-link {
font-size: 1.1rem;
}

.section-title {
line-height: 1.15;
}

/* Slider */
.term-control {
padding: 0 .5rem;
}

.term-slider {
height: 56px;
}

.term-bubble {
top: .5rem;
min-width: 86px;
min-height: 42px;
gap: .65rem;
font-size: 1.05rem;
}

.term-bubble span:first-child,
.term-bubble span:last-child {
font-size: 1.15rem;
}

}

@media (max-width: 575.98px) {
.masonry-grid {
column-count: 1;
}

.navbar-brand {
font-size: 1.75rem;
}

.navbar-brand span {
font-size: .52rem;
}

}

/* ============================================================
REDUCED MOTION
============================================================ */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: .01ms !important;
animation-iteration-count: 1 !important;
transition-duration: .01ms !important;
scroll-behavior: auto !important;
}

.reveal {
opacity: 1;
transform: none;
}

}

/* ============================================================
RESPONSIVE LENDER CAROUSELS
Desktop keeps 6-logo slides. Mobile uses separate 2-logo slides.
============================================================ */
.lender-carousel-mobile {
display: none;
}

@media (max-width: 768px) {
.lender-carousel-desktop {
display: none;
}

.lender-carousel-mobile {
display: block;
padding: 0 2.75rem;
}

.lender-row-mobile {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .85rem;
padding: 0;
}

.lender-row-mobile-single {
grid-template-columns: minmax(0, 1fr);
max-width: 48%;
margin: 0 auto;
}

.lender-carousel-mobile .lender-card {
width: 100%;
height: 100%;
padding: .85rem;
border-radius: var(--radius-md);
}

.lender-carousel-mobile .lender-card img {
width: 100%;
height: 100%;
object-fit: contain;
}

.lender-carousel-mobile .lender-control {
width: 2.25rem;
}

.lender-carousel-mobile .carousel-control-prev {
left: 0;
}

.lender-carousel-mobile .carousel-control-next {
right: 0;
}

.lender-carousel-mobile .lender-control .carousel-control-prev-icon,
.lender-carousel-mobile .lender-control .carousel-control-next-icon {
width: 34px;
height: 34px;
padding: .85rem;
background-size: 48%;
}

}

.staff-contact {
margin-top: 1rem;
display: flex;
flex-direction: column;
gap: .45rem;
}

.staff-contact-link {
display: flex;
align-items: center;
gap: .55rem;
color: var(--navy);
text-decoration: none;
font-size: .85rem;
font-weight: 600;
transition: color .25s ease;
}

.staff-contact-link:hover {
color: var(--muted);
}

.staff-contact-link i {
width: 16px;

font-size: .9rem;
}

/* ============================================================
MORTGAGE JARGON BUSTER PAGE
============================================================ */
.jargon-page {
background: #fff;
}

.jargon-hero {
background:
linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.17) 45%, rgba(0,0,0,.08)),
url("../images/jargon-buster-hero.webp") center / cover no-repeat;
color: #fff;
padding: 6rem 0 5.25rem;
position: relative;
}

.jargon-hero-card {
max-width: 760px;
background: rgba(255,255,255,.96);
color: var(--navy);
border-radius: var(--radius-xl);
padding: clamp(2rem, 5vw, 3.2rem);
box-shadow: var(--shadow);
}

.jargon-hero-card h1 {
font-weight: 800;
letter-spacing: -.045em;
line-height: 1.02;
}

.jargon-hero-card p {
color: var(--muted);
line-height: 1.65;
}

.jargon-tools {
background: var(--section-grey);
padding: 2rem 0;
position: sticky;
top: 0;
z-index: 10;
box-shadow: 0 8px 18px rgba(5,27,63,.06);
}

.jargon-search {
position: relative;
}

.jargon-search i {
position: absolute;
left: 1rem;
top: 50%;
transform: translateY(-50%);
color: var(--navy);
}

.jargon-search input {
width: 100%;
border: 0;
border-radius: var(--radius-md);
min-height: 52px;
padding: .85rem 1rem .85rem 2.75rem;
box-shadow: var(--shadow);
outline: none;
color: var(--navy);
}

.alpha-nav {
display: flex;
gap: .4rem;
flex-wrap: wrap;
justify-content: center;
}

.alpha-nav a {
width: 34px;
height: 34px;
border-radius: 999px;
display: inline-grid;
place-items: center;
background: #fff;
color: var(--navy);
text-decoration: none;
font-size: .82rem;
font-weight: 800;
box-shadow: 0 4px 10px rgba(5,27,63,.06);
transition: background var(--transition), color var(--transition), transform var(--transition);
}

.alpha-nav a:hover {
background: var(--navy);
color: var(--yellow);
transform: translateY(-2px);
}

.jargon-content {
padding: 4.5rem 0 5rem;
}

.jargon-letter-section {
margin-bottom: 3.25rem;
scroll-margin-top: 150px;
}

.jargon-letter-heading {
color: var(--navy);
font-weight: 800;
font-size: clamp(2rem, 4vw, 3rem);
letter-spacing: -.04em;
border-bottom: 4px solid var(--yellow);
display: inline-block;
margin-bottom: 1.5rem;
}

/* ============================================================
JARGON BUSTER - SERVICES STYLE ACCORDION
============================================================ */
.jargon-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: .7rem;
}

.jargon-term {
margin: 0;
background: transparent;
border-radius: 0;
box-shadow: none;
overflow: visible;
transition: none;
}

.jargon-term:hover {
background: transparent;
transform: none;
box-shadow: none;
}

.jargon-term-toggle {
width: 100%;
border: 0;
background: var(--soft-grey);
color: var(--navy);
border-radius: 12px;
padding: .85rem 1rem;
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
font-weight: 800;
text-align: left;
transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}

.jargon-term-toggle:hover,
.jargon-term-toggle:focus {
background: #fff;
box-shadow: 0 10px 22px rgba(5,27,63,.12);
transform: translateY(-2px);
outline: none;
}

.jargon-term-text {
flex: 1;
line-height: 1.25;
}

.jargon-term-icon {
font-size: 1.15rem;
line-height: 1;
transition: transform .25s ease;
color: var(--navy);
}

.jargon-term.is-open .jargon-term-icon {
transform: rotate(45deg);
}

.jargon-definition {
max-height: 0;
overflow: hidden;
transition: max-height .35s ease;
}

.jargon-term.is-open .jargon-definition {
max-height: 420px;
}

.jargon-definition-inner {
background: #fff;
border-left: 4px solid var(--yellow);
border-bottom: 4px solid var(--yellow);
border-radius: 0 0 12px 12px;
margin: 0 .35rem;
padding: .9rem 1rem 1rem;
color: #526079;
font-size: .95rem;
line-height: 1.65;
box-shadow: 0 8px 18px rgba(5,27,63,.07);
}

.jargon-definition-inner p {
margin: 0;
padding: 0;
color: #526079;
font-size: .95rem;
line-height: 1.65;
}

.jargon-letter-heading {
font-size: clamp(1.7rem, 3vw, 2.35rem);
margin-bottom: 1rem;
color: var(--navy);
border-bottom: 3px solid var(--yellow);
display: inline-block;
}

.jargon-search {
position: relative;
}

.jargon-search input {
padding-right: 3rem;
}

.jargon-clear-btn {
position: absolute;
right: .75rem;
top: 50%;
transform: translateY(-50%);
border: 0;
background: transparent;
color: var(--navy);
width: 32px;
height: 32px;
border-radius: 50%;
display: none;
align-items: center;
justify-content: center;
cursor: pointer;
transition: background .2s ease;
}

.jargon-clear-btn:hover {
background: rgba(5,27,63,.08);
}

.jargon-clear-btn.show {
display: flex;
}

@media (max-width: 991.98px) {
.jargon-grid {
grid-template-columns: 1fr;
}

}

/* ============================================================
MORTGAGE FAQ PAGE
============================================================ */
.faq-page {
background:#fff;
}

.faq-hero {
background:
linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.17) 45%, rgba(0,0,0,.08)),
url("../images/faq-hero.webp") center / cover no-repeat;
color:#fff;
padding:6rem 0 5.25rem;
position: relative;
}

.faq-hero-card {
max-width:760px;
background:rgba(255,255,255,.96);
color:var(--navy);
border-radius:var(--radius-xl);
padding:clamp(2rem,5vw,3.2rem);
box-shadow:var(--shadow);
}

.faq-hero-card h1 {
font-weight:800;
letter-spacing:-.045em;
line-height:1.02;
}

.faq-hero-card p {
color:var(--muted);
line-height:1.65;
}

.faq-tools {
background:var(--section-grey);
padding:2rem 0;
position:sticky;
top:0;
z-index:10;
box-shadow:0 8px 18px rgba(5,27,63,.06);
}

.faq-search {
position:relative;
}

.faq-search .bi-search {
position:absolute;
left:1rem;
top:50%;
transform:translateY(-50%);
color:var(--navy);
}

.faq-search input {
width:100%;
border:0;
border-radius:var(--radius-md);
min-height:52px;
padding:.85rem 3rem .85rem 2.75rem;
box-shadow:var(--shadow);
outline:none;
color:var(--navy);
}

.faq-clear-btn {
position:absolute;
right:.75rem;
top:50%;
transform:translateY(-50%);
border:0;
background:transparent;
color:var(--navy);
width:32px;
height:32px;
border-radius:50%;
display:none;
align-items:center;
justify-content:center;
cursor:pointer;
}

.faq-clear-btn:hover {
background:rgba(5,27,63,.08);
}

.faq-clear-btn.show {
display:flex;
}

.faq-category-nav {
display:flex;
gap:.6rem;
flex-wrap:wrap;
justify-content:center;
}

.faq-category-nav a {
background:#fff;
color:var(--navy);
text-decoration:none;
border-radius:999px;
padding:.55rem .9rem;
font-size:.82rem;
font-weight:800;
box-shadow:0 4px 10px rgba(5,27,63,.06);
transition:background var(--transition), color var(--transition), transform var(--transition);
}

.faq-category-nav a:hover {
background:var(--navy);
color:var(--yellow);
transform:translateY(-2px);
}

.faq-content {
padding:4.5rem 0 5rem;
}

.faq-intro-grid {
display:grid;
grid-template-columns:repeat(4,1fr);
gap:1rem;
margin-bottom:3rem;
}

.faq-stat-card {
background:var(--soft-grey);
border-radius:var(--radius-lg);
padding:1.5rem;
box-shadow:var(--shadow);
text-align:center;
}

.faq-stat-card strong {
display:block;
color:var(--navy);
font-size:clamp(1.7rem,4vw,2.4rem);
line-height:1;
font-weight:800;
letter-spacing:-.04em;
}

.faq-stat-card span {
display:block;
color:var(--muted);
margin-top:.6rem;
font-size:.9rem;
line-height:1.35;
}

.faq-section {
margin-bottom:4rem;
scroll-margin-top:150px;
}

.faq-section-header {
max-width:760px;
margin-bottom:1.5rem;
}

.faq-section-header h2 {
color:var(--navy);
font-weight:800;
letter-spacing:-.04em;
font-size:clamp(2rem,4vw,3rem);
margin-bottom:.75rem;
}

.faq-section-header p {
color:var(--muted);
line-height:1.65;
}

.faq-list {
list-style:none;
padding:0;
margin:0;
display:grid;
gap:.7rem;
}

.faq-toggle {
width:100%;
border:0;
background:var(--soft-grey);
color:var(--navy);
border-radius:12px;
padding:.85rem 1rem;
display:flex;
justify-content:space-between;
align-items:center;
gap:1rem;
font-weight:800;
text-align:left;
transition:background .25s ease, box-shadow .25s ease, transform .25s ease;
}

.faq-toggle:hover,
.faq-toggle:focus {
background:#fff;
box-shadow:0 10px 22px rgba(5,27,63,.12);
transform:translateY(-2px);
outline:none;
}

.faq-toggle-text {
flex:1;
line-height:1.3;
}

.faq-toggle-icon {
font-size:1.15rem;
line-height:1;
transition:transform .25s ease;
color:var(--navy);
}

.faq-item.is-open .faq-toggle-icon {
transform:rotate(45deg);
}

.faq-answer {
max-height:0;
overflow:hidden;
transition:max-height .35s ease;
}

.faq-item.is-open .faq-answer {
max-height:900px;
}

.faq-answer-inner {
background:#fff;
border-left:4px solid var(--yellow);
border-bottom:4px solid var(--yellow);
border-radius:0 0 12px 12px;
margin:0 .35rem;
padding:.95rem 1rem 1rem;
color:#526079;
font-size:.95rem;
line-height:1.65;
box-shadow:0 8px 18px rgba(5,27,63,.07);
}

.faq-answer-inner p {
margin:0 0 .85rem;
}

.faq-answer-inner p:last-child {
margin-bottom:0;
}

.faq-answer-inner ul {
margin:.5rem 0 0;
padding-left:1.2rem;
}

.faq-answer-inner li {
margin-bottom:.35rem;
}

.faq-cta {
background:var(--navy);
color:#fff;
border-radius:var(--radius-xl);
padding:clamp(2rem,5vw,3.4rem);
margin:2rem 0 4rem;
box-shadow:var(--shadow);
}

.faq-cta p {
color:rgba(255,255,255,.78);
max-width:760px;
}

.faq-tools-panel {
background:var(--section-grey);
padding:4.5rem 0;
}

.faq-risk-warning {
background:#fff;
border-left:5px solid var(--yellow);
border-radius:var(--radius-lg);
box-shadow:var(--shadow);
padding:1.4rem 1.5rem;
color:var(--navy);
font-weight:700;
line-height:1.55;
margin-top:3rem;
}

.faq-no-results {
display:none;
background:var(--soft-grey);
border-radius:var(--radius-lg);
padding:2rem;
text-align:center;
color:var(--muted);
margin-top:2rem;
}

@media (max-width:991.98px) {
.faq-tools {
position:static;
}

.faq-intro-grid {
grid-template-columns:repeat(2,1fr);
}

.faq-hero {
padding:4rem 0;
}

}

@media (max-width:768px) {
.faq-content {
padding:3.5rem 0 4rem;
}

.faq-intro-grid {
grid-template-columns:1fr;
}

.faq-toggle {
padding:1rem;
}

}

/* ============================================================
FOOTER
============================================================ */
.site-footer {
background: var(--navy);
color: #fff;
padding: 4rem 0 1.5rem;
}

.footer-logo {
max-width: 220px;
margin-bottom: 1.25rem;
}

.footer-intro {
color: rgba(255,255,255,.75);
line-height: 1.6;
max-width: 360px;
}

.site-footer h3 {
color: var(--yellow);
font-size: 1rem;
font-weight: 800;
margin-bottom: 1rem;
}

.footer-links-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1.5rem;
}

.footer-links {
list-style: none;
padding: 0;
margin: 0;
}

.footer-links li {
margin-bottom: .55rem;
}

.site-footer a,
.footer-links a,
.footer-bottom a {
color: #fff;
text-decoration: none;
font-weight: 600;
transition: color var(--transition);
}

.site-footer a:hover,
.footer-links a:hover,
.footer-bottom a:hover {
color: var(--yellow);
}

.footer-disclaimer {
border-top: 1px solid rgba(255,255,255,.16);
margin-top: 3rem;
padding-top: 1.5rem;
}

.footer-disclaimer p {
color: #fff;
font-size: .78rem;
line-height: 1.6;
margin-bottom: .7rem;
}

.footer-bottom {
border-top: 1px solid rgba(255,255,255,.12);
margin-top: 1.25rem;
padding-top: 1rem;
text-align: center;
}

.footer-bottom p {
color: rgba(255,255,255,.58);
font-size: .75rem;
margin: 0;
}

@media (max-width: 768px) {
.site-footer {
padding: 3rem 0 1.5rem;
}

.footer-logo {
max-width: 190px;
}

.footer-disclaimer p {
font-size: .82rem;
}

}

@media (max-width: 767px) {
.footer-links-grid {
grid-template-columns: 1fr;
gap: 0;
}

}

/* ============================================================
PRIVACY POLICY PAGE
============================================================ */
.privacy-page {
background: #fff;
}




.privacy-hero {
background:
linear-gradient(90deg, rgba(5,27,63,.58), rgba(5,27,63,.30)),
url("../images/privacy-policy-hero.webp") center / cover no-repeat;
color: #fff;
padding: 6rem 0 5.25rem;
}

.cookie-hero {
background:
linear-gradient(90deg, rgba(5,27,63,.58), rgba(5,27,63,.30)),
url("../images/cookie-hero.webp") center / cover no-repeat;
color: #fff;
padding: 6rem 0 5.25rem;
}

.privacy-hero-card {
max-width: 760px;
background: rgba(255,255,255,.96);
color: var(--navy);
border-radius: var(--radius-xl);
padding: clamp(2rem,5vw,3.2rem);
box-shadow: var(--shadow);
}

.privacy-hero-card h1 {
font-weight: 800;
letter-spacing: -.045em;
line-height: 1.02;
}

.privacy-hero-card p {
color: var(--muted);
line-height: 1.65;
}

.privacy-content {
padding: 5rem 0;
}

.privacy-layout {
display: grid;
grid-template-columns: 300px 1fr;
gap: 2rem;
align-items: start;
}

.privacy-nav-card {
position: sticky;
top: 2rem;
background: var(--soft-grey);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
padding: 1.5rem;
}

.privacy-nav-card h2 {
color: var(--navy);
font-size: 1rem;
font-weight: 800;
margin-bottom: 1rem;
}

.privacy-nav {
list-style: none;
padding: 0;
margin: 0;
}

.privacy-nav li {
margin-bottom: .55rem;
}

.privacy-nav a {
color: var(--navy);
text-decoration: none;
font-weight: 700;
font-size: .9rem;
}

.privacy-nav a:hover {
color: var(--yellow);
}

.privacy-card {
background: #fff;
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
padding: clamp(2rem,5vw,3.5rem);
}

.privacy-section {
margin-bottom: 3rem;
scroll-margin-top: 2rem;
}

.privacy-section:last-child {
margin-bottom: 0;
}

.privacy-section h2 {
color: var(--navy);
font-weight: 800;
letter-spacing: -.035em;
margin-bottom: 1rem;
font-size: clamp(1.55rem,3vw,2.2rem);
}

.privacy-section h3 {
color: var(--navy);
font-weight: 800;
font-size: 1.15rem;
margin-top: 1.5rem;
margin-bottom: .75rem;
}

.privacy-section p,
.privacy-section li {
color: var(--muted);
line-height: 1.7;
font-size: .98rem;
}

.privacy-section ul {
margin: 1rem 0 0;
padding-left: 1.25rem;
}

.privacy-highlight {
background: var(--soft-grey);
border-left: 5px solid var(--yellow);
border-radius: var(--radius-lg);
padding: 1.25rem 1.4rem;
margin: 1.5rem 0;
}

.privacy-highlight p {
color: var(--navy);
font-weight: 700;
margin: 0;
}

.privacy-contact-box {
background: var(--navy);
color: #fff;
border-radius: var(--radius-xl);
padding: clamp(1.8rem,4vw,2.6rem);
margin-top: 2rem;
}

.privacy-contact-box h2 {
color: #fff;
}

.privacy-contact-box p {
color: rgba(255,255,255,.78);
}

.privacy-contact-box a {
color: var(--yellow);
font-weight: 800;
text-decoration: none;
}

.privacy-contact-box a:hover {
color: #fff;
}

@media (max-width: 991.98px) {
.privacy-layout {
grid-template-columns: 1fr;
}

.privacy-nav-card {
position: static;
}

.privacy-hero {
padding: 4rem 0;
}

}

/* Borrowing Calculator V2 */
.borrowing-page {
background: #fff
}

.borrowing-hero {
background: linear-gradient(90deg, rgba(5, 27, 63, .5), rgba(5, 27, 63, .3)), url("../images/mortgage-borrowing-calculator-hero.webp") center/cover no-repeat;
color: #fff;
padding: 6rem 0 5.25rem
}

.borrowing-hero-card {
max-width: 780px;
background: rgba(255, 255, 255, .96);
color: var(--navy);
border-radius: var(--radius-xl);
padding: clamp(2rem, 5vw, 3.2rem);
box-shadow: var(--shadow)
}

.borrowing-hero-card h1 {
font-weight: 800;
letter-spacing: -.045em;
line-height: 1.02
}

.borrowing-hero-card p {
color: var(--muted);
line-height: 1.65
}

.borrowing-section {
padding: 5rem 0;
background: #fff
}

.borrowing-card {
background: var(--soft-grey);
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
padding: clamp(2rem, 5vw, 3rem);
height: 100%
}

.borrowing-result-card {
background: #fff;
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
padding: clamp(2rem, 5vw, 3rem);
height: 100%
}

.borrowing-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1.25rem
}

.borrowing-field label,
.borrowing-radio-label {
display: block;
color: var(--navy);
font-weight: 800;
margin-bottom: .7rem
}

.borrowing-input-wrap {
position: relative
}

.borrowing-input-wrap span {
position: absolute;
left: 1rem;
top: 50%;
transform: translateY(-50%);
color: var(--navy);
font-weight: 700;
pointer-events: none
}

.borrowing-input,
.borrowing-select {
width: 100%;
border: 0;
background: #dedede;
border-radius: 10px;
min-height: 52px;
padding: .8rem 1rem;
color: var(--navy);
font-size: 1rem;
outline: none
}

.borrowing-input.has-prefix {
padding-left: 2.25rem
}

.borrowing-input.has-suffix {
padding-right: 2.6rem
}

.borrowing-input:focus,
.borrowing-select:focus {
box-shadow: 0 0 0 .2rem rgba(5, 27, 63, .12)
}

.borrowing-radio-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: .7rem
}

.borrowing-radio-option {
position: relative
}

.borrowing-radio-option input {
position: absolute;
opacity: 0;
pointer-events: none
}

.borrowing-radio-option span {
display: block;
background: #fff;
border: 2px solid transparent;
border-radius: 12px;
padding: .85rem 1rem;
color: var(--navy);
font-weight: 800;
text-align: center;
cursor: pointer;
transition: all .25s ease
}

.borrowing-radio-option input:checked+span {
background: var(--navy);
color: var(--yellow);
border-color: var(--navy)
}

.borrowing-radio-option span:hover {
transform: translateY(-2px)
}

.borrowing-result-label {
color: var(--muted);
font-weight: 800;
margin-bottom: .4rem
}

.borrowing-result-value {
color: var(--navy);
font-size: clamp(2.2rem, 5vw, 3.5rem);
font-weight: 800;
letter-spacing: -.045em;
line-height: 1
}

.borrowing-monthly {
font-size: clamp(1.7rem, 4vw, 2.5rem);
color: var(--navy);
font-weight: 800;
letter-spacing: -.035em;
margin-top: 1.6rem
}

.borrowing-result-sub {
color: var(--muted);
margin-top: .6rem;
line-height: 1.55
}

.borrowing-breakdown {
display: grid;
gap: .7rem;
margin-top: 2rem
}

.borrowing-breakdown-row {
display: flex;
justify-content: space-between;
gap: 1rem;
background: var(--soft-grey);
color: var(--navy);
border-radius: 12px;
padding: .9rem 1rem;
font-size: .95rem
}

.borrowing-breakdown-row strong {
white-space: nowrap
}

.borrowing-warning {
background: #fff;
border-left: 5px solid var(--yellow);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
padding: 1.3rem 1.4rem;
color: var(--navy);
font-weight: 700;
line-height: 1.55;
margin-top: 1.5rem
}

.borrowing-info-section {
background: var(--section-grey);
padding: 5rem 0
}

.borrowing-info-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem
}

.borrowing-info-card {
background: #fff;
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
padding: 1.5rem;
height: 100%
}

.borrowing-info-card i {
color: var(--navy);
font-size: 2rem;
margin-bottom: .8rem;
display: inline-block
}

.borrowing-info-card h3 {
color: var(--navy);
font-weight: 800;
font-size: 1.2rem
}

.borrowing-info-card p {
color: var(--muted);
line-height: 1.6;
font-size: .95rem
}

.borrowing-note {
color: var(--muted);
font-size: .86rem;
line-height: 1.55;
margin-top: 1rem
}

@media(max-width:991.98px) {
.borrowing-grid,
    .borrowing-info-grid {
grid-template-columns: 1fr
}

.borrowing-hero {
padding: 4rem 0
}

}

@media(max-width:768px) {
.borrowing-radio-grid {
grid-template-columns: 1fr
}

.borrowing-breakdown-row {
flex-direction: column;
gap: .25rem
}

}

/* ============================================================
   CALCULATORS LANDING PAGE
   ============================================================ */

.calculators-page {
background: #fff;
}

.calculators-hero {
background:
    
    url("../images/calculators-hero.webp") center / cover no-repeat;
color: #fff;
padding: 6rem 0 5.25rem;
position: relative;
}

.calculators-hero-card {
max-width: 780px;
background: rgba(255,255,255,.96);
color: var(--navy);
border-radius: var(--radius-xl);
padding: clamp(2rem, 5vw, 3.2rem);
box-shadow: var(--shadow);
}

.calculators-hero-card h1 {
font-weight: 800;
letter-spacing: -.045em;
line-height: 1.02;
}

.calculators-hero-card p {
color: var(--muted);
line-height: 1.65;
}

.calculators-hub-section {
padding: 5rem 0;
background: #fff;
}

.calculator-hub-card {
background: var(--soft-grey);
border-radius: var(--radius-xl);
box-shadow: var(--shadow);
padding: clamp(1.7rem, 4vw, 2.3rem);
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
}

.calculator-hub-card:hover {
background: #fff;
transform: translateY(-8px);
box-shadow: 0 20px 38px rgba(5,27,63,.18);
}

.calculator-hub-card i {
color: var(--navy);
font-size: 2.2rem;
margin-bottom: 1rem;
display: inline-block;
}

.calculator-hub-card h2 {
color: var(--navy);
font-weight: 800;
font-size: 1.45rem;
margin-bottom: .9rem;
}

.calculator-hub-card p {
color: var(--muted);
line-height: 1.6;
font-size: .95rem;
margin-bottom: 1.5rem;
}

.calculator-hub-meta {
display: flex;
flex-wrap: wrap;
gap: .5rem;
margin-bottom: 1.5rem;
}

.calculator-hub-pill {
background: #fff;
color: var(--navy);
border-radius: 999px;
padding: .42rem .7rem;
font-size: .75rem;
font-weight: 800;
}

.calculator-hub-card:hover .calculator-hub-pill {
background: var(--soft-grey);
}

.calculators-benefits {
background: var(--section-grey);
padding: 5rem 0;
}

.calculator-benefit-card {
background: #fff;
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
padding: 1.7rem;
height: 100%;
text-align: center;
}

.calculator-benefit-card i {
color: var(--navy);
font-size: 2rem;
margin-bottom: 1rem;
display: inline-block;
}

.calculator-benefit-card h3 {
color: var(--navy);
font-weight: 800;
font-size: 1.2rem;
}

.calculator-benefit-card p {
color: var(--muted);
line-height: 1.6;
font-size: .95rem;
}

.calculator-warning {
background: #fff;
border-left: 5px solid var(--yellow);
border-radius: var(--radius-lg);
box-shadow: var(--shadow);
padding: 1.3rem 1.4rem;
color: var(--navy);
font-weight: 700;
line-height: 1.55;
margin-top: 3rem;
}

@media (max-width: 991.98px) {
.calculators-hero {
padding: 4rem 0;
}

}


/* ============================================================
OUR TEAM V2
============================================================ */
.team-v2-page {
    background: #fff;
}
.team-v2-hero {
    background: url("../images/our-team-hero.webp") center / cover no-repeat;
  padding: 6rem 0 5.25rem;
}

.team-v2-hero p {
    max-width: 780px;
    color: var(--muted);
    line-height: 1.65;
}
.team-v2-section {
    padding: 4.5rem 0 5rem;
}
.team-v2-intro {
    max-width: 780px;
    margin-bottom: 2rem;
}
.team-v2-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-bottom: 3rem;
}
.team-v2-filter {
    border: 0;
    background: var(--soft-grey);
    color: var(--navy);
    border-radius: 999px;
    padding: 0.7rem 1rem;
    font-weight: 800;
    transition:
        background var(--transition),
        color var(--transition),
        transform var(--transition);
}
.team-v2-filter:hover,
.team-v2-filter.is-active {
    background: var(--navy);
    color: var(--yellow);
    transform: translateY(-2px);
}
.team-v2-group {
    margin-bottom: 4.5rem;
}
.team-v2-group.is-hidden {
    display: none;
}
.team-v2-group-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 2rem;
    margin-bottom: 1.5rem;
}
.team-v2-group-header p:last-child {
    max-width: 480px;
    color: var(--muted);
    line-height: 1.55;
    margin: 0;
}
.team-v2-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.4rem;
}
.team-v2-card {
    background: var(--soft-grey);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    overflow: hidden;
    transition:
        transform 0.28s ease,
        box-shadow 0.28s ease,
        background 0.28s ease;
}
.team-v2-card:hover,
.team-v2-card.is-active {
    background: #fff;
    transform: translateY(-7px);
    box-shadow: 0 20px 38px rgba(5, 27, 63, 0.18);
}
.team-v2-profile-btn {
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: left;
    cursor: pointer;
    color: inherit;
}
.team-v2-image-wrap {
    display: block;
    overflow: hidden;
    background: #dfe8f1;
}
.team-v2-image-wrap img {
    width: 100%;
    aspect-ratio: 4/4.7;
    object-fit: cover;
    display: block;
    transition:
        transform 0.35s ease,
        filter 0.35s ease;
}
.team-v2-card:hover .team-v2-image-wrap img,
.team-v2-card.is-active .team-v2-image-wrap img {
    transform: scale(1.035);
    filter: saturate(1.05);
}
.team-v2-card-body {
    display: block;
    padding: 1.25rem 1.25rem 1rem;
}
.team-v2-name {
    display: block;
    color: var(--navy);
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.15;
}
.team-v2-role {
    display: block;
    color: #5f6d82;
    font-size: 0.88rem;
    font-weight: 600;
    margin-top: 0.35rem;
    min-height: 2.4rem;
}
.team-v2-action {
    display: inline-block;
    color: var(--navy);
    font-size: 0.86rem;
    font-weight: 800;
    margin-top: 1rem;
}
.team-v2-action::after {
    content: " →";
    color: var(--yellow);
}
.team-v2-contact {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0 1.25rem 1.25rem;
}
.team-v2-contact a {
    color: var(--navy);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
.team-v2-contact a:hover {
    color: var(--muted);
}
.team-v2-contact i {
    color: var(--navy);
    width: 16px;
}
.team-v2-expanded-panel {
    display: none;
    background: #fff;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    margin: 2rem 0 0;
    border-top: 6px solid var(--yellow);
}
.team-v2-expanded-panel.is-open {
    display: block;
    animation: fadeUp 0.35s ease both;
}
.team-v2-expanded-panel-header {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1rem;
}
.team-v2-close {
    border: 0;
    background: var(--soft-grey);
    color: var(--navy);
    border-radius: 999px;
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    font-weight: 800;
}
.team-v2-close:hover {
    background: var(--navy);
    color: var(--yellow);
}
.team-v2-expanded-grid {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 2rem;
    align-items: start;
}
.team-v2-expanded-image img {
    width: 100%;
    aspect-ratio: 4/5;
    object-fit: cover;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.team-v2-expanded-copy h2 {
    color: var(--navy);
    font-weight: 800;
    letter-spacing: -0.04em;
    font-size: clamp(2rem, 4vw, 3rem);
    margin-bottom: 0.35rem;
}
.team-v2-expanded-role {
    color: var(--muted);
    font-weight: 700;
    margin-bottom: 1.5rem;
}
.team-v2-expanded-bio p {
    color: #38465e;
    line-height: 1.7;
    margin-bottom: 1rem;
}
.team-v2-expanded-actions {
    display: flex;
    gap: 0.8rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}
.team-v2-profile-data {
    display: none;
}
@media (max-width: 1199.98px) {
    .team-v2-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .team-v2-expanded-grid {
        grid-template-columns: 260px 1fr;
    }
}
@media (max-width: 991.98px) {
    .team-v2-hero {
        padding: 4rem 0 3.5rem;
    }
    .team-v2-group-header {
        flex-direction: column;
        align-items: flex-start;
    }
    .team-v2-expanded-grid {
        grid-template-columns: 1fr;
    }
    .team-v2-expanded-image {
        max-width: 320px;
    }
}
@media (max-width: 768px) {
    .team-v2-grid {
        grid-template-columns: 1fr;
    }
    .team-v2-filters {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
    .team-v2-filter {
        width: 100%;
    }
}


/* ============================================================
OUR TEAM V2 - IMAGE OVERLAY PROFILE BUTTON
============================================================ */

.team-v2-image-wrap {
  position: relative;
}

.team-v2-image-action {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  background: var(--navy);
  color: var(--yellow);
  border-radius: 999px;
  padding: .55rem .9rem;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 10px 24px rgba(5,27,63,.24);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--transition), transform var(--transition), background var(--transition), color var(--transition);
  pointer-events: none;
}

.team-v2-image-action::after {
  content: " →";
}

.team-v2-card:hover .team-v2-image-action,
.team-v2-card.is-active .team-v2-image-action,
.team-v2-profile-btn:focus-visible .team-v2-image-action {
  opacity: 1;
  transform: translateY(0);
}

.team-v2-card.is-active .team-v2-image-action {
  background: var(--yellow);
  color: var(--navy);
}

.team-v2-profile-btn:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 4px;
}

@media (max-width: 768px) {
  .team-v2-image-action {
    opacity: 1;
    transform: none;
    font-size: .78rem;
  }
}



.equity-page{background:#fff}
.equity-hero{background:url("../images/equity-release-calculator-hero.webp") center/cover no-repeat;color:#fff;padding:6rem 0 5.25rem}
.equity-hero-card{max-width:780px;background:rgba(255,255,255,.96);color:var(--navy);border-radius:var(--radius-xl);padding:clamp(2rem,5vw,3.2rem);box-shadow:var(--shadow)}
.equity-hero-card h1{font-weight:800;letter-spacing:-.045em;line-height:1.02}.equity-hero-card p{color:var(--muted);line-height:1.65}
.equity-calculator-section{padding:5rem 0;background:#fff}.equity-calculator-card{background:var(--soft-grey);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:clamp(2rem,5vw,3rem)}
.equity-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.equity-field label,.equity-radio-label{display:block;color:var(--navy);font-weight:800;margin-bottom:.7rem}
.equity-input-wrap{position:relative}.equity-input-wrap span{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--navy);font-weight:700;pointer-events:none}
.equity-input,.equity-select{width:100%;border:0;background:#dedede;border-radius:10px;min-height:52px;padding:.8rem 1rem;color:var(--navy);font-size:1rem;outline:none}.equity-input.has-prefix{padding-left:2.25rem}.equity-input:focus{box-shadow:0 0 0 .2rem rgba(5,27,63,.12)}
.equity-radio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.equity-radio-option{position:relative}.equity-radio-option input{position:absolute;opacity:0;pointer-events:none}.equity-radio-option span{display:block;background:#fff;border:2px solid transparent;border-radius:12px;padding:.85rem 1rem;color:var(--navy);font-weight:800;cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .25s ease}.equity-radio-option input:checked+span{background:var(--navy);color:var(--yellow);border-color:var(--navy)}.equity-radio-option span:hover{transform:translateY(-2px)}
.equity-result-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:clamp(2rem,5vw,3rem);height:100%}.equity-result-label{color:var(--muted);font-weight:800;margin-bottom:.4rem}.equity-result-value{color:var(--navy);font-size:clamp(2.3rem,5vw,3.6rem);font-weight:800;letter-spacing:-.045em;line-height:1}.equity-result-sub{color:var(--muted);margin-top:.6rem;line-height:1.55}
.equity-breakdown{display:grid;gap:.7rem;margin-top:2rem}.equity-breakdown-row{display:flex;justify-content:space-between;gap:1rem;background:var(--soft-grey);color:var(--navy);border-radius:12px;padding:.9rem 1rem;font-size:.95rem}.equity-breakdown-row strong{white-space:nowrap}
.equity-warning{background:#fff;border-left:5px solid var(--yellow);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.3rem 1.4rem;color:var(--navy);font-weight:700;line-height:1.55;margin-top:1.5rem}
.equity-info-section{background:var(--section-grey);padding:5rem 0}.equity-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.equity-info-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.5rem;height:100%}.equity-info-card i{color:var(--navy);font-size:2rem;margin-bottom:.8rem;display:inline-block}.equity-info-card h3{color:var(--navy);font-weight:800;font-size:1.2rem}.equity-info-card p{color:var(--muted);line-height:1.6;font-size:.95rem}.equity-note{color:var(--muted);font-size:.86rem;line-height:1.55;margin-top:1rem}
@media(max-width:991.98px){.equity-form-grid,.equity-info-grid{grid-template-columns:1fr}.equity-hero{padding:4rem 0}}@media(max-width:768px){.equity-radio-grid{grid-template-columns:1fr}.equity-breakdown-row{flex-direction:column;gap:.25rem}}




/* Equity Release Calculator - Gated */
/*.equity-page{background:#fff}
.equity-hero{background:url("../images/mrc-hero.webp") center/cover no-repeat;color:#fff;padding:6rem 0 5.25rem}
.equity-hero-card{max-width:780px;background:rgba(255,255,255,.96);color:var(--navy,#051B3F);border-radius:var(--radius-xl,24px);padding:clamp(2rem,5vw,3.2rem);box-shadow:var(--shadow)}
*/.equity-hero-card h1{font-weight:800;letter-spacing:-.045em;line-height:1.02}
.equity-hero-card p{color:var(--muted,#526079);line-height:1.65}
.equity-section{padding:5rem 0;background:#fff}
.equity-shell{max-width:1080px;margin:0 auto}
.equity-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:2rem}
.equity-progress-step{background:var(--soft-grey,#eef3f7);color:var(--navy,#051B3F);border-radius:999px;padding:.65rem .9rem;font-size:.82rem;font-weight:800;text-align:center}
.equity-progress-step.is-active{background:var(--navy,#051B3F);color:var(--yellow,#ffed00)}
.equity-card{background:var(--soft-grey,#eef3f7);border-radius:var(--radius-xl,24px);box-shadow:var(--shadow);padding:clamp(2rem,5vw,3rem)}
.equity-step{display:none}.equity-step.is-active{display:block;animation:fadeUp .35s ease both}
.equity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.equity-field label,.equity-choice-label{display:block;color:var(--navy,#051B3F);font-weight:800;margin-bottom:.7rem}
.equity-input-wrap{position:relative}.equity-input-wrap span{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--navy,#051B3F);font-weight:700;pointer-events:none}
.equity-input,.equity-select{width:100%;border:0;background:#dedede;border-radius:10px;min-height:52px;padding:.8rem 1rem;color:var(--navy,#051B3F);font-size:1rem;outline:none}
.equity-input.has-prefix{padding-left:2.25rem}.equity-input:focus,.equity-select:focus{box-shadow:0 0 0 .2rem rgba(5,27,63,.12)}
.equity-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.equity-choice{position:relative}.equity-choice input{position:absolute;opacity:0;pointer-events:none}
.equity-choice span{display:block;background:#fff;border:2px solid transparent;border-radius:var(--radius-md,12px);padding:.85rem 1rem;color:var(--navy,#051B3F);font-weight:800;text-align:center;cursor:pointer;transition:all .25s ease}
.equity-choice input:checked+span{background:var(--navy,#051B3F);color:var(--yellow,#ffed00);border-color:var(--navy,#051B3F)}
.equity-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem}
.equity-note{color:var(--muted,#526079);font-size:.86rem;line-height:1.55;margin-top:1rem}
.equity-warning{background:#fff;border-left:5px solid var(--yellow,#ffed00);border-radius:var(--radius-lg,18px);box-shadow:0 8px 18px rgba(5,27,63,.07);padding:1.2rem 1.3rem;color:var(--navy,#051B3F);font-weight:700;line-height:1.55;margin-top:1.5rem}
.equity-result-panel{background:#fff;border-radius:var(--radius-xl,24px);box-shadow:var(--shadow);padding:clamp(2rem,5vw,3rem)}
.equity-result-label{color:var(--muted,#526079);font-weight:800;margin-bottom:.45rem}
.equity-result-value{color:var(--navy,#051B3F);font-size:clamp(2.4rem,6vw,4rem);font-weight:800;letter-spacing:-.045em;line-height:1}
.equity-result-sub{color:var(--muted,#526079);line-height:1.6;margin-top:.85rem}
.equity-breakdown{display:grid;gap:.7rem;margin-top:2rem}
.equity-breakdown-row{display:flex;justify-content:space-between;gap:1rem;background:var(--soft-grey,#eef3f7);color:var(--navy,#051B3F);border-radius:var(--radius-md,12px);padding:.9rem 1rem;font-size:.95rem}
.equity-breakdown-row strong{white-space:nowrap}.equity-consent{display:grid;grid-template-columns:22px 1fr;gap:.75rem;align-items:start;margin-top:1rem;color:var(--muted,#526079);font-size:.88rem;line-height:1.55}.equity-consent input{margin-top:.2rem}
.equity-error{display:none;background:#fff;color:#8a1f1f;border-left:5px solid #8a1f1f;border-radius:var(--radius-md,12px);padding:.95rem 1rem;margin-top:1rem;font-weight:700}.equity-error.show{display:block}
.equity-info-section{background:var(--section-grey,#f6f6f6);padding:5rem 0}.equity-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.equity-info-card{background:#fff;border-radius:var(--radius-lg,18px);box-shadow:var(--shadow);padding:1.5rem;height:100%}.equity-info-card i{color:var(--navy,#051B3F);font-size:2rem;margin-bottom:.8rem;display:inline-block}.equity-info-card h3{color:var(--navy,#051B3F);font-weight:800;font-size:1.2rem}.equity-info-card p{color:var(--muted,#526079);line-height:1.6;font-size:.95rem}
@media(max-width:991.98px){.equity-hero{padding:4rem 0}.equity-grid,.equity-info-grid{grid-template-columns:1fr}}
@media(max-width:768px){.equity-progress{grid-template-columns:1fr}.equity-choice-grid{grid-template-columns:1fr}.equity-actions{flex-direction:column-reverse;align-items:stretch}.equity-breakdown-row{flex-direction:column;gap:.25rem}}

.equity-submit-status {
  color: var(--muted, #526079);
  font-weight: 700;
  margin: 1rem 0 0;
}



/* Compact Bradleys Contact Form */
.bradleys-small-form-section{background:#fff;padding:0 0}
.bradleys-small-form-card{background:var(--soft-grey,#eef3f7);border-radius:var(--radius-xl,24px);box-shadow:var(--shadow,0 12px 26px rgba(5,27,63,.14));padding:clamp(1.8rem,4vw,2.6rem)}
.bradleys-small-form-card h2{color:var(--navy,#051B3F);font-weight:800;letter-spacing:-.04em;margin-bottom:.8rem}
.bradleys-small-form-card p{color:var(--muted,#526079);line-height:1.65}
.bradleys-small-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.bradleys-small-field.full{grid-column:1/-1}
.bradleys-small-field label{display:block;color:var(--navy,#051B3F);font-weight:800;margin-bottom:.6rem}
.bradleys-small-input,.bradleys-small-textarea{width:100%;border:0;background:#dedede;border-radius:10px;min-height:50px;padding:.8rem 1rem;color:var(--navy,#051B3F);font-size:1rem;outline:none}
.bradleys-small-textarea{min-height:120px;resize:vertical}
.bradleys-small-input:focus,.bradleys-small-textarea:focus{box-shadow:0 0 0 .2rem rgba(5,27,63,.12)}
.bradleys-small-honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none}
.bradleys-small-consent{display:grid;grid-template-columns:22px 1fr;gap:.7rem;align-items:start;margin-top:1rem;color:var(--muted,#526079);font-size:.86rem;line-height:1.55}
.bradleys-small-consent input{margin-top:.2rem}
.bradleys-small-status{display:none;border-radius:var(--radius-md,12px);padding:.9rem 1rem;margin-top:1rem;font-weight:700}
.bradleys-small-status.show{display:block}
.bradleys-small-status.is-error{background:#fff;color:#8a1f1f;border-left:5px solid #8a1f1f}
.bradleys-small-status.is-success{background:#fff;color:var(--navy,#051B3F);border-left:5px solid var(--yellow,#ffed00)}
.bradleys-small-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.4rem}
@media(max-width:768px){.bradleys-small-form-grid{grid-template-columns:1fr}.bradleys-small-actions{flex-direction:column;align-items:stretch}}

/* ============================================================
BRADLEYS TRUSTIST REVIEW CAROUSEL
FULL CLEAN CARD STYLE FIX
============================================================ */

/*
Replace ALL previous Trustist carousel/review CSS with this block.

This CSS is intended for the Option 2 JavaScript version which renders:
.bradleys-review-stars
.bradleys-review-text
.bradleys-review-meta

It does NOT rely on Trustist's internal HTML.
*/

.bradleys-review-carousel-section {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background:
    radial-gradient(circle at top right, rgba(255, 237, 0, .16), transparent 32rem),
    var(--section-grey, #f6f6f6);
  padding: 5.5rem 0;
  overflow: hidden;
}

.bradleys-review-carousel-section > .container {
  max-width: none;
  width: 100%;
  padding-left: clamp(1.25rem, 5vw, 5rem);
  padding-right: clamp(1.25rem, 5vw, 5rem);
}

.bradleys-review-carousel-header {
  max-width: 1440px;
  margin: 0 auto 2.25rem;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
}

.bradleys-review-carousel-header > div {
  max-width: 760px;
}

.bradleys-review-carousel-header p {
  color: var(--muted, #526079);
  line-height: 1.65;
  margin: 0;
}

.bradleys-review-carousel-header .section-title,
.bradleys-review-carousel-header h2 {
  color: var(--navy, #051B3F);
  font-weight: 800;
  letter-spacing: -.045em;
}

.bradleys-review-carousel-shell {
  max-width: 1440px;
  margin: 0 auto;
  position: relative;
  overflow: visible;
}

.bradleys-review-carousel-track-wrap {
  width: 100%;
  overflow-x: hidden;
  overflow-y: visible;
  padding: 1.25rem 0 2.25rem;
}

.bradleys-review-carousel-track {
  display: flex;
  align-items: stretch;
  gap: 1.5rem;
  overflow: visible;
  transition: transform .45s ease;
  will-change: transform;
}

.bradleys-review-slide {
  flex: 0 0 calc((100% - 3rem) / 3);
  min-width: 0;
  display: flex;
  overflow: visible;
}

.bradleys-review-card {
  position: relative;
  width: 100%;
  min-height: 340px;
  background: #fff;
  color: var(--navy, #051B3F);
  border-radius: var(--radius-xl, 24px);
  border: 1px solid rgba(5, 27, 63, .07);
  box-shadow: 0 18px 38px rgba(5, 27, 63, .13);
  padding: clamp(1.5rem, 2.4vw, 2.15rem);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.bradleys-review-card:hover {
  transform: translateY(-7px);
  box-shadow: 0 26px 54px rgba(5, 27, 63, .19);
  border-color: rgba(5, 27, 63, .12);
}

/* Remove old pseudo-star and quote styles if previous CSS is still present */
.bradleys-review-card::before {
  content: none !important;
  display: none !important;
}

.bradleys-review-card::after {
  content: "”";
  position: absolute;
  right: 1.2rem;
  bottom: -1.45rem;
  color: rgba(5, 27, 63, .055);
  font-size: 8rem;
  line-height: .8;
  font-weight: 800;
  pointer-events: none;
}

/* Clean card content */
.bradleys-review-stars {
  display: inline-flex;
  align-self: flex-start;
  color: var(--yellow, #ffed00);
  background: var(--navy, #051B3F);
  border-radius: 999px;
  padding: .52rem .85rem;
  margin-bottom: 1.25rem;
  font-size: .82rem;
  line-height: 1;
  letter-spacing: .08em;
  font-weight: 800;
  box-shadow: 0 10px 20px rgba(5, 27, 63, .16);
}

.bradleys-review-text {
  color: var(--navy, #051B3F);
  font-size: .98rem;
  line-height: 1.68;
  margin: 0 0 1.5rem;
  position: relative;
  z-index: 1;
}

.bradleys-review-meta {
  margin-top: auto;
  border-top: 1px solid rgba(5, 27, 63, .1);
  padding-top: 1rem;
  display: grid;
  gap: .2rem;
  position: relative;
  z-index: 1;
}

.bradleys-review-meta strong {
  color: var(--navy, #051B3F);
  font-weight: 800;
}

.bradleys-review-meta span {
  color: var(--muted, #526079);
  font-size: .84rem;
  font-weight: 600;
}

/* Loading / fallback */
.bradleys-review-loading,
.bradleys-review-fallback {
  max-width: 1440px;
  margin: 0 auto;
  background: #fff;
  color: var(--muted, #526079);
  border-radius: var(--radius-xl, 24px);
  box-shadow: 0 18px 38px rgba(5, 27, 63, .13);
  padding: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
}

.bradleys-review-fallback {
  display: none;
}

.bradleys-review-fallback.is-visible {
  display: block;
}

.bradleys-review-standard-widget {
  margin-top: 1rem;
}

.bradleys-review-hidden-source {
  position: absolute;
  left: -99999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

/* Controls */
.bradleys-review-carousel-controls {
  max-width: 1440px;
  margin: .5rem auto 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
}

.bradleys-review-carousel-btn {
  border: 0;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: #fff;
  color: var(--navy, #051B3F);
  box-shadow: 0 10px 22px rgba(5, 27, 63, .13);
  display: inline-grid;
  place-items: center;
  font-size: 1.5rem;
  line-height: 1;
  font-weight: 800;
  transition:
    transform .25s ease,
    background .25s ease,
    color .25s ease,
    box-shadow .25s ease;
}

.bradleys-review-carousel-btn:hover {
  transform: translateY(-2px);
  background: var(--navy, #051B3F);
  color: var(--yellow, #ffed00);
  box-shadow: 0 16px 30px rgba(5, 27, 63, .18);
}

.bradleys-review-carousel-btn:disabled {
  opacity: .38;
  cursor: not-allowed;
  transform: none;
  box-shadow: 0 8px 18px rgba(5, 27, 63, .08);
}

.bradleys-review-carousel-dots {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-right: auto;
}

.bradleys-review-dot {
  border: 0;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  padding: 0;
  background: rgba(5, 27, 63, .22);
  transition:
    width .25s ease,
    background .25s ease,
    box-shadow .25s ease;
}

.bradleys-review-dot.is-active {
  width: 28px;
  background: var(--yellow, #ffed00);
  box-shadow: 0 0 0 4px rgba(255, 237, 0, .22);
}

@media (max-width: 991.98px) {
  .bradleys-review-carousel-section {
    padding: 4.5rem 0;
  }

  .bradleys-review-carousel-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .bradleys-review-slide {
    flex-basis: calc((100% - 1.5rem) / 2);
  }
}

@media (max-width: 768px) {
  .bradleys-review-carousel-section {
    padding: 3.75rem 0;
  }

  .bradleys-review-carousel-section > .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .bradleys-review-carousel-track-wrap {
    padding: 1rem .25rem 1.8rem;
  }

  .bradleys-review-carousel-track {
    gap: 1rem;
  }

  .bradleys-review-slide {
    flex-basis: 100%;
  }

  .bradleys-review-card {
    min-height: 300px;
    padding: 1.45rem;
  }

  .bradleys-review-carousel-controls {
    justify-content: space-between;
  }
}


/* Premium Trustist review header */
.bradleys-review-stars{
  display:flex;
  align-items:center;
  gap:.22rem;
  margin-bottom:1rem;
  background:none;
  padding:0;
  box-shadow:none;
}
.bradleys-review-stars svg,
.bradleys-review-stars img{
  width:24px;
  height:24px;
  fill:#f5c542;
  flex:0 0 24px;
}
.bradleys-review-stars .star{
  width:24px;
  height:24px;
  display:inline-block;
}
.bradleys-review-stars .star svg{
  width:100%;
  height:100%;
}

.bradleys-review-meta{
  display:flex;
  flex-direction:column;
  gap:.2rem;
}
.bradleys-review-verified{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-size:.8rem;
  color:#526079;
  font-weight:600;
}
.bradleys-review-verified::before{
  content:"✓";
  display:inline-grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#051B3F;
  color:#fff;
  font-size:.7rem;
}

/* Premium Trustist stars for clean review carousel */
.bradleys-review-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
}

.bradleys-review-stars {
  display: flex;
  align-items: center;
  gap: .25rem;
  color: #f5c542;
  background: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
}

.bradleys-review-star-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  display: block;
}

.bradleys-review-verified a {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--muted, #526079);
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}

.bradleys-review-verified::before {
  content: "✓";
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--navy, #051B3F);
  color: #fff;
  font-size: .7rem;
  line-height: 1;
}

@media (max-width: 768px) {
  .bradleys-review-topline {
    flex-direction: column;
    align-items: flex-start;
  }

  .bradleys-review-star-icon {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }
}

/* ==========================================================
   CONTACT US PAGE
   ========================================================== */

.contact-hero {
  background:

    url("../images/contact-us-hero.webp") center / cover no-repeat;
  padding: 6rem 0 5.25rem;
}

.contact-hero-card {
  max-width: 760px;
  background: rgba(255,255,255,.96);
  border-radius: var(--radius-xl);
  box-shadow: 0 18px 44px rgba(5,27,63,.18);
  padding: clamp(2rem, 5vw, 3.2rem);
}

.contact-hero-card h1 {
  color: var(--navy);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1.02;
}

.contact-hero-card p {
  color: var(--muted);
  line-height: 1.65;
}

.office-section {
  padding: 5rem 0;
  background:
    radial-gradient(circle at top right, rgba(255,237,0,.12), transparent 28rem),
    var(--section-grey);
}

.office-intro {
  max-width: 820px;
  margin-bottom: 2rem;
}

.office-intro p {
  color: var(--muted);
  line-height: 1.65;
}

.office-toolbar {
  max-width: 620px;
  background: #fff;
  border: 1px solid rgba(5,27,63,.06);
  border-radius: var(--radius-xl);
  box-shadow: 0 10px 24px rgba(5,27,63,.07);
  padding: 1rem;
  margin: 2rem 0 2.25rem;
}

.office-search {
  position: relative;
}

.office-search input {
  width: 100%;
  min-height: 54px;
  border: 0;
  border-radius: 14px;
  background: var(--soft-grey);
  color: var(--navy);
  padding: .85rem 3rem .85rem 2.75rem;
  font-weight: 600;
  outline: none;
}

.office-search input:focus {
  box-shadow: 0 0 0 .2rem rgba(5,27,63,.10);
}

.office-search .search-icon,
.office-search > .bi-search {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  opacity: .85;
  pointer-events: none;
}

.search-clear {
  position: absolute;
  right: .65rem;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  transition: background var(--transition), color var(--transition);
}

.search-clear:hover {
  background: var(--soft-grey);
  color: var(--navy);
}

.search-clear.show {
  display: flex;
}

.office-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.15rem;
}

.office-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 190px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(5,27,63,.08);
  border-radius: 22px;
  box-shadow: 0 6px 16px rgba(5,27,63,.045);
  padding: 1.35rem;
  transition:
    transform var(--transition),
    box-shadow var(--transition),
    border-color var(--transition),
    background var(--transition);
}

.office-card:hover {
  transform: translateY(-4px);
  background: #fff;
  border-color: rgba(5,27,63,.14);
  box-shadow: 0 12px 24px rgba(5,27,63,.085);
}

.office-card h3 {
  color: var(--navy);
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.office-contact-link {
  display: flex;
  align-items: center;
  gap: .65rem;
  color: var(--navy);
  text-decoration: none;
  font-size: .84rem;
  font-weight: 700;
  margin-bottom: .55rem;
}

.office-contact-link:hover {
  color: #09285b;
}

.office-contact-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--soft-grey);
  color: var(--navy);
  border: 1px solid rgba(5,27,63,.06);
  font-size: .76rem;
}

.office-card-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 1.1rem;
  padding: .7rem 1rem;
  background: var(--soft-grey);
  color: var(--navy);
  border: 1px solid rgba(5,27,63,.08);
  border-radius: 12px;
  box-shadow: none;
  text-decoration: none;
  font-size: .86rem;
  font-weight: 800;
  transition:
    background var(--transition),
    color var(--transition),
    border-color var(--transition),
    transform var(--transition),
    box-shadow var(--transition);
}

.office-card-cta:hover {
  background: var(--navy);
  color: var(--yellow);
  border-color: var(--navy);
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(5,27,63,.15);
}

.no-results {
  display: none;
  background: #fff;
  border: 1px solid rgba(5,27,63,.08);
  border-radius: var(--radius-lg);
  padding: 2rem;
  color: var(--muted);
  text-align: center;
  margin-top: 2rem;
  font-weight: 700;
}

.contact-cta {
  background: #fff;
  padding: 5rem 0;
}

.cta-panel {
  background:
    radial-gradient(circle at top right, rgba(255,237,0,.18), transparent 20rem),
    var(--navy);
  color: #fff;
  border-radius: var(--radius-xl);
  box-shadow: 0 18px 44px rgba(5,27,63,.20);
  padding: clamp(2rem, 5vw, 3rem);
}

.cta-panel h2 {
  font-weight: 800;
  letter-spacing: -.04em;
}

.cta-panel p {
  color: rgba(255,255,255,.78);
  line-height: 1.65;
}

.cta-panel a {
  color: var(--yellow);
  font-weight: 800;
}

/* Responsive */
@media (max-width: 1200px) {
  .office-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 992px) {
  .office-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .contact-hero {
    padding: 4rem 0;
  }
}

@media (max-width: 576px) {
  .office-grid {
    grid-template-columns: 1fr;
  }

  .office-card {
    min-height: auto;
  }
}
/* ==========================================================
   Hero Disclaimer
   ========================================================== */

.hero-home{
    position:relative;
}

.hero-disclaimer{
    position:absolute;
    left:50%;
    bottom:10px;
    transform:translateX(-50%);

    width:min(780px,90%);
    padding:12px 22px;

    text-align:center;

    backdrop-filter:blur(6px);
    background:rgba(255,255,255,.12);

    border:1px solid rgba(255,255,255,.18);
    border-radius:12px;

    color:#fff;
    font-size:.88rem;
    line-height:1.5;

    box-shadow:0 10px 25px rgba(0,0,0,.18);
}

.hero-disclaimer strong{
    font-weight:700;
}

@media (max-width:768px){

    .hero-disclaimer{
        width:92%;
        bottom:20px;
        font-size:.8rem;
        padding:10px 16px;
    }

}

.skip-link{
    position:absolute;
    left:-9999px;
    top:20px;
    z-index:9999;
    background:#051B3F;
    color:#fff;
    padding:12px 20px;
    border-radius:8px;
    text-decoration:none;
    font-weight:700;
}

.skip-link:focus{
    left:20px;
}