/* ROCA Elementor Sections — baseline design (editable via Elementor controls) */
:root{
  --roca-navy:#062a43;
  --roca-navy-2:#0a3355;
  --roca-ink:#0f2a3c;
  --roca-body:#5a6b78;
  --roca-teal:#17876d;
  --roca-teal-2:#2f9e86;
  --roca-blue:#1e7fc2;
  --roca-light:#f4f7f8;
  --roca-line:#DDE5E8;
  --roca-max:100%;
}
.roca-header,.roca-hero,.roca-glance,.roca-sectors,.roca-scale,.roca-companies,
.roca-regional,.roca-timeline,.roca-vmv,.roca-lead,.roca-careers,.roca-part,
.roca-contact,.roca-cta,.roca-footer{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;box-sizing:border-box;
}
.roca-header *,.roca-hero *,.roca-glance *,.roca-sectors *,.roca-scale *,.roca-companies *,
.roca-regional *,.roca-timeline *,.roca-vmv *,.roca-lead *,.roca-careers *,.roca-part *,
.roca-contact *,.roca-cta *,.roca-footer *{box-sizing:border-box;}

.roca-btn{display:inline-block;font-weight:600;font-size:13px;letter-spacing:.04em;
  padding:15px 24px;text-decoration:none;transition:.2s;cursor:pointer;border:0;}
.roca-btn--solid{background:#fff;color:var(--roca-navy);}
.roca-btn--solid:hover{opacity:.9;}
.roca-btn--ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.25);}
.roca-btn--ghost:hover{background:rgba(255,255,255,.16);}

