@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&display=swap');

:root{
    --home-bg: #f5efe6;
    --home-surface: rgba(255,255,255,.78);
    --home-card: #ffffff;
    --home-card-strong: #102542;
    --home-ink: #102542;
    --home-muted: #5f7081;
    --home-line: rgba(16,37,66,.12);
    --home-accent: #d08a36;
    --home-accent-strong: #a45c17;
    --home-accent-soft: rgba(208,138,54,.14);
    --home-blue-soft: rgba(24,168,232,.12);
    --home-shadow: 0 24px 60px rgba(16,37,66,.12);
    --home-shadow-soft: 0 18px 40px rgba(16,37,66,.08);
}

html{
    scroll-behavior:smooth;
    scroll-padding-top:6.5rem;
}

body.home-body{
    min-height:100%;
    color:var(--home-ink);
    background:
        radial-gradient(circle at top left, rgba(208,138,54,.18), transparent 34%),
        radial-gradient(circle at top right, rgba(24,168,232,.18), transparent 30%),
        linear-gradient(180deg, #fcf8f2 0%, #f5efe6 38%, #f7f2eb 100%);
}

body.home-body.lightbox-open{
    overflow:hidden;
}

.home-body a{
    color:inherit;
}

.skip-link{
    position:fixed;
    left:1rem;
    top:1rem;
    z-index:999;
    padding:.7rem 1rem;
    border-radius:999px;
    background:var(--home-card-strong);
    color:var(--light-1);
    transform:translateY(-140%);
    transition:transform .2s ease;
}

.skip-link:focus{
    transform:translateY(0);
}

.sr-only{
    width:1px;
    height:1px;
    position:absolute;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
}

.home-body h1,
.home-body h2,
.home-body h3,
.home-body strong,
.home-body .floating-whatsapp strong{
    font-family:"Space Grotesk", "Poppins", sans-serif;
}

.home-page section{
    scroll-margin-top:6rem;
}

.brand:focus-visible,
.site-nav a:focus-visible,
.nav-toggle:focus-visible,
.btn:focus-visible,
.gallery-link:focus-visible,
.gallery-lightbox-close:focus-visible,
.gallery-lightbox-nav:focus-visible,
.floating-whatsapp:focus-visible,
.footer-inner a:focus-visible{
    outline:3px solid rgba(208,138,54,.42);
    outline-offset:4px;
}

.site-shell{
    min-height:100%;
    position:relative;
    overflow:hidden;
}

.site-shell::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    opacity:.3;
    background-image:
        linear-gradient(rgba(16,37,66,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16,37,66,.04) 1px, transparent 1px);
    background-size:42px 42px;
    mask-image:linear-gradient(180deg, rgba(0,0,0,.45), transparent 88%);
}

.site-header{
    --header-pad-x: 1.05rem;
    position:sticky;
    top:0;
    z-index:980;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1rem 0;
    transition:padding .25s ease;
}

.site-header.is-scrolled{
    padding-top:.55rem;
}

.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:calc(92% - (var(--header-pad-x) * 2));
    max-width:calc(var(--container-lg) - (var(--header-pad-x) * 2));
    margin:0 auto;
    padding:.95rem var(--header-pad-x);
    border-radius:999px;
    background:rgba(255,255,255,.68);
    border:1px solid rgba(255,255,255,.54);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    box-shadow:0 16px 36px rgba(16,37,66,.09);
}

.site-header.is-scrolled .header-inner{
    background:rgba(255,255,255,.9);
}

.brand{
    display:flex;
    align-items:center;
    gap:0;
    min-width:0;
    width:clamp(6.75rem, 11vw, 7.5rem);
    flex:0 1 auto;
}

.brand-logo{
    width:100%;
    height:auto;
    display:block;
}

.site-nav{
    display:flex;
    align-items:center;
    gap:1.3rem;
}

.site-nav a{
    font-size:.68rem;
    color:var(--home-ink);
    position:relative;
    opacity:.88;
    transition:opacity .25s ease, transform .25s ease;
}

.site-nav a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-.2rem;
    width:100%;
    height:2px;
    border-radius:999px;
    background:linear-gradient(90deg, var(--home-accent), #efbd5f);
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .25s ease;
}

.site-nav a:hover{
    opacity:1;
    transform:translateY(-1px);
}

