:root {
    --red: #ed1c24;
    --red-light: #f26066;
    --red-deep: #861e22;
    --ink: #231f20;
    --ink-soft: #353031;
    --cream: #f8f5f1;
    --line: rgba(35, 31, 32, 0.18);
    --muted: #6f6867;
    --nav-height: 78px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { color: var(--ink); background: var(--cream); font-family: "Manrope", Arial, sans-serif; font-size: 16px; line-height: 1.55; }
a { color: inherit; }
section, header { scroll-margin-top: var(--nav-height); }
.container { max-width: 1250px; }

.site-navbar { min-height: var(--nav-height); background: rgba(248, 245, 241, .94); border-bottom: 1px solid rgba(35, 31, 32, .12); backdrop-filter: blur(13px); }
.navbar-brand { display: inline-flex; align-items: center; gap: .75rem; }
.navbar-brand img, .footer-logo img { display: block; width: 84px; height: auto; }
.navbar-brand-copy { display: grid; gap: .12rem; padding-left: .8rem; color: var(--ink); border-left: 1px solid rgba(134, 30, 34, .55); line-height: 1; }
.navbar-brand-copy strong, .navbar-brand-copy span { color: var(--ink); font-size: .91rem; font-weight: 800; letter-spacing: -.045em; white-space: nowrap; }
.footer-logo img { width: 113px; }
.navbar-nav { gap: .4rem; }
.nav-link { padding: .65rem 1rem !important; color: var(--ink); font-size: .82rem; font-weight: 700; }
.nav-link:hover, .nav-link:focus { color: var(--red); }
.nav-contact { display: inline-block; padding: .65rem 1.15rem; color: #fff; background: var(--red-deep); border-radius: 99px; font-size: .78rem; font-weight: 800; letter-spacing: .01em; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.nav-contact:hover { color: #fff; background: var(--ink); transform: translateY(-1px); }
.nav-contact span { margin-left: .35rem; }
.navbar-toggler { border: 0; padding: .5rem; }
.navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(237, 28, 36, .18); }
.navbar-toggler span { display: block; width: 23px; height: 2px; margin: 5px; background: var(--ink); }

.hero { position: relative; display: flex; min-height: min(735px, calc(100vh - 20px)); padding: calc(var(--nav-height) + 6rem) 0 2.4rem; overflow: hidden; color: #fff; background: var(--ink); }
.hero-content { position: relative; z-index: 1; margin: auto; }
.hero h1, h2 { margin: 0; font-size: clamp(3.4rem, 7vw, 6.95rem); font-weight: 800; letter-spacing: -.075em; line-height: .93; }
h2 { font-size: clamp(2.7rem, 5vw, 5.3rem); }
em { color: var(--red-light); font-family: "Newsreader", Georgia, serif; font-size: 1.08em; font-weight: 500; letter-spacing: -.08em; }
.eyebrow { display: flex; align-items: center; gap: .7rem; margin: 0 0 1.5rem; color: var(--red); font-family: "DM Mono", monospace; font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; }
.eyebrow span { display: inline-block; width: 26px; height: 2px; background: currentColor; }
.eyebrow-light { color: var(--red-light); }
.hero-intro { margin-top: 3rem; }
.hero-intro p { margin-bottom: 1.7rem; color: rgba(255, 255, 255, .72); font-size: 1rem; line-height: 1.7; }
.text-link, .brand-link { display: inline-block; border-bottom: 1px solid currentColor; font-size: .82rem; font-weight: 800; letter-spacing: .01em; line-height: 1.7; text-decoration: none; transition: color .2s ease, border-color .2s ease; }
.text-link-light { color: #fff; }
.text-link:hover { color: var(--red-light); }
.text-link span, .brand-link span { margin-left: .3rem; font-size: 1.1em; }
.hero-footer { position: absolute; z-index: 1; right: 0; bottom: 1.7rem; left: 0; display: flex; justify-content: space-between; color: rgba(255, 255, 255, .52); font-family: "DM Mono", monospace; font-size: .62rem; letter-spacing: .09em; }
.hero-orbit { position: absolute; border: 1px solid rgba(242, 96, 102, .56); border-radius: 50%; }
.hero-orbit-one { width: min(62vw, 900px); height: min(62vw, 900px); top: -42%; right: -6%; }
.hero-orbit-two { width: min(46vw, 660px); height: min(46vw, 660px); top: -20%; right: 12%; border-color: rgba(255, 255, 255, .16); }
.hero-orbit-one::after { content: ""; position: absolute; top: 20%; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--red-light); box-shadow: 0 0 0 7px rgba(242, 96, 102, .12), 0 0 23px rgba(242, 96, 102, .6); }
.hero-spark { position: absolute; z-index: 0; top: 38%; right: 24%; width: 8px; height: 8px; border-radius: 50%; background: var(--red-light); box-shadow: 0 0 0 7px rgba(242, 96, 102, .10), 0 0 25px rgba(242, 96, 102, .55); }
.hero-grid { position: absolute; inset: 0; opacity: .3; background-image: linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px); background-size: 80px 80px; mask-image: linear-gradient(90deg, transparent, #000 54%, transparent); }

@media (prefers-reduced-motion: no-preference) {
    .hero-orbit-one { animation: orbit-drift-one 10s ease-in-out infinite alternate; }
    .hero-orbit-two { animation: orbit-drift-two 13s ease-in-out infinite alternate; }
    .hero-spark { animation: spark-drift 8s ease-in-out infinite alternate; }
    .hero-grid { animation: grid-breathe 12s ease-in-out infinite alternate; }
}

@keyframes orbit-drift-one { from { transform: rotate(-5deg) scale(1); } to { transform: rotate(11deg) scale(1.045); } }
@keyframes orbit-drift-two { from { transform: rotate(0deg) translate(0, 0); } to { transform: rotate(-7deg) translate(-15px, 10px); } }
@keyframes spark-drift { from { transform: translate(-28px, -14px); opacity: .55; } to { transform: translate(38px, 28px); opacity: 1; } }
@keyframes grid-breathe { from { opacity: .2; } to { opacity: .38; } }

.section { padding: 9rem 0; }
.section-intro { margin-bottom: 4.5rem; }
.intro-copy { max-width: 370px; margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.75; }
.brand-row { border: 1px solid var(--line); }
.brand-card { display: flex; min-height: 350px; padding: 2rem 2.25rem; flex-direction: column; justify-content: space-between; gap: 1.5rem; transition: background .3s ease, color .3s ease; }
.brand-card-ebecas { border-right: 1px solid var(--line); background: #fff; }
.brand-card-edmiss { background: #eee8e1; }
.brand-card:hover { color: #fff; background: var(--ink); }
.brand-logo { display: block; max-width: 290px; max-height: 115px; object-fit: contain; object-position: left center; transition: transform .25s ease; }
.brand-logo-link { display: inline-block; width: fit-content; }
.brand-logo-link:focus-visible { outline: 3px solid var(--red); outline-offset: 6px; }
.brand-logo-link:hover .brand-logo { transform: scale(1.035); }
.brand-logo-ebecas { width: 250px; }
.brand-logo-edmiss { width: 270px; }
.brand-card-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.brand-card-bottom p { max-width: 250px; margin: 0; color: var(--muted); font-size: .95rem; line-height: 1.65; }
.brand-card:hover .brand-card-bottom p { color: rgba(255, 255, 255, .67); }
.brand-link { flex: 0 0 auto; color: var(--ink); }
.brand-card:hover .brand-link { color: #fff; }

.about { color: #fff; background: var(--ink-soft); }
.about .eyebrow { color: var(--red-light); }
.about-heading { max-width: 750px; }
.about-copy { max-width: 595px; margin: 3rem 0 0; }
.about-copy p { margin: 0 0 1.35rem; color: rgba(255, 255, 255, .66); font-size: 1.05rem; line-height: 1.75; }
.about-copy p:first-child { color: #fff; }
.principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 7rem; padding-top: 1.65rem; border-top: 1px solid rgba(255, 255, 255, .23); }
.principles div { display: flex; flex-direction: column; gap: 1.7rem; }
.principles span { color: var(--red-light); font-family: "DM Mono", monospace; font-size: .64rem; letter-spacing: .08em; }
.principles strong { font-size: 1.1rem; font-weight: 600; line-height: 1.38; }

.contact { padding: 7rem 0; background: var(--cream); }
.contact-panel { position: relative; padding: 5.5rem clamp(2rem, 7vw, 7rem); overflow: hidden; color: #fff; background: var(--red-deep); }
.contact-panel h2 em { color: #fff; }
.contact-copy { max-width: 495px; margin: 2rem 0 2.3rem; color: rgba(255, 255, 255, .85); font-size: 1.05rem; line-height: 1.75; }
.button-light { display: inline-block; padding: .85rem 1.2rem; color: var(--ink); background: #fff; border-radius: 99px; font-size: .8rem; font-weight: 800; text-decoration: none; transition: transform .2s ease, background .2s ease; }
.button-light:hover { color: var(--ink); background: var(--cream); transform: translateY(-2px); }
.button-light span { margin-left: .35rem; }
.contact-mark { position: absolute; top: -8.5rem; right: 2%; color: rgba(255, 255, 255, .12); font-family: "Newsreader", Georgia, serif; font-size: 29rem; font-weight: 500; line-height: 1; }

.site-footer { padding: 3.2rem 0 1.6rem; color: rgba(255, 255, 255, .64); background: var(--ink); }
.footer-top { display: grid; grid-template-columns: 1fr auto auto; gap: 4rem; align-items: start; }
.footer-contact { display: grid; gap: .25rem; }
.footer-contact a, .site-footer address, .footer-bottom { color: rgba(255, 255, 255, .64); font-size: .78rem; font-style: normal; line-height: 1.7; text-decoration: none; }
.footer-contact a:hover, .footer-bottom a:hover { color: var(--red-light); }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 4rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .16); }
.footer-bottom a { color: #fff; text-decoration: none; }

@media (max-width: 991.98px) {
    .navbar-collapse { padding: 1rem 0 .5rem; }
    .navbar-nav { align-items: flex-start !important; }
    .nav-link { padding-left: 0 !important; }
    .nav-contact { margin-top: .4rem; }
    .hero { min-height: 680px; }
    .hero-intro { margin-top: 2.5rem; }
    .section { padding: 6.5rem 0; }
    .section-intro { margin-bottom: 3rem; }
    .intro-copy { margin-top: 1.7rem; }
    .brand-card { min-height: 330px; }
    .brand-card-ebecas { border-right: 0; border-bottom: 1px solid var(--line); }
    .about-heading { margin-top: 1.5rem; }
    .contact { padding: 5rem 0; }
}

@media (max-width: 575.98px) {
    :root { --nav-height: 68px; }
    .navbar-brand { gap: .55rem; }
    .navbar-brand img { width: 64px; }
    .navbar-brand-copy { gap: .1rem; padding-left: .55rem; }
    .navbar-brand-copy strong, .navbar-brand-copy span { font-size: .78rem; }
    .hero { min-height: 650px; padding-top: calc(var(--nav-height) + 4.5rem); }
    .hero h1 { font-size: clamp(3.15rem, 16vw, 4.4rem); }
    h2 { font-size: clamp(2.6rem, 13.5vw, 3.65rem); }
    .hero-footer { bottom: 1.15rem; font-size: .53rem; }
    .hero-orbit-one { width: 620px; height: 620px; top: -8%; right: -100%; }
    .hero-orbit-two { width: 440px; height: 440px; top: 6%; right: -53%; }
    .hero-grid { background-size: 60px 60px; }
    .section { padding: 5rem 0; }
    .brand-card { min-height: auto; padding: 1.55rem; justify-content: flex-start; gap: 2.5rem; }
    .brand-card-bottom { align-items: flex-start; flex-direction: column; gap: 1.3rem; }
    .brand-logo { max-width: 205px; }
    .principles { grid-template-columns: 1fr; gap: 2.2rem; margin-top: 4rem; }
    .principles div { display: grid; grid-template-columns: 48px 1fr; align-items: start; gap: 1rem; }
    .principles strong { font-size: 1rem; }
    .contact-panel { padding: 4rem 1.7rem; }
    .contact-mark { top: -3rem; right: -2rem; font-size: 15rem; }
    .footer-top { grid-template-columns: 1fr; gap: 1.7rem; }
    .footer-bottom { margin-top: 2.6rem; }
}
