/* L&G Limpezas de Condomínios — folha de estilos do website */

/* ---- fonts ---- */
/* L&G — tipo de letra oficial da marca: Poppins (folha de identidade).
   Ficheiros WOFF2 locais em fonts/ (latin + latin-ext), sem dependência de CDN.
   Pesos: 300, 400, 400 itálico, 500, 600, 700. */
/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/Poppins-400i-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/Poppins-400i-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(assets/fonts/Poppins-300-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(assets/fonts/Poppins-300-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/Poppins-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/Poppins-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/Poppins-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/Poppins-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/Poppins-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/Poppins-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin-ext */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/Poppins-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/Poppins-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Serifa de apoio — apenas para números/indicadores grandes (secção Sobre Nós). */
/* latin-ext */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/PlayfairDisplay-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/PlayfairDisplay-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---- colors ---- */
:root{
/* ---- Paleta oficial (folha de identidade, Setembro 2026) ---- */
--c-navy:#1f416b;
--c-teal:#018895;
--c-cyan:#05c7f2;
--c-aqua:#5ce1e6;
--c-steel:#738ca6;
--c-ice:#d4feff;
--c-white:#ffffff;

/* ---- Extensoes derivadas (mesma matiz, so valor/croma ajustados) ---- */
--c-navy-ink:oklch(from var(--c-navy) 24% c h);
--c-navy-700:oklch(from var(--c-navy) 38% c h);
--c-navy-300:oklch(from var(--c-navy) 72% calc(c * 0.5) h);
--c-teal-deep:oklch(from var(--c-teal) 42% c h);
--c-cyan-soft:oklch(from var(--c-cyan) 88% calc(c * 0.45) h);
--c-mist-50:#f7fafc;
--c-mist-100:#eff5f8;
--c-mist-200:#e2ecf2;
--c-mist-300:#cfdde6;

/* ---- Semantica: texto ---- */
--text-strong:var(--c-navy-ink);
--text-title:var(--c-navy);
--text-body:oklch(from var(--c-steel) 42% calc(c * 0.8) h);
--text-muted:var(--c-steel);
--text-on-brand:var(--c-white);
--text-link:var(--c-teal);
--text-link-hover:var(--c-navy);

/* ---- Semantica: superficies ---- */
--surface-page:var(--c-white);
--surface-subtle:var(--c-mist-50);
--surface-sunken:var(--c-mist-100);
--surface-card:var(--c-white);
--surface-ice:var(--c-ice);
--surface-navy:var(--c-navy);
--surface-teal:var(--c-teal);

/* ---- Semantica: tracos e bordas ---- */
--border-subtle:var(--c-mist-200);
--border-strong:var(--c-mist-300);
--border-brand:var(--c-teal);
--border-on-brand:color-mix(in srgb, var(--c-white) 28%, transparent);

/* ---- Semantica: acao ---- */
--action-primary:var(--c-navy);
--action-primary-hover:var(--c-navy-700);
--action-primary-press:var(--c-navy-ink);
--action-secondary:var(--c-teal);
--action-secondary-hover:var(--c-teal-deep);
--action-accent:var(--c-cyan);
--action-disabled:var(--c-mist-200);
--focus-ring:color-mix(in srgb, var(--c-cyan) 45%, transparent);

/* ---- Estado (extensao: nao consta da folha de identidade) ---- */
--state-success:#0e7a63;
--state-success-bg:#e6f5f1;
--state-warning:#a86a00;
--state-warning-bg:#fdf3e2;
--state-danger:#b03a3a;
--state-danger-bg:#fbeceb;
--state-info:var(--c-teal);
--state-info-bg:var(--c-ice);
}

/* ---- typography ---- */
:root{
--font-core:"Poppins","Helvetica Neue",Arial,sans-serif; /* @kind font */
--font-ui:var(--font-core);
--font-serif-display:"Playfair Display",Georgia,"Times New Roman",serif; /* @kind font */

--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */

--fs-display:4rem; /* @kind font */
--fs-h1:3rem; /* @kind font */
--fs-h2:2.25rem; /* @kind font */
--fs-h3:1.625rem; /* @kind font */
--fs-h4:1.125rem; /* @kind font */
--fs-lead:1.25rem; /* @kind font */
--fs-body:1.0625rem; /* @kind font */
--fs-small:0.9375rem; /* @kind font */
--fs-caption:0.8125rem; /* @kind font */
--fs-overline:0.75rem; /* @kind font */

--lh-tight:1.06; /* @kind font */
--lh-title:1.16; /* @kind font */
--lh-snug:1.35; /* @kind font */
--lh-body:1.62; /* @kind font */

--ls-display:-0.022em; /* @kind font */
--ls-title:-0.014em; /* @kind font */
--ls-body:0em; /* @kind font */
--ls-overline:0.16em; /* @kind font */

/* Papeis compostos */
--type-display:var(--fw-semibold) var(--fs-display)/var(--lh-tight) var(--font-core); /* @kind font */
--type-h1:var(--fw-semibold) var(--fs-h1)/var(--lh-title) var(--font-core); /* @kind font */
--type-h2:var(--fw-semibold) var(--fs-h2)/var(--lh-title) var(--font-core); /* @kind font */
--type-h3:var(--fw-semibold) var(--fs-h3)/var(--lh-snug) var(--font-core); /* @kind font */
--type-h4:var(--fw-semibold) var(--fs-h4)/var(--lh-snug) var(--font-core); /* @kind font */
--type-lead:var(--fw-light) var(--fs-lead)/var(--lh-body) var(--font-core); /* @kind font */
--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-core); /* @kind font */
--type-small:var(--fw-regular) var(--fs-small)/var(--lh-body) var(--font-core); /* @kind font */
--type-caption:var(--fw-regular) var(--fs-caption)/var(--lh-snug) var(--font-core); /* @kind font */
--type-button:var(--fw-semibold) var(--fs-small)/1 var(--font-core); /* @kind font */
}

/* ---- spacing ---- */
:root{
--sp-0:0; /* @kind spacing */
--sp-1:0.25rem;
--sp-2:0.5rem;
--sp-3:0.75rem;
--sp-4:1rem;
--sp-5:1.25rem;
--sp-6:1.5rem;
--sp-8:2rem;
--sp-10:2.5rem;
--sp-12:3rem;
--sp-16:4rem;
--sp-20:5rem;
--sp-24:6rem;
--sp-32:8rem;

/* Ritmo vertical de secoes do site */
--section-y:7rem; /* @kind spacing */
--section-y-tight:4.5rem; /* @kind spacing */
--stack-title-body:var(--sp-4);
--stack-card:var(--sp-3);
--grid-gap:var(--sp-6);
}

/* ---- radius ---- */
:root{
--r-xs:4px;
--r-sm:6px;
--r-md:10px;
--r-lg:16px;
--r-xl:24px;
--r-2xl:32px;
--r-pill:999px;
--r-card:var(--r-lg);
--r-control:var(--r-md);
--r-media:var(--r-xl);
}

/* ---- elevation ---- */
:root{
/* Sombras discretas, sempre tingidas de navy — nunca preto puro */
--shadow-xs:0 1px 2px rgba(31,65,107,.06);
--shadow-sm:0 2px 8px rgba(31,65,107,.06);
--shadow-md:0 10px 28px rgba(31,65,107,.08);
--shadow-lg:0 24px 56px rgba(31,65,107,.10);
--shadow-focus:0 0 0 3px var(--focus-ring);
--blur-glass:saturate(1.1) blur(14px); /* @kind other */
--overlay-navy:color-mix(in srgb, var(--c-navy-ink) 55%, transparent); /* @kind other */
--scrim-bottom:linear-gradient(to top, color-mix(in srgb, var(--c-navy-ink) 78%, transparent), transparent 62%); /* @kind other */
}

/* ---- motion ---- */
:root{
--dur-fast:140ms; /* @kind other */
--dur-base:220ms; /* @kind other */
--dur-slow:420ms; /* @kind other */
--ease-out:cubic-bezier(.22,.61,.36,1); /* @kind other */
--ease-in-out:cubic-bezier(.4,0,.2,1); /* @kind other */
--transition-control:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out); /* @kind other */
--transition-card:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out); /* @kind other */
--lift-hover:translateY(-3px); /* @kind other */
--press-scale:0.985; /* @kind other */
}