.site-nav a:hover::after{
    transform:scaleX(1);
}

.site-nav .nav-cta{
    padding:.75rem 1.15rem;
    border-radius:999px;
    background:linear-gradient(135deg, var(--home-card-strong) 0%, #1f4e7a 100%);
    color:var(--light-1);
    opacity:1;
    box-shadow:0 18px 30px rgba(16,37,66,.18);
}

.site-nav .nav-cta::after{
    display:none;
}

.nav-toggle{
    display:none;
    width:3rem;
    height:3rem;
    border:none;
    border-radius:50%;
    background:rgba(16,37,66,.06);
    cursor:pointer;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    flex-shrink:0;
}

.nav-toggle span{
    width:1.15rem;
    height:2px;
    border-radius:999px;
    background:var(--home-ink);
    transition:transform .25s ease, opacity .25s ease;
}

.hero-section{
    padding:3.3rem 0 2.8rem;
    background:linear-gradient(180deg, rgba(252,248,242,.98) 0%, rgba(245,239,230,.95) 100%);
}

.hero-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);
    align-items:flex-start;
    gap:2.5rem;
}

.hero-copy{
    max-width:34rem;
    padding-top:.45rem;
}

.eyebrow{
    display:inline-block;
    max-width:100%;
    padding:.58rem 1rem;
    border-radius:999px;
    background:var(--home-accent-soft);
    color:var(--home-accent-strong);
    font-size:.62rem;
    font-weight:600;
    line-height:1.45;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.hero-copy h1{
    margin-top:1rem;
    max-width:12ch;
    color:var(--home-ink);
    font-size:clamp(2.2rem, 5.8vw, 4.1rem);
    line-height:.94;
    letter-spacing:-.06em;
}

.hero-copy p{
    margin-top:1rem;
    max-width:28rem;
    color:var(--home-muted);
    font-size:.8rem;
    line-height:1.85;
}

.hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
    margin-top:1.85rem;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:.95rem 1.35rem;
    border-radius:999px;
    font-size:.72rem;
    font-weight:600;
    line-height:1.2;
    transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.btn:hover{
    transform:translateY(-2px);
}

.btn-primary{
    background:linear-gradient(135deg, var(--home-card-strong) 0%, #1f4e7a 100%);
    color:var(--light-1);
    box-shadow:0 18px 34px rgba(16,37,66,.18);
}

.btn-secondary{
    background:rgba(255,255,255,.82);
    color:var(--home-ink);
    border:1px solid var(--home-line);
}

.hero-actions .btn-primary{
    background:rgba(255,255,255,.82);
    color:var(--home-ink);
    border:1px solid var(--home-line);
    box-shadow:var(--home-shadow-soft);
}

.hero-points{
    display:flex;
    flex-wrap:wrap;
    gap:.65rem;
    padding:0;
    list-style:none;
    margin-top:1.25rem;
}

.hero-points li{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.62rem .92rem;
    border-radius:999px;
    background:rgba(255,255,255,.76);
    border:1px solid rgba(16,37,66,.08);
    box-shadow:var(--home-shadow-soft);
    font-size:.64rem;
    color:var(--home-ink);
}

.hero-points li::before{
    content:"";
    width:.45rem;
    height:.45rem;
    border-radius:50%;
    background:var(--home-accent);
}

.hero-visual{
    position:relative;
    padding:0 0 0 1.15rem;
}

.hero-panel{
    position:relative;
    padding:1.45rem;
    border-radius:2.1rem;
    background:var(--home-surface);
    border:1px solid rgba(255,255,255,.58);
    box-shadow:var(--home-shadow);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.hero-panel::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:
        radial-gradient(circle at top left, rgba(24,168,232,.12), transparent 32%),
        radial-gradient(circle at bottom right, rgba(208,138,54,.14), transparent 28%);
    pointer-events:none;
}

.hero-badge{
    width:fit-content;
    position:relative;
    z-index:1;
    padding:.56rem .88rem;
    border-radius:999px;
    background:rgba(16,37,66,.94);
    color:var(--light-1);
    font-size:.62rem;
    box-shadow:0 12px 20px rgba(16,37,66,.14);
}

.hero-illustration{
    position:relative;
    z-index:1;
    margin-top:1rem;
    padding:1rem;
    border-radius:1.6rem;
    background:linear-gradient(180deg, #ffffff 0%, #f1ebe2 100%);
    overflow:hidden;
}

.hero-illustration img{
    width:100%;
    height:auto;
    display:block;
    border-radius:1rem;
}

.hero-panel-grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:1rem;
    margin-top:1rem;
}

.mini-card{
    padding:1rem;
    border-radius:1.2rem;
    background:rgba(255,255,255,.9);
    border:1px solid rgba(16,37,66,.08);
    box-shadow:var(--home-shadow-soft);
}

.mini-card strong{
    display:block;
    font-size:.9rem;
    line-height:1.15;
    color:var(--home-ink);
}

.mini-card p{
    margin-top:.4rem;
    font-size:.67rem;
    line-height:1.75;
    color:var(--home-muted);
}

.proof-strip{
    padding:0 0 3rem;
}

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

.proof-card{
    padding:1.35rem;
    border-radius:1.5rem;
    background:rgba(255,255,255,.84);
    border:1px solid var(--home-line);
    box-shadow:var(--home-shadow-soft);
}

.proof-card span{
    width:2.2rem;
    aspect-ratio:1;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--home-blue-soft);
    color:var(--home-card-strong);
    font-size:.76rem;
    font-weight:700;
}

.proof-card strong{
    display:block;
    margin-top:.8rem;
    font-size:1rem;
    line-height:1.2;
    color:var(--home-ink);
}

.proof-card p{
    margin-top:.45rem;
    font-size:.68rem;
    line-height:1.75;
    color:var(--home-muted);
}

.content-section{
    padding:3.2rem 0;
}

.section-heading{
    max-width:38rem;
    margin-bottom:1.85rem;
}

.section-kicker{
    display:inline-flex;
    padding:.45rem .85rem;
    border-radius:999px;
    background:var(--home-blue-soft);
    color:var(--home-card-strong);
    font-size:.6rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.1em;
}

.section-heading h2{
    margin-top:.8rem;
    color:var(--home-ink);
    font-size:clamp(1.9rem, 4.8vw, 3rem);
    line-height:1.02;
    letter-spacing:-.05em;
}

.section-heading p{
    margin-top:.8rem;
    color:var(--home-muted);
    font-size:.74rem;
    line-height:1.85;
}

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

.service-card{
    position:relative;
    padding:1.5rem;
    border-radius:1.5rem;
    background:rgba(255,255,255,.82);
    border:1px solid var(--home-line);
    box-shadow:var(--home-shadow-soft);
    overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.service-card::before{
    content:"";
    position:absolute;
    width:8rem;
    height:8rem;
    right:-3rem;
    bottom:-4rem;
    border-radius:50%;
    background:radial-gradient(circle, rgba(208,138,54,.16), transparent 70%);
}

.service-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--home-shadow);
    border-color:rgba(208,138,54,.2);
}

