.ct-page { color: var(--ct-ink); background: #fff; }
.ct-page h1, .ct-page h2, .ct-page h3, .ct-page p { margin-top: 0; }
.ct-page h1 { font-size: clamp(3.2rem, 5.5vw, 5.8rem); font-weight: 500; line-height: .99; letter-spacing: -.045em; }
.ct-page h2 { font-size: clamp(2.2rem, 3.8vw, 3.7rem); font-weight: 500; line-height: 1.05; letter-spacing: -.035em; }
.ct-page h3 { font-size: clamp(1.45rem, 2vw, 2rem); font-weight: 600; line-height: 1.1; }
.ct-page p { color: #42484f; font-size: 1.12rem; line-height: 1.62; }
.ct-page h1 span, .ct-page h2 span { color: var(--ct-blue); }
.ct-page .eyebrow { margin-bottom: 20px; color: var(--ct-blue-deep); font-size: .85rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ct-page .section-heading { max-width: 860px; margin-bottom: 50px; }
.ct-page .section-heading.centered { margin-inline: auto; }
.ct-page .section-heading p { margin: 19px 0 0; }
.ct-page .section-heading.centered p { margin-inline: auto; }
.ct-page .section-pad { padding-block: clamp(70px, 8vw, 118px); }
.ct-page .page-surface { background: #f1f3f5; }

.subhero { position: relative; display: flex; min-height: 760px; align-items: center; overflow: hidden; background: #f7f9fb; }
.subhero__grid { display: grid; min-height: 760px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 5%; padding-top: 145px; padding-bottom: 75px; }
.subhero__copy { position: relative; z-index: 2; max-width: 700px; }
.subhero__copy > p:not(.eyebrow) { max-width: 600px; font-size: 1.25rem; }
.subhero__image { width: 100%; height: 540px; border-radius: 14px; object-fit: cover; box-shadow: 0 24px 55px rgba(20, 36, 54, .12); }
.subhero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 32px; }
.subhero--company { background: linear-gradient(110deg, #fff 0%, #f3f8fc 100%); }
.subhero--company .subhero__image { object-position: center; }
.subhero--rental { background: linear-gradient(115deg, #f8fbff, #edf5fb); }
.subhero--rental .subhero__image { height: 570px; object-fit: cover; }
.subhero--products { background: linear-gradient(115deg, #fff, #eff6fd); }
.subhero--contact { background: linear-gradient(115deg, #fff, #eef6fc); }

.split-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(35px, 6vw, 90px); }
.split-grid > div > p:not(.eyebrow) { max-width: 650px; }
.split-grid .button { margin-top: 12px; }
.page-image-card { display: grid; min-height: 450px; overflow: hidden; place-items: center; border-radius: 12px; background: #e9eef3; }
.page-image-card img { width: 100%; height: 100%; max-height: 550px; object-fit: cover; }
.ct-products .page-intro .page-image-card, .ct-rental .page-image-card:has(img[src*="cloth-"]) { background: #f4f6f7; }
.ct-products .page-intro .page-image-card img, .ct-rental .page-image-card img[src*="cloth-"] { object-fit: contain; }

.feature-grid { display: grid; gap: 18px; }
.feature-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.feature-grid--five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.feature-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feature-card { min-height: 275px; padding: 28px; border-radius: 10px; background: #fff; box-shadow: 0 10px 30px rgba(29, 45, 59, .05); }
.feature-card h3 { margin: 45px 0 15px; }
.feature-card p { margin: 0; font-size: 1rem; line-height: 1.48; }
.feature-card__number { color: var(--ct-blue); font-size: 1.1rem; font-weight: 700; }
.feature-card--blue { background: #dbeeff; }
.feature-card--green { background: #e8f5c9; }
.feature-card--blue h3, .feature-card--green h3 { margin-top: 12px; }
.section-action { margin: 35px 0 0; text-align: center; }

.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gallery-grid img { width: 100%; height: 330px; border-radius: 10px; object-fit: cover; }
.eco-band { overflow: hidden; background: #e8f5c7; }
.eco-band__grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 30px; }
.eco-band__grid > div { position: relative; z-index: 1; }
.eco-band__grid img { justify-self: center; max-height: 500px; object-fit: contain; }
.eco-band .eyebrow, .eco-band h2 span { color: #5a9c00; }
.eco-band p { max-width: 650px; }
.mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 35px; padding-top: 28px; border-top: 1px solid rgba(75, 120, 0, .24); }
.mini-stats > div { display: flex; flex-direction: column; }
.mini-stats strong { font-size: clamp(2rem, 4vw, 4rem); line-height: 1; }
.mini-stats span { margin-top: 8px; color: #394f20; font-size: 1.1rem; }
.certification-list { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 25px; }
.certification-list span { padding: 10px 14px; border-radius: 4px; background: #e7f3ff; color: #174e85; font-size: .95rem; font-weight: 600; }

.steps-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 15px; }
.steps-grid article { position: relative; min-height: 250px; padding: 28px 21px; border-radius: 10px; background: #fff; }
.steps-grid article span { display: grid; width: 55px; height: 55px; place-items: center; border-radius: 50%; background: var(--ct-blue); color: #fff; font-size: 1.5rem; font-weight: 700; }
.steps-grid h3 { margin: 30px 0 12px; }
.steps-grid p { font-size: 1rem; line-height: 1.4; }
.check-list { padding: 0; margin: 23px 0 20px; list-style: none; }
.check-list li { padding: 9px 0 9px 30px; border-bottom: 1px solid #dfe4e8; font-size: 1.08rem; }
.check-list li::before { display: inline-block; width: 30px; margin-left: -30px; color: var(--ct-green); font-weight: 800; content: '✓'; }
.simple-link-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.simple-link-grid a { display: flex; min-height: 180px; flex-direction: column; justify-content: space-between; padding: 23px; border-radius: 9px; background: #e7f2fd; font-size: 1.45rem; font-weight: 600; line-height: 1.1; }
.simple-link-grid a:hover, .simple-link-grid a:focus-visible { background: #cbe5ff; }
.simple-link-grid svg { align-self: flex-end; }

.fabric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fabric-card { overflow: hidden; border-radius: 10px; background: #fff; }
.fabric-card img { width: 100%; height: 290px; object-fit: contain; background: #f8f9fa; }
.fabric-card > div { padding: 27px; }
.fabric-card span { color: var(--ct-blue); font-weight: 700; }
.fabric-card h3 { margin: 15px 0; }
.fabric-card p { margin: 0; font-size: 1rem; }
.category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.category-card { display: flex; overflow: hidden; flex-direction: column; border-radius: 10px; background: #f3f5f7; transition: transform .25s ease, box-shadow .25s ease; }
.category-card:hover, .category-card:focus-visible { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(0, 0, 0, .1); }
.category-card img { width: 100%; height: 230px; object-fit: cover; }
.category-card > div { display: flex; min-height: 175px; flex: 1; flex-direction: column; justify-content: space-between; padding: 25px; }
.category-card h3 { margin: 0; }
.category-card span { color: var(--ct-blue-deep); font-size: .98rem; font-weight: 700; }
.category-card--red span { color: #b41320; }
.category-card--green span { color: #5d9c00; }
.customization { background: #eff5fb; }

.contact-map { position: relative; display: flex; width: 100%; min-height: 460px; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; border-radius: 12px; background: radial-gradient(circle at 52% 45%, #e5f2fd 0 11%, transparent 12%), linear-gradient(135deg, #daeaf4 25%, #edf5f8 25% 50%, #daeaf4 50% 75%, #edf5f8 75%); background-size: auto, 80px 80px; text-align: center; }
.contact-map::before, .contact-map::after { position: absolute; width: 160%; height: 18px; border-radius: 100%; background: rgba(255, 255, 255, .7); content: ''; transform: rotate(-28deg); }
.contact-map::before { top: 25%; }
.contact-map::after { top: 65%; }
.contact-map__pin { position: relative; z-index: 1; display: grid; width: 110px; height: 110px; place-items: center; border: 8px solid #fff; border-radius: 50%; background: var(--ct-blue); box-shadow: 0 12px 30px rgba(23, 80, 134, .25); color: #fff; font-weight: 700; }
.contact-map strong, .contact-map span, .contact-map a { position: relative; z-index: 1; }
.contact-map strong { margin-top: 20px; font-size: 1.6rem; }
.contact-map span { color: #4e5c65; }
.contact-map a { margin-top: 17px; color: var(--ct-blue-deep); font-weight: 700; }
.contact-strip { padding-block: 45px; background: #eceff2; }
.contact-strip__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.contact-strip__grid > div { display: flex; flex-direction: column; padding: 12px 25px; border-left: 3px solid var(--ct-blue); }
.contact-strip span { margin-bottom: 9px; color: #55616c; font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; }
.contact-strip a { font-size: 1.25rem; font-weight: 700; }
.contact-strip p { margin: 0; font-size: 1.1rem; }

@media (max-width: 1080px) {
    .subhero, .subhero__grid { min-height: 0; }
    .subhero__grid { padding-top: 130px; }
    .feature-grid--five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .feature-grid--four, .simple-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .steps-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .ct-page h1 { font-size: clamp(2.8rem, 12vw, 4.4rem); }
    .subhero__grid, .split-grid, .eco-band__grid { grid-template-columns: 1fr; }
    .subhero__grid { gap: 35px; padding-top: 115px; padding-bottom: 60px; }
    .subhero__image { height: 330px; }
    .subhero--rental .subhero__image { height: 320px; }
    .feature-grid--five, .feature-grid--four, .feature-grid--two, .fabric-grid, .category-grid, .steps-grid, .simple-link-grid, .gallery-grid, .contact-strip__grid { grid-template-columns: 1fr; }
    .feature-card, .steps-grid article { min-height: 0; }
    .feature-card h3 { margin-top: 25px; }
    .gallery-grid img { height: 260px; }
    .mini-stats { grid-template-columns: 1fr; }
    .page-image-card { min-height: 290px; }
    .category-card img { height: 220px; }
    .category-card > div { min-height: 0; gap: 24px; }
    .contact-map { min-height: 350px; }
}

/* Contact page */
.ct-contact__hero {
    position: relative;
    background: #fff;
}

.ct-contact__hero-grid {
    display: grid;
    min-height: 640px;
    grid-template-columns: 54% 46%;
}

.ct-contact__hero-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 135px 55px 65px max(40px, calc((100vw - var(--ct-width)) / 2));
}

.ct-contact__hero-copy h1 {
    margin-bottom: 35px;
    font-size: clamp(2.5rem, 3.4vw, 3.85rem);
    font-weight: 400;
    letter-spacing: -.04em;
    line-height: 1.08;
}

.ct-contact__hero-copy p {
    max-width: 620px;
    margin-bottom: 18px;
    color: var(--ct-ink);
    font-size: clamp(1rem, 1.22vw, 1.25rem);
    line-height: 1.4;
}

.ct-contact__hero-copy .button {
    margin-top: 25px;
}

.ct-contact__hero-copy .button span {
    font-size: 1.45em;
    line-height: .8;
}

.ct-contact__map {
    position: relative;
    min-height: 500px;
    overflow: hidden;
    margin-top: 105px;
    background: #e6efe9;
}

.ct-contact__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 500px;
    border: 0;
}

.ct-contact__map > a {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 1;
    padding: 9px 13px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 4px 18px rgba(0, 0, 0, .13);
    color: #165aa5;
    font-size: .9rem;
    font-weight: 600;
}

.ct-contact__strip {
    background: #f4f5f7;
}

.ct-contact__strip-grid {
    display: grid;
    min-height: 88px;
    grid-template-columns: minmax(140px, 1fr) auto auto minmax(240px, 1.2fr) auto;
    align-items: center;
    gap: 24px;
}

.ct-contact__strip h2 {
    margin: 0;
    color: var(--ct-blue);
    font-size: 1.85rem;
    font-weight: 600;
    letter-spacing: 0;
}

.ct-contact__detail {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--ct-ink);
    font-size: .96rem;
    line-height: 1.3;
    white-space: nowrap;
}

.ct-contact__detail img {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
}

.ct-contact__detail--address {
    white-space: normal;
}

.ct-contact__social {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ct-contact__social img {
    display: block;
    width: 24px;
    height: 24px;
    filter: brightness(0) saturate(100%) invert(59%) sepia(69%) saturate(1254%) hue-rotate(184deg) brightness(102%);
}

.ct-contact__social a:focus-visible,
.ct-contact__detail:focus-visible,
.ct-contact__map > a:focus-visible {
    outline: 3px solid var(--ct-blue);
    outline-offset: 4px;
}

@media (max-width: 1160px) {
    .ct-contact__strip-grid {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 18px 25px;
        padding-block: 20px;
    }

    .ct-contact__strip h2 {
        grid-row: span 2;
    }

    .ct-contact__social {
        justify-self: start;
    }
}

@media (max-width: 720px) {
    .ct-contact__hero-grid {
        grid-template-columns: 1fr;
    }

    .ct-contact__hero-copy {
        padding: 125px 24px 52px;
    }

    .ct-contact__hero-copy h1 {
        margin-bottom: 26px;
        font-size: clamp(2.4rem, 9vw, 3.2rem);
    }

    .ct-contact__hero-copy p {
        font-size: 1.05rem;
    }

    .ct-contact__map {
        min-height: 350px;
        margin-top: 0;
    }

    .ct-contact__map iframe {
        min-height: 350px;
    }

    .ct-contact__strip-grid {
        grid-template-columns: 1fr;
        gap: 18px;
        padding-block: 28px;
    }

    .ct-contact__strip h2 {
        grid-row: auto;
    }

}

/* Noleggio: layout e fotografie del progetto definitivo. */
.ct-rental .rental-hero { min-height: 540px; background: #f7f8f8; }
.ct-rental .rental-hero::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,.97) 31%, rgba(255,255,255,.58) 50%, transparent 76%); content: ''; pointer-events: none; }
.ct-rental .rental-hero .subhero__grid { min-height: 540px; display: flex; align-items: center; padding-top: 100px; padding-bottom: 44px; }
.ct-rental .rental-hero .subhero__copy { max-width: 720px; z-index: 2; }
.ct-rental .rental-hero h1 { max-width: 720px; margin-bottom: 24px; font-size: clamp(3.1rem, 4vw, 3.5rem); line-height: 1.03; font-weight: 400; }
.ct-rental .rental-hero h1 em, .ct-rental h2 em, .ct-rental .rental-benefit em { color: #88bc00; font-style: normal; }
.ct-rental .rental-hero .subhero__copy > p { max-width: 680px; font-weight: 700; line-height: 1.2; }
.ct-rental .rental-hero .subhero__image { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; max-height: none; border-radius: 0; box-shadow: none; object-fit: cover; object-position: center 47%; }
.ct-rental .rental-hero .subhero__actions { position: relative; z-index: 2; margin-top: 30px; }
.ct-rental .rental-benefits { background: radial-gradient(circle at 85% 75%, #edf8d4, transparent 35%), #fff; }
.ct-rental .rental-benefits.section-pad { padding-block: clamp(68px, 5.55vw, 80px); }
.ct-rental .rental-benefits .section-heading { max-width: 800px; margin-bottom: 64px; }
.ct-rental .rental-benefits .section-heading h2, .ct-rental .rental-cloth h2, .ct-rental .rental-rollbox h2, .ct-rental .rental-sectors .section-heading h2 { font-size: clamp(2.2rem, 3.333vw, 3rem); }
.ct-rental .rental-benefits .section-heading h2 { font-weight: 700; }
.ct-rental .rental-benefits .section-heading p { font-size: 1.24rem; line-height: 1.27; }
.ct-rental .rental-benefits__grid { display: grid; grid-template-columns: 1.34fr 1.02fr 1fr 1.57fr; grid-template-rows: repeat(2, minmax(clamp(215px, 17vw, 244px), auto)); gap: 20px; }
.ct-rental .rental-benefit { position: relative; min-width: 0; overflow: hidden; padding: 27px; border-radius: 11px; background: #f1f2f4; }
.ct-rental .rental-benefit h3 { position: relative; z-index: 1; margin: 0 0 8px; font-size: clamp(1.55rem, 2.25vw, 2.15rem); font-weight: 700; line-height: 1.02; }
.ct-rental .rental-benefit p { position: relative; z-index: 1; margin: 0 0 12px; font-size: 1.06rem; line-height: 1.22; }
.ct-rental .rental-benefit img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ct-rental .rental-benefit--stock { grid-column: 1; grid-row: 1; background: #52a4ff; color: #fff; }
.ct-rental .rental-benefit--stock p { color: #fff; }
.ct-rental .rental-benefit--ready { grid-column: 2 / 4; grid-row: 1; display: flex; align-items: center; background: #232323; color: #fff; }
.ct-rental .rental-benefit--ready::after { position: absolute; inset: 0; background: linear-gradient(90deg, #222 0%, rgba(34,34,34,.94) 38%, rgba(34,34,34,.25) 100%); content: ''; }
.ct-rental .rental-benefit--ready > div { position: relative; z-index: 1; max-width: 57%; }
.ct-rental .rental-benefit--ready p { color: #fff; }
.ct-rental .rental-benefit--reuse { grid-column: 4; grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: flex-end; background: #f2f3f5; }
.ct-rental .rental-benefit--reuse h3 span { color: #52a4ff; }
.ct-rental .rental-benefit--pickup { grid-column: 1 / 3; grid-row: 2; display: flex; align-items: center; background: #97c709; color: #fff; }
.ct-rental .rental-benefit--pickup::after { position: absolute; inset: 0; background: linear-gradient(90deg, #97c709 0%, rgba(151,199,9,.95) 45%, rgba(151,199,9,.35) 100%); content: ''; }
.ct-rental .rental-benefit--pickup > div { position: relative; z-index: 1; }
.ct-rental .rental-benefit--pickup p { color: #fff; }
.ct-rental .rental-benefit--photo { grid-column: 3; grid-row: 2; padding: 0; }
.ct-rental .rental-cycle-anchor { display: block; height: 0; scroll-margin-top: 0; }
.ct-rental .rental-cloth { overflow: hidden; background: radial-gradient(circle at 0% 62%, #e1f0ff 0%, #fff 48%); }
.ct-rental .rental-cloth__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 7%; }
.ct-rental .rental-cloth__image { width: 100%; max-height: 700px; object-fit: contain; }
.ct-rental .rental-cloth h2 { font-weight: 700; }
.ct-rental .rental-cloth__copy > p { max-width: 650px; font-size: 1.2rem; line-height: 1.3; }
.ct-rental .rental-cloth__features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 30px; margin-top: 70px; }
.ct-rental .rental-cloth__features h3 { max-width: 260px; margin: 0 0 9px; color: #52a4ff; font-size: 1.55rem; font-weight: 700; }
.ct-rental .rental-cloth__features > div:nth-child(1) h3, .ct-rental .rental-cloth__features > div:nth-child(4) h3 { color: #81b500; }
.ct-rental .rental-cloth__features p { max-width: 280px; margin: 0; font-size: 1.02rem; line-height: 1.22; }
.ct-rental .rental-rollbox { --rollbox-mix: 0; height: 220svh; min-height: 1400px; padding: 0; background: #fff; }
.ct-rental .rental-rollbox__sticky { position: sticky; top: 0; display: grid; height: 100svh; align-items: center; overflow: hidden; padding: 30px 0; box-sizing: border-box; background: radial-gradient(ellipse 800px 320px at 0% 0%, #e6f1fe 0%, #fff 100%); }
.ct-rental .rental-rollbox__grid { position: relative; left: 8px; display: grid; width: min(1220px, calc(100% - 80px)); grid-template-columns: minmax(0, 430fr) minmax(0, 365fr) minmax(0, 325fr); align-items: center; gap: 50px; }
.ct-rental .rental-rollbox__copy { transform: translateY(-4px); }
.ct-rental .rental-rollbox h2 { margin-bottom: 27px; font-size: 3rem; font-weight: 700; line-height: 1.05; }
.ct-rental .rental-rollbox h2 em { color: #97c709; }
.ct-rental .rental-rollbox h3 { margin-bottom: 25px; font-size: 1.75rem; font-weight: 700; line-height: 1.214; }
.ct-rental .rental-rollbox p { max-width: 400px; margin-bottom: 0; color: #212121; font-size: 1.25rem; line-height: 1.3; }
.ct-rental .rental-rollbox__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; color: #237dce; font-weight: 700; }
.ct-rental .rental-rollbox__link:hover, .ct-rental .rental-rollbox__link:focus-visible { color: #145a9c; text-decoration: underline; }
.ct-rental .rental-rollbox__viewer { position: relative; display: block; width: min(100%, 365px, calc((100svh - 80px) * .707)); aspect-ratio: 365 / 516; justify-self: center; }
.ct-rental .rental-rollbox__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; }
.ct-rental .rental-rollbox__image--front { opacity: calc(1 - var(--rollbox-mix)); }
.ct-rental .rental-rollbox__image--side { opacity: var(--rollbox-mix); }
.ct-rental .rental-rollbox__facts { display: grid; align-items: center; transform: translateY(13px); }
.ct-rental .rental-rollbox__points { grid-area: 1 / 1; }
.ct-rental .rental-rollbox__points--front { opacity: calc(1 - var(--rollbox-mix)); }
.ct-rental .rental-rollbox__points--side { opacity: var(--rollbox-mix); }
.ct-rental .rental-rollbox__points { display: flex; flex-direction: column; gap: 68px; margin: 0; padding: 0; list-style: none; }
.ct-rental .rental-rollbox__points li { color: #52a4ff; font-size: 1.75rem; font-weight: 700; line-height: 1.214; }
.ct-rental .rental-rollbox__points li:nth-child(2) { color: #97c709; }
.ct-rental .rental-rollbox__points--side li:nth-child(1), .ct-rental .rental-rollbox__points--side li:nth-child(3) { color: #97c709; }
.ct-rental .rental-rollbox__points--side li:nth-child(2) { color: #52a4ff; }
.ct-rental .rental-sectors { background: #fff; }
.ct-rental .rental-sectors.section-pad { padding-block: 82px; }
.ct-rental .rental-sectors .section-heading { max-width: 1020px; }
.ct-rental .rental-sectors .section-heading h2 { font-weight: 700; }
.ct-rental .rental-sectors .section-heading p { max-width: 950px; margin-top: 12px; line-height: 1.25; }
.ct-rental .rental-sectors__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; max-width: 1000px; margin-inline: auto; }
.ct-rental .rental-sectors__grid a { position: relative; display: block; min-height: clamp(205px, 16.2vw, 233px); overflow: hidden; border-radius: 22px; background: #f0f1f2; }
.ct-rental .rental-sectors__grid img { width: 100%; height: clamp(205px, 16.2vw, 233px); object-fit: cover; transition: transform .35s ease; }
.ct-rental .rental-sectors__grid a:hover img, .ct-rental .rental-sectors__grid a:focus-visible img { transform: scale(1.05); }
.ct-rental .rental-sectors__grid h3 { position: absolute; right: 0; bottom: 0; left: 0; margin: 0; padding: 28px 20px 18px; background: linear-gradient(transparent, rgba(255,255,255,.96) 85%); font-size: 1.7rem; font-weight: 700; }
.ct-rental .sustainability h2 { font-size: 3rem; font-weight: 400; line-height: 1; letter-spacing: 0; }
.ct-rental .sustainability h2 span { color: var(--ct-green); }
.ct-rental .sustainability__copy > p { margin: 24px 0 0; color: var(--ct-ink); font-size: 1.125rem; line-height: 1.25; }
.ct-rental .trial.section-pad { padding-block: 55px; }
.ct-rental .trial .section-heading { margin-bottom: 48px; }
.ct-rental .trial-form { row-gap: 20px; }
@media (max-width: 900px) {
    .ct-rental .rental-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
    .ct-rental .rental-benefit--stock, .ct-rental .rental-benefit--ready, .ct-rental .rental-benefit--reuse, .ct-rental .rental-benefit--pickup, .ct-rental .rental-benefit--photo { grid-column: auto; grid-row: auto; min-height: 240px; }
    .ct-rental .rental-rollbox__grid { left: 0; grid-template-columns: 1fr 1fr; }
    .ct-rental .rental-rollbox__copy, .ct-rental .rental-rollbox__facts { transform: none; }
    .ct-rental .rental-rollbox__facts { grid-column: 1 / -1; width: 100%; }
    .ct-rental .rental-rollbox__points { flex-direction: row; justify-content: space-around; gap: 20px; }
}
@media (max-width: 720px) {
    .ct-rental .rental-hero, .ct-rental .rental-hero .subhero__grid { min-height: 640px; }
    .ct-rental .rental-hero::after { background: linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.89) 46%, rgba(255,255,255,.2) 100%); }
    .ct-rental .rental-hero .subhero__grid { align-items: flex-start; padding-top: 125px; }
    .ct-rental .rental-hero h1 { font-size: clamp(2.55rem, 10vw, 4rem); }
    .ct-rental .rental-hero .subhero__image { object-position: 64% center; }
    .ct-rental .rental-benefits__grid { grid-template-columns: 1fr; }
    .ct-rental .rental-benefit--ready > div { max-width: 65%; }
    .ct-rental .rental-cloth__grid, .ct-rental .rental-rollbox__grid { grid-template-columns: 1fr; }
    .ct-rental .rental-cloth__grid { row-gap: 36px; }
    .ct-rental .rental-cloth__image { max-width: 400px; margin-inline: auto; }
    .ct-rental .rental-cloth__features { gap: 28px; margin-top: 40px; }
    .ct-rental .rental-cloth__features p { max-width: none; line-height: 1.35; }
    .ct-rental .rental-rollbox:not(.rollbox--enhanced) { height: auto; min-height: 0; }
    .ct-rental .rental-rollbox__copy { text-align: left; }
    .ct-rental .rental-rollbox h2 { margin-bottom: 10px; font-size: clamp(2.1rem, 8vw, 3rem); }
    .ct-rental .rental-rollbox h3 { margin-bottom: 14px; font-size: 1.3rem; }
    .ct-rental .rental-rollbox p { font-size: 1rem; line-height: 1.27; }
    .ct-rental .rental-rollbox__sticky { position: relative; height: auto; overflow: visible; padding: 55px 0; }
    .ct-rental .rental-rollbox__grid { width: min(440px, calc(100% - 40px)); height: auto; grid-template-rows: auto auto auto; align-content: center; gap: 22px; }
    .ct-rental .rental-rollbox__viewer { width: min(100%, 280px); height: auto; max-width: 100%; }
    .ct-rental .rental-rollbox__facts { display: grid; grid-column: 1; grid-row: 3; gap: 18px; }
    .ct-rental .rental-rollbox__points { grid-area: auto; flex-direction: column; align-items: flex-start; justify-content: center; gap: 12px; margin: 0; opacity: 1; }
    .ct-rental .rental-rollbox__points li { font-size: 1.15rem; }
    .ct-rental .rental-rollbox.rollbox--enhanced { height: 320svh; min-height: 0; }
    .ct-rental .rollbox--enhanced .rental-rollbox__sticky { position: sticky; top: 0; height: 100svh; min-height: 0; overflow: hidden; padding: clamp(16px, 3svh, 28px) 0; }
    .ct-rental .rollbox--enhanced .rental-rollbox__grid { position: relative; display: grid; height: 100%; grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; align-items: center; gap: 10px; }
    .ct-rental .rollbox--enhanced .rental-rollbox__copy { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; justify-content: center; opacity: 1; visibility: visible; transition: opacity .35s ease, visibility 0s linear; }
    .ct-rental .rollbox--enhanced .rental-rollbox__viewer { grid-column: 1; grid-row: 1; width: auto; height: min(56svh, 460px); max-width: 100%; opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility 0s linear .35s; }
    .ct-rental .rollbox--enhanced .rental-rollbox__facts { grid-column: 1; grid-row: 2; width: 100%; gap: 0; opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility 0s linear .35s; }
    .ct-rental .rollbox--enhanced .rental-rollbox__points { grid-area: 1 / 1; }
    .ct-rental .rollbox--enhanced .rental-rollbox__points--front { opacity: calc(1 - var(--rollbox-mix)); }
    .ct-rental .rollbox--enhanced .rental-rollbox__points--side { opacity: var(--rollbox-mix); }
    .ct-rental .rollbox--enhanced.rollbox--showcase .rental-rollbox__copy { opacity: 0; visibility: hidden; transition-delay: 0s, .35s; }
    .ct-rental .rollbox--enhanced.rollbox--showcase .rental-rollbox__viewer,
    .ct-rental .rollbox--enhanced.rollbox--showcase .rental-rollbox__facts { opacity: 1; visibility: visible; transition-delay: 0s; }
    .ct-rental .rental-sectors__grid { grid-template-columns: 1fr; }
    .ct-rental .sustainability h2 { font-size: clamp(2.25rem, 10vw, 3.25rem); }
    .ct-rental .rental-sectors.section-pad { padding-block: 65px; }
    .ct-rental .trial.section-pad { padding-block: 65px; }
}
@media (max-width: 480px) {
    .ct-rental .rental-hero .subhero__actions .button { width: 100%; justify-content: center; }
    .ct-rental .rental-cloth__features { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .ct-rental .rental-rollbox { height: 130svh; min-height: 0; }
}
/* Azienda: proporzioni e superfici del layout di riferimento. */
.ct-about__hero { display: block; min-height: 486px; background: #fff; }
.ct-about__hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.ct-about__hero::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,#fff 0%,#fff 29%,rgba(255,255,255,.9) 40%,rgba(255,255,255,0) 68%); content: ''; pointer-events: none; }
.ct-about__hero-content { position: relative; z-index: 2; display: flex; min-height: 486px; align-items: center; padding-top: 105px; padding-bottom: 42px; }
.ct-about__hero .subhero__copy { max-width: 600px; }
.ct-about.ct-page .ct-about__hero h1 { margin-bottom: 0; font-size: clamp(2.8rem,3.65vw,3.3rem); font-weight: 400; line-height: 1.03; letter-spacing: -.025em; }
.ct-about__hero h1 em { color: var(--ct-green); font-style: normal; }
.ct-about__hero .subhero__actions { margin-top: 38px; }
.ct-about .page-intro { padding-block: 65px 105px; background: radial-gradient(circle at 91% 91%,#e2f5b5 0%,rgba(226,245,181,.35) 23%,transparent 47%),#fff; }
.ct-about__intro-heading { max-width: 950px; margin: 0 auto 90px; text-align: center; }
.ct-about.ct-page .ct-about__intro-heading h2 { margin-bottom: 14px; color: var(--ct-ink); font-size: 3rem; font-weight: 700; }
.ct-about.ct-page .ct-about__intro-heading p { max-width: 890px; margin: 0 auto; font-size: 1.25rem; line-height: 1.35; }
.ct-about__intro-grid { max-width: 1120px; grid-template-columns: minmax(0,1fr) minmax(0,.95fr); gap: 8%; margin-inline: auto; }
.ct-about.ct-page .ct-about__intro-grid h2 { margin-bottom: 34px; font-size: 3rem; font-weight: 400; line-height: 1.04; letter-spacing: -.025em; }
.ct-about.ct-page .ct-about__intro-grid p { max-width: 560px; margin-bottom: 16px; font-size: 1.25rem; line-height: 1.2; }
.ct-about__intro-grid .page-image-card { min-height: 415px; height: 415px; border-radius: 10px; }
.ct-about__intro-grid .page-image-card img { height: 100%; max-height: none; }
.ct-about .page-surface { padding-block: 55px 50px; background: radial-gradient(circle at 91% 0%,#e2f5b5 0%,rgba(226,245,181,.3) 25%,transparent 49%),linear-gradient(#fff 78%,#f1f8ff); }
.ct-about .page-surface .section-heading { max-width: none; margin-bottom: 51px; }
.ct-about.ct-page .page-surface h2 { font-size: 3rem; font-weight: 700; letter-spacing: -.025em; }
.ct-about__service-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 24px; }
.ct-about__service-card { position: relative; height: 228px; overflow: hidden; border-radius: 24px; background: #f1f1f3; }
.ct-about__service-card > div { position: relative; z-index: 2; width: 54%; padding: 30px 20px; }
.ct-about.ct-page .ct-about__service-card h3 { margin: 0 0 7px; font-size: 2rem; font-weight: 700; line-height: 1; }
.ct-about.ct-page .ct-about__service-card p { margin: 0; font-size: 1rem; line-height: 1.2; }
.ct-about__service-card img { position: absolute; inset: 0 0 0 auto; width: 67%; height: 100%; object-fit: cover; mask-image: linear-gradient(to right,transparent 0%,#000 46%); }
@media (min-width: 1101px) {
    .ct-about__service-card img { top: var(--service-image-top); right: var(--service-image-right); bottom: auto; width: var(--service-image-width); height: auto; max-width: none; }
    .ct-about__service-card:nth-child(1) { --service-image-width: 93%; --service-image-top: -5.5%; --service-image-right: -8%; }
    .ct-about__service-card:nth-child(2) { --service-image-width: 97%; --service-image-top: -58%; --service-image-right: -12%; }
    .ct-about__service-card:nth-child(3) { --service-image-width: 90%; --service-image-top: -56%; --service-image-right: -15%; }
    .ct-about__service-card:nth-child(4) { --service-image-width: 69%; --service-image-top: -19%; --service-image-right: 0%; }
}
.ct-about .page-gallery { padding-block: 72px 77px; background: linear-gradient(#f1f8ff,#c1dfff); }
.ct-about__gallery { display: grid; grid-template-columns: 35px minmax(0,1fr) 35px; align-items: center; gap: 18px; }
.ct-about__gallery-arrow { display: grid; width: 35px; height: 50px; place-items: center; padding: 0; border: 0; background: transparent; color: #858585; font-size: 0; cursor: pointer; }
.ct-about__gallery-arrow::before { width: 20px; height: 20px; border-top: 4px solid currentColor; border-right: 4px solid currentColor; content: ''; transform: rotate(45deg); }
.ct-about__gallery-arrow[data-gallery-direction="-1"]::before { transform: rotate(-135deg); }
.ct-about__gallery-arrow:hover, .ct-about__gallery-arrow:focus-visible { color: var(--ct-blue-deep); }
.ct-about .page-gallery .gallery-grid { display: grid; grid-template-columns: 1fr 2.1fr 1fr; align-items: center; gap: 28px; }
.ct-about .page-gallery .gallery-grid img { width: 100%; height: 227px; border-radius: 0; object-fit: cover; }
.ct-about .page-gallery .gallery-grid img:nth-child(2) { height: 471px; }
.ct-about .sustainability h2 { font-size: 3rem; font-weight: 400; line-height: 1; letter-spacing: 0; }
.ct-about .sustainability h2 span { color: var(--ct-green); }
.ct-about .sustainability__copy > p { margin: 24px 0 0; color: var(--ct-ink); font-size: 1.125rem; line-height: 1.25; }
.ct-about .certifications { min-height: 630px; padding-block: 70px; background: #f4f5f7; }
.ct-about__certifications-grid { display: grid; grid-template-columns: 46% 54%; align-items: center; gap: 0; }
.ct-about.ct-page .ct-about__certifications-copy h2 { margin-bottom: 14px; font-size: 2.4rem; font-weight: 700; }
.ct-about__iso-row { display: flex; align-items: center; gap: 22px; }
.ct-about__iso-row span { min-width: 225px; color: #62666a; font-size: 1.75rem; line-height: 1.45; }
.ct-about__iso-row img { width: 105px; height: 105px; object-fit: contain; }
.ct-about__ministry-row { display: flex; align-items: center; gap: 45px; margin-top: 108px; }
.ct-about.ct-page .ct-about__ministry-row p { margin: 0; color: #62666a; font-size: 1.75rem; line-height: 1.18; }
.ct-about__ministry-row img { width: 115px; height: 115px; object-fit: contain; }
.ct-about__certificates { position: relative; display: flex; align-items: center; justify-content: space-evenly; gap: 32px; }
.ct-about__certificates a { display: block; width: min(56%,348px); min-width: 0; }
.ct-about__certificates a:nth-child(2) { width: min(34%,212px); }
.ct-about__certificates img { display: block; width: 100%; height: auto; }
.ct-about__certificates-next { position: absolute; right: 0; top: 50%; display: grid; width: 35px; height: 50px; place-items: center; padding: 0; border: 0; background: transparent; color: #858585; font-size: 0; cursor: pointer; transform: translateY(-50%); }
.ct-about__certificates-next::before { width: 20px; height: 20px; border-top: 4px solid currentColor; border-right: 4px solid currentColor; content: ''; transform: rotate(45deg); }
.ct-about__certificates-next:hover, .ct-about__certificates-next:focus-visible { color: var(--ct-blue-deep); }
@media (max-width: 1100px) {
    .ct-about__service-card > div { width: 63%; padding: 22px; }
    .ct-about.ct-page .ct-about__service-card h3 { font-size: 1.65rem; }
    .ct-about.ct-page .ct-about__service-card p { font-size: .9rem; }
    .ct-about__iso-row { gap: 10px; }
    .ct-about__iso-row span { min-width: 180px; font-size: 1.4rem; }
    .ct-about__iso-row img { width: 80px; height: 80px; }
    .ct-about__ministry-row { margin-top: 75px; }
}

@media (max-width: 900px) {
    .ct-about__hero, .ct-about__hero-content { min-height: 540px; }
    .ct-about__hero::after { background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.95) 45%,rgba(255,255,255,.25) 100%); }
    .ct-about__service-grid { grid-template-columns: 1fr; }
    .ct-about__service-card { height: 230px; }
    .ct-about__service-card > div { width: 50%; }
    .ct-about .page-gallery .gallery-grid { display: block; }
    .ct-about .page-gallery .gallery-grid img { display: none; }
    .ct-about .page-gallery .gallery-grid img:nth-child(2) { display: block; height: 450px; }
    .ct-about__certifications-grid { grid-template-columns: 1fr; gap: 50px; }
    .ct-about__ministry-row { margin-top: 45px; }
    .ct-about__certificates { max-width: 650px; }
}
@media (max-width: 720px) {
    .ct-about__hero, .ct-about__hero-content { min-height: 590px; }
    .ct-about__hero-image { object-position: 61% center; }
    .ct-about__hero::after { background: linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.86) 64%,rgba(255,255,255,.36)); }
    .ct-about__hero-content { padding-top: 140px; }
    .ct-about.ct-page .ct-about__hero h1 { font-size: clamp(2.35rem,10vw,3.15rem); }
    .ct-about__hero .subhero__actions { gap: 10px; margin-top: 28px; }
    .ct-about .page-intro { padding-block: 65px; }
    .ct-about__intro-heading { margin-bottom: 60px; }
    .ct-about.ct-page .ct-about__intro-heading h2, .ct-about.ct-page .ct-about__intro-grid h2, .ct-about.ct-page .page-surface h2 { font-size: clamp(2.1rem,8vw,3rem); }
    .ct-about.ct-page .ct-about__intro-heading p, .ct-about.ct-page .ct-about__intro-grid p { font-size: 1.05rem; }
    .ct-about__intro-grid { grid-template-columns: 1fr; gap: 25px; }
    .ct-about__intro-grid .page-image-card { min-height: 290px; height: 320px; }
    .ct-about__service-card::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,#f1f1f3 0%,rgba(241,241,243,.98) 45%,rgba(241,241,243,.8) 68%,transparent 100%); content: ''; pointer-events: none; }
    .ct-about__service-card > div { width: 78%; }
    .ct-about .page-gallery { padding-block: 65px; }
    .ct-about__gallery { grid-template-columns: 26px minmax(0,1fr) 26px; gap: 6px; }
    .ct-about__gallery-arrow { width: 26px; }
    .ct-about__gallery-arrow::before { width: 14px; height: 14px; border-width: 3px; }
    .ct-about .page-gallery .gallery-grid img:nth-child(2) { display: block; height: 350px; }
    .ct-about .sustainability h2 { font-size: clamp(2.25rem,10vw,3.25rem); }
    .ct-about .certifications { padding-block: 65px; }
    .ct-about__iso-row { flex-wrap: wrap; }
    .ct-about__iso-row span { width: 100%; }
    .ct-about__iso-row img { width: 90px; height: 90px; }
    .ct-about__ministry-row { gap: 30px; }
    .ct-about.ct-page .ct-about__ministry-row p { font-size: 1.4rem; }
    .ct-about__ministry-row img { width: 90px; height: 90px; }
    .ct-about__certificates { gap: 14px; padding-right: 24px; }
    .ct-about__certificates-next { width: 24px; }
    .ct-about__certificates-next::before { width: 14px; height: 14px; border-width: 3px; }
}
