:root {
    --geco-green-950: #062d25;
    --geco-green-900: #0a3b30;
    --geco-green-800: #105343;
    --geco-green-700: #176b55;
    --geco-green-100: #e8f3ef;
    --geco-gold: #e8b84a;
    --geco-gold-dark: #b87c12;
    --geco-ink: #18302a;
    --geco-muted: #60716c;
    --geco-line: #dce6e2;
    --geco-surface: #ffffff;
    --geco-shadow: 0 24px 65px rgba(4, 31, 25, .22);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.geco-public {
    min-height: 100vh;
    margin: 0;
    color: var(--geco-ink);
    font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background: var(--geco-green-950);
}

body.geco-home { background: transparent; }

.geco-public a { transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease; }
.geco-public a:hover { text-decoration: none; }
.geco-public .btn { transition: color .22s ease, background-color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease; }
.geco-public .btn:hover, .geco-public .btn:focus { box-shadow: 0 9px 22px rgba(4, 31, 25, .18); transform: translateY(-2px); }

@keyframes geco-fade-down {
    from { opacity: 0; transform: translateY(-18px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes geco-fade-up {
    from { opacity: 0; transform: translateY(28px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes geco-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes geco-icon-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(26, 188, 156, 0); }
    50% { box-shadow: 0 0 0 8px rgba(26, 188, 156, .13); }
}

.geco-home::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(100deg, rgba(4, 31, 25, .78) 0%, rgba(4, 31, 25, .54) 52%, rgba(4, 31, 25, .30) 100%);
}

.geco-shell { max-width: 1480px; margin: 0 auto; padding-left: 4vw; padding-right: 4vw; }

.geco-header {
    position: relative;
    z-index: 20;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    background: transparent;
    backdrop-filter: none;
    animation: geco-fade-down .65s ease-out both;
}

.geco-header-row,
.geco-header-actions,
.geco-login-form,
.geco-footer-row { display: flex; align-items: center; }

.geco-header-row { justify-content: space-between; gap: 28px; }
.geco-brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.geco-brand img { display: block; width: auto; height: 38px; object-fit: contain; }
.geco-brand .logo-light { display: none; }
.geco-brand .logo-dark { display: block; }
.geco-header-actions { align-items: flex-start; gap: 22px; }
.geco-login-form { gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.geco-login-field { width: 220px; }
.geco-login-form .form-control { height: 43px; color: #fff; border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .11); }
.geco-login-form .form-control::placeholder { color: rgba(255, 255, 255, .7); }
.geco-login-form .form-control:focus { border-color: var(--geco-gold); background: rgba(255, 255, 255, .16); box-shadow: 0 0 0 3px rgba(232, 184, 74, .18); }
.geco-forgot-link { width: 100%; margin-top: -4px; color: rgba(255, 255, 255, .76); font-size: .78rem; text-align: right; }
.geco-forgot-link:hover { color: #fff; }
.geco-login-error { margin-top: 12px; padding: 9px 14px; color: #fff; border-radius: 8px; background: rgba(185, 35, 45, .9); font-size: .88rem; }

.geco-btn-primary,
.geco-btn-outline { min-height: 43px; padding: 10px 17px; border-radius: 8px; font-weight: 700; }
.geco-btn-primary { color: #173128; border-color: var(--geco-gold); background: var(--geco-gold); }
.geco-btn-primary:hover, .geco-btn-primary:focus { color: #10251e; border-color: #f2c968; background: #f2c968; transform: translateY(-1px); }
.geco-btn-outline { color: #fff; border: 1px solid rgba(255, 255, 255, .42); background: transparent; }
.geco-btn-outline:hover { color: var(--geco-green-950); border-color: #fff; background: #fff; }
.geco-btn-block { width: 100%; min-height: 50px; }

.geco-hero { position: relative; z-index: 2; min-height: calc(100vh - 154px); padding: 54px 0 40px; }
.geco-hero-row { min-height: calc(100vh - 250px); align-items: flex-start !important; }
.geco-intro { padding: 20px 7vw 46px 15px; color: #fff; }
.geco-intro > * { animation: geco-fade-up .7s ease-out both; }
.geco-intro > :nth-child(2) { animation-delay: .08s; }
.geco-intro > :nth-child(3) { animation-delay: .16s; }
.geco-intro > :nth-child(4) { animation-delay: .24s; }
.geco-intro > :nth-child(5) { animation-delay: .32s; }
.geco-eyebrow { display: inline-block; margin-bottom: 13px; color: var(--geco-gold); font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.geco-intro h1 { max-width: 760px; margin: 0 0 22px; color: #fff; font-size: clamp(1.9rem, 3vw, 3rem); font-weight: 750; line-height: 1.1; letter-spacing: -.03em; }
.geco-lead { max-width: 680px; margin-bottom: 27px; color: rgba(255, 255, 255, .84); font-size: 1.18rem; line-height: 1.7; }
.geco-trust-list { display: flex; flex-wrap: wrap; gap: 12px 24px; color: rgba(255, 255, 255, .9); font-size: .93rem; }
.geco-trust-list i { margin-right: 6px; color: var(--geco-gold); }
.geco-scroll-link { display: inline-block; margin-top: 30px; color: #fff; font-weight: 700; border-bottom: 2px solid var(--geco-gold); }
.geco-scroll-link:hover { color: var(--geco-gold); }

.geco-registration { margin-top: 46px; padding: 0 15px; border: 0; border-radius: 5px; background: transparent; box-shadow: none; animation: geco-fade-up .75s .18s ease-out both; }
.geco-section-heading { padding: 4px 5px 15px; text-align: left; }
.geco-step { color: #28a745; font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.geco-section-heading h2 { margin: 6px 0 5px; color: #28a745; font-size: 1.65rem; font-weight: 750; }
.geco-section-heading p { margin: 0; color: var(--geco-muted); font-size: .92rem; }

.geco-registration > div > .col-xl-12 { padding: 0; }
.geco-registration .card { min-width: 0 !important; margin: 0 !important; overflow: hidden; border: 0; border-radius: 5px; background: #fff !important; box-shadow: var(--geco-shadow); transition: box-shadow .28s ease, transform .28s ease; }
.geco-registration .card:hover { box-shadow: 0 30px 75px rgba(4, 31, 25, .28); transform: translateY(-4px); }
.geco-registration .card-header { display: block; padding: 22px 28px; color: #fff; border: 0; background: #1abc9c !important; font-size: 1.05rem; font-weight: 500; text-align: center; }
.geco-registration .card-body { padding: 30px; }
.geco-registration .form-control { min-height: 45px; border: 1px solid var(--geco-line); border-radius: 8px; background: #fbfdfc; }
.geco-registration .form-control:focus { border-color: var(--geco-green-700); box-shadow: 0 0 0 3px rgba(23, 107, 85, .12); }
.geco-registration h4 { margin-top: 9px; font-size: 1rem; font-weight: 750; }
.geco-registration .btn-success { border-color: #28a745; background: #28a745; }
.geco-registration .btn-success:hover { border-color: #1e7e34; background: #218838; }
.geco-registration .btn-outline-secondary { border-color: var(--geco-line); color: var(--geco-green-800); background: #f3f7f5; }

.geco-footer { position: relative; z-index: 2; padding: 20px 0; color: rgba(255, 255, 255, .75); border-top: 1px solid rgba(255, 255, 255, .13); background: rgba(4, 31, 25, .76); font-size: .85rem; }
.geco-footer-row { justify-content: space-between; gap: 20px; }
.geco-footer p { margin: 0; }
.geco-footer a { margin-left: 20px; color: rgba(255, 255, 255, .75); }
.geco-footer a:hover { color: #fff; }
.geco-cookie-preferences { margin-left: 20px; padding: 0; color: rgba(255, 255, 255, .75); border: 0; background: transparent; font: inherit; cursor: pointer; }
.geco-cookie-preferences:hover, .geco-cookie-preferences:focus { color: #fff; text-decoration: underline; }

.geco-auth-page { display: flex; min-height: 100vh; flex-direction: column; background: linear-gradient(135deg, rgba(4, 31, 25, .94), rgba(10, 59, 48, .82)), url('../slidebg/images/GECO-01.jpg') center/cover fixed; }
.geco-auth-header { display: flex; align-items: center; justify-content: space-between; padding: 22px 5vw; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.geco-back-home { color: rgba(255, 255, 255, .86); font-weight: 650; }
.geco-back-home:hover { color: #fff; }
.geco-auth-main { display: grid; flex: 1; place-items: center; width: 100%; padding: 48px 20px; }
.geco-auth-card { width: min(100%, 540px); padding: 38px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 22px; background: rgba(255, 255, 255, .97); box-shadow: var(--geco-shadow); animation: geco-fade-up .7s .08s ease-out both; transition: box-shadow .28s ease, transform .28s ease; }
.geco-auth-card:hover { box-shadow: 0 30px 75px rgba(4, 31, 25, .28); transform: translateY(-4px); }
.geco-auth-icon { display: grid; width: 48px; height: 48px; margin-bottom: 24px; place-items: center; color: var(--geco-green-950); border-radius: 13px; background: var(--geco-gold); font-size: 1.4rem; font-weight: 800; }
.geco-auth-card h1 { margin: 0 0 12px; color: var(--geco-green-950); font-size: 2rem; font-weight: 750; letter-spacing: -.025em; }
.geco-auth-intro { margin-bottom: 28px; color: var(--geco-muted); line-height: 1.65; }
.geco-auth-form label { color: var(--geco-ink); font-size: .9rem; font-weight: 700; }
.geco-auth-form .form-control { min-height: 50px; border-color: var(--geco-line); border-radius: 8px; }
.geco-auth-form .form-control:focus { border-color: var(--geco-green-700); box-shadow: 0 0 0 3px rgba(23, 107, 85, .12); }
.geco-auth-form .form-group { margin-bottom: 20px; }
.geco-auth-help { margin: 20px 0 0; color: var(--geco-muted); font-size: .88rem; text-align: center; }
.geco-auth-help a { color: var(--geco-green-700); font-weight: 700; }
.geco-auth-footer { padding: 20px; color: rgba(255, 255, 255, .68); font-size: .82rem; text-align: center; }
.geco-password-field { position: relative; }
.geco-password-field .form-control { padding-right: 88px; }
.geco-password-toggle { position: absolute; top: 50%; right: 12px; padding: 3px 4px; color: var(--geco-green-700); border: 0; background: transparent; transform: translateY(-50%); font-size: .8rem; font-weight: 750; }
.geco-password-note { padding: 12px 14px; color: var(--geco-muted); border-radius: 8px; background: var(--geco-green-100); font-size: .84rem; }

body.geco-forgot-page { background: linear-gradient(112deg, rgba(4, 31, 25, .84), rgba(10, 59, 48, .62)), url('../slidebg/images/GECO-01.jpg') center/cover fixed; }
.geco-forgot-page .geco-auth-header { background: rgba(4, 31, 25, .52); backdrop-filter: blur(8px); }
.geco-forgot-page .geco-auth-main { padding-top: 54px; padding-bottom: 54px; }
.geco-forgot-page .geco-auth-card { width: min(100%, 520px); padding: 40px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .62); border-radius: 8px; background: rgba(255, 255, 255, .98); box-shadow: 0 28px 75px rgba(4, 31, 25, .34); }
.geco-forgot-page .geco-auth-card::before { content: ""; display: block; width: 54px; height: 4px; margin: -40px 0 34px; border-radius: 0 0 4px 4px; background: #28a745; }
.geco-forgot-page .geco-auth-icon { border-radius: 7px; background: var(--geco-green-100); color: var(--geco-green-700); }
.geco-forgot-page .geco-auth-card h1 { font-size: 1.85rem; }
.geco-forgot-page .geco-auth-intro { margin-bottom: 25px; }
.geco-forgot-page .geco-auth-form .form-control { background: #fbfdfc; }
.geco-forgot-page .geco-btn-primary { color: #fff; border-color: #28a745; background: #28a745; }
.geco-forgot-page .geco-btn-primary:hover, .geco-forgot-page .geco-btn-primary:focus { color: #fff; border-color: #218838; background: #218838; }

body.geco-about-page { background: linear-gradient(120deg, rgba(4, 31, 25, .88), rgba(10, 59, 48, .7)), url('../slidebg/images/GECO-01.jpg') center/cover fixed; }
.geco-about-main { flex: 1; width: min(1240px, 100%); margin: 0 auto; padding: 72px 5vw 58px; }
.geco-about-hero { max-width: 820px; color: #fff; animation: geco-fade-up .7s ease-out both; }
.geco-about-hero h1 { margin: 6px 0 20px; color: #fff; font-size: clamp(2.5rem, 5vw, 4.7rem); font-weight: 750; letter-spacing: -.04em; }
.geco-about-hero p { margin: 0; color: rgba(255, 255, 255, .82); font-size: 1.12rem; line-height: 1.75; }
.geco-about-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 48px; }
.geco-about-card { padding: 30px; border: 1px solid rgba(255, 255, 255, .38); border-radius: 8px; background: rgba(255, 255, 255, .97); box-shadow: 0 18px 45px rgba(4, 31, 25, .18); animation: geco-fade-up .65s ease-out both; transition: border-color .28s ease, box-shadow .28s ease, transform .28s ease; }
.geco-about-card:nth-child(1) { animation-delay: .08s; }
.geco-about-card:nth-child(2) { animation-delay: .16s; }
.geco-about-card:nth-child(3) { animation-delay: .24s; }
.geco-about-card:hover { border-color: rgba(26, 188, 156, .55); box-shadow: 0 26px 58px rgba(4, 31, 25, .25); transform: translateY(-7px); }
.geco-about-icon { display: grid; width: 46px; height: 46px; margin-bottom: 22px; place-items: center; color: #fff; border-radius: 6px; background: #1abc9c; font-size: 1.15rem; transition: transform .28s ease; }
.geco-about-card:hover .geco-about-icon { transform: rotate(-6deg) scale(1.08); }
.geco-about-card h2 { margin: 0 0 11px; color: var(--geco-green-950); font-size: 1.25rem; font-weight: 750; }
.geco-about-card p { margin: 0; color: var(--geco-muted); line-height: 1.65; }
.geco-about-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 22px; padding: 26px 30px; color: #fff; border: 1px solid rgba(255, 255, 255, .22); border-radius: 8px; background: rgba(4, 31, 25, .72); animation: geco-fade-in .8s .3s ease-out both; }
.geco-about-cta h2 { margin: 0 0 5px; color: #fff; font-size: 1.25rem; }
.geco-about-cta p { margin: 0; color: rgba(255, 255, 255, .72); }
.geco-about-cta .btn { flex: 0 0 auto; }

body.geco-contact-page { background: linear-gradient(120deg, rgba(4, 31, 25, .88), rgba(10, 59, 48, .7)), url('../slidebg/images/GECO-02.jpg') center/cover fixed; }
.geco-contact-main { flex: 1; width: min(1120px, 100%); margin: 0 auto; padding: 64px 5vw 52px; }
.geco-contact-intro { max-width: 760px; color: #fff; animation: geco-fade-up .7s ease-out both; }
.geco-contact-intro h1 { margin: 6px 0 18px; color: #fff; font-size: clamp(2.5rem, 5vw, 4.4rem); font-weight: 750; letter-spacing: -.04em; }
.geco-contact-intro p { margin: 0; color: rgba(255, 255, 255, .82); font-size: 1.08rem; line-height: 1.7; }
.geco-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 42px; }
.geco-contact-card { padding: 32px; border: 1px solid rgba(255, 255, 255, .38); border-radius: 8px; background: rgba(255, 255, 255, .97); box-shadow: 0 18px 45px rgba(4, 31, 25, .18); animation: geco-fade-up .68s ease-out both; transition: border-color .28s ease, box-shadow .28s ease, transform .28s ease; }
.geco-contact-card:nth-child(1) { animation-delay: .1s; }
.geco-contact-card:nth-child(2) { animation-delay: .2s; }
.geco-contact-card:hover { border-color: rgba(26, 188, 156, .55); box-shadow: 0 26px 58px rgba(4, 31, 25, .25); transform: translateY(-6px); }
.geco-contact-card h2 { margin: 0 0 24px; color: var(--geco-green-950); font-size: 1.4rem; font-weight: 750; }
.geco-contact-item { display: flex; gap: 16px; margin-top: 21px; }
.geco-contact-icon { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; color: #fff; border-radius: 6px; background: #1abc9c; animation: geco-icon-pulse 2.8s ease-in-out infinite; transition: transform .25s ease; }
.geco-contact-item:hover .geco-contact-icon { transform: scale(1.08); }
.geco-contact-item strong { display: block; margin-bottom: 3px; color: var(--geco-green-950); }
.geco-contact-item p { margin: 0; color: var(--geco-muted); line-height: 1.55; }
.geco-contact-item a { color: var(--geco-green-700); font-weight: 700; }
.geco-contact-help > p { margin: -13px 0 22px; color: var(--geco-muted); line-height: 1.6; }
.geco-contact-link { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 0; color: var(--geco-green-950); border-top: 1px solid var(--geco-line); }
.geco-contact-link strong, .geco-contact-link small { display: block; }
.geco-contact-link small { margin-top: 3px; color: var(--geco-muted); }
.geco-contact-link i { color: #1abc9c; transition: transform .22s ease; }
.geco-contact-link:hover { color: #1abc9c; }
.geco-contact-link:hover i { transform: translateX(6px); }
.geco-auth-footer a { margin-left: 16px; color: rgba(255, 255, 255, .82); font-weight: 700; }
.geco-auth-footer a:hover { color: #fff; }

.geco-verification-page { min-height: 100vh; color: #101827; background: #f6faf8; }
body.geco-verification-page { display: flex; min-height: 100vh; flex-direction: column; margin: 0; background: #f6faf8; }
.geco-verification-header { border-bottom: 1px solid rgba(255, 255, 255, .13); background: var(--geco-green-950); }
.geco-verification-header .geco-brand img { height: 42px; }
.geco-verification-home { display: inline-flex; align-items: center; gap: 8px; padding: 10px 17px; color: #fff; border: 1px solid rgba(255, 255, 255, .48); border-radius: 7px; font-weight: 750; }
.geco-verification-home:hover, .geco-verification-home:focus { color: var(--geco-green-950); border-color: var(--geco-gold); background: var(--geco-gold); }
.geco-verification-main { flex: 1 0 auto; width: 100%; min-height: 0; margin: 0; background: #f6faf8; }
.geco-verification-hero { width: 100%; padding: 52px 20px 62px; color: #fff; background: linear-gradient(105deg, rgba(6, 45, 37, .97), rgba(23, 107, 85, .9)), url('../slidebg/images/GECO-02.jpg') center/cover; }
.geco-verification-hero-content { display: grid; grid-template-columns: minmax(0, 720px) minmax(400px, 440px); gap: 40px; width: min(1200px, 100%); margin: 0 auto; align-items: center; }
.geco-verification-intro { color: #fff; animation: geco-fade-up .7s ease-out both; }
.geco-verification-kicker { display: block; margin-bottom: 13px; color: var(--geco-gold); font-size: .78rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.geco-verification-intro h1 { margin: 0 0 14px; color: #fff; font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; font-size: 28px; font-weight: 750; line-height: 1.1; letter-spacing: -.025em; }
.geco-verification-intro > p { max-width: 800px; margin: 0; color: rgba(255, 255, 255, .84); font-size: 1.08rem; line-height: 1.65; }
.geco-verification-card { padding: 28px; border: 1px solid rgba(255, 255, 255, .52); border-radius: 8px; background: rgba(255, 255, 255, .97); box-shadow: var(--geco-shadow); animation: geco-fade-up .72s .12s ease-out both; }
.geco-verification-card label { display: block; margin: 0 0 14px; color: #101827; font-size: .98rem; font-weight: 800; }
.geco-verification-search { display: flex; align-items: stretch; min-height: 50px; overflow: hidden; border: 1px solid #d2e3da; border-radius: 9px; background: #fff; transition: border-color .22s ease, box-shadow .22s ease; }
.geco-verification-search:focus-within { border-color: var(--geco-green-700); box-shadow: 0 0 0 4px rgba(23, 107, 85, .12); }
.geco-co-search-icon { display: grid; flex: 0 0 58px; place-items: center; color: var(--geco-green-700); font-size: 1.2rem; }
.geco-verification-search .form-control { min-width: 0; height: 48px; padding: 7px 4px; color: #101827; border: 0; border-radius: 0; background: transparent; font-size: .94rem; box-shadow: none; }
.geco-verification-search .form-control::placeholder { color: #8b94a4; }
.geco-verification-search .form-control:focus { border: 0; background: transparent; box-shadow: none; }
.geco-verification-search .btn { flex: 0 0 142px; color: #fff; border: 0; border-radius: 0; background: var(--geco-green-700); font-weight: 800; }
.geco-verification-search .btn:hover, .geco-verification-search .btn:focus { color: #fff; background: var(--geco-green-800); }
.geco-verification-search .btn:disabled { opacity: .5; }
.geco-verification-help { margin: 15px 0 0; color: #65758f; font-size: .86rem; line-height: 1.55; }
.geco-verification-status-zone { min-height: 300px; padding: 35px 14px 44px; background: #f6faf8; }
.geco-verification-result { display: flex; align-items: center; gap: 20px; width: min(1200px, 100%); min-height: 110px; margin: 0 auto; padding: 24px 28px; border: 1px solid #d0e5da; border-radius: 10px; background: #fff; box-shadow: 0 16px 42px rgba(20, 54, 42, .08); animation: geco-fade-up .6s ease-out both; }
.geco-result-icon { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 50%; }
.geco-verification-result.is-valid .geco-result-icon { color: #fff; background: var(--geco-green-700); }
.geco-verification-result.is-empty .geco-result-icon { color: #62470c; background: #f7df9e; }
.geco-verification-page .geco-verification-result.is-valid .geco-result-icon { background: var(--geco-green-700); }
.geco-verification-result.is-ready .geco-result-icon { color: var(--geco-green-700); border: 2px solid var(--geco-green-700); border-radius: 8px; }
.geco-verification-page .geco-footer { flex-shrink: 0; margin-top: auto; margin-bottom: 0; }
.geco-result-label { display: block; margin-bottom: 2px; color: var(--geco-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.geco-result-content { flex: 1; min-width: 0; }
.geco-verification-result strong { display: block; color: var(--geco-green-950); font-size: 1.08rem; }
.geco-verification-result p { margin: 3px 0 0; color: var(--geco-muted); font-size: .88rem; }
.geco-certificate-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 20px 0 0; padding-top: 18px; border-top: 1px solid var(--geco-line); }
.geco-certificate-details > div { min-width: 0; }
.geco-certificate-details dt { margin-bottom: 5px; color: var(--geco-muted); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.geco-certificate-details dd { margin: 0; overflow-wrap: anywhere; color: var(--geco-green-950); font-size: .9rem; font-weight: 700; line-height: 1.45; }
.geco-certificate-section-title { margin: 22px 0 12px; padding-top: 18px; border-top: 1px solid rgba(17, 106, 82, .16); color: var(--geco-ink); font-size: 17px; font-weight: 700; }
.geco-certificate-route-details { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 0; padding-top: 0; border-top: 0; }

.geco-cookie-banner[hidden] { display: none !important; }
.geco-cookie-banner { position: fixed; right: 18px; bottom: 18px; left: 18px; z-index: 1100; }
.geco-cookie-content { display: flex; align-items: center; justify-content: space-between; gap: 28px; width: min(1180px, 100%); margin: 0 auto; padding: 18px 20px; color: #fff; border: 1px solid rgba(255, 255, 255, .18); border-radius: 8px; background: rgba(4, 31, 25, .96); box-shadow: 0 18px 50px rgba(0, 0, 0, .32); }
.geco-cookie-copy strong { display: block; margin-bottom: 4px; color: #fff; font-size: .96rem; }
.geco-cookie-copy p { margin: 0; color: rgba(255, 255, 255, .76); font-size: .84rem; line-height: 1.5; }
.geco-cookie-actions { display: flex; flex: 0 0 auto; gap: 9px; }
.geco-cookie-actions .btn { min-width: 125px; padding: 9px 16px; border-radius: 6px; font-size: .86rem; font-weight: 750; }
.geco-cookie-refuse { color: var(--geco-green-950); border: 1px solid #fff; background: #fff; }
.geco-cookie-refuse:hover, .geco-cookie-refuse:focus { color: var(--geco-green-950); border-color: #e5ece9; background: #e5ece9; }
.geco-cookie-accept { color: #fff; border: 1px solid #28a745; background: #28a745; }
.geco-cookie-accept:hover, .geco-cookie-accept:focus { color: #fff; border-color: #1e7e34; background: #218838; }

@media (max-width: 1199px) {
    .geco-header-row { align-items: flex-start; }
    .geco-header-actions { align-items: flex-end; flex-direction: column; gap: 12px; }
    .geco-intro { padding-right: 4vw; }
}

@media (max-width: 991px) {
    .geco-header-row, .geco-header-actions { align-items: stretch; flex-direction: column; }
    .geco-brand { justify-content: center; }
    .geco-btn-outline { text-align: center; }
    .geco-login-form { justify-content: center; }
    .geco-forgot-link { text-align: center; }
    .geco-hero { padding-top: 26px; }
    .geco-hero-row { min-height: 0; }
    .geco-intro { padding: 24px 15px 40px; text-align: center; }
    .geco-lead { margin-left: auto; margin-right: auto; }
    .geco-trust-list { justify-content: center; }
    .geco-registration { margin-top: 0; margin-bottom: 35px; }
    .geco-verification-hero-content { grid-template-columns: 1fr; gap: 32px; }
    .geco-about-grid { grid-template-columns: 1fr; }
    .geco-contact-grid { grid-template-columns: 1fr; }
    .geco-certificate-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .geco-certificate-route-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575px) {
    .geco-shell { padding-left: 18px; padding-right: 18px; }
    .geco-header { padding: 14px 0; }
    .geco-brand img { height: 31px; }
    .geco-login-form { display: grid; grid-template-columns: 1fr; }
    .geco-login-field { width: 100%; }
    .geco-forgot-link { margin: 2px 0 0; }
    .geco-intro h1 { font-size: 1.85rem; }
    .geco-lead { font-size: 1rem; }
    .geco-trust-list { align-items: flex-start; flex-direction: column; }
    .geco-registration { padding: 0; border-radius: 4px; }
    .geco-registration .card { border-radius: 4px; }
    .geco-registration .card-header { padding: 18px 16px; }
    .geco-registration .card-body { padding: 24px 18px; }
    .geco-registration .input-group { display: block; }
    .geco-registration .input-group-append { margin-top: 7px; }
    .geco-registration .input-group-append .btn { width: 100%; border-radius: 8px; }
    .geco-footer-row { align-items: flex-start; flex-direction: column; }
    .geco-footer a { display: block; margin: 5px 0 0; }
    .geco-cookie-preferences { display: block; margin: 7px 0 0; }
    .geco-auth-header { padding: 18px 20px; }
    .geco-back-home { font-size: .82rem; }
    .geco-auth-main { padding: 28px 14px; }
    .geco-auth-card { padding: 27px 20px; border-radius: 16px; }
    .geco-auth-card h1 { font-size: 1.62rem; }
    .geco-forgot-page .geco-auth-card { padding: 27px 20px; border-radius: 7px; }
    .geco-forgot-page .geco-auth-card::before { margin: -27px 0 26px; }
    .geco-forgot-page .geco-auth-card h1 { font-size: 1.58rem; }
    .geco-verification-hero { padding: 38px 18px; }
    .geco-verification-intro h1 { font-size: 28px; }
    .geco-verification-intro > p { font-size: .98rem; }
    .geco-verification-card { padding: 22px 17px; }
    .geco-verification-search { flex-wrap: wrap; overflow: visible; }
    .geco-verification-search .form-control { width: calc(100% - 58px); min-height: 48px; }
    .geco-verification-search .btn { flex: 1 0 100%; width: 100%; min-height: 52px; }
    .geco-verification-status-zone { padding: 24px 12px 35px; }
    .geco-verification-result { align-items: flex-start; padding: 22px 18px; }
    .geco-certificate-details { grid-template-columns: 1fr; }
    .geco-certificate-route-details { grid-template-columns: 1fr; }
    .geco-about-main { padding: 45px 18px 35px; }
    .geco-about-hero h1 { font-size: 2.35rem; }
    .geco-about-hero p { font-size: 1rem; }
    .geco-about-card { padding: 24px 20px; }
    .geco-about-cta { align-items: stretch; flex-direction: column; padding: 23px 20px; }
    .geco-about-cta .btn { width: 100%; }
    .geco-contact-main { padding: 43px 18px 35px; }
    .geco-contact-intro h1 { font-size: 2.35rem; }
    .geco-contact-intro p { font-size: 1rem; }
    .geco-contact-card { padding: 25px 20px; }
    .geco-cookie-banner { right: 10px; bottom: 10px; left: 10px; }
    .geco-cookie-content { align-items: stretch; flex-direction: column; gap: 15px; padding: 17px; }
    .geco-cookie-actions { width: 100%; }
    .geco-cookie-actions .btn { flex: 1; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .geco-public *, .geco-public *::before, .geco-public *::after { transition-duration: .01ms !important; }
}