.service-icon{
    width:3.35rem;
    aspect-ratio:1;
    display:grid;
    place-items:center;
    border-radius:1rem;
    background:linear-gradient(135deg, var(--home-card-strong) 0%, #244f7c 100%);
    color:var(--light-1);
}

.service-icon svg{
    width:1.65rem;
    height:1.65rem;
}

.service-card h3{
    margin-top:1rem;
    color:var(--home-ink);
    font-size:1rem;
    line-height:1.2;
}

.service-card p{
    margin-top:.55rem;
    color:var(--home-muted);
    font-size:.68rem;
    line-height:1.8;
}

.process-section{
    background:linear-gradient(180deg, rgba(16,37,66,.98) 0%, rgba(23,51,83,.96) 100%);
    color:var(--light-1);
}

.process-section .section-kicker{
    background:rgba(255,255,255,.12);
    color:var(--light-1);
}

.process-section .section-heading h2{
    color:var(--light-1);
}

.process-section .section-heading p{
    color:rgba(255,255,255,.74);
}

.process-layout{
    display:grid;
    grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);
    gap:2rem;
    align-items:start;
}

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

.process-card{
    padding:1.5rem;
    border-radius:1.5rem;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.step-number{
    width:2.7rem;
    aspect-ratio:1;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:linear-gradient(135deg, #efbd5f 0%, #d08a36 100%);
    color:var(--home-card-strong);
    font-size:.92rem;
    font-weight:700;
}

.process-card h3{
    margin-top:1rem;
    font-size:1rem;
    line-height:1.2;
    color:var(--light-1);
}

.process-card p{
    margin-top:.55rem;
    color:rgba(255,255,255,.74);
    font-size:.68rem;
    line-height:1.8;
}

.gallery-section{
    position:relative;
    background:
        radial-gradient(circle at top right, rgba(208,138,54,.14), transparent 30%),
        linear-gradient(180deg, rgba(255,255,255,.74) 0%, rgba(247,242,235,.92) 100%);
}

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

.gallery-card{
    min-width:0;
}

.gallery-card-featured{
    grid-column:span 2;
}

.gallery-link{
    position:relative;
    display:block;
    min-height:100%;
    border-radius:1.7rem;
    overflow:hidden;
    background:var(--home-card-strong);
    border:1px solid rgba(16,37,66,.08);
    box-shadow:var(--home-shadow-soft);
    isolation:isolate;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.gallery-link::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
        linear-gradient(180deg, rgba(12,26,45,.02) 0%, rgba(12,26,45,.12) 45%, rgba(8,17,29,.88) 100%),
        radial-gradient(circle at top right, rgba(239,189,95,.24), transparent 34%);
}

.gallery-link:hover{
    transform:translateY(-6px);
    box-shadow:var(--home-shadow);
    border-color:rgba(208,138,54,.22);
}

.gallery-media{
    aspect-ratio:4 / 4.7;
    background:linear-gradient(180deg, #dfe7ee 0%, #cfd9e3 100%);
}

.gallery-card-featured .gallery-media{
    aspect-ratio:16 / 9.8;
}

.gallery-media img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transform:scale(1.01);
    transition:transform .45s ease, filter .3s ease;
}

.gallery-link:hover .gallery-media img{
    transform:scale(1.05);
}

.gallery-open-indicator{
    position:absolute;
    top:1rem;
    right:1rem;
    z-index:2;
    width:2.45rem;
    aspect-ratio:1;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.18);
    color:var(--light-1);
    font-size:1rem;
    font-weight:700;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    box-shadow:0 14px 28px rgba(8,17,29,.24);
}

.gallery-overlay{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:2;
    padding:1rem;
    display:grid;
    gap:.45rem;
    color:var(--light-1);
}

.gallery-chip{
    width:fit-content;
    padding:.42rem .72rem;
    border-radius:999px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.12);
    font-size:.58rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.gallery-overlay strong{
    font-size:1.02rem;
    line-height:1.14;
}

.gallery-overlay p{
    max-width:26rem;
    color:rgba(255,255,255,.78);
    font-size:.66rem;
    line-height:1.72;
}

.gallery-lightbox{
    position:fixed;
    inset:0;
    z-index:1200;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1.25rem;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .25s ease, visibility .25s ease;
}

.gallery-lightbox.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.gallery-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(8,17,29,.72);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.gallery-lightbox-dialog{
    --lightbox-media-max-height: min(68vh, 42rem);
    position:relative;
    z-index:1;
    width:min(100%, 72rem);
    max-height:calc(100vh - 2.5rem);
    padding:1rem;
    border-radius:1.8rem;
    background:rgba(9,20,36,.88);
    border:1px solid rgba(255,255,255,.1);
    box-shadow:0 30px 70px rgba(0,0,0,.32);
    display:grid;
    grid-template-rows:auto minmax(0, 1fr);
    gap:1rem;
}

.gallery-lightbox-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.85rem;
}

