/* Neutral public structure. Theme variables remain available for the next frontend. */
:root {
    color-scheme:light;
    --action-primary:#173A24;
    --action-primary-hover:#24573A;
    --brand-highlight:#C7D8B9;
    --footer-bg:#1B3E2A;
    --footer-bottom-bg:#14301F;
    --footer-text:#E4E9E5;
    --footer-muted:#C7D1CA;
    --space-xs:8px;
    --space-sm:12px;
    --space-md:16px;
    --space-lg:24px;
    --space-xl:32px;
    --section-padding:56px;
    --section-padding-compact:40px;
    --button-height:40px;
    --header-offset:120px;
}
*, *::before, *::after { box-sizing:border-box; }
html { scroll-padding-top:1rem; }
body {
    margin:0;
    background:#fff;
    color:#222;
    font-family:var(--font-body, Arial, sans-serif);
    font-size:16px;
    line-height:1.5;
    overflow-wrap:anywhere;
}
h1, h2, h3 { font-family:var(--font-heading, Arial, sans-serif); line-height:1.15; }
h1 { font-size:2rem; }
h2 { font-size:1.5rem; }
h3 { font-size:1.125rem; }
p, h1, h2, h3, figure { margin:0 0 1rem; }
a { color:inherit; text-underline-offset:.2em; }
a:hover { text-decoration-thickness:2px; }
img, svg, iframe { max-width:100%; }
img { display:block; height:auto; }
iframe { border:0; }
button, input, textarea, select { font:inherit; max-width:100%; }
button, .button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    min-height:44px;
    padding:.5rem .75rem;
    border:1px solid #888;
    border-radius:0;
    background:#f4f4f4;
    color:#222;
    line-height:1.4;
    text-align:center;
    text-decoration:none;
    cursor:pointer;
    white-space:normal;
}
button:disabled { opacity:.6; cursor:default; }
:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.button { min-height:var(--button-height); padding:8px 18px; border-color:var(--action-primary); border-radius:8px; background:var(--action-primary); color:#FFFFFF; font-size:.875rem; }
.button:hover { border-color:var(--action-primary-hover); background:var(--action-primary-hover); }
.button:focus-visible { outline-color:var(--action-primary); }
[hidden] { display:none !important; }
.container { width:calc(100% - 2rem); max-width:1100px; margin-inline:auto; }
.icon { display:inline-block; width:1.25rem; height:1.25rem; flex-shrink:0; vertical-align:middle; }
.skip-link { position:absolute; top:-100px; left:1rem; z-index:10; padding:.5rem; background:#fff; }
.skip-link:focus { top:1rem; }
.multiline { white-space:pre-line; }
.site-header { border-bottom:1px solid #ccc; }
.header-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding-block:1rem; }
.brand { display:inline-flex; align-items:center; max-width:100%; min-width:0; text-decoration:none; }
.brand-logo { width:auto; max-width:180px; max-height:64px; object-fit:contain; }
.brand-copy { min-width:0; }
.brand-copy strong, .brand-copy small { display:block; }
.brand-copy small:empty { display:none; }
.main-nav { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1rem; min-width:0; }
.nav-link { display:inline-flex; align-items:center; min-height:44px; font-weight:var(--menu-font-weight, 400); }
.nav-link.is-current { font-weight:700; }
.menu-toggle { display:none; }
main.container { padding-block:1.5rem; }
.section, .page-intro, .about-blocks, .contact-details { margin-bottom:2rem; }
.section-heading { margin-bottom:1.5rem; }
.eyebrow { margin-bottom:.5rem; }
.footer-main > * { min-width:0; }
.home-product-card { min-width:0; }
.home-product-body { margin-top:1rem; }
.home-product-card img { width:100%; aspect-ratio:4 / 3; object-fit:contain; }
.home-media { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; }
.home-media img { width:100%; object-fit:contain; }
.product-carousel { min-width:0; }
.product-carousel-slide { margin:0 0 .5rem; }
.product-carousel-slide img { width:100%; aspect-ratio:4 / 3; max-height:28rem; object-fit:contain; }
.product-carousel-control, .product-carousel-dots { display:none; }
.carousel-enhanced .product-carousel-slide[aria-hidden="true"] { display:none; }
.carousel-enhanced .product-carousel-control { display:inline-flex; width:44px; padding:.5rem; }
.product-carousel-prev .icon { transform:rotate(180deg); }
.carousel-enhanced .product-carousel-dots { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.5rem; }
.product-carousel-dots button { min-width:44px; }
.product-carousel-dots button[aria-selected="true"] { border:2px solid currentColor; font-weight:700; }
.about-block { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:1.5rem; align-items:start; margin-bottom:2rem; }
.about-block > * { min-width:0; }
.about-block img { width:100%; max-height:28rem; object-fit:contain; }
.contact-detail { display:flex; align-items:start; gap:.75rem; margin-bottom:1.5rem; }
.contact-detail > div { min-width:0; }
.contact-detail h2 { font-size:1.125rem; margin-bottom:.5rem; }
.social-links { display:flex; flex-wrap:wrap; gap:1rem; }
.site-footer {
    padding:0;
    border:0;
    background:var(--footer-bg);
    color:var(--footer-text);
    font-size:14px;
    line-height:1.6;
}
.footer-inner { width:calc(100% - 64px); max-width:1320px; margin-inline:auto; }
.footer-main { --footer-column-gap:24px; display:grid; width:100%; padding-block:var(--section-padding-compact); gap:24px var(--footer-column-gap); align-items:stretch; }
.footer-main--columns-4 { grid-template-columns:minmax(0, 18fr) minmax(0, 15fr) minmax(0, 49fr) minmax(0, 18fr); }
.footer-main--columns-3 { grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr) minmax(0, 1.2fr); }
.footer-main--columns-2 { grid-template-columns:minmax(0, .9fr) minmax(0, 2.9fr); }
.footer-column { position:relative; }
.footer-column + .footer-column::before { content:""; position:absolute; inset-block:0; inset-inline-start:calc(var(--footer-column-gap) / -2); width:1px; background:rgba(255,255,255,.12); }
.footer-brand { display:flex; align-items:center; }
.site-footer .brand { max-width:100%; }
.site-footer .brand-logo { width:130px; height:130px; max-width:100%; max-height:none; object-fit:contain; }
.site-footer .brand-copy { font-size:18px; }
.site-footer .brand-copy small { color:var(--footer-muted); font-size:13px; font-weight:400; }
.footer-main h2 { margin:0 0 var(--space-sm); color:#FFFFFF; font-size:14px; line-height:1.4; font-weight:700; letter-spacing:.055em; }
.footer-navigation a { display:block; width:fit-content; margin-bottom:6px; padding:0; text-decoration:none; }
.footer-navigation a:last-child { margin-bottom:0; }
.site-footer a { transition:color .22s ease; }
.site-footer a:hover { color:#FFFFFF; }
.site-footer a:focus-visible { outline:2px solid #FFFFFF; outline-offset:4px; }
.footer-contact-content { display:grid; gap:var(--space-md); align-items:center; }
.footer-contact-content--with-map { grid-template-columns:minmax(190px, 1fr) minmax(0, 230px); }
.footer-contact ul { display:grid; gap:var(--space-xs); margin:0; padding:0; list-style:none; }
.footer-contact li { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.footer-contact .icon { width:19px; height:19px; margin-top:2px; flex-shrink:0; }
.footer-contact a { min-width:0; text-decoration:none; }
.footer-social { display:flex; flex-wrap:wrap; gap:8px; }
.footer-social a { display:inline-flex; flex:0 0 42px; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.12); border-radius:50%; background:rgba(255,255,255,.08); color:#FFFFFF; text-decoration:none; transition:color .22s ease, background-color .22s ease, border-color .22s ease, transform .22s ease; }
.footer-social .icon { width:20px; height:20px; }
.footer-map { width:100%; max-width:230px; height:140px; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:13px; background:#173A24; box-shadow:0 4px 14px rgba(0,0,0,.08); }
.footer-map iframe { display:block; width:100%; height:100%; border:0; }
.footer-bottom { width:100%; padding-block:var(--space-md); background:var(--footer-bottom-bg); color:var(--footer-muted); font-size:12px; }
.footer-bottom-inner { display:grid; grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr); align-items:center; gap:16px 40px; }
.footer-bottom p { margin:0; }
.footer-bottom-copy { min-width:0; }
.footer-copyright { flex:0 1 auto; min-width:0; text-align:left; }
.footer-description { min-width:0; padding-inline-end:64px; white-space:pre-line; text-align:right; }
.footer-credit { display:inline-flex; justify-self:center; align-items:center; justify-content:center; gap:10px; font-size:11px; white-space:nowrap; }
.footer-credit-logo { display:block; flex:0 0 auto; width:190px; }
.footer-credit-logo img { display:block; width:100%; height:auto; object-fit:contain; image-rendering:auto; }
.is-home .home-products,
.is-home .home-story { background-color:var(--home-light-bg); }
.is-home .home-story__panel { background-color:inherit; }
.whatsapp-float {
    position:fixed;
    right:1rem;
    bottom:1rem;
    z-index:5;
    display:flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    border:0;
    border-radius:50%;
    background:#168B45;
    color:#fff;
    box-shadow:0 4px 14px rgba(0, 0, 0, .16), 0 0 0 0 rgba(37, 211, 102, .16);
    animation:whatsapp-pulse 3.8s ease-in-out infinite;
    transition:background-color .2s ease;
}
.whatsapp-float .icon { width:32px; height:32px; }
.whatsapp-float:hover, .whatsapp-float:focus-visible { background:#11753B; animation-play-state:paused; }
.whatsapp-float:focus-visible { outline:3px solid #D90416; outline-offset:4px; }
@keyframes whatsapp-pulse {
    0%, 18%, 70%, 100% { transform:scale(1); box-shadow:0 4px 14px rgba(0, 0, 0, .16), 0 0 0 0 rgba(37, 211, 102, .16); }
    44% { transform:scale(1.05); box-shadow:0 5px 16px rgba(0, 0, 0, .14), 0 0 0 10px rgba(37, 211, 102, .06); }
}
@media (hover:hover) and (pointer:fine) {
    .footer-social a:hover { background:#2E6B46; border-color:#2E6B46; color:#FFFFFF; transform:translateY(-2px); }
}
@media (min-width:1520px) {
    .footer-description { padding-inline-end:0; }
}
@media (max-width:1100px) {
    .footer-main { grid-template-columns:repeat(2, minmax(0, 1fr)); row-gap:24px; }
    .footer-column:nth-child(odd)::before { display:none; }
    .footer-contact-content--with-map { grid-template-columns:minmax(0, 1fr); }
}
@media (max-width:600px) {
    .footer-map { max-width:none; height:160px; }
    .footer-inner { width:calc(100% - 40px); }
    .site-footer .footer-main { grid-template-columns:minmax(0, 1fr); gap:20px; padding-block:32px; }
    .site-footer .footer-column::before { display:none; }
    .footer-column + .footer-column { padding-top:16px; border-top:1px solid rgba(255,255,255,.12); }
    .site-footer .brand-logo { width:128px; height:128px; }
    .footer-bottom { padding-bottom:80px; }
    .footer-bottom-inner { grid-template-columns:minmax(0, 1fr); gap:8px; }
    .footer-bottom-copy { width:100%; }
    .footer-copyright,.footer-description { text-align:center; }
    .footer-credit-logo { width:150px; }
    .footer-description { padding-inline-end:0; }
    .whatsapp-float { width:58px; height:58px; }
    .whatsapp-float .icon { width:30px; height:30px; }
}
@media (prefers-reduced-motion:reduce) {
    .whatsapp-float { animation:none; transform:none; transition:none; }
    .site-footer a { transition:none; }
    .site-footer .footer-social a:hover { transform:none; }
}
.contact-form { max-width:760px; }
.form-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; }
.field { min-width:0; }
.field-full { grid-column:1 / -1; }
.field label, .field-error { display:block; margin-bottom:.5rem; }
.field input, .field textarea, .field select { display:block; width:100%; min-width:0; min-height:44px; padding:.5rem; border:1px solid #888; border-radius:0; background:#fff; color:#222; }
.field textarea { resize:vertical; }
.field [aria-invalid="true"] { border:2px solid currentColor; }
.form-bottom { margin-top:1rem; }
.form-feedback, .development-note { padding:1rem; border:1px solid #888; margin-bottom:1rem; }
.honeypot { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media (max-width:800px) {
    :root { --button-height:44px; --header-offset:104px; }
    .main-nav { width:100%; }
    .enhanced .menu-toggle { display:inline-flex; }
    .enhanced .main-nav { display:none; flex-direction:column; align-items:stretch; }
    .enhanced .main-nav.is-open { display:flex; }
    .about-block { grid-template-columns:minmax(0, 1fr); }
}
@media (max-width:580px) {
    .home-media, .form-grid { grid-template-columns:minmax(0, 1fr); }
    .header-inner { gap:.75rem; }
    .brand-logo { max-width:160px; }
    h1 { font-size:1.75rem; }
}
