@charset "UTF-8";

:root {
    --white: #ffffff;
    --off-white: #f4fbfd;
    --mist: #e9f7fb;
    --sea-50: #e4faff;
    --sea-100: #c9f5ff;
    --sea-300: #60ddf5;
    --sea-500: #0097c7;
    --sea-600: #0078a7;
    --sea-700: #075879;
    --sea-800: #073d55;
    --ink: #071d2b;
    --ink-soft: #254658;
    --line: rgba(7, 61, 85, .12);
    --glass: rgba(255, 255, 255, .68);
    --glass-strong: rgba(255, 255, 255, .84);
    --shadow: 0 24px 80px rgba(6, 61, 86, .13);
    --shadow-soft: 0 15px 45px rgba(6, 61, 86, .09);
    --radius-sm: 18px;
    --radius-md: 28px;
    --radius-lg: 42px;
    --container: 1240px;
    --transition: 320ms cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--white);
    color: var(--ink);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.65;
    overflow-x: hidden;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--sea-300); color: var(--ink); }

.screen-reader-text {
    border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 99999; background: var(--ink); color: white; padding: 12px 18px; border-radius: 12px; transition: top .2s; }
.skip-link:focus { top: 16px; }

.site-shell { position: relative; isolation: isolate; overflow: clip; min-height: 100vh; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { position: relative; padding: clamp(76px, 9vw, 138px) 0; }
.glass-panel {
    background: linear-gradient(135deg, rgba(255,255,255,.86), rgba(255,255,255,.58));
    border: 1px solid rgba(255,255,255,.78);
    box-shadow: var(--shadow);
    backdrop-filter: blur(22px) saturate(145%);
    -webkit-backdrop-filter: blur(22px) saturate(145%);
}
.glass-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(145deg, rgba(255,255,255,.84), rgba(238,250,253,.68));
    border: 1px solid rgba(9, 98, 132, .11);
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(20px) saturate(135%);
    -webkit-backdrop-filter: blur(20px) saturate(135%);
}
.glass-card::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    background: radial-gradient(360px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(96,221,245,.24), transparent 42%);
    transition: opacity var(--transition);
}
.glass-card:hover::before { opacity: 1; }