.gallery-lightbox-counter{
    padding:.45rem .8rem;
    border-radius:999px;
    background:rgba(255,255,255,.1);
    color:var(--light-1);
    font-size:.62rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.gallery-lightbox-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:999px;
    padding:.78rem 1rem;
    background:rgba(255,255,255,.12);
    color:var(--light-1);
    font-size:.72rem;
    font-weight:700;
    cursor:pointer;
    transition:background-color .25s ease, transform .25s ease;
}

.gallery-lightbox-body{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr) auto;
    align-items:center;
    gap:.85rem;
    min-height:0;
}

.gallery-lightbox-nav{
    width:3.25rem;
    height:3.25rem;
    border:none;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.1);
    color:var(--light-1);
    font-size:1.15rem;
    cursor:pointer;
    transition:background-color .25s ease, transform .25s ease;
}

.gallery-lightbox-close:hover,
.gallery-lightbox-nav:hover{
    background:rgba(255,255,255,.18);
    transform:translateY(-1px);
}

.gallery-lightbox-nav:disabled{
    opacity:.42;
    cursor:default;
    transform:none;
}

.gallery-lightbox-figure{
    display:grid;
    gap:.9rem;
    min-width:0;
    min-height:0;
}

.gallery-lightbox-frame{
    position:relative;
    width:100%;
    max-height:var(--lightbox-media-max-height);
    aspect-ratio:16 / 10;
    border-radius:1.4rem;
    overflow:hidden;
    background:linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.02) 100%);
    border:1px solid rgba(255,255,255,.08);
}