/* ---- layout ---- */
:root{
--container-max:1200px; /* @kind spacing */
--container-narrow:760px; /* @kind spacing */
--container-pad:clamp(1.25rem,1rem + 2vw,2.5rem); /* @kind spacing */
--header-h:76px; /* @kind spacing */
--header-h-compact:64px;
--hit-min:44px; /* @kind spacing */
}

/* ---- base ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);letter-spacing:var(--ls-body);text-wrap:pretty;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;color:var(--text-title);letter-spacing:var(--ls-title)}
h1{font:var(--type-h1)}h2{font:var(--type-h2)}h3{font:var(--type-h3)}h4{font:var(--type-h4)}
p{margin:0}
img,svg{display:block;max-width:100%}
a{color:var(--text-link);text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px;transition:var(--transition-control)}
a:hover{color:var(--text-link-hover);text-decoration-color:currentColor}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--c-teal);outline-offset:2px}
button,input,textarea,select{font-family:inherit}
::selection{background:var(--c-ice);color:var(--text-strong)}

/* Escala responsiva: tokens de tipo e ritmo reduzidos em ecras estreitos */
@media (max-width:900px){:root{--fs-display:3rem;--fs-h1:2.35rem;--fs-h2:1.85rem;--fs-h3:1.4rem;--fs-lead:1.125rem;--section-y:4.5rem;--section-y-tight:3rem}}
@media (max-width:560px){:root{--fs-display:2.375rem;--fs-h1:1.9rem;--fs-h2:1.55rem;--fs-h3:1.3rem;--fs-lead:1.0625rem;--section-y:3.5rem;--section-y-tight:2.5rem;--header-h:var(--header-h-compact)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}

/* ---- página ---- */
[data-faq] summary::-webkit-details-marker{display:none}
[data-faq][open] [data-faq-icon]{transform:rotate(180deg)}
@keyframes lgPulseWa{0%,100%{transform:scale(1);box-shadow:0 6px 18px rgba(31,65,107,0.18),0 0 0 0 rgba(29,168,81,0.35)}
50%{transform:scale(1.04);box-shadow:0 6px 18px rgba(31,65,107,0.18),0 0 0 12px rgba(29,168,81,0)}
}
@keyframes lgSpin{to{transform:rotate(360deg)}
}
@media (prefers-reduced-motion:reduce){[data-spin]{animation:none!important}
}
@keyframes lgPulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(31,65,107,0.28)}
50%{transform:scale(1.035);box-shadow:0 0 0 10px rgba(31,65,107,0)}
}
@media (prefers-reduced-motion:reduce){[data-pulse]{animation:none!important}
}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;overflow-x:hidden}
[data-marquee]::-webkit-scrollbar{display:none}
@keyframes lgFade{from{opacity:0;transform:translateY(16px)}
to{opacity:1;transform:none}
}