.ambient { position: fixed; z-index: -2; width: 520px; height: 520px; border-radius: 50%; filter: blur(90px); opacity: .18; pointer-events: none; animation: ambientFloat 16s ease-in-out infinite alternate; }
.ambient--one { top: -200px; left: -200px; background: #4ce4ff; }
.ambient--two { right: -260px; top: 35vh; background: #0094c7; animation-delay: -6s; }
@keyframes ambientFloat { to { transform: translate3d(80px, 60px, 0) scale(1.15); } }

.page-loader { position: fixed; inset: 0; z-index: 100000; display: grid; place-content: center; gap: 20px; text-align: center; color: var(--sea-800); background: var(--white); transition: opacity .8s ease, visibility .8s ease; }
.page-loader::before, .page-loader::after { content: ""; position: absolute; left: -10%; width: 120%; height: 44%; border-radius: 50%; background: linear-gradient(180deg, rgba(96,221,245,.3), rgba(0,120,167,.08)); animation: loaderWave 2.3s ease-in-out infinite alternate; }
.page-loader::before { bottom: -25%; }
.page-loader::after { bottom: -31%; animation-delay: -.8s; opacity: .6; }
.page-loader__orb { width: 72px; height: 72px; margin-inline: auto; border-radius: 50%; border: 1px solid rgba(0,120,167,.2); background: radial-gradient(circle at 30% 26%, #fff 0 14%, #89ebfa 15% 34%, #0085b4 67%, #073d55 100%); box-shadow: 0 0 0 16px rgba(96,221,245,.10), 0 20px 60px rgba(0,120,167,.22); animation: orbPulse 1.6s ease-in-out infinite; }
.page-loader span { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; font-weight: 800; }
body.is-loaded .page-loader { opacity: 0; visibility: hidden; }
@keyframes loaderWave { to { transform: translateY(-35px) rotate(-2deg); } }
@keyframes orbPulse { 50% { transform: scale(.86); box-shadow: 0 0 0 28px rgba(96,221,245,0), 0 20px 60px rgba(0,120,167,.28); } }

.site-header { position: fixed; inset: 20px 0 auto; z-index: 1000; transition: transform var(--transition); }
.admin-bar .site-header { top: 52px; }
.site-header__inner { min-height: 78px; border-radius: 999px; display: grid; grid-template-columns: minmax(0, 218px) minmax(0, 1fr) max-content; align-items: center; gap: 24px; padding: 10px 12px 10px 20px; transition: background var(--transition), box-shadow var(--transition), min-height var(--transition); }
.site-header.is-scrolled .site-header__inner { min-height: 68px; background: rgba(255,255,255,.82); box-shadow: 0 18px 50px rgba(4,44,62,.15); }
.brand { display: inline-flex; align-items: center; gap: 12px; width: 218px; min-width: 0; max-width: 218px; overflow: hidden; }
.custom-logo-link { display: flex; align-items: center; width: 100%; max-width: 100%; min-width: 0; overflow: hidden; }
.custom-logo, .brand__logo { display: block; width: auto; height: auto; max-width: 100%; max-height: 52px; object-fit: contain; object-position: left center; }
.brand__mark { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(145deg, var(--sea-50), #fff); box-shadow: inset 0 0 0 1px rgba(0,120,167,.1), 0 8px 24px rgba(0,120,167,.12); }
.brand__mark svg { width: 26px; fill: var(--sea-600); transition: transform var(--transition); }
.brand:hover .brand__mark svg { transform: rotate(-10deg) scale(1.08); }
.brand__text { display: grid; line-height: 1.1; }
.brand__text strong { font-size: 14px; letter-spacing: -.02em; }
.brand__text small { margin-top: 5px; color: var(--sea-700); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; font-weight: 800; }
.primary-nav { justify-self: center; }
.primary-nav .menu, .footer-menu { list-style: none; margin: 0; padding: 0; }
.primary-nav .menu { display: flex; align-items: center; gap: 7px; }
.primary-nav .menu a { position: relative; display: inline-flex; align-items: center; padding: 11px 16px; border-radius: 999px; color: var(--ink-soft); font-size: 14px; font-weight: 700; transition: color var(--transition), background var(--transition), transform var(--transition); }
.primary-nav .menu a::before { content: ""; position: absolute; inset: auto 17px 8px; height: 1px; background: var(--sea-500); transform: scaleX(0); transform-origin: right; transition: transform var(--transition); }
.primary-nav .menu a:hover, .primary-nav .current-menu-item > a { color: var(--sea-700); background: rgba(208,246,253,.45); transform: translateY(-1px); }
.primary-nav .menu a:hover::before, .primary-nav .current-menu-item > a::before { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--ink); padding: 0; place-items: center; }
.menu-toggle > span:not(.screen-reader-text) { display: block; width: 18px; height: 1.5px; margin: 2.5px auto; background: white; transition: transform var(--transition), opacity var(--transition); }
.menu-open .menu-toggle > span:nth-child(1) { transform: translateY(4px) rotate(45deg); }
.menu-open .menu-toggle > span:nth-child(2) { opacity: 0; }
.menu-open .menu-toggle > span:nth-child(3) { transform: translateY(-4px) rotate(-45deg); }

.button { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 56px; padding: 0 24px; border: 1px solid transparent; border-radius: 999px; font-size: 14px; font-weight: 800; letter-spacing: -.01em; overflow: hidden; transition: transform var(--transition), box-shadow var(--transition), color var(--transition), border-color var(--transition); }
.button::before { content: ""; position: absolute; z-index: -1; inset: -2px; background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.5) 45%, transparent 70%); transform: translateX(-120%); transition: transform .7s ease; }
.button:hover::before { transform: translateX(120%); }
.button:hover { transform: translateY(-3px); }
.button span { transition: transform var(--transition); }
.button:hover span { transform: translate(3px, -3px); }
.button--primary { color: white; background: linear-gradient(125deg, var(--sea-500), var(--sea-700)); box-shadow: 0 18px 38px rgba(0,120,167,.24); }
.button--primary:hover { box-shadow: 0 24px 50px rgba(0,120,167,.3); }
.frogmen-front-page .hero__actions .button--primary,
.frogmen-front-page .hero__actions .button--primary:link,
.frogmen-front-page .hero__actions .button--primary:visited,
.frogmen-front-page .hero__actions .button--primary:hover,
.frogmen-front-page .hero__actions .button--primary:focus,
.frogmen-front-page .hero__actions .button--primary:active { color: #fff !important; }

.button--ink { color: white; background: var(--ink); }
.button--compact { min-height: 50px; padding-inline: 21px; font-size: 12px; }
.desktop-cta { flex: 0 0 auto; white-space: nowrap; }
.button--outline { color: var(--sea-700); border-color: rgba(0,120,167,.23); background: rgba(255,255,255,.7); }
.button--light { background: white; color: var(--ink); }
.button--full { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: 12px; color: var(--sea-700); font-weight: 800; font-size: 14px; }
.text-link span { transition: transform var(--transition); }
.text-link:hover span { transform: translateY(4px); }
.text-link--dark { color: var(--ink); }

.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--sea-700); font-size: 11px; line-height: 1.4; letter-spacing: .17em; text-transform: uppercase; font-weight: 900; }
.eyebrow > span { width: 8px; height: 8px; border-radius: 50%; background: var(--sea-300); box-shadow: 0 0 0 7px rgba(96,221,245,.16); }
h1, h2, h3 { margin: 0; line-height: 1.04; letter-spacing: -.045em; }
h1 { font-size: clamp(48px, 7.2vw, 94px); font-weight: 780; }
h2 { font-size: clamp(38px, 5.2vw, 68px); font-weight: 760; }
h3 { font-size: clamp(21px, 2.2vw, 28px); font-weight: 760; }
p { margin: 0; color: var(--ink-soft); }

.section--hero { min-height: 900px; padding: 190px 0 110px; display: flex; align-items: center; background:
    radial-gradient(circle at 76% 27%, rgba(96,221,245,.28), transparent 25%),
    radial-gradient(circle at 70% 55%, rgba(0,120,167,.12), transparent 36%),
    linear-gradient(180deg, #fbfeff 0%, #eefaff 70%, #fff 100%);
}
.hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(420px, .96fr); align-items: center; gap: clamp(44px, 6vw, 90px); }
.hero__content { position: relative; z-index: 2; }
.hero__title { max-width: 820px; margin-top: 24px; background: linear-gradient(100deg, var(--ink) 0 45%, var(--sea-700) 66%, var(--ink) 100%); background-size: 220% auto; -webkit-background-clip: text; background-clip: text; color: transparent; animation: titleFlow 9s ease-in-out infinite alternate; }
@keyframes titleFlow { to { background-position: 100% center; } }
.hero__lead { max-width: 690px; margin-top: 28px; font-size: clamp(18px, 2vw, 22px); line-height: 1.62; }
.hero__actions { display: flex; align-items: center; gap: 26px; margin-top: 38px; }
.hero__metrics { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 58px; }
.hero__metrics > div { min-width: 150px; padding: 16px 20px; border-left: 1px solid rgba(0,120,167,.18); display: grid; }
.hero__metrics strong { font-size: 24px; letter-spacing: -.04em; }
.hero__metrics span { margin-top: 3px; color: var(--sea-700); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hero__visual { position: relative; min-height: 610px; display: grid; place-items: center; }
.hero-orbit { position: absolute; border: 1px solid rgba(0,120,167,.11); border-radius: 50%; animation: orbitPulse 6s ease-in-out infinite; }
.hero-orbit--one { width: 510px; height: 510px; }
.hero-orbit--two { width: 650px; height: 650px; animation-delay: -2.4s; }
@keyframes orbitPulse { 50% { transform: scale(1.05); opacity: .4; } }
.depth-card { position: relative; z-index: 2; width: min(100%, 520px); min-height: 590px; border-radius: 48px; padding: 27px; overflow: hidden; transform: rotate(2.4deg); transition: transform .8s cubic-bezier(.16,1,.3,1); }
.depth-card:hover { transform: rotate(0deg) translateY(-8px); }
.depth-card::before { content: ""; position: absolute; inset: -50% -30%; background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.72) 48%, transparent 58%); animation: glassFlow 7s linear infinite; }
@keyframes glassFlow { to { transform: translateX(60%); } }
.depth-card__label { position: relative; z-index: 1; display: block; color: var(--sea-700); font-size: 10px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.sonar { position: relative; z-index: 1; height: 430px; margin-top: 20px; border-radius: 38px; overflow: hidden; background: radial-gradient(circle, rgba(64,209,237,.45), rgba(3,68,97,.94) 72%); box-shadow: inset 0 0 70px rgba(0,0,0,.18); }
.sonar::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent 0 24px, rgba(255,255,255,.045) 25px), repeating-linear-gradient(90deg, transparent 0 24px, rgba(255,255,255,.045) 25px); }
.sonar__ring { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(203,247,255,.34); border-radius: 50%; transform: translate(-50%,-50%); }
.sonar__ring--1 { width: 130px; height: 130px; }
.sonar__ring--2 { width: 250px; height: 250px; }
.sonar__ring--3 { width: 390px; height: 390px; }
.sonar__sweep { position: absolute; top: 50%; left: 50%; width: 48%; height: 48%; transform-origin: 0 0; background: conic-gradient(from 0deg, rgba(97,230,250,.65), transparent 32deg); animation: sonarSweep 5s linear infinite; }
@keyframes sonarSweep { to { transform: rotate(360deg); } }
.rov-unit { position: absolute; top: 49%; left: 50%; width: 120px; height: 95px; transform: translate(-50%,-50%); filter: drop-shadow(0 15px 15px rgba(0,0,0,.22)); animation: rovFloat 4s ease-in-out infinite; }
@keyframes rovFloat { 50% { transform: translate(-50%,-58%); } }
.rov-unit__body { position: absolute; inset: 22px 8px 12px; border-radius: 18px; background: var(--ink); border: 2px solid rgba(157,241,255,.85); }
.rov-unit__light { position: absolute; left: 45px; top: 0; width: 30px; height: 30px; border-radius: 50%; background: white; box-shadow: 0 0 35px 12px rgba(167,246,255,.78); }
.rov-unit__arm { position: absolute; right: -25px; bottom: 12px; width: 50px; height: 9px; border-radius: 8px; background: #aaf2ff; transform: rotate(29deg); }
.depth-card__footer { position: relative; z-index: 1; margin-top: 22px; display: flex; align-items: center; justify-content: space-between; }
.depth-card__footer span { display: flex; align-items: center; gap: 9px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.depth-card__footer i { width: 8px; height: 8px; border-radius: 50%; background: #25ca8b; box-shadow: 0 0 0 6px rgba(37,202,139,.12); }
.depth-card__footer strong { font-size: 20px; }
.floating-chip { position: absolute; z-index: 3; display: flex; align-items: center; gap: 9px; padding: 13px 17px; border-radius: 999px; color: var(--sea-800); font-size: 11px; font-weight: 800; animation: chipFloat 5s ease-in-out infinite; }
.floating-chip--top { top: 115px; right: -22px; }
.floating-chip--bottom { bottom: 85px; left: -30px; animation-delay: -2.1s; }
.floating-chip span { color: var(--sea-500); }
@keyframes chipFloat { 50% { transform: translateY(-12px); } }
.hero-wave { position: absolute; left: -5%; right: -5%; bottom: -75px; height: 150px; border-radius: 50% 50% 0 0; background: white; transform: rotate(-1deg); }

.section-heading--split { display: grid; grid-template-columns: 1.05fr .75fr; gap: 70px; align-items: end; margin-bottom: 54px; }
.section-heading--split h2 { max-width: 780px; margin-top: 18px; }
.section-heading--split p { max-width: 560px; font-size: 18px; }
.section-heading--center { max-width: 850px; margin: 0 auto 58px; text-align: center; }
.section-heading--center h2 { margin-top: 18px; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.feature-card { min-height: 390px; padding: 30px; border-radius: 32px; display: flex; flex-direction: column; transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition); }
.feature-card:hover { transform: translateY(-10px); box-shadow: 0 28px 65px rgba(6,61,86,.15); border-color: rgba(0,151,199,.25); }
.feature-card__number { position: absolute; top: 26px; right: 28px; color: rgba(7,61,85,.26); font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.icon-disc { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 22px; background: linear-gradient(145deg, var(--sea-50), white); color: var(--sea-600); font-size: 26px; box-shadow: inset 0 0 0 1px rgba(0,120,167,.1); }
.feature-card h3 { margin-top: 48px; transition: color var(--transition), transform var(--transition); }
.feature-card:hover h3 { color: var(--sea-600); transform: translateX(4px); }
.feature-card p { margin-top: 18px; }
.feature-card a { margin-top: auto; display: inline-flex; align-items: center; justify-content: space-between; padding-top: 26px; border-top: 1px solid var(--line); color: var(--sea-700); font-size: 12px; font-weight: 900; letter-spacing: .03em; }
.feature-card a span { transition: transform var(--transition); }
.feature-card a:hover span { transform: translate(4px,-4px); }

.services-section { background: linear-gradient(180deg, white, var(--off-white) 48%, white); }
.service-row { display: grid; grid-template-columns: 1fr .82fr; align-items: center; gap: clamp(60px, 8vw, 120px); }
.service-row + .service-row { margin-top: clamp(110px, 14vw, 190px); }
.service-row--reverse { grid-template-columns: .82fr 1fr; }
.service-row--reverse .service-visual { order: 2; }
.service-copy h2 { margin-top: 20px; font-size: clamp(38px, 4.7vw, 62px); }
.service-copy > p { margin-top: 25px; font-size: 18px; }
.check-list { list-style: none; margin: 28px 0 34px; padding: 0; display: grid; gap: 13px; }
.check-list li { position: relative; padding-left: 32px; color: var(--ink-soft); font-weight: 650; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: 1px; width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--sea-500); font-size: 11px; }
.service-visual { position: relative; min-height: 620px; display: grid; place-items: center; }
.mesh { position: absolute; width: 88%; aspect-ratio: 1; border-radius: 50%; opacity: .52; background-image: linear-gradient(rgba(0,120,167,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(0,120,167,.1) 1px, transparent 1px); background-size: 28px 28px; mask-image: radial-gradient(circle, black, transparent 72%); -webkit-mask-image: radial-gradient(circle, black, transparent 72%); animation: meshDrift 18s linear infinite; }
@keyframes meshDrift { to { background-position: 56px 28px; } }
.inspection-frame { position: relative; width: min(100%, 570px); border-radius: 42px; padding: 18px; transform: rotate(-2deg); transition: transform .7s cubic-bezier(.16,1,.3,1); }
.service-row--reverse .inspection-frame { transform: rotate(2deg); }
.inspection-frame:hover, .service-row--reverse .inspection-frame:hover { transform: rotate(0deg) translateY(-8px); }
.inspection-frame svg { width: 100%; border-radius: 30px; overflow: hidden; background: linear-gradient(180deg, #0b7da2, #043d5a); }
.inspection-frame__tag { position: absolute; z-index: 2; top: 34px; left: 34px; padding: 9px 13px; border-radius: 999px; color: var(--ink); background: rgba(255,255,255,.82); backdrop-filter: blur(12px); font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.trust-section { background: var(--ink); color: white; overflow: hidden; }
.trust-section::before { content: ""; position: absolute; inset: -30% -10%; background: radial-gradient(circle at 75% 35%, rgba(96,221,245,.20), transparent 28%), radial-gradient(circle at 20% 85%, rgba(0,151,199,.16), transparent 35%); animation: darkFlow 14s ease-in-out infinite alternate; }
@keyframes darkFlow { to { transform: translate3d(-4%, 3%, 0) scale(1.08); } }
.trust-grid { position: relative; display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: center; }
.trust-copy .eyebrow { color: var(--sea-300); }
.trust-copy h2 { margin-top: 22px; }
.trust-copy p { margin: 27px 0 34px; color: rgba(234,250,253,.72); font-size: 18px; }
.trust-copy .text-link { color: white; }
.trust-stack { display: grid; gap: 16px; }
.trust-card { min-height: 160px; padding: 30px; border-radius: 28px; display: grid; grid-template-columns: 50px 170px 1fr; gap: 20px; align-items: center; color: white; background: linear-gradient(135deg, rgba(255,255,255,.11), rgba(255,255,255,.04)); border-color: rgba(255,255,255,.13); box-shadow: none; transition: transform var(--transition), background var(--transition); }
.trust-card:hover { transform: translateX(-10px); background: linear-gradient(135deg, rgba(96,221,245,.18), rgba(255,255,255,.05)); }
.trust-card span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.17); color: var(--sea-300); font-size: 11px; font-weight: 900; }
.trust-card h3 { font-size: 24px; }
.trust-card p { color: rgba(234,250,253,.68); }

.assets-section { background: linear-gradient(180deg, #f8fdff, white); }
.asset-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.asset-card { position: relative; min-height: 330px; padding: 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; transition: background var(--transition), transform var(--transition); }
.asset-card::after { content: ""; position: absolute; width: 180px; height: 180px; right: -90px; bottom: -100px; border-radius: 50%; background: var(--sea-100); filter: blur(1px); transition: transform .6s cubic-bezier(.16,1,.3,1); }
.asset-card:hover { background: white; transform: translateY(-5px); box-shadow: var(--shadow-soft); z-index: 2; }
.asset-card:hover::after { transform: scale(1.4) translate(-20px,-20px); }
.asset-card__icon { position: relative; z-index: 1; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--ink); color: white; font-size: 11px; font-weight: 900; }
.asset-card h3 { position: relative; z-index: 1; margin-top: 78px; font-size: 25px; transition: color var(--transition); }
.asset-card:hover h3 { color: var(--sea-600); }
.asset-card p { position: relative; z-index: 1; margin-top: 17px; }

.site-footer { padding: 70px 0 26px; background: var(--off-white); }
.footer-cta { position: relative; overflow: hidden; padding: clamp(34px, 6vw, 64px); border-radius: 38px; display: flex; align-items: center; justify-content: space-between; gap: 40px; color: white; background: linear-gradient(125deg, var(--sea-600), var(--sea-800)); border-color: rgba(255,255,255,.2); }
.footer-cta::before { content: ""; position: absolute; inset: -80%; background: conic-gradient(from 30deg, transparent, rgba(255,255,255,.15), transparent 35%); animation: footerFlow 11s linear infinite; }
@keyframes footerFlow { to { transform: rotate(360deg); } }
.footer-cta > * { position: relative; z-index: 1; }
.footer-cta .eyebrow { color: var(--sea-100); }
.footer-cta h2 { max-width: 760px; margin-top: 14px; font-size: clamp(32px, 4vw, 55px); }
.footer-grid { display: grid; grid-template-columns: 1.4fr .6fr .8fr; gap: 60px; padding: 70px 10px 45px; }
.brand--footer { align-items: flex-start; width: min(280px, 100%); max-width: 280px; }
.brand--footer .brand__text strong { font-size: 17px; }
.brand--footer .brand__text small { font-size: 11px; line-height: 1.6; text-transform: none; letter-spacing: 0; color: var(--ink-soft); }
.footer-nav h3, .footer-contact h3 { margin-bottom: 18px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.footer-menu, .footer-contact { display: grid; gap: 10px; }
.footer-menu a, .footer-contact a { color: var(--ink-soft); font-size: 14px; font-weight: 650; transition: color var(--transition), transform var(--transition); }
.footer-menu a:hover, .footer-contact a:hover { color: var(--sea-600); transform: translateX(4px); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 24px 10px 0; border-top: 1px solid var(--line); }
.footer-bottom p { font-size: 11px; letter-spacing: .04em; }
.svg-filters { position: absolute; width: 0; height: 0; }

.inner-hero { min-height: 760px; padding-top: 190px; display: flex; align-items: center; background: linear-gradient(180deg, #f8fdff, var(--off-white)); }
.inner-hero__grid { display: grid; grid-template-columns: 1.05fr .75fr; gap: 80px; align-items: center; }
.inner-hero__content h1 { max-width: 820px; margin-top: 24px; font-size: clamp(50px, 6.6vw, 88px); }
.inner-hero__content p { max-width: 700px; margin: 28px 0 36px; font-size: 20px; }
.inner-hero__visual { min-height: 480px; display: grid; place-items: center; }
.about-depth { position: relative; width: 100%; aspect-ratio: 1; max-width: 480px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 45%, rgba(96,221,245,.4), rgba(255,255,255,.65) 45%, rgba(255,255,255,.38)); }
.about-depth::before { content: ""; position: absolute; inset: 15%; border-radius: 50%; background: linear-gradient(145deg, var(--sea-700), var(--ink)); filter: url(#liquid-distortion); box-shadow: inset 0 0 70px rgba(96,221,245,.25); animation: liquidMorph 8s ease-in-out infinite alternate; }
@keyframes liquidMorph { 50% { border-radius: 42% 58% 48% 52% / 57% 43% 57% 43%; transform: rotate(8deg) scale(.95); } }
.about-depth__rings { position: absolute; inset: 0; display: grid; place-items: center; }
.about-depth__rings span { position: absolute; border: 1px solid rgba(0,120,167,.16); border-radius: 50%; animation: ringPulse 4.5s ease-in-out infinite; }
.about-depth__rings span:nth-child(1) { width: 70%; height: 70%; }
.about-depth__rings span:nth-child(2) { width: 87%; height: 87%; animation-delay: -1.5s; }
.about-depth__rings span:nth-child(3) { width: 100%; height: 100%; animation-delay: -3s; }
@keyframes ringPulse { 50% { transform: scale(.93); opacity: .3; } }
.about-depth__copy { position: relative; z-index: 1; width: 58%; color: white; text-align: center; display: grid; gap: 8px; }
.about-depth__copy strong { font-size: 24px; line-height: 1.2; }
.about-depth__copy small { color: rgba(255,255,255,.72); }
.narrow-copy { max-width: 900px; }
.narrow-copy h2 { margin-top: 20px; }
.narrow-copy p { margin-top: 25px; font-size: 18px; }
.about-services { background: var(--off-white); }
.about-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.about-service { min-height: 310px; padding: 32px; border-radius: 30px; transition: transform var(--transition); }
.about-service:hover { transform: translateY(-8px); }
.about-service > span { color: var(--sea-500); font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.about-service h3 { margin-top: 86px; transition: color var(--transition); }
.about-service:hover h3 { color: var(--sea-600); }
.about-service p { margin-top: 18px; }
.why-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; align-items: start; }
.why-sticky { position: sticky; top: 140px; }
.why-sticky h2 { margin-top: 20px; }
.why-sticky p { margin-top: 25px; font-size: 18px; }
.why-list { border-top: 1px solid var(--line); }
.why-item { display: grid; grid-template-columns: 62px 1fr; gap: 22px; padding: 35px 0; border-bottom: 1px solid var(--line); transition: padding var(--transition), background var(--transition); }
.why-item:hover { padding-left: 18px; background: linear-gradient(90deg, rgba(228,250,255,.65), transparent); }
.why-item > span { color: var(--sea-500); font-size: 11px; font-weight: 900; }
.why-item h3 { font-size: 27px; }
.why-item p { margin-top: 14px; }

.contact-page { min-height: 900px; padding-top: 190px; background: radial-gradient(circle at 90% 16%, rgba(96,221,245,.22), transparent 26%), linear-gradient(180deg, #fafdff, white); }
.contact-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 80px; align-items: start; }
.contact-copy { padding-top: 34px; position: sticky; top: 130px; }
.contact-copy h1 { margin-top: 22px; font-size: clamp(50px, 6vw, 82px); }
.contact-copy > p { margin-top: 26px; font-size: 19px; }
.contact-points { margin-top: 45px; display: grid; gap: 18px; }
.contact-points > div { display: grid; grid-template-columns: 45px 1fr; gap: 16px; align-items: start; }
.contact-points > div > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--sea-50); color: var(--sea-600); font-size: 10px; font-weight: 900; }
.contact-points p { display: grid; }
.contact-points strong { color: var(--ink); font-size: 15px; }
.contact-points small { margin-top: 2px; color: var(--ink-soft); }
.contact-form-wrap { border-radius: 36px; padding: clamp(26px, 5vw, 52px); }
.contact-form { display: grid; gap: 22px; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { display: grid; gap: 9px; }
.field label { color: var(--ink); font-size: 12px; font-weight: 850; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid rgba(7,61,85,.14); border-radius: 16px; background: rgba(255,255,255,.72); color: var(--ink); padding: 15px 16px; outline: none; transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition); }
.field textarea { resize: vertical; min-height: 150px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--sea-500); box-shadow: 0 0 0 5px rgba(96,221,245,.15); transform: translateY(-1px); }
.form-note { font-size: 11px; text-align: center; }
.honeypot { position: absolute; left: -9999px; }
.form-notice { margin-bottom: 24px; padding: 15px 18px; border-radius: 15px; font-size: 14px; font-weight: 700; }
.form-notice--success { color: #05633d; background: #e1faef; border: 1px solid #a9e7cb; }
.form-notice--error { color: #8d2c2c; background: #fff0f0; border: 1px solid #f1c1c1; }
.contact-stats { padding-top: 20px; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: 32px; overflow: hidden; }
.stat-card { position: relative; padding: 40px; border-right: 1px solid var(--line); transition: background var(--transition); overflow: hidden; }
.stat-card:last-child { border-right: 0; }
.stat-card:hover { background: var(--sea-50); }
.stat-card strong { display: block; font-size: 50px; line-height: 1; letter-spacing: -.06em; }
.stat-card span { display: block; margin-top: 12px; color: var(--sea-600); font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.stat-card p { margin-top: 18px; }

.content-page, .error-page { min-height: 80vh; padding-top: 190px; background: linear-gradient(180deg, var(--off-white), white); }
.content-shell, .error-card { border-radius: 36px; padding: clamp(30px, 6vw, 70px); }
.entry-header h1 { margin-top: 18px; font-size: clamp(42px, 6vw, 76px); }
.entry-content { margin-top: 36px; }
.entry-content > * + * { margin-top: 1.2em; }
.entry-content a { color: var(--sea-600); text-decoration: underline; }
.post-card { padding: 30px 0; border-top: 1px solid var(--line); }
.post-card:first-of-type { margin-top: 30px; }
.post-card h2 { font-size: 30px; }
.error-card { max-width: 900px; margin: 0 auto; text-align: center; }
.error-code { color: var(--sea-300); font-size: clamp(90px, 18vw, 220px); line-height: .8; font-weight: 900; letter-spacing: -.09em; }
.error-card h1 { margin-top: 35px; font-size: clamp(42px, 6vw, 68px); }
.error-card p { max-width: 650px; margin: 24px auto 32px; }

.reveal { opacity: 0; transform: translateY(34px); transition: opacity .85s ease, transform .85s cubic-bezier(.16,1,.3,1); }
.reveal--delay-sm { transition-delay: .08s; }
.reveal--delay, .reveal--delay-md { transition-delay: .16s; }
.reveal--delay-lg { transition-delay: .24s; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1100px) {
    .desktop-cta { display: none; }
    .site-header__inner { grid-template-columns: minmax(0, 218px) minmax(0, 1fr); }
    .primary-nav { justify-self: end; }
    .hero__grid { grid-template-columns: 1fr .85fr; gap: 40px; }
    .hero__visual { min-height: 520px; }
    .depth-card { min-height: 520px; }
    .sonar { height: 365px; }
    .floating-chip--top { right: 0; }
    .floating-chip--bottom { left: 0; }
    .service-row, .service-row--reverse { gap: 55px; }
    .trust-grid { gap: 50px; }
    .trust-card { grid-template-columns: 48px 125px 1fr; }
    .asset-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .admin-bar .site-header { top: 66px; }
    .site-header { inset-top: 12px; }
    .site-header__inner { display: flex; justify-content: space-between; min-height: 70px; padding-left: 14px; }
    .brand { flex: 0 1 160px; width: 160px; min-width: 0; max-width: calc(100% - 68px); }
    .custom-logo, .brand__logo { max-height: 46px; }
    .brand__text small { display: none; }
    .menu-toggle { display: block; flex: 0 0 auto; }
    .primary-nav { position: fixed; top: 98px; left: 20px; right: 20px; visibility: hidden; opacity: 0; transform: translateY(-18px) scale(.97); transition: opacity var(--transition), transform var(--transition), visibility var(--transition); }
    .admin-bar .primary-nav { top: 130px; }
    .menu-open .primary-nav { visibility: visible; opacity: 1; transform: translateY(0) scale(1); }
    .primary-nav .menu { display: grid; gap: 6px; padding: 14px; border: 1px solid rgba(255,255,255,.75); border-radius: 28px; background: rgba(255,255,255,.82); box-shadow: 0 25px 70px rgba(4,44,62,.2); backdrop-filter: blur(26px) saturate(150%); }
    .primary-nav .menu a { padding: 15px 18px; }
    .hero__grid, .inner-hero__grid, .contact-grid { grid-template-columns: 1fr; }
    .section--hero { padding-top: 160px; }
    .hero__visual { min-height: 610px; }
    .section-heading--split, .trust-grid, .why-grid { grid-template-columns: 1fr; }
    .feature-grid, .about-service-grid { grid-template-columns: 1fr; }
    .feature-card { min-height: 330px; }
    .service-row, .service-row--reverse { grid-template-columns: 1fr; }
    .service-row--reverse .service-visual { order: 0; }
    .service-visual { min-height: 520px; }
    .trust-card { grid-template-columns: 50px 1fr; }
    .trust-card p { grid-column: 2; }
    .inner-hero__visual { min-height: 410px; }
    .why-sticky, .contact-copy { position: static; }
    .footer-grid { grid-template-columns: 1.2fr .6fr; }
    .footer-contact { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .container { width: min(calc(100% - 26px), var(--container)); }
    .section { padding: 82px 0; }
    .site-header { inset: 10px 0 auto; }
    .site-header__inner { border-radius: 25px; }
    .brand { flex-basis: 145px; width: 145px; }
    .brand__mark { width: 40px; height: 40px; }
    .custom-logo, .brand__logo { max-height: 42px; }
    .brand__text strong { font-size: 12px; }
    .primary-nav { top: 90px; left: 13px; right: 13px; }
    .section--hero { min-height: auto; padding-top: 138px; }
    h1 { font-size: clamp(44px, 15vw, 64px); }
    h2 { font-size: clamp(34px, 11vw, 50px); }
    .hero__lead { font-size: 17px; }
    .hero__actions { align-items: flex-start; flex-direction: column; }
    .hero__metrics { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .hero__metrics > div { min-width: 0; }
    .hero__visual { min-height: 500px; margin-top: 15px; }
    .hero-orbit--one { width: 370px; height: 370px; }
    .hero-orbit--two { width: 460px; height: 460px; }
    .depth-card { min-height: 450px; border-radius: 35px; padding: 18px; }
    .sonar { height: 330px; border-radius: 27px; }
    .floating-chip { font-size: 9px; padding: 10px 12px; }
    .floating-chip--top { top: 75px; }
    .floating-chip--bottom { bottom: 55px; }
    .section-heading--split { gap: 24px; margin-bottom: 38px; }
    .section-heading--split p { font-size: 16px; }
    .feature-card, .about-service { padding: 25px; }
    .service-visual { min-height: 390px; }
    .inspection-frame { border-radius: 30px; padding: 12px; }
    .inspection-frame svg { border-radius: 22px; }
    .trust-card { grid-template-columns: 42px 1fr; padding: 24px; }
    .asset-grid { grid-template-columns: 1fr; }
    .asset-card { min-height: 280px; }
    .footer-cta { align-items: flex-start; flex-direction: column; border-radius: 30px; }
    .footer-grid { grid-template-columns: 1fr; padding-top: 50px; }
    .footer-contact { grid-column: auto; }
    .footer-bottom { flex-direction: column; }
    .inner-hero { min-height: auto; padding-top: 145px; }
    .inner-hero__content p { font-size: 17px; }
    .about-depth { max-width: 360px; }
    .about-depth__copy strong { font-size: 19px; }
    .why-item { grid-template-columns: 42px 1fr; }
    .contact-page { padding-top: 145px; }
    .field-grid { grid-template-columns: 1fr; }
    .contact-form-wrap { border-radius: 28px; }
    .stats-grid { grid-template-columns: 1fr; }
    .stat-card { border-right: 0; border-bottom: 1px solid var(--line); }
    .stat-card:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .reveal { opacity: 1; transform: none; }
    .page-loader { display: none; }
}

/* Block-editor page compatibility (v1.1). */
.frogmen-block-page .entry-content,
.frogmen-block-content { margin: 0; }
.frogmen-block-content > * { margin-block-start: 0; margin-block-end: 0; }
.frogmen-block-content > * + * { margin-top: 0; }
.frogmen-block-content a { text-decoration: none; }
.frogmen-block-content .wp-block-shortcode { margin: 0; }
.frogmen-block-content .wp-block-group { box-sizing: border-box; }
.frogmen-block-content .wp-block-heading { margin-block: 0; }
.frogmen-block-content p { margin-block: 0; }
.frogmen-block-content ul { margin-block-start: 28px; }
.frogmen-block-content .hero__metrics h3 { font-size: 24px; letter-spacing: -.04em; }
.frogmen-block-content .hero__metrics p { margin-top: 3px; color: var(--sea-700); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.frogmen-block-content .feature-card__link { margin-top: auto; }
.frogmen-block-content .feature-card__link a { width: 100%; }
.frogmen-block-content .trust-card > p:first-child { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.17); color: var(--sea-300); font-size: 11px; font-weight: 900; }
.frogmen-block-content .about-service > p:first-child { color: var(--sea-500); font-size: 11px; font-weight: 900; letter-spacing: .15em; }
.frogmen-block-content .why-item > p:first-child { color: var(--sea-500); font-size: 11px; font-weight: 900; }
.frogmen-block-content .contact-points > .wp-block-group { display: grid; grid-template-columns: 45px 1fr; gap: 16px; align-items: start; }
.frogmen-block-content .contact-point-number { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--sea-50); color: var(--sea-600); font-size: 10px; font-weight: 900; }
.frogmen-block-content .contact-points h3 { color: var(--ink); font-size: 15px; letter-spacing: -.01em; line-height: 1.35; }
.frogmen-block-content .contact-points .wp-block-group .wp-block-group p { margin-top: 2px; color: var(--ink-soft); font-size: 13px; }
.frogmen-block-content .stat-card h3 { display: block; font-size: 50px; line-height: 1; letter-spacing: -.06em; }
.frogmen-block-content .stat-card .stat-label { display: block; margin-top: 12px; color: var(--sea-600); font-size: 10px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.frogmen-block-content .stat-card > p:last-child { margin-top: 18px; }
.frogmen-block-content .wp-block-shortcode.service-visual { display: grid; }
.frogmen-block-content .inner-hero__grid > .wp-block-shortcode { margin: 0; min-height: 480px; display: grid; place-items: center; }

@media (max-width: 900px) {
    .frogmen-block-content .inner-hero__grid > .wp-block-shortcode { min-height: 410px; }
}

.frogmen-block-content .feature-card .icon-disc { margin-top: 0; }

/* Frogmen Studio image/hover card integration (v2.1). */
.wp-block-frogmen-media-card.feature-card,
.wp-block-frogmen-media-card.about-service {
    padding: 0;
    display: block;
}
.wp-block-frogmen-media-card.feature-card .frogmen-media-card__content,
.wp-block-frogmen-media-card.about-service .frogmen-media-card__content {
    box-sizing: border-box;
}
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay h3,
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay p,
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay a,
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay h3,
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay p,
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay a {
    color: #fff;
}
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay .icon-disc {
    background: rgba(255,255,255,.88);
    color: var(--sea-700);
}
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay .feature-card__number {
    color: rgba(255,255,255,.72);
}
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay .feature-card__link a {
    border-color: rgba(255,255,255,.28);
}
.wp-block-frogmen-media-card.service-visual {
    padding: 0;
}
.wp-block-frogmen-media-card.service-visual .frogmen-media-card__content {
    min-height: inherit;
    padding: 18px;
    display: grid;
    place-items: center;
}
.wp-block-frogmen-media-card.service-visual .wp-block-shortcode {
    width: 100%;
}
.contact-hero {
    min-height: 900px;
    padding-top: 190px;
    background: radial-gradient(circle at 90% 16%, rgba(96,221,245,.22), transparent 26%), linear-gradient(180deg, #fafdff, white);
}
@media (max-width: 900px) {
    .contact-hero { padding-top: 145px; }
}
@media (max-width: 600px) {
    .wp-block-frogmen-media-card.feature-card,
    .wp-block-frogmen-media-card.about-service { min-height: 330px; }
}


/* Organized content typography and card hierarchy (v2.2.1). */
.frogmen-block-content {
    --frogmen-copy-width: 68ch;
}
.frogmen-block-content h1,
.frogmen-block-content h2,
.frogmen-block-content h3 {
    overflow-wrap: anywhere;
    text-wrap: balance;
}
.frogmen-block-content p,
.frogmen-block-content li {
    text-wrap: pretty;
}
.frogmen-block-content .hero__lead + .hero__lead {
    margin-top: 10px;
}
.frogmen-block-content .hero__actions {
    margin-top: 34px;
}
.frogmen-block-content .section-heading--center > p,
.frogmen-block-content .section-heading--split > p,
.frogmen-block-content .narrow-copy > p,
.frogmen-block-content .service-copy > p,
.frogmen-block-content .trust-copy > p,
.frogmen-block-content .why-sticky > p {
    max-width: var(--frogmen-copy-width);
}

/* The exact-copy release uses H2 headings inside the three feature cards.
   Keep them card-sized rather than inheriting the large section H2 scale. */
.frogmen-block-content .feature-grid {
    align-items: stretch;
}
.wp-block-frogmen-media-card.feature-card {
    height: 100%;
}
.wp-block-frogmen-media-card.feature-card .frogmen-media-card__content {
    min-height: 100%;
}
.frogmen-block-content .feature-card h2,
.frogmen-block-content .feature-card h3 {
    max-width: 19ch;
    margin-top: 52px;
    font-size: clamp(24px, 2.15vw, 32px);
    font-weight: 770;
    line-height: 1.14;
    letter-spacing: -.028em;
    transition: color var(--transition), transform var(--transition);
}
.frogmen-block-content .feature-card:hover h2,
.frogmen-block-content .feature-card:hover h3 {
    color: var(--sea-600);
    transform: translateX(4px);
}
.frogmen-block-content .feature-card > .frogmen-media-card__content > p:not(.feature-card__number):not(.feature-card__link),
.frogmen-block-content .feature-card .frogmen-media-card__content > p:not(.feature-card__number):not(.feature-card__link) {
    max-width: 48ch;
    margin-top: 18px;
    font-size: 15px;
    line-height: 1.72;
}
.frogmen-block-content .feature-card__link {
    width: 100%;
    margin-top: auto;
    padding-top: 26px;
}
.frogmen-block-content .feature-card__link a {
    margin-top: 0;
    line-height: 1.35;
}
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay .frogmen-media-card__content {
    justify-content: flex-end;
    background: linear-gradient(180deg, transparent 18%, rgba(2,25,38,.16) 45%, rgba(2,25,38,.74) 100%);
}
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay h2,
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay h3 {
    margin-top: 0;
    color: #fff;
}
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay:hover h2,
.wp-block-frogmen-media-card.feature-card.has-media.media-display-overlay:hover h3 {
    color: #fff;
}

/* Service rows: consistent reading width and vertical rhythm. */
.frogmen-block-content .service-copy {
    width: 100%;
    max-width: 610px;
}
.frogmen-block-content .service-copy h2 {
    max-width: 15ch;
    margin-top: 0;
    font-size: clamp(36px, 4.25vw, 58px);
    line-height: 1.08;
    letter-spacing: -.042em;
}
.frogmen-block-content .service-copy > p {
    margin-top: 24px;
    font-size: clamp(16px, 1.45vw, 18px);
    line-height: 1.78;
}
.frogmen-block-content .service-copy > p:last-child {
    margin-top: 32px;
}

/* Service list cards and About cards. */
.frogmen-block-content .asset-grid,
.frogmen-block-content .about-service-grid {
    align-items: stretch;
}
.frogmen-block-content .asset-card h3 {
    max-width: 18ch;
    font-size: clamp(23px, 2vw, 27px);
    line-height: 1.16;
    letter-spacing: -.025em;
}
.frogmen-block-content .asset-card p {
    max-width: 42ch;
    font-size: 15px;
    line-height: 1.72;
}
.wp-block-frogmen-media-card.about-service {
    height: 100%;
}
.frogmen-block-content .about-service h2,
.frogmen-block-content .about-service h3 {
    max-width: 20ch;
    margin-top: 72px;
    font-size: clamp(24px, 2.15vw, 31px);
    line-height: 1.15;
    letter-spacing: -.028em;
    transition: color var(--transition), transform var(--transition);
}
.frogmen-block-content .about-service:hover h2,
.frogmen-block-content .about-service:hover h3 {
    color: var(--sea-600);
    transform: translateX(3px);
}
.frogmen-block-content .about-service p {
    max-width: 46ch;
    margin-top: 18px;
    font-size: 15px;
    line-height: 1.72;
}
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay .frogmen-media-card__content {
    justify-content: flex-end;
    background: linear-gradient(180deg, transparent 20%, rgba(2,25,38,.18) 48%, rgba(2,25,38,.76) 100%);
}
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay h2,
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay h3 {
    margin-top: 0;
    color: #fff;
}
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay:hover h2,
.wp-block-frogmen-media-card.about-service.has-media.media-display-overlay:hover h3 {
    color: #fff;
}

/* Supporting text blocks. */
.frogmen-block-content .trust-card h3,
.frogmen-block-content .why-item h3 {
    line-height: 1.18;
    letter-spacing: -.025em;
}
.frogmen-block-content .trust-card p,
.frogmen-block-content .why-item p {
    line-height: 1.72;
}
.frogmen-block-content .contact-copy h1 {
    max-width: 11ch;
}
.frogmen-block-content .contact-copy > p {
    max-width: 44ch;
    line-height: 1.75;
}

@media (max-width: 1100px) {
    .frogmen-block-content .feature-card h2,
    .frogmen-block-content .feature-card h3 {
        font-size: clamp(23px, 2.6vw, 29px);
    }
}

@media (max-width: 900px) {
    .frogmen-block-content .feature-card h2,
    .frogmen-block-content .feature-card h3,
    .frogmen-block-content .about-service h2,
    .frogmen-block-content .about-service h3 {
        max-width: 25ch;
    }
    .frogmen-block-content .service-copy {
        max-width: 760px;
    }
    .frogmen-block-content .service-copy h2 {
        max-width: 18ch;
    }
}

@media (max-width: 640px) {
    .frogmen-block-content .hero__lead + .hero__lead {
        margin-top: 8px;
    }
    .frogmen-block-content .feature-card h2,
    .frogmen-block-content .feature-card h3 {
        margin-top: 42px;
        font-size: clamp(23px, 7.2vw, 29px);
    }
    .frogmen-block-content .feature-card > .frogmen-media-card__content > p:not(.feature-card__number):not(.feature-card__link),
    .frogmen-block-content .feature-card .frogmen-media-card__content > p:not(.feature-card__number):not(.feature-card__link),
    .frogmen-block-content .about-service p,
    .frogmen-block-content .asset-card p {
        font-size: 14.5px;
        line-height: 1.7;
    }
    .frogmen-block-content .service-copy h2 {
        font-size: clamp(34px, 10.8vw, 47px);
    }
    .frogmen-block-content .about-service h2,
    .frogmen-block-content .about-service h3 {
        margin-top: 56px;
        font-size: clamp(23px, 7.4vw, 30px);
    }
    .frogmen-block-content .asset-card h3 {
        margin-top: 60px;
    }
}

/* ================================================================
   Frogmen Fresh Water Glass — v3.0.0
   Editable Gutenberg layouts with owned Frogmen project imagery.
   ================================================================ */
:root {
    --fm-v3-navy: #031f30;
    --fm-v3-deep: #053c56;
    --fm-v3-blue: #008fbe;
    --fm-v3-cyan: #5ce1f6;
    --fm-v3-mist: #ecfbff;
    --fm-v3-glass: rgba(255,255,255,.72);
    --fm-v3-glass-border: rgba(255,255,255,.74);
    --fm-v3-shadow: 0 32px 90px rgba(2,38,56,.18);
}

.frogmen-block-content > .wp-block-group { margin-block-start: 0; }
.frogmen-block-content .fm-v3-home-hero,
.frogmen-block-content .fm-v3-about-hero,
.frogmen-block-content .fm-v3-contact-hero { overflow: hidden; }

.fm-v3-glass {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--fm-v3-glass-border);
    background:
        linear-gradient(145deg, rgba(255,255,255,.88), rgba(229,249,255,.58)),
        rgba(255,255,255,.65);
    box-shadow: var(--fm-v3-shadow);
    backdrop-filter: blur(26px) saturate(150%);
    -webkit-backdrop-filter: blur(26px) saturate(150%);
}
.fm-v3-glass::before {
    content: "";
    position: absolute;
    inset: -2px;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(380px circle at var(--mouse-x, 20%) var(--mouse-y, 10%), rgba(255,255,255,.78), transparent 38%),
        linear-gradient(110deg, transparent 15%, rgba(92,225,246,.12) 48%, transparent 72%);
    opacity: .58;
    transition: opacity .45s ease;
}
.fm-v3-glass:hover::before { opacity: .9; }
.fm-v3-glass > * { position: relative; z-index: 1; }

/* Home hero */
.fm-v3-home-hero {
    min-height: 820px;
    padding-top: clamp(150px, 13vw, 205px);
    padding-bottom: clamp(100px, 10vw, 150px);
    color: #fff;
    background:
        radial-gradient(circle at 77% 16%, rgba(92,225,246,.27), transparent 24%),
        radial-gradient(circle at 7% 90%, rgba(0,143,190,.30), transparent 31%),
        linear-gradient(135deg, #021a29 0%, #053c56 48%, #087398 100%);
}
.fm-v3-home-hero::before,
.fm-v3-about-hero::before,
.fm-v3-contact-hero::before {
    content: "";
    position: absolute;
    inset: -20% -10%;
    pointer-events: none;
    opacity: .48;
    background:
        repeating-radial-gradient(ellipse at 50% -20%, transparent 0 22px, rgba(255,255,255,.08) 24px 26px, transparent 28px 52px);
    transform: rotate(-8deg) scale(1.15);
    animation: fmWaterCaustics 16s linear infinite alternate;
}
@keyframes fmWaterCaustics {
    to { transform: translate3d(4%,3%,0) rotate(-4deg) scale(1.22); opacity: .67; }
}
.fm-v3-home-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0,.88fr) minmax(500px,1.12fr);
    gap: clamp(54px, 7vw, 110px);
    align-items: center;
}
.fm-v3-home-hero__copy { max-width: 690px; }
.fm-v3-home-hero__copy h1,
.fm-v3-about-hero__copy h1 {
    max-width: 11ch;
    color: #fff;
    font-size: clamp(52px, 6.7vw, 96px);
    line-height: .98;
    letter-spacing: -.058em;
    text-wrap: balance;
}
.fm-v3-home-hero__copy > p:not(.fm-v3-actions),
.fm-v3-about-hero__copy > p:not(:last-child) {
    max-width: 620px;
    margin-top: 22px;
    color: rgba(238,252,255,.78);
    font-size: clamp(17px, 1.45vw, 20px);
    line-height: 1.72;
}
.fm-v3-actions,
.fm-v3-about-hero__copy > p:last-child { margin-top: 34px; }
.fm-v3-home-hero .button--primary,
.fm-v3-about-hero .button--primary { color: #fff !important; }

.fm-v3-hero-gallery {
    position: relative;
    min-height: 650px;
    isolation: isolate;
}
.fm-v3-hero-gallery::before,
.fm-v3-about-collage::before {
    content: "";
    position: absolute;
    inset: 7% 4% 5% 9%;
    z-index: -1;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 46% 54% 58% 42% / 51% 37% 63% 49%;
    background: linear-gradient(135deg, rgba(255,255,255,.22), rgba(92,225,246,.08));
    box-shadow: inset 0 0 80px rgba(92,225,246,.22), 0 40px 90px rgba(0,0,0,.26);
    backdrop-filter: blur(22px);
    animation: liquidMorph 10s ease-in-out infinite alternate;
}
.fm-v3-photo-frame,
.fm-v3-feature-image,
.fm-v3-about-collage figure,
.fm-v3-contact-hero__image,
.fm-v3-why__image {
    position: relative;
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(255,255,255,.72);
    background: rgba(255,255,255,.16);
    box-shadow: 0 32px 78px rgba(0,24,38,.28);
    backdrop-filter: blur(16px);
}
.fm-v3-photo-frame img,
.fm-v3-feature-image img,
.fm-v3-about-collage img,
.fm-v3-contact-hero__image img,
.fm-v3-why__image img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 1.15s cubic-bezier(.16,1,.3,1), filter .75s ease;
}
.fm-v3-photo-frame:hover img,
.fm-v3-feature-image:hover img,
.fm-v3-about-collage figure:hover img,
.fm-v3-contact-hero__image:hover img,
.fm-v3-why__image:hover img { transform: scale(1.065); filter: saturate(1.08) contrast(1.03); }
.fm-v3-photo-frame--main {
    position: absolute; inset: 4% 13% 8% 7%;
    border-radius: 46px;
    transform: rotate(-2.5deg);
}
.fm-v3-photo-frame--float {
    position: absolute; z-index: 3; width: 48%; height: 34%; right: 0; top: 0;
    border-radius: 30px;
    transform: rotate(4deg);
}
.fm-v3-photo-frame--tall {
    position: absolute; z-index: 2; width: 33%; height: 49%; right: 1%; bottom: 0;
    border-radius: 32px;
    transform: rotate(2deg);
}

/* Image service cards */
.fm-v3-card-section { background: linear-gradient(180deg, #f5fcff, #fff); }
.fm-v3-service-cards,
.fm-v3-about-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 22px;
    align-items: stretch;
}
.fm-v3-service-card,
.fm-v3-about-service-card,
.fm-v3-asset-card {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.76);
    border-radius: 34px;
    box-shadow: 0 24px 65px rgba(3,47,68,.16);
    transition: transform .7s cubic-bezier(.16,1,.3,1), box-shadow .7s ease, border-radius .7s ease;
}
.fm-v3-service-card::after,
.fm-v3-about-service-card::after,
.fm-v3-asset-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(2,23,35,.04) 8%, rgba(2,23,35,.18) 42%, rgba(2,23,35,.92) 100%),
        radial-gradient(400px circle at var(--mouse-x,50%) var(--mouse-y,20%), rgba(92,225,246,.28), transparent 45%);
}
.fm-v3-service-card:hover,
.fm-v3-about-service-card:hover,
.fm-v3-asset-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 38px 85px rgba(3,47,68,.25);
    border-radius: 26px 42px 30px 38px;
}
.fm-v3-service-card .wp-block-cover__image-background,
.fm-v3-about-service-card .wp-block-cover__image-background,
.fm-v3-asset-card .wp-block-cover__image-background {
    transition: transform 1.1s cubic-bezier(.16,1,.3,1), filter .8s ease;
}
.fm-v3-service-card:hover .wp-block-cover__image-background,
.fm-v3-about-service-card:hover .wp-block-cover__image-background,
.fm-v3-asset-card:hover .wp-block-cover__image-background { transform: scale(1.085); filter: saturate(1.06); }
.fm-v3-service-card .wp-block-cover__inner-container,
.fm-v3-about-service-card .wp-block-cover__inner-container,
.fm-v3-asset-card .wp-block-cover__inner-container {
    position: relative; z-index: 2; height: 100%; padding: 32px;
    display: flex; flex-direction: column; justify-content: flex-end;
}
.fm-v3-service-card h2,
.fm-v3-about-service-card h2 {
    max-width: 18ch;
    color: #fff;
    font-size: clamp(27px, 2.25vw, 35px);
    line-height: 1.08;
    letter-spacing: -.035em;
}
.fm-v3-service-card p,
.fm-v3-about-service-card p,
.fm-v3-asset-card p { color: rgba(244,253,255,.78); line-height: 1.67; }
.fm-v3-service-card h2 + p,
.fm-v3-about-service-card h2 + p { margin-top: 18px; }
.fm-v3-card-link,
.fm-v3-about-service-card p:last-child { margin-top: 24px; }
.fm-v3-card-link a,
.fm-v3-about-service-card p:last-child a {
    display: inline-flex; align-items: center; gap: 12px;
    color: #fff; font-size: 12px; font-weight: 850; letter-spacing: .02em;
}
.fm-v3-card-link a span { transition: transform .35s ease; }
.fm-v3-card-link a:hover span { transform: translate(4px,-4px); }

/* Alternating feature rows */
.fm-v3-feature-stack {
    background:
        radial-gradient(circle at 10% 15%, rgba(92,225,246,.12), transparent 25%),
        linear-gradient(180deg,#fff 0%,#effbff 55%,#fff 100%);
}
.fm-v3-feature-row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,1.08fr) minmax(400px,.92fr);
    gap: clamp(38px, 6vw, 90px);
    align-items: center;
}
.fm-v3-feature-row + .fm-v3-feature-row { margin-top: clamp(95px, 12vw, 170px); }
.fm-v3-feature-row--reverse .fm-v3-feature-image { order: 2; }
.fm-v3-feature-image {
    min-height: 610px;
    border-radius: 46px;
    transform: rotate(-1.5deg);
}
.fm-v3-feature-row--reverse .fm-v3-feature-image { transform: rotate(1.5deg); }
.fm-v3-feature-copy {
    margin-left: -120px;
    padding: clamp(34px, 5vw, 62px);
    border-radius: 38px;
    z-index: 2;
}
.fm-v3-feature-row--reverse .fm-v3-feature-copy { order: 1; margin-left: 0; margin-right: -120px; }
.fm-v3-feature-copy h2 {
    max-width: 13ch;
    color: var(--fm-v3-navy);
    font-size: clamp(38px, 4.35vw, 64px);
    line-height: 1.02;
    letter-spacing: -.048em;
}
.fm-v3-feature-copy > p { margin-top: 25px; font-size: 17px; line-height: 1.76; }
.fm-v3-feature-copy > p:last-child { margin-top: 32px; }

/* Services list */
.fm-v3-service-list-section {
    color: #fff;
    overflow: hidden;
    background:
        radial-gradient(circle at 84% 16%, rgba(92,225,246,.23), transparent 30%),
        linear-gradient(135deg,#021c2b,#064b68 64%,#08789e);
}
.fm-v3-service-list-section::before {
    content:""; position:absolute; inset:-40%; opacity:.32;
    background: repeating-radial-gradient(circle at 50% 50%, transparent 0 28px, rgba(255,255,255,.09) 29px 31px, transparent 33px 62px);
    animation: fmWaterCaustics 18s linear infinite alternate-reverse;
}
.fm-v3-service-list-grid {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(45px,8vw,120px); align-items: center;
}
.fm-v3-service-list-copy h2 { max-width: 11ch; color:#fff; font-size:clamp(42px,5.3vw,76px); }
.fm-v3-service-list-copy p { margin-top:24px; color:rgba(239,253,255,.76); font-size:18px; }
.fm-v3-service-list {
    list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;
}
.fm-v3-service-list li {
    position:relative; min-height:145px; padding:30px; display:flex; align-items:flex-end;
    border:1px solid rgba(255,255,255,.16); border-radius:28px;
    color:#fff; background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
    backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
    font-size:clamp(20px,2vw,26px); font-weight:800; line-height:1.15;
    transition:transform .55s cubic-bezier(.16,1,.3,1), background .45s ease;
}
.fm-v3-service-list li::before { content:""; position:absolute; top:25px; left:28px; width:36px; height:2px; background:var(--fm-v3-cyan); box-shadow:0 0 22px var(--fm-v3-cyan); }
.fm-v3-service-list li:hover { transform:translateY(-8px) rotate(-.5deg); background:linear-gradient(145deg,rgba(92,225,246,.22),rgba(255,255,255,.07)); }

/* Assets */
.fm-v3-assets { background:linear-gradient(180deg,#f7fdff,#fff); }
.fm-v3-section-heading { max-width:900px; margin:0 auto 58px; text-align:center; }
.fm-v3-section-heading h2 { font-size:clamp(44px,5.5vw,78px); }
.fm-v3-section-heading p { margin-top:20px; font-size:18px; }
.fm-v3-asset-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.fm-v3-asset-card h3 { max-width:19ch; color:#fff; font-size:clamp(30px,3vw,43px); line-height:1.08; letter-spacing:-.04em; }
.fm-v3-asset-card h3 + p { margin-top:18px; max-width:58ch; }
.fm-v3-final-heading { max-width:900px; margin:clamp(80px,10vw,130px) auto 0; font-size:clamp(40px,5vw,70px); line-height:1.05; }

/* About */
.fm-v3-about-hero {
    min-height:850px; padding-top:clamp(160px,13vw,205px); color:#fff;
    background:
        radial-gradient(circle at 82% 16%,rgba(92,225,246,.25),transparent 25%),
        linear-gradient(135deg,#021b2a,#064a67 70%,#0a7798);
}
.fm-v3-about-hero__grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr .86fr; gap:clamp(55px,8vw,125px); align-items:center; }
.fm-v3-about-collage { position:relative; min-height:610px; }
.fm-v3-about-collage__main { position:absolute; inset:0 8% 5% 0; border-radius:44px; transform:rotate(-2deg); }
.fm-v3-about-collage__small { position:absolute; z-index:2; width:52%; height:40%; right:0; bottom:0; border-radius:28px; transform:rotate(3deg); }
.fm-v3-about-services { background:linear-gradient(180deg,#effbff,#fff); }
.fm-v3-why { background:linear-gradient(180deg,#fff,#effbff); }
.fm-v3-why__grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(48px,7vw,105px); align-items:start; }
.fm-v3-why__intro { position:sticky; top:135px; }
.fm-v3-why__intro h2 { font-size:clamp(46px,5vw,74px); }
.fm-v3-why__intro > p { margin-top:22px; font-size:18px; }
.fm-v3-why__image { margin-top:36px; height:420px; border-radius:36px; }
.fm-v3-why__cards { display:grid; gap:18px; }
.fm-v3-why-card { padding:clamp(30px,4vw,48px); border-radius:32px; transition:transform .55s cubic-bezier(.16,1,.3,1); }
.fm-v3-why-card:hover { transform:translateX(-9px); }
.fm-v3-why-card h3 { max-width:23ch; font-size:clamp(27px,2.7vw,38px); line-height:1.1; }
.fm-v3-why-card p { margin-top:18px; line-height:1.75; }

/* Contact */
.fm-v3-contact-hero {
    min-height:610px; padding-top:clamp(160px,13vw,205px); color:#fff;
    background:linear-gradient(135deg,#021b2a,#06536f 70%,#0a82a7);
}
.fm-v3-contact-hero__grid { position:relative;z-index:1;display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center; }
.fm-v3-contact-hero__copy h1 { color:#fff; font-size:clamp(65px,9vw,126px); }
.fm-v3-contact-hero .eyebrow { color:var(--fm-v3-cyan); }
.fm-v3-contact-hero__image { height:400px; border-radius:44px; transform:rotate(1.5deg); }
.fm-v3-contact-main { background:linear-gradient(180deg,#f0fbff,#fff); }
.fm-v3-contact-grid { display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:start; }
.fm-v3-contact-form { padding:clamp(30px,5vw,58px);border-radius:38px; }
.fm-v3-contact-side { display:grid; gap:18px; }
.fm-v3-stat-card { min-height:210px;padding:32px;border-radius:30px;transition:transform .45s ease; }
.fm-v3-stat-card:hover { transform:translateX(-8px); }
.fm-v3-stat-card h2 { color:var(--fm-v3-blue);font-size:clamp(48px,5vw,70px); }
.fm-v3-stat-label { margin-top:8px;color:var(--fm-v3-deep);font-size:11px;font-weight:900;letter-spacing:.14em; }
.fm-v3-stat-card p:last-child { margin-top:18px;line-height:1.65; }

/* Footer simplification and glass polish */
.site-footer { background:linear-gradient(180deg,#f4fbfd,#e7f7fb); }
.footer-cta { border-radius:34px; }
.site-header__inner { box-shadow:0 14px 40px rgba(3,47,68,.10); }
.site-header.is-scrolled .site-header__inner { background:rgba(255,255,255,.78); }

/* Editable WordPress image blocks keep their replacement controls and animate on front end. */
.fm-v3-photo-frame .components-placeholder,
.fm-v3-feature-image .components-placeholder { min-height:260px; }

@media (max-width: 1100px) {
    .fm-v3-home-hero__grid { grid-template-columns:1fr 1fr; gap:45px; }
    .fm-v3-hero-gallery { min-height:570px; }
    .fm-v3-service-cards,.fm-v3-about-service-grid { grid-template-columns:1fr; }
    .fm-v3-service-card,.fm-v3-about-service-card { min-height:500px !important; }
    .fm-v3-feature-row { grid-template-columns:1fr 1fr; gap:0; }
    .fm-v3-feature-copy { margin-left:-70px; }
    .fm-v3-feature-row--reverse .fm-v3-feature-copy { margin-right:-70px; }
}
@media (max-width: 900px) {
    .fm-v3-home-hero,.fm-v3-about-hero { min-height:auto; }
    .fm-v3-home-hero__grid,.fm-v3-about-hero__grid,.fm-v3-contact-hero__grid,
    .fm-v3-service-list-grid,.fm-v3-why__grid,.fm-v3-contact-grid { grid-template-columns:1fr; }
    .fm-v3-home-hero__copy h1,.fm-v3-about-hero__copy h1 { max-width:12ch; }
    .fm-v3-hero-gallery,.fm-v3-about-collage { min-height:620px; }
    .fm-v3-feature-row,.fm-v3-feature-row--reverse { grid-template-columns:1fr; gap:0; }
    .fm-v3-feature-row--reverse .fm-v3-feature-image { order:initial; }
    .fm-v3-feature-image { min-height:520px; transform:none !important; }
    .fm-v3-feature-copy,.fm-v3-feature-row--reverse .fm-v3-feature-copy { order:initial;margin:-80px 26px 0;padding:40px;border-radius:32px; }
    .fm-v3-why__intro { position:relative;top:auto; }
    .fm-v3-why__image { height:500px; }
    .fm-v3-asset-grid { grid-template-columns:1fr; }
    .fm-v3-contact-hero__image { height:430px; }
}
@media (max-width: 640px) {
    .fm-v3-home-hero,.fm-v3-about-hero,.fm-v3-contact-hero { padding-top:135px; }
    .fm-v3-home-hero__copy h1,.fm-v3-about-hero__copy h1 { font-size:clamp(44px,13.5vw,66px); }
    .fm-v3-hero-gallery { min-height:510px; }
    .fm-v3-photo-frame--main { inset:6% 7% 12% 0;border-radius:30px; }
    .fm-v3-photo-frame--float { width:52%;height:29%;border-radius:22px; }
    .fm-v3-photo-frame--tall { width:38%;height:40%;border-radius:22px; }
    .fm-v3-service-card .wp-block-cover__inner-container,
    .fm-v3-about-service-card .wp-block-cover__inner-container,
    .fm-v3-asset-card .wp-block-cover__inner-container { padding:25px; }
    .fm-v3-service-card h2,.fm-v3-about-service-card h2 { font-size:clamp(27px,8vw,34px); }
    .fm-v3-feature-image { min-height:410px; border-radius:30px; }
    .fm-v3-feature-copy,.fm-v3-feature-row--reverse .fm-v3-feature-copy { margin:-56px 12px 0;padding:28px;border-radius:26px; }
    .fm-v3-feature-copy h2 { font-size:clamp(34px,10vw,48px); }
    .fm-v3-service-list { grid-template-columns:1fr; }
    .fm-v3-service-list li { min-height:120px; }
    .fm-v3-about-collage { min-height:510px; }
    .fm-v3-about-collage__main { inset:0 2% 8% 0;border-radius:30px; }
    .fm-v3-about-collage__small { width:58%;height:33%;border-radius:22px; }
    .fm-v3-why__image,.fm-v3-contact-hero__image { height:350px;border-radius:28px; }
    .fm-v3-stat-card { min-height:190px; }
}
@media (prefers-reduced-motion: reduce) {
    .fm-v3-home-hero::before,.fm-v3-about-hero::before,.fm-v3-contact-hero::before,
    .fm-v3-service-list-section::before { animation:none; }
    .fm-v3-photo-frame img,.fm-v3-feature-image img,.fm-v3-service-card .wp-block-cover__image-background,
    .fm-v3-about-service-card .wp-block-cover__image-background,.fm-v3-asset-card .wp-block-cover__image-background { transition:none; }
}
.footer-grid--minimal { display:grid; grid-template-columns:minmax(220px,1fr) auto auto; gap:40px; align-items:center; padding:12px 0 22px; }
.footer-grid--minimal .footer-menu { display:flex; flex-wrap:wrap; justify-content:center; gap:18px 28px; }
.footer-grid--minimal .footer-contact { display:block; }
.footer-grid--minimal .footer-contact a { color:var(--ink); }
@media (max-width:760px) { .footer-grid--minimal { grid-template-columns:1fr; text-align:center; } .footer-grid--minimal .brand--footer { justify-content:center; } .footer-grid--minimal .footer-menu { justify-content:center; } }