.gallery-lightbox-frame::before{
    display:none;
}

.gallery-lightbox-image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    max-width:100%;
    max-height:100%;
    object-fit:contain;
    background:#08111d;
}

.gallery-lightbox-caption{
    display:grid;
    gap:.35rem;
    color:var(--light-1);
}

.gallery-lightbox-caption strong{
    font-size:1rem;
    line-height:1.15;
}

.gallery-lightbox-caption p{
    max-width:38rem;
    color:rgba(255,255,255,.74);
    font-size:.68rem;
    line-height:1.75;
}

.coverage-section{
    position:relative;
}

.coverage-section::before{
    content:"";
    position:absolute;
    left:4%;
    top:2rem;
    width:18rem;
    height:18rem;
    border-radius:50%;
    background:radial-gradient(circle, rgba(24,168,232,.12), transparent 70%);
    pointer-events:none;
}

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

.coverage-card{
    padding:1.35rem;
    border-radius:1.5rem;
    background:rgba(255,255,255,.82);
    border:1px solid var(--home-line);
    box-shadow:var(--home-shadow-soft);
}

.coverage-card strong{
    display:block;
    font-size:1rem;
    line-height:1.2;
    color:var(--home-ink);
}

.coverage-card p{
    margin-top:.55rem;
    color:var(--home-muted);
    font-size:.68rem;
    line-height:1.8;
}

.difference-layout{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(0, .95fr);
    gap:1.5rem;
    align-items:stretch;
}

.difference-copy p{
    max-width:33rem;
    color:rgba(255,255,255,.92);
    font-size:.74rem;
    line-height:1.85;
}

.difference-list{
    list-style:none;
    display:grid;
    gap:.75rem;
    margin-top:1.2rem;
}

.difference-list li{
    position:relative;
    padding-left:1.2rem;
    color:rgba(255,255,255,.92);
    font-size:.72rem;
    line-height:1.75;
}

.difference-list li::before{
    content:"";
    position:absolute;
    left:0;
    top:.48rem;
    width:.45rem;
    height:.45rem;
    border-radius:50%;
    background:var(--home-accent);
}

