/* Minimal custom styles to align with provided assets */
:root {
    --primary: #0d6efd;
    /* Font stacks inferred from Figma export (Futura Bk BT / Futura Md BT)
       Use local Futura variants if available, otherwise fall back gracefully */
    --font-body: "Futura Bk BT";
    --font-heading: "Futura Md BT";
    /* Key sizes (from Figma export) */
    --display-xl: 148px;
    /* very large decorative numbers */
    --display-lg: 120px;
    --display-md: 64px;
    --h1-size: 64px;
    --h2-size: 36px;
    --h3-size: 24px;
    --base-size: 16px;
    --small-size: 14px;
}

/* Responsive design tokens: override root variables per breakpoint */
@media (max-width: 575.98px) {
    :root {
        /* phones */
        --h1-size: 40px;
        --h2-size: 26px;
        --h3-size: 16px;
    }
}

@media (min-width: 576px) and (max-width: 991.98px) {
    :root {
        /* small tablets / landscape phones */
        --h1-size: 44px;
        --h2-size: 28px;
        --h3-size: 18px;
        --base-size: 16px;
    }
}

@media (min-width: 1200px) {
    :root {
        /* large desktops (explicit for clarity; matches your defaults) */
        --h1-size: 64px;
        --h2-size: 36px;
        --h3-size: 24px;
        --base-size: 16px;
    }
}

/* Local @font-face for Futura Md BT (place font files in public/fonts)
   Note: You must legally possess the font files and convert/produce web formats
   (WOFF2/WOFF) as needed. Fallbacks are provided in the font-family stacks above. */