.lg-hide{display:none!important}
@media (max-width:899.98px){.lg-desk{display:none!important}}
@media (min-width:900px){.lg-mob,.lg-menu{display:none!important}}
.lgb:active{transform:scale(var(--press-scale))!important}
.lgb-primary:hover{background:var(--action-primary-hover)!important;border-color:var(--action-primary-hover)!important;box-shadow:var(--shadow-sm)!important}
.lgb-secondary:hover{background:var(--action-secondary-hover)!important;border-color:var(--action-secondary-hover)!important;box-shadow:var(--shadow-sm)!important}
.lgb-outline:hover{border-color:var(--c-teal)!important;color:var(--c-teal)!important}
.lgb-ghost:hover{background:var(--surface-sunken)!important}
.lgb-onNavy:hover{background:var(--c-ice)!important;border-color:var(--c-ice)!important}
.lgb-onNavyOutline:hover{background:color-mix(in srgb,var(--c-white) 12%,transparent)!important;border-color:var(--c-white)!important}
.lgib-ghost:hover{background:var(--surface-sunken)!important}
.lgib-outline:hover{border-color:var(--c-teal)!important;color:var(--c-teal)!important}
.lgib-solid:hover{background:var(--action-primary-hover)!important}
.lgib-onNavy:hover{background:color-mix(in srgb,var(--c-white) 20%,transparent)!important}
.lgf:focus{border-color:var(--c-teal)!important;box-shadow:var(--shadow-focus)!important}
.lg-h1:hover{color:var(--c-teal) !important;background-size:100% 2px !important}
.lg-h2:hover{color:var(--c-teal) !important;background-size:100% 2px !important}
.lg-h3:hover{color:var(--c-teal) !important;background-size:100% 2px !important}
.lg-h4:hover{color:var(--c-teal) !important;background-size:100% 2px !important}
.lg-h5:hover{color:var(--c-teal) !important;background-size:100% 2px !important}