.difference-panel{
    padding:1.6rem;
    border-radius:1.8rem;
    background:linear-gradient(180deg, #fff7ea 0%, #ffffff 100%);
    border:1px solid rgba(208,138,54,.18);
    box-shadow:var(--home-shadow);
}

.difference-panel-top{
    padding:1rem 1.1rem;
    border-radius:1.25rem;
    background:var(--home-card-strong);
    color:var(--light-1);
}

.difference-panel-top span{
    display:block;
    font-size:.6rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    opacity:.78;
}

.difference-panel-top strong{
    display:block;
    margin-top:.4rem;
    font-size:1.12rem;
    line-height:1.15;
}

.difference-checks{
    display:grid;
    gap:.9rem;
    margin-top:1rem;
}

.difference-checks div{
    padding:1rem 1.1rem;
    border-radius:1.15rem;
    background:rgba(255,255,255,.82);
    border:1px solid rgba(16,37,66,.08);
}

.difference-checks strong{
    display:block;
    font-size:.92rem;
    line-height:1.2;
    color:var(--home-ink);
}

.difference-checks p{
    margin-top:.35rem;
    color:var(--home-muted);
    font-size:.68rem;
    line-height:1.75;
}

.contact-section{
    padding:1rem 0 4rem;
}

.contact-card{
    position:relative;
    padding:2.3rem;
    border-radius:2rem;
    background:linear-gradient(135deg, #102542 0%, #18385a 55%, #c97c23 120%);
    color:var(--light-1);
    box-shadow:0 28px 60px rgba(16,37,66,.22);
    overflow:hidden;
}

.contact-card::before,
.contact-card::after{
    content:"";
    position:absolute;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

.contact-card::before{
    width:14rem;
    height:14rem;
    right:-5rem;
    top:-5rem;
}

.contact-card::after{
    width:9rem;
    height:9rem;
    left:-2rem;
    bottom:-3rem;
}

.contact-card .section-kicker{
    position:relative;
    z-index:1;
    background:rgba(255,255,255,.14);
    color:var(--light-1);
}

.contact-card h2{
    position:relative;
    z-index:1;
    margin-top:.8rem;
    max-width:14ch;
    font-size:clamp(1.9rem, 5vw, 3.1rem);
    line-height:1.02;
    letter-spacing:-.05em;
}

.contact-card p{
    position:relative;
    z-index:1;
    margin-top:.85rem;
    max-width:30rem;
    color:rgba(255,255,255,.82);
    font-size:.74rem;
    line-height:1.85;
}

.contact-actions{
    position:relative;
    z-index:1;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.85rem;
    margin-top:1.75rem;
}

.btn-large{
    background:var(--light-1);
    color:var(--home-card-strong);
    padding:1rem 1.5rem;
}

.contact-actions .btn-large{
    min-width:min(100%, 18rem);
    padding:1.05rem 1.65rem;
    color:var(--home-card-strong) !important;
    background:var(--light-1) !important;
    font-weight:700;
    text-align:center;
    box-shadow:0 16px 30px rgba(9,20,37,.22);
}

.contact-actions .btn-large:hover{
    color:var(--home-card-strong) !important;
}

.contact-person{
    display:inline-flex;
    align-items:center;
    padding:.85rem 1.2rem;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);
    font-size:.72rem;
    font-weight:600;
}

.site-footer{
    padding:0 0 2rem;
}

.footer-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding-top:1.25rem;
    border-top:1px solid rgba(16,37,66,.12);
}

.footer-inner p,
.footer-inner a{
    font-size:.66rem;
    color:var(--home-muted);
}

.footer-inner a{
    color:var(--home-card-strong);
    font-weight:600;
}

.floating-whatsapp{
    position:fixed;
    right:1rem;
    bottom:1rem;
    z-index:981;
    display:grid;
    gap:.08rem;
    padding:.88rem 1rem;
    border-radius:1rem;
    background:#25d366;
    color:var(--light-1);
    box-shadow:0 18px 34px rgba(37,211,102,.28);
    transition:transform .25s ease, box-shadow .25s ease;
}

.floating-whatsapp:hover{
    transform:translateY(-3px);
    box-shadow:0 22px 38px rgba(37,211,102,.34);
}

.floating-whatsapp-label{
    font-size:.58rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    opacity:.86;
}

.floating-whatsapp strong{
    font-size:.78rem;
    line-height:1.1;
}

.error-body{
    background:
        radial-gradient(circle at top left, rgba(208,138,54,.18), transparent 34%),
        radial-gradient(circle at top right, rgba(24,168,232,.18), transparent 30%),
        linear-gradient(180deg, #fcf8f2 0%, #f5efe6 38%, #f7f2eb 100%);
}

.error-shell{
    min-height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:6rem 0 4rem;
}

.error-card{
    max-width:38rem;
    padding:2.2rem;
    border-radius:2rem;
    background:rgba(255,255,255,.84);
    border:1px solid rgba(16,37,66,.08);
    box-shadow:var(--home-shadow);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.error-code{
    display:inline-flex;
    padding:.5rem .85rem;
    border-radius:999px;
    background:var(--home-accent-soft);
    color:var(--home-accent-strong);
    font-size:.64rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.error-card h1{
    margin-top:.85rem;
    font-size:clamp(2.1rem, 6vw, 3.5rem);
    line-height:.98;
    letter-spacing:-.05em;
    color:var(--home-ink);
}

.error-card p{
    margin-top:.8rem;
    color:var(--home-muted);
    font-size:.76rem;
    line-height:1.85;
}

.error-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.85rem;
    margin-top:1.5rem;
}

@media only screen and (max-width:1200px) {
    .hero-layout,
    .difference-layout{
        grid-template-columns:1fr;
    }

    .process-layout{
        grid-template-columns:1fr;
    }

    .services-grid,
    .coverage-grid,
    .gallery-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .hero-copy{
        max-width:none;
    }

    .hero-visual{
        padding:0;
    }
}

@media only screen and (max-width:980px) {
    .proof-grid,
    .process-grid{
        grid-template-columns:1fr;
    }

    .gallery-lightbox-body{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .gallery-lightbox-figure{
        grid-column:1 / -1;
    }

    .gallery-lightbox-nav{
        width:100%;
        height:auto;
        padding:.9rem 1rem;
        border-radius:999px;
    }

    .hero-section{
        padding-top:2.5rem;
        padding-bottom:2.8rem;
    }

    .hero-copy h1{
        max-width:11ch;
    }
}

@media only screen and (max-width:860px) {
    body.home-body.nav-open{
        overflow:hidden;
    }

    .header-inner{
        position:relative;
        border-radius:1.5rem;
    }

    .nav-toggle{
        display:flex;
    }

    .site-nav{
        position:absolute;
        top:calc(100% + .75rem);
        left:0;
        right:0;
        padding:1rem;
        border-radius:1.5rem;
        background:rgba(255,255,255,.96);
        border:1px solid rgba(16,37,66,.08);
        box-shadow:0 22px 40px rgba(16,37,66,.12);
        display:grid;
        gap:.7rem;
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transform:translateY(-10px);
        transition:opacity .25s ease, transform .25s ease, visibility .25s ease;
    }

    body.nav-open .site-nav{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transform:translateY(0);
    }

    .site-nav a{
        padding:.45rem 0;
        font-size:.76rem;
    }

    .site-nav .nav-cta{
        text-align:center;
        padding:.9rem 1rem;
    }

    body.nav-open .nav-toggle span:nth-child(1){
        transform:translateY(7px) rotate(45deg);
    }

    body.nav-open .nav-toggle span:nth-child(2){
        opacity:0;
    }

    body.nav-open .nav-toggle span:nth-child(3){
        transform:translateY(-7px) rotate(-45deg);
    }

    .hero-layout{
        gap:1.6rem;
    }

    .hero-visual{
        padding:0;
    }

    .hero-panel-grid{
        grid-template-columns:1fr;
    }
}

@media only screen and (max-width:680px) {
    .site-header{
        --header-pad-x: .85rem;
        padding-top:.8rem;
    }

    .header-inner{
        padding:.8rem var(--header-pad-x);
    }

    .brand{
        width:min(7.5rem, calc(100% - 4.25rem));
    }

    .hero-copy h1{
        max-width:none;
        font-size:2.05rem;
    }

    .hero-actions .btn,
    .hero-points li{
        width:100%;
    }

    .hero-points li{
        justify-content:flex-start;
    }

    .services-grid,
    .coverage-grid,
    .gallery-grid{
        grid-template-columns:1fr;
    }

    .gallery-card-featured{
        grid-column:span 1;
    }

    .gallery-card-featured .gallery-media{
        aspect-ratio:4 / 4.7;
    }

    .gallery-lightbox{
        padding:.8rem;
    }

    .gallery-lightbox-dialog{
        --lightbox-media-max-height: min(54vh, 28rem);
        max-height:calc(100vh - 1.6rem);
        padding:.85rem;
        border-radius:1.3rem;
    }

    .gallery-lightbox-topbar{
        flex-wrap:wrap;
    }

    .gallery-lightbox-counter,
    .gallery-lightbox-close{
        width:100%;
        text-align:center;
        justify-content:center;
    }

    .proof-strip,
    .content-section{
        padding-top:2.4rem;
        padding-bottom:2.4rem;
    }

    .contact-card{
        padding:1.7rem;
    }

    .contact-actions .btn-large,
    .contact-person,
    .error-actions .btn{
        width:100%;
        justify-content:center;
    }

    .footer-inner{
        flex-direction:column;
        align-items:flex-start;
    }

    .site-footer{
        padding-bottom:6rem;
    }

    .floating-whatsapp{
        left:1rem;
        right:1rem;
        bottom:.85rem;
        border-radius:1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
        scroll-behavior:auto !important;
    }

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