@font-face {
    font-family: 'Futura Md BT';
    /* Use a path relative to this CSS file (public/css/) */
    src: url('../fonts/Futura-Md-BT.woff2') format('woff2');
    src: url('../fonts/Futura-Md-BT.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Futura Bk BT';
    src: url('../fonts/Futura-Bk-BT.woff2') format('woff2');
    src: url('../fonts/Futura-Bk-BT.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Many headings in the site use 800 — if you don't have a separate bold file,
   register the same font file for 800 so the browser can match the weight.
   For best results, provide an actual bold/black font file (e.g. Futura-Bd-BT). */
@font-face {
    font-family: 'Futura Md BT';
    src: url('../fonts/Futura-Md-BT.woff2') format('woff2');
    src: url('../fonts/Futura-Md-BT.woff') format('woff');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* Register bold font (prefer woff2/woff; fall back to TTF if that's what you added).
   Recommended: rename to `Futura-Md-BT-Bold.ttf` and convert to .woff2 for production. */
@font-face {
    font-family: 'Futura Md BT';
    src: url('../fonts/Futura-Md-BT-Bold.woff2') format('woff2'),
        url('../fonts/Futura-Md-BT-Bold.woff') format('woff'),
        /* Keep original file name (with spaces) as a last-resort fallback if present */
        url('../fonts/Futura Md BT Bold.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}


/* Prevent unwanted horizontal scroll (small right gap) */
html,
body {
    overflow-x: hidden;
}

/* Base typography */
body {
    font-family: var(--font-body);
    font-size: var(--base-size);
    color: #303841;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6 {
    color: #303841;
}

/* Heading defaults */
h1,
.h1,
.hero-title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--h1-size);
}

h2,
.h2 {
    font-family: var(--font-heading);
    font-weight: 700;
}

p {
    font-size: var(--h3-size);
    line-height: 22px;
}

/* Utility: smaller raised registered trademark symbol */
.reg-mark {
    font-size: 0.55em;
    /* scale relative to surrounding text */
    vertical-align: super;
    line-height: 0;
    /* avoid extra line height impact */
    margin-left: 2px;
    font-weight: 700;
    /* keep it visible at small size */
}

header {
    background-color: #fff;
}

.font-md {
    font-family: 'Futura Md BT';
}

header .container {
    justify-content: center !important;
}

header .navbar-brand img {
    height: auto;
    max-height: 64px;
}


section {
    scroll-margin-top: 80px;
}

/* Hero spacing tweak */
@media (min-width: 992px) {
    .py-lg-6 {
        padding-top: 4.5rem !important;
        padding-bottom: 4.5rem !important;
    }
}

/* Hero carousel sizing (taller to reveal full images) */
.hero-carousel .slide-img {
    height: 85vh;
    object-fit: contain;
}

/* Caption layout similar to design (left column content) */
.hero-carousel .carousel-caption {
    left: 0;
    right: 0;
    bottom: auto;
    top: 18%;
    text-shadow: none;
    color: #303841;
}

.carousel-item.item1 {
    background: linear-gradient(90deg, #f6cf34, #f7d540);
}

.carousel-item.item2 {
    background: #a7a4a1;
}

.carousel-item.item3 {
    background: #1a5c78;
}

.carousel-item.item4 {
    background: #383f47;
}

.hero-carousel .carousel-item {
    height: 675px;
}


.hero-carousel h1 {
    color: #303841;
}

.h1 {
    font-size: var(--h1-size);
    font-weight: 700;
    line-height: 1.1;
    font-family: var(--font-heading);
}

/* Indicators spacing */
.hero-carousel .carousel-indicators {
    bottom: 1.25rem;
}

.hero-carousel .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #fff;
    opacity: .7;
}

.hero-carousel .carousel-indicators .active {
    opacity: 1;
    background-color: #303841;
}

.card img {
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .05));
}

footer img {
    display: block
}

/* Header pill bar */
.header-bar {
    box-shadow: 0 8px 20px rgba(0, 0, 0, .08) !important;
    border-radius: 15px;
}


.header-bar {
    padding-left: 1rem;
    padding-right: 1rem;
}

.nav-center .nav-link {
    padding: .5rem 1.25rem;
    position: relative;
}

.nav-center .nav-link.fw-semibold {
    color: #1A5C78 !important;
}

.nav-center .nav-item+.nav-item .nav-link::before {
    content: '';
    position: absolute;
    left: -.25rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 18px;
    background: rgba(0, 0, 0, .15);
}

.hero-carousel {
    position: relative;
}

/* Optional: if content overlaps on extra small screens, add padding-top here
.hero-carousel{ padding-top: 72px; }
*/

/* Hero first slide text styles */
.hero-title {
    font-weight: 800;
    line-height: 1.1;
    font-size: clamp(1.75rem, 3.2vw + 1rem, var(--display-md));
    color: #303841;
    font-family: var(--font-heading);
}

.hero-subtitle {
    font-size: var(--h2-size);
    color: #303841;
    font-family: var(--font-heading);
    line-height: var(--h2-size);
}

.hero-sep {
    width: 100%;
    max-width: 520px;
    height: 1px;
    background: rgba(0, 0, 0, .2);
    margin: .75rem 0 1rem;
}

.hero-desc {
    font-family: var(--font-heading);
    color: #374151;
    font-size: var(--h3-size);
}

.hero-cta {
    background: #2f3b48;
    color: #fff;
    padding: .9rem 1.5rem;
    font-weight: 400;
    border-radius: 0;
    width: 480px;
}

.hero-cta:hover {
    background: #24303b;
    color: #fff;
}

/* Slide 2 CTA color */
.hero-cta-teal {
    background: #0d5e72;
    color: #fff;
    padding: .9rem 1.5rem;
    font-weight: 400;
    border: none;
    width: 70%;
    border-radius: 0;
}

.hero-cta-teal:hover {
    background: #0b4f60;
    color: #fff;
}

/* Slide 3 CTA color */
.hero-cta-yellow {
    background: #ffd32a;
    color: #303841;
    padding: .9rem 1.5rem;
    font-weight: 400;
    border: none;
    width: 65% !important;
    border-radius: 0;
}

.hero-cta-yellow:hover {
    background: #f4c21f;
    color: #303841;
}

/* Increase X padding for hero captions */
.hero-carousel .carousel-caption .container {
    padding-left: 1rem;
    padding-right: 1rem;
}



/* Services section cards */
.service-card {
    background: #105C78;
    /* teal */
    color: #fff;
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
    position: relative;
    /* ensure absolute-positioned icon anchors to this card */
}

.service-card .service-title {
    color: #ffd32a;
    /* yellow */
    font-weight: 800;
    margin: 0 0 .5rem 0;
    line-height: 1.2;
    font-family: var(--font-heading);
    font-size: 1.5rem;
    /* approx 24px in Figma */
}

.service-card .service-copy {
    color: #e8eef2;
    margin: 0;
}

/* Make service icons white and adjust spacing; force top-right */
.service-card .service-icon {
    position: absolute !important;
    top: 1.25rem;
    right: 1.25rem;
    left: auto !important;
    margin: 0 !important;
    display: block;
    height: 22px;
    width: auto !important;
    opacity: .95;
    filter: brightness(0) invert(1);
    z-index: 1;
}

.owl-dots {
    display: none !important;
}

.steps-title {
    font-weight: 800;
    color: #303841;
    line-height: 1.15;
    font-size: 50px;
    font-family: var(--font-heading);
}

.steps-logo {
    height: 220px;
    width: auto;
}

@media (max-width: 575.98px) {
    .steps-logo {
        max-height: 100px;
    }
    .steps-title {
    font-size: 20px;
}
}

.step-card {
    background: #26333d;
    color: #fff;
    border-radius: 16px;
    padding: 1.5rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    position: relative;
}

@media (min-width: 992px) {
    .step-card {
        padding: 2rem;
    }
}

.step-number {
    font-size: 110px;
    font-weight: 800;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px rgba(255, 255, 255, .22);
    margin-bottom: .75rem;
    font-family: var(--font-heading);
}

.step-title {
    color: #ffd32a;
    font-weight: 800;
    line-height: var(--h2-size);
    margin: 0 0 .5rem 0;
    font-size: var(--h2-size);
    height: 130px;
}

@media (min-width: 992px) {
    .step-title {
        height: 100px;
    }
}

.step-desc {
    color: #dbe3e9;
    margin: 0;
}

/* CTA: ¿Quieres Saber más? */
.cta-lead {
    color: #4b5563;
    font-size: var(--h3-size);
    line-height: var(--h3-size);
}

.cta-title {
    font-size: var(--h1-size);
    color: #303841;
}

.cta-btn {
    background: #0d5e72;
    color: #fff;
    border: none;
    border-radius: 0px;
    width: 80%;
}

.cta-btn:hover {
    background: #0b4f60;
    color: #fff;
}

/* Shared diagonal background image for multiple sections */
.diagonal-bg {
    /* Place the provided background image at this path */
    background: url('../resources/Desktop/Background_001.png') no-repeat center top / cover,
        linear-gradient(180deg, #ffffff 0%, #f0f4f7 100%);
}

/* Background 002 for Registro de Marcas */
.bg-section-002 {
    background: url('../resources/Desktop/Background_002.png') center center / cover no-repeat;
}

.branding-section {
    position: relative;
    background-color: #24363c;
    /* deep teal/blue-gray matching screenshot */
    background-image: url('../resources/Desktop/Patron_background.svg');
    background-repeat: no-repeat;
    background-position: center right;
    background-size: 70% auto;
    padding-bottom: 250px !important;
}

.branding-section .bg-gray-700 {
    /* Semi-transparent dark gray so text remains fully opaque */
    background: rgba(73, 83, 91, 0.50);
}

.branding-section .text-white-75 {
    color: rgba(255, 255, 255, .85);
}

.branding-heading {
    font-size: var(--h1-size);
}

.branding-description {
    font-size: var(--h2-size);
    line-height: var(--h2-size);
}

.branding-image {
    margin-top: -20px !important;
}

.reg-section {
    color: #303841;
}

.reg-title {
    font-size: var(--h1-size);
    line-height: 1.1;
}

.reg-lead {
    font-size: var(--h2-size);
    color: #374151;
    line-height: var(--h2-size);
    max-width: 640px;
}

.reg-copy {
    font-size: 22px;
    line-height: 22px;
    color: #4b5563;
    max-width: 620px;
}

.reg-quote {
    color: #384a5a;
    font-size: var(--h2-size);
    line-height: var(--h2-size);
}

.reg-sign {
    max-width: 360px;
}

/* Services row with rounded teal caps */
.reg-services {
    margin-top: 1rem;
}

.reg-card {
    box-shadow: 0 6px 18px rgba(0, 0, 0, .08);
    overflow: hidden;
}

.reg-card-cap {
    background: #0d5e72;
    height: 56px;
    border-top-left-radius: 0;
    border-top-right-radius: 36px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding-left: 16px;
}

.reg-cap-icon {
    filter: brightness(0) invert(1);
    height: 24px;
    opacity: .98;
    width: auto !important;
}

.reg-card-body {
    padding: 1rem 1rem 1.1rem;
    background-color: #fff;
    height: 280px;

}

.reg-card-title {
    color: #3b4148;
    font-size: var(--h3-size);
}

.reg-card-body {
    padding: .85rem .9rem 1.05rem;
}


/* Carousel layout for reg-services */
.reg-carousel .carousel-item {
    display: none;
}

.reg-carousel .carousel-item.active,
.reg-carousel .carousel-item-next,
.reg-carousel .carousel-item-prev {
    display: flex;
    gap: 1rem;
}

/* One-by-one slider (custom) */
.reg-slider {
    overflow: hidden;
    width: 100%;
}

.reg-slider .reg-track {
    display: flex;
    gap: 1rem;
    will-change: transform;
}

.img.reg-cap-icon {
    width: auto;
}
.reg-slider .reg-card {
    flex: 0 0 100%;
}

.color-yellow {
    color: #303841 !important;
    background-color: #FFD32A;
}



.reg-carousel .carousel-item>.reg-card {
    flex: 1 0 0;
}

/* Make full-width container look cleaner */
.reg-section .container-fluid {
    padding-left: 2rem;
    padding-right: 2rem;
}


/* Branding collage hero row: equalize column heights */
.branding-collage-hero .tile {
    position: relative;
    width: 100%;
}

.branding-collage-hero .tile img.tile-img {
    display: block;
    width: 100%;
    height: auto;
}

.branding-collage-hero .tile-fill {
    flex: 1 1 auto;
    min-height: 0;
    /* allow flex child to shrink in Firefox */
    overflow: hidden;
}

.branding-collage-hero .tile-fill img.tile-img {
    width: 100%;
    height: 100%;
    object-fit: fill;
}

/* Split a tile into two equal side-by-side items */
.branding-collage-hero .tile-split {
    display: flex;
    gap: 1rem;
    /* visual gap between the two halves */
    height: 100%;
}

.branding-collage-hero .tile-split .split-item {
    flex: 1 1 0;
    overflow: hidden;
}

.branding-collage-hero .tile-split .split-item .tile-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Web & Domains section */
.web-section {
    background: #105c78;
}

.web-mock {
    filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .25));
}

.web-mock-center {
    max-width: 520px;
}

.web-phone {
    max-width: 420px;
    filter: drop-shadow(0 18px 42px rgba(0, 0, 0, .28));
}

.web-title {
    font-size: var(--h1-size);
    font-weight: 900;
    line-height: var(--h1-size);
    color: #ffffff;
}

.web-subtitle {
    color: #fff;
    font-size: var(--h2-size);
    line-height: var(--h2-size);
}

.web-copy {
    color: #b9c6cc;
    font-size: 1.05rem;
    padding-right: 145px;
}

.how-steps .step {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: #204652;
    color: #e7f1f5;
    padding: .65rem .9rem;
    border-radius: .5rem;
    font-weight: 600;
}

.how-steps .step-icon {
    height: 24px;
    width: 24px;
}

.how-steps .dashed-group {
    border: 2px dashed rgba(255, 255, 255, .35);
    border-radius: .75rem;
    padding: .75rem;
}

/* Roadmap image wrapper */
.how-roadmap-img {
    max-width: 960px;
}

.dominios-image {
    margin-top: -150px;
}

/* Lead capture / CTA section */
.lead-capture-section {
    background: #2f3b43;
    /* dark slate */
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}

.lead-capture-section .lead-mock {
    filter: drop-shadow(0 18px 42px rgba(0, 0, 0, .28));
}

.contacto-form {
    margin-left: -215px;
    z-index: 9999;
}

.collage-blue-item-1 {
    background-color: #105C78;
    color: #fff;
    padding: 210px 60px 10px 15px;
} 
.collage-yellow-item-1 {
    background-color: #FFD32A;
    color: #303841;
    padding: 104px 40px 10px 15px;
}
.collage-blue-item-2 {
    background-color: #105C78;
    color: #fff;
    padding: 100px 40px 10px 15px;
} 
.collage-blue-item-3 {
    background-color: #105C78;
    color: #fff;
    padding: 207px 40px 10px 15px;
} 
.collage-yellow-item-2 {
    background-color: #FFD32A;
    color: #303841;
    padding: 187px 40px 10px 15px;
}
.branding-collage-hero .tile p {
    font-size: 22px;
    font-weight: 600;
}
.lead-title {
    font-size: var(--h1-size);
    font-family: var(--font-heading);
    padding-right: 90px;
}

.lead-form .lead-input {
    min-width: 0;
    width: 100%;
    max-width: 320px;
}

.lead-cta {
    display: inline-block;
    background: #ffd32a;
    color: #303841;
    padding: .9rem 2rem;
    font-weight: 700;
    border: none;
    text-decoration: none;
}

.lead-cta:hover {
    background: #f4c21f
}

/* Mobile tweaks for lead capture */
@media (max-width: 767.98px) {
    .lead-capture-section {
        padding-top: 2rem;
        padding-bottom: 2.5rem;
    }
    .lead-capture-section .lead-title {
        padding-right: 0;
        font-size: var(--h2-size);
        line-height: 1.15;
        margin-bottom: .5rem;
    }
    .lead-capture-section .lead-form {
        width: 100%;
        align-items: stretch !important; /* ensure children expand full width */
        gap: .75rem !important;
    }
    .lead-capture-section .lead-form .lead-input {
        max-width: none;
        width: 100%;
    }
    .lead-capture-section .cta-title {
        color: #fff;
        margin-top: 1rem !important;
    }
    .lead-capture-section .cta-btn {
        width: 100% !important;
        margin-left: 0 !important;
        display: block;
    }
    .lead-capture-section .lead-mock {
        max-width: 100%;
        height: auto;
    }
}

/* Footer (site-footer) */
.site-footer {
    background: #105c78;
    /* teal */
    color: #e6f3f6;
}

.site-footer .footer-link {
    color: #dff2f6;
    text-decoration: none;
    display: inline-block;
    margin: .35rem 0;
}

.site-footer .footer-link:hover {
    text-decoration: underline;
}

.site-footer img {
    max-width: 100%;
    height: auto;
}

/* Footer mobile tweaks */
@media (max-width: 767.98px) {
    .site-footer .container { padding-left: 1rem; padding-right: 1rem; }
    .site-footer .footer-logo { max-height: 96px !important; }
    .site-footer .footer-email { font-size: 1rem; }
    .site-footer .social-icons svg { width: 22px; height: 22px; }
    .site-footer .social-icons { gap: 1rem !important; }
}

.form-control {
    border-radius: 0px !important;
}

/* Ensure navbar toggler icon is visible */
.navbar-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.7)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* Header toggler customizations */
.header-bar.navbar .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23105C78' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}
.header-bar.navbar .navbar-toggler {
    border: 0 !important;
    box-shadow: none !important;
    background-color: transparent;
}
.header-bar.navbar .navbar-toggler:focus,
.header-bar.navbar .navbar-toggler:active {
    box-shadow: none !important;
}

.how-head {
    height: 350px;
}

/* Roadmap details under image */
.how-details .how-item {
    background: transparent;
    border: none;
    border-radius: 0;
}

.icon-square {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: #ffffff22;
    /* translucent white */
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.icon-square img.how-ico {
    width: 52px;
    height: 52px;
    filter: none;
    display: block;
}

/* removed empty ruleset */
.how-details .how-title {
    font-size: 32px;
    font-weight: 500;
    color: #ffffff;
}

.how-details .how-desc {
    margin-top: .5rem;
    color: rgba(255, 255, 255, 0.85);
    font-size: 21px;
    line-height: 24px;
    font-family: var(--font-heading);
}

.how-details .how-ico {
    width: 28px;
    height: 28px;
}

.fw-bold {
    font-weight: 900 !important;
}

/* Base first slide styles */
.hero-carousel .item1 {
    background: #ffd32a;
}

.hero-carousel .item1 .hero-slide-inner {
    width: 100%;
}

/* Image on right removed per request */
.hero-carousel .item1 .hero-art {
    display: none !important;
}

.hero-carousel .item1 .carousel-caption {
    position: static;
}

.branding-points {
    height: 80px;
}

/* Mobile adjustments: move hero caption lower to match provided design */
@media (max-width: 576px) {
    .hero-carousel .carousel-item .container {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    /* Ensure text above image: caption first, picture second */
    .hero-carousel .item3 .carousel-caption { 
        order: 2;
        top: 100px;
        position: relative;
     }
    .hero-carousel .item3 picture { 
        order: 1;
        top: 110px;
        position: relative;
        margin-left: auto;
        margin-right: auto;
    }

    .hero-carousel .slide-img {
        height: auto;
        max-height: 58vh;
        object-fit: contain;
        top: 90px;
        position: relative;
    }

    .hero-carousel .carousel-caption {
        position: static;
        padding-top: 0.75rem;
        padding-bottom: 1.25rem;
        text-align: left;
    }

    .hero-carousel .hero-title {
        font-size: 33px;
        line-height: 1.15;
        margin-top: 25px;
    }
    .hero-carousel .item4 .slide-img {
            height: 350px;
    }

    .hero-carousel .btn,
    .hero-carousel .hero-cta,
    .hero-carousel .hero-cta-teal,
    .hero-carousel .hero-cta-yellow {
        width: 100% !important;
    }

    .hero-carousel .carousel-indicators {
        bottom: 0.5rem;
    }
    .hero-carousel .carousel-item {
        height: auto;
        min-height: 810px;        
    }
    .hero-carousel .btn {
        width: 100%;
    }

    .item1 .carousel-caption {
        top: 50%;
        /* moved lower on small screens */
    }

    .item2 .carousel-caption {
        top: 40%;
        /* moved lower on small screens */
    }

    .item3 .carousel-caption {
        top: 8%;
        /* moved lower on small screens */
    }

    .item4 .carousel-caption {
        top: 40%;
        /* moved lower on small screens */
    }
    .hero-carousel .item1 .slide-img {
        right: -50px;
    }

    .hero-carousel .item2 .slide-img {
        right: 50px;
    }

    .step-title {
        height: 60px !important;
    }

    .step-number {
        height: 130px !important;
    }

    .reg-sign {
        max-width: 175px !important;
    }

    .reg-copy {
        font-size: 18px !important;
    }

}

@media (min-width: 576px) {
    .header-bar {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }
}

@media (min-width: 768px) {
    .header-bar {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

@media (min-width: 1200px) {
    .header-bar {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
}
@media (min-width: 768px) {
    .hero-carousel .carousel-caption .container {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

@media (min-width: 1200px) {
    .hero-carousel .carousel-caption .container {
        padding-left: 3.5rem;
        padding-right: 3.5rem;
    }
}


@media (max-width: 575.98px) {
    header .navbar-brand img {
        max-height: 52px;
    }
    .reg-slider .reg-card {
        flex: 0 0 98% !important;
    }
    /* Branding points: mobile two-column pill layout tuning */
    .branding-section .d-flex.align-items-center.gap-3 { gap: 10px; }
    .branding-section .d-flex.align-items-center.gap-3.mb-3 { margin-bottom: 12px !important; }
    /* Soften right padding from pe-5 in the list rows on mobile */
    .branding-section .row.gy-4 .pe-5 { padding-right: 0.75rem !important; }
    /* Icon size down to fit tighter rows */
    .branding-section img[width="64"][height="64"] { width: 48px; height: 48px; }
    /* Pill styling: consistent height, vertical centering, smaller text */
    .branding-section .branding-points {
        height: 64px;
        padding: 12px !important;
        font-size: 14px;
        line-height: 1.15;
        display: flex;
        align-items: center;
    }
    /* Collage: show paired tiles side-by-side on mobile */
    .branding-collage-hero .d-flex.flex-row > .tile,
    .branding-collage-hero .d-flex.flex-row > .tile.tile-fill,
    .branding-collage-hero .d-flex.flex-row > .tile.mb-3 {
        width: 50%;
    }
    .branding-collage-hero .d-flex.flex-row > .tile { margin-bottom: 0.5rem !important; }
    .collage-blue-item-1 {
            padding: 98px 28px 5px 10px;
    }
    .collage-blue-item-2 {
        padding: 56px 20px 8px 12px;
    }
    .collage-blue-item-3 {
        padding: 56px 20px 8px 12px;
    }
    .collage-yellow-item-1 {
        padding: 48px 20px 8px 12px;
    }
    .collage-yellow-item-2 {
        padding: 56px 20px 8px 12px;
    }
    .branding-collage-hero .tile p {
        font-size: 16px;
        font-weight: 600;
    }
    /* 3-up collage grid for mobile */
    .collage-3up {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto;
        gap: 10px;
    }
    .collage-3up .tile.mug { grid-column: 1 / 2; grid-row: 1 / 2; }
    .collage-3up .tile.packaging { grid-column: 1 / 2; grid-row: 2 / 3; }
    .collage-3up .tile.teal { grid-column: 2 / 3; grid-row: 1 / 3; height: 100%; }
    .collage-3up .tile.teal .collage-blue-item-3 { height: 100%; display: flex; align-items: center; padding: 20px; }
    .collage-3up .tile img.tile-img { width: 100%; height: auto; display: block; }
}

@media (min-width: 576px) {
    /* Reset tile widths when not in mobile */
    .branding-collage-hero .d-flex.flex-row > .tile,
    .branding-collage-hero .d-flex.flex-row > .tile.tile-fill,
    .branding-collage-hero .d-flex.flex-row > .tile.mb-3 {
        width: 100%;
    }
}

@media (min-width: 992px) {
    .how-details .how-item {
        padding: 0 !important;
    }
}

@media (min-width: 992px) {

    /* Desktop layout */
    /* Make slide flex only when visible or animating to preserve Bootstrap's display toggling */
    .hero-carousel .carousel-item.active,
    .hero-carousel .carousel-item.carousel-item-next,
    .hero-carousel .carousel-item.carousel-item-prev {
        min-height: 520px;
        display: flex;
        align-items: center;
    }

    .hero-carousel .carousel-item .carousel-caption {
        flex: 0 0 65%;
        max-width: 65%;
        padding: 0 0 0 0;
    }

    .hero-carousel .carousel-item .hero-slide-inner {
        display: block;
        padding: 0;
    }

    .hero-carousel .carousel-item picture {
        flex: 0 0 40%;
        max-width: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        padding-right: 4rem;
    }

    .hero-carousel .carousel-item picture img {
        max-width: 520px;
        width: 450px !important;
        height: auto;
        object-fit: contain;
        position: relative;
        top: 30px;
        right: 60px;
    }

    /* Reorder so text (caption) is left and image is right */
    .hero-carousel .carousel-item .carousel-caption {
        order: 1;
    }

    .hero-carousel .carousel-item picture {
        order: 2;
    }
}

@media (min-width: 1200px) {
    .hero-carousel .carousel-item {
        min-height: 560px;
    }

    .hero-carousel .carousel-item .hero-slide-inner {
        padding: 0 5rem;
    }
}

/* Mobile keeps original full image behavior */
@media (max-width: 991.98px) {
    .hero-carousel .carousel-item .hero-art {
        display: none;
    }

    .hero-carousel .carousel-item picture img {
        width: 100%;
    }

    .hero-carousel .carousel-item .carousel-caption .container {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

@media (min-width: 992px) {
    /* Only apply flex when a slide participates in transition/visibility */
    .hero-carousel .carousel-item.active,
    .hero-carousel .carousel-item.carousel-item-next,
    .hero-carousel .carousel-item.carousel-item-prev {
        display: flex;
        align-items: center;
        min-height: 520px;
    }

    /* Text (caption) column on the left */
    .hero-carousel .carousel-item .carousel-caption {
        position: static;
        order: 1;
        flex: 0 0 65%;
        max-width: 65%;
        text-align: left;
    }
    

    /* Image column on the right */
    .hero-carousel .carousel-item picture {
        order: 2;
        flex: 0 0 35%;
        max-width: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        padding-right: 4rem;
    }
    .hero-carousel .carousel-item picture img {
        max-width: 520px;
        width: 100%;
        height: auto;
        object-fit: contain;
    }
    .hero-carousel .item3 picture img {
        width: 85% !important;
    }
    .hero-carousel .item4 picture img {
        width: 85% !important;
    } 
    .hero-carousel .item2 picture img {
        right: 150px !important;
        top: 100px !important;
    }
}

@media (min-width: 992px) {
    .service-card {
        padding: 2rem;
    }
}

/* Slide 3 (Branding) — mobile layout refinements */
@media (max-width: 576px) {
    .hero-carousel .item1 {
        padding-top: 25px;
    }
    .hero-carousel .item2 {
        padding-top: 25px;
    }
    .hero-carousel .item2 picture img {
        width: 90%;

    }
    .hero-carousel .item3 {
        background: #1a5c78; /* ensure solid teal */
    }
    .hero-carousel .item3 .carousel-caption .hero-title,
    .hero-carousel .item3 .carousel-caption .hero-subtitle,
    .hero-carousel .item3 .carousel-caption .hero-desc {
        color: #fff;
    }
    .hero-carousel .item3 picture img {
        display: block;
        top: 0;
        right: -35px;
        width: 260px !important;
    }
    .hero-carousel .item3 .hero-cta-yellow {
        width: 100% !important;
        position: relative;
    }
    .hero-carousel .item3 .hero-subtitle {
        font-size: 29px;
    }
    .hero-carousel .item3 .hero-subtitle span.fw-bold {
        font-weight: 100 !important;
    }
    .reg-card-body {
        height: 175px !important;
        border-bottom-right-radius: 15px;
        border-bottom-left-radius: 15px;
    }
    .reg-card-cap {
        border-top-left-radius: 15px !important;
        border-top-right-radius: 15px !important;
    }

    .branding-image {
        margin-top: -45px !important;
    }

    .branding-image img {
        width: 80%;
        margin-left: 80px;
    }
    .branding-heading {
        margin-top: -60px !important;
    }
    .dominios-image {
        margin-top: -65px;
    }
    .web-phone {
        width: 100%;
    }
    .web-subtitle {
        font-size: 30px;
        line-height: 30px;
    }
    .como-text {
        font-size: 30px;
    }
    .how-roadmap-img {
        width: 400px;
    }
    .how-title {
        font-size: 23px !important;
        font-weight: 600 !important;
        color: #ffd32a !important;
        margin-top: 10px !important;
    }
}

/* Servicios carousel: show peeking items on small screens */
@media (max-width: 767.98px) {
    /* New services slider layout */
    .services-slider {
        overflow: hidden; /* keep container edges clean */
        /* Center one full card (70%) and let ~15% of neighbors peek on each side */
        padding-left: 15%;
        padding-right: 15%;
    }
    .services-slider .reg-track {
        display: flex;
        flex-wrap: nowrap;
        gap: 0.75rem;
        will-change: transform;
        transition: transform 450ms ease;
        /* Prevent rounding artifacts causing visual gaps during translate */
        backface-visibility: hidden;
        transform: translateZ(0);
    }
    /* show one full card and 1/4 of neighbors */
    .services-slider .service-card {
        flex: 0 0 70%; /* center one card and allow ~15% peeks */
        min-width: 240px; /* prevent collapse on very small devices */
        border-radius: 0.75rem;
        box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
        background: #0e5a6c;
        color: #fff;
        height: 240px !important;
    }

    /* Owl services (mobile) */
    .services-owl .item {
        padding: 0 .25rem;
        width: 350px; /* target width per item */
    }
    .services-owl .service-card {
        height: 240px !important;
        width: 100%; /* fit the item width */
    }
    .cta-title {
        font-size: var(--h2-size) !important;
    }

    /* Steps owl (mobile) */
    .steps-owl .item {
        padding: 0 .25rem;
        width: 350px;
    }
    .steps-owl .step-card {
        width: 100%;
        min-height: 260px; /* slightly taller to fit 3-line titles */
    }

    /* Registration services owl (mobile) */
    .reg-owl .item {
        padding: 0 .25rem;
    }
    .reg-owl .reg-card {
        width: 100%;
    }
    
}
@media (min-width: 576px) {
    .reg-slider .reg-card {
        flex-basis: calc((100% - 1rem)/2);
    }
}

@media (min-width: 768px) {
    .reg-slider .reg-card {
        flex-basis: calc((100% - 2rem)/3);
    }
}

@media (min-width: 992px) {
    .reg-slider .reg-card {
        flex-basis: calc((100% - 3rem)/4);
    }
}

@media (min-width: 1200px) {
    .reg-slider .reg-card {
        flex-basis: calc((100% - 5rem)/6);
    }
}

@media (min-width: 992px) {
    .reg-section .container-fluid {
        padding-left: 3rem;
        padding-right: 3rem;
    }
}

@media (min-width: 576px) {
    .reg-carousel .carousel-item>.reg-card {
        flex-basis: calc((100% - 1rem) / 2);
    }
}

@media (min-width: 992px) {
    .reg-carousel .carousel-item>.reg-card {
        flex-basis: calc((100% - 2rem) / 3);
    }
}

@media (min-width: 1200px) {
    .reg-carousel .carousel-item>.reg-card {
        flex-basis: calc((100% - 3rem) / 4);
    }
}