/* ---------- Header ---------- */
.roca-header{background:var(--roca-navy);width:100%;}
.roca-header.is-sticky{position:sticky;top:0;z-index:999;}
.roca-header__inner{max-width:var(--roca-max);margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;padding:22px 40px;}
.roca-header__brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.roca-header__logo img{height:40px;width:auto;display:block;}
.roca-header__brand-text{color:#fff;font-weight:700;letter-spacing:.08em;font-size:15px;}
.roca-header__nav{display:flex;gap:28px;}
.roca-header__nav a{color:#e6eef4;text-decoration:none;font-size:15px;transition:.2s;}
.roca-header__nav a:hover{color:#5ec6c0;}
.roca-header__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;}
.roca-header__toggle span{width:24px;height:2px;background:#fff;display:block;}

/* ---------- Hero ---------- */
.roca-hero{background:linear-gradient(135deg,#0b3a4f 0%,#0a2f47 45%,#0c2138 100%);position:relative;overflow:hidden;}
.roca-hero__inner{max-width:var(--roca-max);margin:0 auto;padding:90px 40px;display:grid;
  grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;}
.roca-hero__title{margin:0 0 28px;font-size:clamp(38px,6vw,74px);line-height:.98;font-weight:800;color:#fff;letter-spacing:-.02em;}
.roca-hero__title span{display:block;}
.roca-hero__title .is-muted{color:#7fa9bd;}
.roca-hero__desc{color:#b9cad6;font-size:17px;line-height:1.6;max-width:640px;margin:0 0 32px;}
.roca-hero__stats{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.15);margin-bottom:32px;}
.roca-stat{padding:20px 26px 20px 0;margin-right:26px;border-right:1px solid rgba(255,255,255,.12);}
.roca-stat:last-child{border-right:0;}
.roca-stat__num{color:#fff;font-size:26px;font-weight:700;line-height:1;}
.roca-stat__label{color:#8fb0c2;font-size:11px;letter-spacing:.12em;margin-top:8px;}
.roca-hero__buttons{display:flex;gap:14px;flex-wrap:wrap;}
.roca-hero__media img{max-width:100%;display:block;margin-left:auto;}
.roca-hero__scroll{position:absolute;right:40px;bottom:24px;color:#5f8092;font-size:12px;letter-spacing:.15em;}

/* ---------- Section shell ---------- */
.roca-glance,.roca-sectors,.roca-regional,.roca-timeline,.roca-vmv,.roca-careers,.roca-part,.roca-contact{background:var(--roca-light);}
.roca-glance__inner,.roca-sectors__inner,.roca-scale__inner,.roca-regional__inner,
.roca-timeline__inner,.roca-vmv__inner,.roca-lead__inner,.roca-careers__inner,
.roca-part__inner,.roca-contact__inner,.roca-cta__inner{max-width:var(--roca-max);margin:0 auto;padding:110px 40px;}

/* ---------- At a Glance ---------- */
.roca-glance__title{font-size:clamp(30px,4.5vw,52px);font-weight:800;color:var(--roca-ink);margin:0 0 20px;letter-spacing:-.02em;}
.roca-glance__desc{color:var(--roca-body);font-size:17px;line-height:1.6;max-width:820px;margin:0 0 56px;}
.roca-glance__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--roca-line);}
.roca-gcard{background:var(--roca-light);padding:0 34px 0 0;}
.roca-glance__cols .roca-gcard{padding-left:0;}
.roca-glance__cols .roca-gcard+.roca-gcard{padding-left:34px;}
.roca-gcard__idx{color:var(--roca-teal);font-size:12px;font-weight:600;letter-spacing:.14em;margin-bottom:16px;}
.roca-gcard__title{font-size:20px;font-weight:700;color:var(--roca-ink);margin:0 0 10px;}
.roca-gcard__desc{color:var(--roca-body);font-size:15px;line-height:1.6;margin:0;}

/* ---------- Sectors grid ---------- */
.roca-sectors__title{font-size:clamp(30px,5vw,56px);font-weight:800;color:var(--roca-ink);margin:0 0 16px;letter-spacing:-.02em;}
.roca-sectors__desc{color:var(--roca-body);font-size:16px;margin:0 0 44px;}
.roca-sectors__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--roca-line);
  border:1px solid var(--roca-line);box-shadow:0 30px 60px -40px rgba(6,42,67,.4);}
.roca-scard{background:#fff;padding:34px 30px 40px;display:flex;flex-direction:column;}
.roca-scard.is-active{background:#d9edfb;}
.roca-scard__num{color:var(--roca-blue);font-size:12px;letter-spacing:.2em;font-weight:600;margin-bottom:36px;}
.roca-scard__title{font-size:20px;font-weight:700;color:var(--roca-ink);margin:0 0 12px;}
.roca-scard__desc{color:var(--roca-body);font-size:14.5px;line-height:1.55;margin:0 0 26px;flex:1;}
.roca-scard__link{color:var(--roca-teal);font-size:12px;letter-spacing:.12em;font-weight:600;text-decoration:none;}
.roca-scard__link:hover{text-decoration:underline;}

/* ---------- Group scale ---------- */
.roca-scale{background:var(--roca-navy);}
.roca-scale__title{font-size:clamp(30px,5vw,54px);font-weight:800;color:#fff;margin:0 0 44px;letter-spacing:-.02em;}
.roca-scale__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgba(255,255,255,.12);}
.roca-sbox{padding:34px 30px;border-right:1px solid rgba(255,255,255,.12);}
.roca-sbox:last-child{border-right:0;}
.roca-sbox__num{color:#5ec6c0;font-size:46px;font-weight:300;line-height:1;}
.roca-sbox__label{color:#8fb0c2;font-size:13px;margin-top:14px;}

/* ---------- Our companies ---------- */
.roca-companies{background:#04182a;}
.roca-companies__head{max-width:var(--roca-max);margin:0 auto;padding:80px 40px 0;}
.roca-companies__overline{color:#22506e;font-size:clamp(30px,4vw,44px);font-weight:800;margin:0 0 10px;}
.roca-companies__sub{color:#4d6b81;font-size:15px;margin:0;}
.roca-companies__inner{display:grid;grid-template-columns:340px 1fr;gap:0;}
.roca-companies__aside-box{position:sticky;top:90px;background:var(--roca-navy);padding:40px 36px;}
.roca-companies__eyebrow{color:#7fa9bd;font-size:12px;letter-spacing:.16em;font-weight:600;}
.roca-companies__aside-title{color:#fff;font-size:34px;font-weight:800;line-height:1.12;margin-top:26px;border-bottom:3px solid var(--roca-teal-2);padding-bottom:24px;}
.roca-companies__list{display:flex;flex-direction:column;}
.roca-ccard{background:#eef4f6;padding:48px 56px;}
.roca-ccard:nth-child(even){background:#fff;margin-left:60px;}
.roca-ccard__num{color:var(--roca-blue);font-size:12px;letter-spacing:.2em;font-weight:600;margin-bottom:26px;}
.roca-ccard__country{color:var(--roca-teal);font-size:13px;letter-spacing:.12em;font-weight:600;margin-bottom:14px;}
.roca-ccard__name{font-size:30px;font-weight:800;color:var(--roca-ink);margin:0 0 16px;letter-spacing:-.01em;}
.roca-ccard__desc{color:var(--roca-body);font-size:16px;line-height:1.6;max-width:560px;margin:0 0 24px;}
.roca-ccard__link{color:var(--roca-teal);font-size:12px;letter-spacing:.1em;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;}

/* ---------- Regional map ---------- */
.roca-regional__title{font-size:clamp(30px,5vw,54px);font-weight:800;color:var(--roca-ink);margin:0 0 40px;letter-spacing:-.02em;}
.roca-regional__map{position:relative;background:#eef4f6;border:1px solid var(--roca-line);height:420px;
  background-image:linear-gradient(115deg,rgba(120,170,205,.18) 25%,transparent 25%,transparent 50%,rgba(120,170,205,.18) 50%,rgba(120,170,205,.18) 75%,transparent 75%);background-size:10px 10px;}
.roca-pin{position:absolute;transform:translate(-50%,-50%);}
.roca-pin__dot{width:10px;height:10px;border-radius:50%;background:var(--roca-teal);display:inline-block;position:absolute;top:6px;left:-14px;}
.roca-pin__card{background:#fff;box-shadow:0 10px 24px -12px rgba(6,42,67,.4);padding:10px 14px;border-radius:2px;min-width:120px;}
.roca-pin__card strong{display:block;color:var(--roca-ink);font-size:14px;}
.roca-pin__card span{color:var(--roca-body);font-size:12px;}
.roca-regional__legend{display:flex;gap:32px;border:1px solid var(--roca-line);padding:16px 20px;margin-top:14px;background:#fff;}
.roca-legend{font-size:13px;color:var(--roca-body);display:flex;align-items:center;gap:8px;}
.roca-legend:before{content:"";width:10px;height:10px;border-radius:50%;}
.roca-legend--solid:before{background:var(--roca-blue);}
.roca-legend--hollow:before{border:2px solid var(--roca-teal-2);}

/* ---------- Timeline ---------- */
.roca-timeline__title{font-size:clamp(26px,4vw,44px);font-weight:800;color:var(--roca-ink);margin:0 0 50px;}
.roca-timeline__track{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;border-top:1px solid var(--roca-line);padding-top:0;}
.roca-tl{position:relative;padding-top:34px;}
.roca-tl__dot{position:absolute;top:-6px;left:0;width:12px;height:12px;border-radius:50%;background:var(--roca-teal);}
.roca-tl__year{color:var(--roca-blue);font-size:28px;font-weight:800;margin-bottom:14px;}
.roca-tl__title{font-size:16px;font-weight:700;color:var(--roca-ink);margin:0 0 8px;}
.roca-tl__text{color:var(--roca-body);font-size:14px;line-height:1.55;margin:0;}

/* ---------- Vision Mission Values ---------- */
.roca-vmv__title{font-size:clamp(30px,5vw,54px);font-weight:800;color:var(--roca-ink);margin:0 0 16px;letter-spacing:-.02em;}
.roca-vmv__desc{color:var(--roca-body);font-size:16px;max-width:760px;margin:0 0 44px;}
.roca-vmv__grid{display:grid;grid-template-columns:1fr 1fr;}
.roca-vmv__box{padding:56px 48px;background:#fff;}
.roca-vmv__vision{background:var(--roca-navy);}
.roca-vmv__label{font-size:12px;letter-spacing:.16em;font-weight:600;display:block;margin-bottom:34px;}
.roca-vmv__vision .roca-vmv__label{color:#7fa9bd;}
.roca-vmv__mission .roca-vmv__label{color:var(--roca-teal);}
.roca-vmv__body{font-size:23px;line-height:1.45;margin:0;font-weight:400;}
.roca-vmv__vision .roca-vmv__body{color:#fff;}
.roca-vmv__mission .roca-vmv__body{color:#3f5563;}
.roca-vmv__values{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--roca-line);border-top:0;}
.roca-vval{padding:28px 24px;border-right:1px solid var(--roca-line);background:#fff;}
.roca-vval:last-child{border-right:0;}
.roca-vval__title{font-size:16px;font-weight:700;color:var(--roca-ink);margin:0 0 8px;}
.roca-vval__text{color:var(--roca-body);font-size:13.5px;line-height:1.5;margin:0;}

/* ---------- Leadership ---------- */
.roca-lead{background:var(--roca-navy);}
.roca-lead__title{font-size:clamp(30px,5vw,54px);font-weight:800;color:#fff;margin:0 0 16px;letter-spacing:-.02em;}
.roca-lead__desc{color:#9fb6c5;font-size:16px;max-width:720px;margin:0 0 48px;}
.roca-lead__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.08);}
.roca-lcard{background:#0a3355;padding:40px 34px;}
.roca-lcard__eyebrow{color:var(--roca-teal-2);font-size:11px;letter-spacing:.14em;font-weight:600;margin-bottom:16px;}
.roca-lcard__name{color:#fff;font-size:22px;font-weight:700;margin:0 0 14px;}
.roca-lcard__text{color:#9fb6c5;font-size:14.5px;line-height:1.6;margin:0;}

/* ---------- Careers ---------- */
.roca-careers__title{font-size:clamp(30px,5vw,54px);font-weight:800;color:var(--roca-ink);margin:0 0 16px;letter-spacing:-.02em;}
.roca-careers__desc{color:var(--roca-body);font-size:16px;margin:0 0 34px;}
.roca-careers__box{border:1px solid var(--roca-line);background:#fff;padding:30px 34px;display:flex;
  align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.roca-careers__box h3{margin:0 0 8px;color:var(--roca-ink);font-size:18px;}
.roca-careers__box p{margin:0;color:var(--roca-body);font-size:14.5px;}
.roca-careers .roca-btn--solid{background:var(--roca-navy);color:#fff;}

/* ---------- Partnerships ---------- */
.roca-part__title{font-size:clamp(30px,5vw,56px);font-weight:800;color:var(--roca-ink);margin:0 0 16px;letter-spacing:-.02em;line-height:1.05;}
.roca-part__desc{color:var(--roca-body);font-size:16px;max-width:760px;margin:0 0 44px;}
.roca-part__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--roca-line);border:1px solid var(--roca-line);margin-bottom:34px;}
.roca-pstep{background:#f6f9fa;padding:34px 30px;}
.roca-pstep__num{color:var(--roca-teal);font-size:12px;letter-spacing:.2em;font-weight:600;margin-bottom:30px;}
.roca-pstep__title{font-size:19px;font-weight:700;color:var(--roca-ink);margin:0 0 10px;}
.roca-pstep__text{color:var(--roca-body);font-size:14.5px;line-height:1.55;margin:0;}
.roca-part .roca-btn--solid{background:var(--roca-navy);color:#fff;}

/* ---------- Contact ---------- */
.roca-contact__title{font-size:clamp(28px,4.5vw,48px);font-weight:800;color:var(--roca-ink);margin:0 0 14px;text-align:center;letter-spacing:-.02em;}
.roca-contact__desc{color:var(--roca-body);font-size:16px;text-align:center;max-width:640px;margin:0 auto 40px;}
.roca-contact__form{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--roca-line);padding:40px;display:flex;flex-direction:column;gap:18px;}
.roca-field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.roca-contact__form label{display:flex;flex-direction:column;font-size:12px;letter-spacing:.06em;color:var(--roca-ink);font-weight:600;gap:8px;text-transform:uppercase;}
.roca-contact__form input,.roca-contact__form textarea,.roca-contact__form select{
  border:1px solid #d5dfe5;padding:12px 14px;font-size:15px;font-family:inherit;color:var(--roca-ink);background:#fff;font-weight:400;text-transform:none;letter-spacing:0;}
.roca-contact__form input:focus,.roca-contact__form textarea:focus,.roca-contact__form select:focus{outline:2px solid var(--roca-teal-2);border-color:transparent;}
.roca-contact .roca-btn--solid{background:var(--roca-navy);color:#fff;align-self:flex-start;}
.roca-contact__note{font-size:12px;color:#93a3ae;margin:4px 0 0;text-transform:none;letter-spacing:0;font-weight:400;}

/* ---------- CTA routes ---------- */
.roca-cta{background:linear-gradient(180deg,#0a2f47,#062133);}
.roca-cta__title{font-size:clamp(34px,6vw,70px);font-weight:800;color:#fff;text-align:center;margin:0 0 20px;letter-spacing:-.02em;line-height:1.02;}
.roca-cta__desc{color:#9fb6c5;font-size:17px;text-align:center;max-width:720px;margin:0 auto 48px;line-height:1.6;}
.roca-cta__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);}
.roca-route{background:rgba(255,255,255,.05);padding:34px 26px 44px;text-decoration:none;text-align:center;transition:.2s;}
.roca-route:hover{background:rgba(255,255,255,.1);}
.roca-route__title{color:#fff;font-size:18px;font-weight:700;margin:0 0 24px;}
.roca-route__text{color:#8fa9ba;font-size:13.5px;line-height:1.5;margin:0;}

/* ---------- Footer ---------- */
.roca-footer{background:#04182a;}
.roca-footer__inner{max-width:var(--roca-max);margin:0 auto;padding:56px 40px;}
.roca-footer__top{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.08);margin-bottom:48px;}
.roca-footer__top span{padding:22px 24px;color:#8fa9ba;font-size:13px;border-right:1px solid rgba(255,255,255,.08);}
.roca-footer__top span:last-child{border-right:0;}
.roca-footer__main{display:grid;grid-template-columns:1.4fr 2fr;gap:40px;}
.roca-footer__brand img{height:70px;width:auto;margin-bottom:22px;}
.roca-footer__tagline{color:#8fa9ba;font-size:15px;margin:0;}
.roca-footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.roca-footer__col h4{color:#5c93b3;font-size:12px;letter-spacing:.16em;margin:0 0 20px;}
.roca-footer__col a{display:block;color:#c4d3de;text-decoration:none;font-size:15px;margin-bottom:12px;transition:.2s;}
.roca-footer__col a:hover{color:#fff;}
.roca-footer__copy{border-top:1px solid rgba(255,255,255,.08);margin-top:44px;padding-top:26px;color:#5f7788;font-size:13px;}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .roca-companies__inner{grid-template-columns:1fr;}
  .roca-companies__aside-box{position:relative;top:0;}
  .roca-ccard:nth-child(even){margin-left:0;}
}
@media(max-width:880px){
  .roca-hero__inner,.roca-vmv__grid{grid-template-columns:1fr;}
  .roca-hero__media{order:-1;}
  .roca-glance__cols,.roca-lead__grid,.roca-part__grid,.roca-vmv__values{grid-template-columns:1fr 1fr;}
  .roca-scale__grid,.roca-cta__grid,.roca-footer__top{grid-template-columns:1fr 1fr;}
  .roca-sbox,.roca-footer__top span{border-right:0;border-bottom:1px solid rgba(255,255,255,.12);}
  .roca-timeline__track{grid-template-columns:1fr 1fr;gap:34px;}
  .roca-footer__main{grid-template-columns:1fr;}
  .roca-header__nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--roca-navy);
    flex-direction:column;padding:20px 40px;z-index:998;}
  .roca-header.is-open .roca-header__nav{display:flex;}
  .roca-header__toggle{display:flex;}
  .roca-header{position:relative;}
}
@media(max-width:560px){
  .roca-glance__cols,.roca-sectors__grid,.roca-lead__grid,.roca-part__grid,.roca-vmv__values,
  .roca-scale__grid,.roca-cta__grid,.roca-footer__top,.roca-footer__cols,.roca-timeline__track,
  .roca-field-row{grid-template-columns:1fr;}
  .roca-glance__inner,.roca-sectors__inner,.roca-scale__inner,.roca-regional__inner,
  .roca-timeline__inner,.roca-vmv__inner,.roca-lead__inner,.roca-careers__inner,
  .roca-part__inner,.roca-contact__inner,.roca-cta__inner,.roca-hero__inner{padding-left:22px;padding-right:22px;}
  .roca-hero__stats{flex-wrap:wrap;}
}

/* =========================================================
   v1.1 — Animations & interactions
   ========================================================= */
/* Scroll reveal (gated by .roca-anim-ready so content is never hidden if JS fails) */
.roca-reveal{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform;}
.roca-anim-ready .roca-reveal{opacity:0;transform:translateY(32px);}
.roca-anim-ready .roca-reveal.roca-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .roca-anim-ready .roca-reveal{opacity:1!important;transform:none!important;transition:none!important;}
  .roca-hero__media img{animation:none!important;}
}

/* Transparent header overlay (drops the following hero up under the bar) */
.roca-header--transparent{position:relative;z-index:100;background:transparent!important;margin-bottom:-86px;}
.roca-header--transparent .roca-header__inner{padding-top:28px;}

/* Hero */
.roca-hero__media img{animation:roca-float 7s ease-in-out infinite;}
@keyframes roca-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}

/* Buttons */
.roca-btn{transition:transform .2s ease,opacity .2s ease,background .2s ease,box-shadow .2s ease;}
.roca-btn:hover{transform:translateY(-2px);}

/* Sectors — hover #DDF2FF + lift */
.roca-scard{transition:background .3s ease,transform .3s ease,box-shadow .3s ease;}
.roca-scard:hover{background:#DDF2FF;transform:translateY(-5px);box-shadow:0 26px 44px -30px rgba(6,42,67,.5);}
.roca-scard:hover .roca-scard__link{text-decoration:underline;}

/* Group scale — box hover */
.roca-sbox{transition:background .3s ease;}
.roca-sbox:hover{background:rgba(94,198,192,.07);}

/* Our Companies — hover #E5ECEE, aside stays sticky */
.roca-ccard{transition:background .3s ease;}
.roca-ccard:hover{background:#E5ECEE;}

/* Regional map — hover highlights the hovered location, dims the rest */
.roca-pin{transition:opacity .3s ease;}
.roca-regional__map:hover .roca-pin{opacity:.4;}
.roca-regional__map:hover .roca-pin:hover{opacity:1;z-index:6;}
.roca-pin__card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;border-left:3px solid transparent;}
.roca-pin:hover .roca-pin__card{transform:translateY(-5px) scale(1.06);box-shadow:0 20px 38px -14px rgba(6,42,67,.55);border-left-color:var(--roca-teal);}
.roca-pin__dot{transition:transform .3s ease,box-shadow .3s ease;}
.roca-pin:hover .roca-pin__dot{transform:scale(1.6);box-shadow:0 0 0 6px rgba(23,135,109,.18);}

/* Timeline — dot pulse on hover (reveal handled by JS) */
.roca-tl__dot{transition:transform .3s ease;}
.roca-tl:hover .roca-tl__dot{transform:scale(1.45);}

/* Vision / Mission / Values — hover lift + invert on mission hover */
.roca-vmv__box,.roca-vval{transition:transform .35s ease,background .35s ease,color .35s ease,box-shadow .35s ease;}
.roca-vval:hover{transform:translateY(-5px);box-shadow:0 22px 36px -28px rgba(6,42,67,.5);}
.roca-vval:hover .roca-vval__title{color:var(--roca-teal);}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__vision{background:#fff;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__vision .roca-vmv__body{color:#3f5563;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__vision .roca-vmv__label{color:var(--roca-teal);}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__mission{background:var(--roca-navy);}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__mission .roca-vmv__body{color:#fff;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__mission .roca-vmv__label{color:#7fa9bd;}

/* Leadership — visible card border + hover */
.roca-lcard{border:1px solid transparent;transition:transform .35s ease,border-color .35s ease,background .35s ease;}
.roca-lcard:hover{transform:translateY(-6px);border-color:var(--roca-teal-2);}

/* Partnerships — #F8FAFB cards + slide-up on scroll (reveal) + hover */
.roca-pstep{background:#F8FAFB;transition:transform .35s ease,box-shadow .35s ease;}
.roca-pstep:hover{transform:translateY(-6px);box-shadow:0 28px 46px -32px rgba(6,42,67,.5);}

/* Glance / CTA route hover */
.roca-gcard{transition:transform .35s ease;}
.roca-gcard:hover{transform:translateY(-4px);}
.roca-route{transition:transform .35s ease,background .3s ease;}
.roca-route:hover{transform:translateY(-5px);}

/* Header links subtle underline grow */
.roca-header__nav a{position:relative;}
.roca-header__nav a:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:#5ec6c0;transition:width .25s ease;}
.roca-header__nav a:hover:after{width:100%;}

/* =========================================================
   v1.2 — fixes (override earlier rules; appended = wins)
   ========================================================= */

/* --- Transparent header: overlay via the widget WRAPPER so it takes no space --- */
.roca-header-wrap--transparent{position:relative;z-index:100;margin-bottom:-96px;}
.roca-header-wrap--transparent .roca-header{background:transparent!important;}
.roca-header-wrap--transparent .roca-header__inner{padding-top:30px;}

/* --- Hero graphic: zoom-in on load (replaces float) --- */
.roca-hero__media img{animation:roca-zoomin 1.5s cubic-bezier(.2,.7,.2,1) both;}
@keyframes roca-zoomin{from{opacity:0;transform:scale(.8);}to{opacity:1;transform:scale(1);}}

/* --- Vision / Mission / Values: dark #031F34 active, light #FFFFFF, swap on hover --- */
.roca-vmv__vision{background:#031F34;}
.roca-vmv__mission{background:#ffffff;}
.roca-vmv__box{transition:background .4s ease,color .4s ease;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__vision{background:#ffffff!important;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__vision .roca-vmv__body{color:#3f5563!important;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__vision .roca-vmv__label{color:var(--roca-teal)!important;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__mission{background:#031F34!important;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__mission .roca-vmv__body{color:#ffffff!important;}
.roca-vmv__grid:has(.roca-vmv__mission:hover) .roca-vmv__mission .roca-vmv__label{color:#5ec6c0!important;}

/* --- Our Companies: remove alternating staircase gap, unify white, hover #E5ECEE --- */
.roca-ccard,
.roca-ccard:nth-child(even){background:#ffffff;margin-left:0;}
.roca-ccard:hover{background:#E5ECEE;}
/* fade-only reveal so cards never overlap into the next while animating */
.roca-anim-ready .roca-ccard.roca-reveal{transform:none;}
.roca-ccard{border-bottom:1px solid #e4ebef;}

/* --- Sectors: color only on hover (no permanent highlight) --- */
.roca-scard.is-active{background:#ffffff;}
.roca-scard.is-active:hover{background:#DDF2FF;}

/* --- News & Updates --- */
.roca-news{background:var(--roca-light);}
.roca-news__inner{max-width:var(--roca-max);margin:0 auto;padding:90px 40px;}
.roca-news__title{font-size:clamp(30px,5vw,54px);font-weight:800;color:var(--roca-ink);margin:0 0 16px;letter-spacing:-.02em;}
.roca-news__desc{color:var(--roca-body);font-size:16px;margin:0 0 40px;}
.roca-news__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.roca-ncard{background:#fff;border:1px solid var(--roca-line);display:flex;flex-direction:column;transition:transform .35s ease,box-shadow .35s ease;overflow:hidden;}
.roca-ncard:hover{transform:translateY(-6px);box-shadow:0 26px 46px -32px rgba(6,42,67,.5);}
.roca-ncard__media{display:block;overflow:hidden;aspect-ratio:16/9;}
.roca-ncard__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.roca-ncard:hover .roca-ncard__media img{transform:scale(1.05);}
.roca-ncard__body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1;}
.roca-ncard__date{color:#8a9aa6;font-size:12px;letter-spacing:.08em;margin-bottom:12px;text-transform:uppercase;}
.roca-ncard__title{font-size:19px;font-weight:700;line-height:1.35;margin:0 0 18px;}
.roca-ncard__title a{color:var(--roca-ink);text-decoration:none;}
.roca-ncard__title a:hover{color:var(--roca-teal);}
.roca-ncard__link{margin-top:auto;color:var(--roca-teal);font-size:12px;letter-spacing:.1em;font-weight:600;text-decoration:none;}
.roca-ncard__link:hover{text-decoration:underline;}
.roca-news__empty{border:1px solid var(--roca-line);background:#fff;padding:30px 34px;}
.roca-news__empty h3{margin:0 0 8px;color:var(--roca-ink);font-size:18px;}
.roca-news__empty p{margin:0;color:var(--roca-body);font-size:14.5px;}
@media(max-width:880px){.roca-news__grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.roca-news__grid{grid-template-columns:1fr;}}

/* =========================================================
   v1.3 — Our Companies: sticky stacked-card scroll effect
   ========================================================= */
.roca-companies__list{display:block;}
.roca-ccard{position:sticky;top:90px;background:#ffffff;border-bottom:0;
  box-shadow:0 -20px 34px -26px rgba(6,42,67,.35);}
/* each card sticks slightly lower so the previous one peeks through -> stack */
.roca-ccard:nth-child(1){top:74px;}
.roca-ccard:nth-child(2){top:100px;}
.roca-ccard:nth-child(3){top:126px;}
.roca-ccard:nth-child(4){top:152px;}
.roca-ccard:nth-child(5){top:178px;}
.roca-ccard:nth-child(6){top:204px;}
.roca-ccard:nth-child(7){top:230px;}
.roca-ccard:nth-child(8){top:256px;}
/* keep the left intro pinned while the stack scrolls */
.roca-companies__aside-box{position:sticky;top:74px;}
/* on smaller screens fall back to a normal stack (no sticky) */
@media(max-width:1024px){
  .roca-ccard{position:relative;top:auto!important;box-shadow:none;border-bottom:1px solid #e4ebef;}
  .roca-companies__aside-box{position:relative;top:0;}
}

/* v1.4.1 — responsive hide utilities (Elementor default breakpoints) */
@media (max-width:767px){ .roca-hide-mobile{display:none!important;} }
@media (min-width:768px) and (max-width:1024px){ .roca-hide-tablet{display:none!important;} }

/* v1.4.2 — Hero mobile polish (stats 2x2 grid, buttons stacked) */
@media (max-width:767px){
  .roca-hero__inner{grid-template-columns:1fr;}
  .roca-hero__title{font-size:clamp(34px,10vw,46px);line-height:1.02;}
  .roca-hero__stats{display:grid;grid-template-columns:1fr 1fr;gap:0;
    border-top:1px solid rgba(255,255,255,.15);border-left:1px solid rgba(255,255,255,.15);margin-bottom:26px;}
  .roca-hero__stats .roca-stat{margin:0;padding:16px 18px;
    border-right:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);}
  .roca-hero__buttons{flex-direction:column;align-items:stretch;}
  .roca-hero__buttons .roca-btn{width:100%;text-align:center;}
  .roca-hero__scroll{position:static;margin-top:22px;text-align:right;}
}

/* v1.5 — Contact attachment + consent */
.roca-contact__form .roca-field-file input[type="file"]{padding:24px 14px;background:#fff;cursor:pointer;width:100%;}
.roca-field-note{font-size:12px;color:#93a3ae;margin:-8px 0 0;text-transform:none;letter-spacing:0;font-weight:400;}
.roca-contact__form label.roca-consent{flex-direction:row;align-items:flex-start;gap:12px;text-transform:none;letter-spacing:0;font-weight:400;font-size:14px;color:#3f5563;cursor:pointer;}
.roca-contact__form label.roca-consent input[type="checkbox"]{width:18px;height:18px;flex:0 0 auto;margin-top:2px;border:1px solid #d5dfe5;padding:0;}
.roca-contact__form label.roca-consent span{line-height:1.5;}

/* v1.6 — full-width container + hero stats bottom line */
.roca-hero__stats{border-bottom:1px solid rgba(255,255,255,.15);}
.roca-hero .roca-btn{transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease;}

/* v1.6.1 — At a Glance: clean vertical dividers via border-right (no gap-bg line) */
.roca-glance__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:transparent;box-shadow:none;}
.roca-glance__cols .roca-gcard{background:transparent;padding:0 44px;border-right:1px solid var(--roca-line);}
.roca-glance__cols .roca-gcard:first-child{padding-left:0;}
.roca-glance__cols .roca-gcard:last-child{border-right:0;padding-right:0;}
@media(max-width:880px){
  .roca-glance__cols{grid-template-columns:1fr 1fr;}
  .roca-glance__cols .roca-gcard:nth-child(2n){border-right:0;}
  .roca-glance__cols .roca-gcard{padding:0 30px;border-bottom:1px solid var(--roca-line);}
}
@media(max-width:560px){
  .roca-glance__cols{grid-template-columns:1fr;}
  .roca-glance__cols .roca-gcard{border-right:0;padding:22px 0;}
  .roca-glance__cols .roca-gcard:last-child{border-bottom:0;}
}

/* v1.7 — company card item colours transition on hover */
.roca-ccard__num,.roca-ccard__country,.roca-ccard__name,.roca-ccard__desc,.roca-ccard__link{transition:color .3s ease;}

/* v1.8 — Companies: stick flush at top (no gap) + scroll progress bar */
.roca-ccard{top:0!important;}
.roca-companies__aside-box{top:0;}
.roca-companies__aside-title{border-bottom:0;padding-bottom:20px;}
.roca-companies__progress{position:relative;height:3px;width:100%;background:rgba(255,255,255,.15);overflow:hidden;}
.roca-companies__progress-fill{position:absolute;left:0;top:0;height:100%;width:0;background:var(--roca-teal-2);transition:width .08s linear;}
@media(max-width:1024px){ .roca-companies__progress{display:none;} }

/* v1.9 — Companies new palette */
.roca-companies{background:#ffffff;}
.roca-companies__inner{background:#F4F7F7;}
.roca-companies__head{background:transparent;}
.roca-companies__overline{color:#22506e;}
.roca-companies__sub{color:#4d6b81;}

/* v1.9.2 — Leadership: separator divider only (no box border) */
.roca-lead__grid{gap:0;background:transparent;}
.roca-lcard{border:0;border-right:1px solid rgba(255,255,255,.14);}
.roca-lcard:last-child{border-right:0;}
.roca-lcard:hover{border-color:transparent;border-right-color:var(--roca-teal-2);}
@media(max-width:880px){
  .roca-lead__grid{grid-template-columns:1fr 1fr;}
  .roca-lcard:nth-child(2n){border-right:0;}
  .roca-lcard{border-bottom:1px solid rgba(255,255,255,.14);}
}
@media(max-width:560px){
  .roca-lead__grid{grid-template-columns:1fr;}
  .roca-lcard{border-right:0;}
}

/* v1.10 — Careers/Partnerships button hover + shadow + white separators */
.roca-careers .roca-btn--solid,.roca-part .roca-btn--solid{transition:background .25s ease,color .25s ease,transform .2s ease,box-shadow .25s ease;}
.roca-careers .roca-btn--solid:hover{background:#0a3a5c;}
.roca-part .roca-btn--solid:hover{background:#0a3a5c;}
.roca-careers__box{box-shadow:0 24px 50px -34px rgba(0,141,132,.4);}
.roca-part__grid{background:#ffffff;}
.roca-pstep{box-shadow:0 18px 40px -34px rgba(6,42,67,.28);}

/* v1.10.1 — box shadow on hover only */
.roca-careers__box{box-shadow:none;transition:box-shadow .3s ease,transform .3s ease;}
.roca-careers__box:hover{box-shadow:0 24px 50px -34px rgba(0,141,132,.4);}
.roca-pstep{box-shadow:none;}
.roca-pstep:hover{box-shadow:0 26px 46px -30px rgba(6,42,67,.32);}

/* v1.11 — Timeline pinned horizontal scroll */
.roca-timeline--horizontal{position:relative;}
.roca-timeline--horizontal .roca-timeline__sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;}
.roca-timeline--horizontal .roca-timeline__inner{max-width:none;width:100%;padding-top:0;padding-bottom:0;}
.roca-timeline--horizontal .roca-timeline__track{display:flex;flex-wrap:nowrap;gap:60px;border-top:1px solid var(--roca-line);padding-top:0;will-change:transform;}
.roca-timeline--horizontal .roca-tl{flex:0 0 auto;width:300px;}
.roca-anim-ready .roca-timeline--horizontal .roca-tl{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.roca-anim-ready .roca-timeline--horizontal .roca-tl.roca-in{opacity:1;transform:none;}
@media (max-width:768px){
  .roca-timeline--horizontal{height:auto!important;}
  .roca-timeline--horizontal .roca-timeline__sticky{position:static;height:auto;overflow:visible;display:block;}
  .roca-timeline--horizontal .roca-timeline__track{flex-wrap:wrap;transform:none!important;gap:34px;}
  .roca-timeline--horizontal .roca-tl{width:calc(50% - 17px);}
  .roca-anim-ready .roca-timeline--horizontal .roca-tl{opacity:1;transform:none;}
}

/* v1.11.1 — Timeline horizontal: compact centered band + transparent bg so neighbours peek */
.roca-timeline--horizontal{background:transparent;}
.roca-timeline--horizontal .roca-timeline__sticky{height:60vh;top:20vh;}
@media (max-width:768px){
  .roca-timeline--horizontal .roca-timeline__sticky{height:auto!important;top:0!important;}
}

/* v1.11.2 — header toggle: remove pink tap/active highlight, use hover colour */
.roca-header__toggle{background:transparent!important;border:0!important;box-shadow:none!important;
  -webkit-tap-highlight-color:transparent;-webkit-appearance:none;appearance:none;cursor:pointer;padding:8px;border-radius:0;}
.roca-header__toggle:hover,.roca-header__toggle:focus,.roca-header__toggle:focus-visible,.roca-header__toggle:active{
  background:transparent!important;outline:none!important;box-shadow:none!important;border:0!important;}
.roca-header__toggle span{transition:background .2s ease;}
.roca-header__toggle:hover span,.roca-header.is-open .roca-header__toggle span{background:#5ec6c0;}

/* v1.12 — mobile dropdown uses editable variable */
@media(max-width:880px){
  .roca-header__nav{background:var(--roca-mobile-menu-bg, var(--roca-navy));}
}

/* v1.13 — hero scroll-to-explore glassmorphism + mobile button row */
.roca-hero__scroll{display:inline-flex;align-items:center;gap:12px;padding:10px 18px;border-radius:40px;
  background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  border:1px solid rgba(255,255,255,.16);color:#cfe0e8;font-size:12px;letter-spacing:.15em;
  text-decoration:none;cursor:pointer;transition:background .25s ease,color .25s ease,transform .25s ease;}
.roca-hero__scroll:hover{background:rgba(255,255,255,.14);color:#ffffff;transform:translateY(-2px);}
.roca-hero__scroll-line{display:inline-block;width:34px;height:2px;
  background:linear-gradient(90deg,#8FD6D2,rgba(143,214,210,0));}
.roca-hero__scroll-text{white-space:nowrap;}

@media (max-width:767px){
  /* buttons stay in one horizontal row */
  .roca-hero__buttons{flex-direction:row;flex-wrap:nowrap;gap:12px;}
  .roca-hero__buttons .roca-btn{flex:1 1 0;width:auto;text-align:center;padding-left:14px;padding-right:14px;font-size:12px;}
  /* scroll indicator: visible, centered, tappable */
  .roca-hero__scroll{position:static;margin:22px auto 0;justify-content:center;color:#dcebf1;}
}

/* v1.13.1 — scroll indicator in flex wrapper (position controllable) */
.roca-hero__scroll-wrap{display:flex;justify-content:flex-end;padding:0 40px 24px;}
.roca-hero__scroll{position:static;right:auto;bottom:auto;}
@media (max-width:767px){ .roca-hero__scroll-wrap{padding:22px 22px 24px;} }

/* v1.13.2 — let the Position control drive mobile alignment (kill the auto-centering) */
@media (max-width:767px){
  .roca-hero__scroll{margin:0!important;}
}

/* v1.14 — hamburger toggle border/radius via controls */
.roca-header__toggle,
.roca-header__toggle:hover,
.roca-header__toggle:focus,
.roca-header__toggle:focus-visible,
.roca-header__toggle:active{
  border-style:solid!important;
  border-width:var(--roca-tgl-bw,0px)!important;
  border-color:var(--roca-tgl-bc,transparent)!important;
  border-radius:var(--roca-tgl-br,0px);
}

/* v1.14.1 — Our Companies: mobile-only card gap */
@media(max-width:1024px){
  .roca-companies__list{display:flex;flex-direction:column;gap:var(--roca-ccard-gap,0px);}
}

/* v1.15 — Companies desktop: no card overlap; aside matches first card height */
@media(min-width:1025px){
  .roca-ccard{position:static!important;top:auto!important;box-shadow:none!important;}
  .roca-companies__aside-box{align-self:start;}
}

/* v1.16 — VMV values dividers via controls (desktop + mobile) */
.roca-vmv__values{border:var(--roca-vmv-div-w,1px) solid var(--roca-vmv-div-c,var(--roca-line));border-top:0;}
.roca-vmv__values .roca-vval{border-right:var(--roca-vmv-div-w,1px) solid var(--roca-vmv-div-c,var(--roca-line));border-bottom:0;}
.roca-vmv__values .roca-vval:last-child{border-right:0;}
@media(max-width:880px) and (min-width:561px){
  .roca-vmv__values .roca-vval:nth-child(2n){border-right:0;}
  .roca-vmv__values .roca-vval{border-bottom:var(--roca-vmv-div-w,1px) solid var(--roca-vmv-div-c,var(--roca-line));}
  .roca-vmv__values .roca-vval:nth-last-child(-n+2){border-bottom:0;}
}
@media(max-width:560px){
  .roca-vmv__values .roca-vval{border-right:0;border-bottom:var(--roca-vmv-div-w,1px) solid var(--roca-vmv-div-c,var(--roca-line));}
  .roca-vmv__values .roca-vval:last-child{border-bottom:0;}
}

/* v1.16.1 — remove Partnerships grid outer border */
.roca-part__grid{border:0;background:transparent;gap:24px;}

/* v1.16.3 — horizontal timeline: track spans all items so the connecting line is continuous */
.roca-timeline--horizontal .roca-timeline__track{width:max-content;min-width:100%;}

/* v1.16.4 — Partnerships: mobile-only card gap */
@media(max-width:880px){
  .roca-part__grid{gap:var(--roca-pstep-gap,24px);}
}

/* v1.17 — timeline: max-content track desktop only; clean 2-up on mobile (no h-scroll) */
@media(max-width:768px){
  .roca-timeline--horizontal .roca-timeline__track{width:auto!important;min-width:0!important;transform:none!important;}
  .roca-timeline--horizontal .roca-tl{width:calc(50% - 17px);}
}
/* footer mobile: columns first, then logo + tagline */
@media(max-width:880px){
  .roca-footer__main{display:flex;flex-direction:column;}
  .roca-footer__cols{order:1;}
  .roca-footer__brand{order:2;margin-top:10px;}
}

/* v1.18.1 — timeline mobile: per-item connector line (all rows) */
@media(max-width:768px){
  .roca-timeline--horizontal .roca-timeline__track{border-top:0;}
  .roca-timeline--horizontal .roca-tl{border-top:1px solid var(--roca-line);padding-top:34px;}
}
