/* STANDS Y FERIAS · V3
   Hoja específica completa para /stands-ferias-barcelona.php */

:root{
  --fr-orange:var(--orange,#f97316);
  --fr-orange-dark:var(--orange-dark,#d95706);
  --fr-black:#0b0b0b;
  --fr-bg:#f3f0eb;
  --fr-text:#151515;
  --fr-muted:#625e58;
  --fr-line:#d8d1c8;
  --fr-shadow:0 28px 70px rgba(0,0,0,.18);
}

.fr-hero,
.fr-intro,
.fr-solutions,
.fr-visual-banner,
.fr-contexts,
.fr-case,
.fr-process,
.fr-tech,
.fr-budget,
.fr-related{
  position:relative;
}

.fr-hero *,
.fr-intro *,
.fr-solutions *,
.fr-visual-banner *,
.fr-contexts *,
.fr-case *,
.fr-process *,
.fr-tech *,
.fr-budget *,
.fr-related *{
  min-width:0;
}

#soluciones,
#proceso-ferias,
#faq,
#contacto{
  scroll-margin-top:110px;
}

/* HERO */
.fr-hero{
  overflow:hidden;
  background:#0b0b0b;
  color:#fff;
  border-bottom:1px solid #242424;
}

.fr-hero::after{
  content:"";
  position:absolute;
  right:-12vw;
  bottom:-20vw;
  width:48vw;
  height:48vw;
  border:1px solid rgba(249,115,22,.13);
  border-radius:50%;
  pointer-events:none;
}

.fr-hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,.94fr) minmax(430px,.86fr);
  gap:clamp(3rem,6vw,7rem);
  align-items:center;
  padding-top:clamp(10.5rem,13vw,12rem);
  padding-bottom:clamp(5rem,7vw,7rem);
}

.fr-hero-copy{min-width:0}

.fr-hero h1{
  max-width:820px;
  margin:.65rem 0 1.4rem;
  color:#fff;
  font-size:clamp(3.7rem,6.1vw,6.55rem);
  line-height:.9;
  letter-spacing:-.057em;
  text-wrap:balance;
}

.fr-hero-lead{
  max-width:740px;
  margin:0 0 1rem;
  color:#b9b2ac;
  font-size:clamp(1.38rem,2.05vw,2rem);
  font-weight:800;
  line-height:1.36;
}

.fr-hero-text{
  max-width:720px;
  margin:0;
  color:#d2d2d2;
  font-size:1.08rem;
  line-height:1.75;
}

.fr-hero .hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:2rem;
}

.fr-hero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:2.2rem 0 0;
  padding:0;
  list-style:none;
}

.fr-hero-tags li{
  padding:.7rem 1rem;
  border:1px solid #3a3a3a;
  border-radius:999px;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fr-hero-media{
  position:relative;
  justify-self:end;
  max-width:680px;
  margin:0;
  padding:2rem 0 0 2rem;
}

.fr-hero-media>span{
  position:absolute;
  inset:0 2.3rem 2.7rem 0;
  border:4px solid var(--fr-orange);
}

.fr-hero-media img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  box-shadow:0 35px 90px rgba(0,0,0,.48);
}

.fr-hero-media figcaption{
  position:relative;
  z-index:2;
  width:min(90%,470px);
  margin:-5rem 0 0 auto;
  padding:1.45rem 1.55rem;
  border-left:4px solid var(--fr-orange);
  background:#111;
  color:#fff;
  box-shadow:0 20px 50px rgba(0,0,0,.36);
}

.fr-hero-media figcaption strong,
.fr-hero-media figcaption small{
  display:block;
}

.fr-hero-media figcaption small{
  margin-top:.55rem;
  color:#bbb;
  line-height:1.55;
}

/* BANDA DE CONFIANZA Y BREADCRUMBS */
.service-trust{
  background:var(--fr-orange);
  color:#fff;
}

.service-trust-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.service-trust-grid>div{
  padding:1.45rem 1.55rem;
  border-right:1px solid rgba(255,255,255,.3);
}

.service-trust-grid>div:last-child{border-right:0}
.service-trust-grid strong,
.service-trust-grid span{display:block}
.service-trust-grid strong{color:#fff}
.service-trust-grid span{margin-top:.25rem;color:#fff2e9;font-size:.82rem}

.breadcrumb-band{
  margin:0;
  border-top:1px solid #282828;
  border-bottom:1px solid #282828;
  background:#111;
  color:#c9c9c9;
}

.breadcrumb-inner{
  display:flex;
  min-height:64px;
  align-items:center;
  flex-wrap:wrap;
  gap:.55rem;
  font-size:.9rem;
  font-weight:700;
}

.breadcrumb-inner a{
  color:#ff9b59;
  text-decoration:none;
}

.breadcrumb-inner a:hover,
.breadcrumb-inner a:focus-visible{color:#fff}
.breadcrumb-inner span[aria-current="page"]{color:#fff}

/* INTRO */
.fr-intro{background:var(--fr-bg)}

.fr-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:clamp(3.5rem,7vw,8rem);
  align-items:center;
}

.fr-intro-copy h2{
  max-width:840px;
  margin:.65rem 0 1.65rem;
  font-size:clamp(3rem,5vw,5.3rem);
  line-height:.95;
  letter-spacing:-.052em;
  text-wrap:balance;
}

.fr-intro-copy p{
  max-width:790px;
  color:var(--fr-muted);
  font-size:1.05rem;
  line-height:1.82;
}

.fr-intro-copy .text-link{margin-top:1rem}

.fr-framed-image{
  position:relative;
  margin:0;
  padding:2rem 0 0 2rem;
}

.fr-framed-image>span{
  position:absolute;
  inset:0 2.4rem 2.7rem 0;
  border:4px solid var(--fr-orange);
}

.fr-framed-image img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  box-shadow:var(--fr-shadow);
}

.fr-framed-image figcaption{
  position:relative;
  z-index:2;
  width:min(88%,470px);
  margin:-4.7rem 0 0 auto;
  padding:1.45rem 1.55rem;
  background:#111;
  color:#fff;
}

.fr-framed-image strong,
.fr-framed-image span{display:block}
.fr-framed-image span{margin-top:.5rem;color:#bbb;line-height:1.55}

/* SOLUCIONES */
.fr-solutions{background:#fff}
.fr-solutions .section-heading{margin-bottom:3rem}

.fr-solutions-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.4rem;
}

.fr-card{
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  border-bottom:4px solid transparent;
  background:var(--fr-bg);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}

.fr-card:hover{
  transform:translateY(-5px);
  border-color:var(--fr-orange);
  box-shadow:var(--fr-shadow);
}

.fr-card img{
  display:block;
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  transition:transform .5s ease;
}

.fr-card:hover img{transform:scale(1.025)}

.fr-card>div{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:clamp(1.7rem,2.6vw,2.4rem);
}

.fr-card span{
  color:var(--fr-orange-dark);
  font-size:.73rem;
  font-weight:950;
  letter-spacing:.12em;
}

.fr-card h3{
  margin:1rem 0 .9rem;
  font-size:clamp(1.55rem,2vw,2.15rem);
  line-height:1.04;
}

.fr-card p{
  margin:0;
  color:var(--fr-muted);
  line-height:1.68;
}

/* BANNER VISUAL */
.fr-visual-banner{
  display:flex;
  min-height:760px;
  align-items:center;
  overflow:hidden;
  background:#111;
  color:#fff;
}

.fr-visual-banner>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.fr-visual-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.86) 42%,rgba(0,0,0,.34) 78%,rgba(0,0,0,.14) 100%),
    linear-gradient(0deg,rgba(0,0,0,.56),transparent 60%);
}

.fr-visual-content{
  position:relative;
  z-index:2;
  padding-block:7rem;
}

.fr-visual-content h2{
  max-width:950px;
  margin:.7rem 0 1.4rem;
  color:#fff;
  font-size:clamp(3.2rem,5.6vw,6.3rem);
  line-height:.93;
  letter-spacing:-.052em;
  text-wrap:balance;
}

.fr-visual-content p{
  max-width:720px;
  color:#d1d1d1;
  font-size:1.12rem;
  line-height:1.72;
}

.fr-visual-content .btn{margin-top:1.1rem}

/* CONTEXTOS */
.fr-contexts{background:var(--fr-bg)}

.fr-contexts .section-heading{
  max-width:1050px;
  margin-right:auto;
  margin-left:auto;
}

.fr-context-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--fr-line);
  border-left:1px solid var(--fr-line);
}

.fr-context-grid article{
  min-height:235px;
  padding:2rem;
  border-right:1px solid var(--fr-line);
  border-bottom:1px solid var(--fr-line);
  background:#fff;
}

.fr-context-grid span{color:var(--fr-orange);font-weight:950}
.fr-context-grid h3{margin:1rem 0 .7rem;font-size:1.65rem}
.fr-context-grid p{margin:0;color:var(--fr-muted);line-height:1.65}

/* CASO */
.fr-case{
  background:#0b0b0b;
  color:#fff;
}

.fr-case-grid{
  display:grid;
  grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);
  gap:clamp(4rem,8vw,9rem);
  align-items:center;
}

.fr-case-media{
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:flex-start;
}

.fr-case-image{
  position:relative;
  width:100%;
  max-width:610px;
  margin:0;
  padding:2rem 0 0 2rem;
}

.fr-case-image::before{
  content:"";
  position:absolute;
  inset:0 2.5rem 2.8rem 0;
  border:4px solid var(--fr-orange);
}

.fr-case-image img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  box-shadow:0 34px 80px rgba(0,0,0,.45);
}

.fr-case-image>span{
  position:absolute;
  z-index:2;
  left:.5rem;
  bottom:1.8rem;
  padding:.95rem 1.2rem;
  background:var(--fr-orange);
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.05em;
}

.fr-case-button{
  margin:2.2rem 0 0 2rem;
}

.fr-case-copy h2{
  margin:.7rem 0 1.3rem;
  color:#fff;
  font-size:clamp(3.2rem,5vw,5.55rem);
  line-height:.95;
  letter-spacing:-.05em;
  text-wrap:balance;
}

.fr-case-copy>p{
  color:#bbb;
  font-size:1.08rem;
  line-height:1.75;
}

.fr-case-copy dl{
  margin:2rem 0 2.3rem;
  border-top:1px solid #303030;
}

.fr-case-copy dl div{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:1rem;
  padding:1.15rem 0;
  border-bottom:1px solid #303030;
}

.fr-case-copy dt{
  color:#ff9b59;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.fr-case-copy dd{margin:0;color:#ddd}

/* PROCESO */
.fr-process{
  background:#111;
  color:#fff;
}

.fr-process-grid{
  display:grid;
  grid-template-columns:minmax(0,.73fr) minmax(0,1.27fr);
  gap:clamp(4rem,8vw,9rem);
  align-items:start;
}

.fr-process-heading{
  position:sticky;
  top:118px;
  z-index:3;
  padding:0 0 2.2rem;
  background:#111;
}

.fr-process-heading::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-2rem -2rem 0;
  background:#111;
}

.fr-process-heading h2{
  margin:.7rem 0 1.3rem;
  color:#fff;
  font-size:clamp(3.1rem,4.8vw,5.35rem);
  line-height:.95;
  letter-spacing:-.05em;
  text-wrap:balance;
}

.fr-process-heading p{
  color:#aaa;
  font-size:1.05rem;
  line-height:1.75;
}

.fr-process-list{
  margin:0;
  padding:0;
  border-top:1px solid #303030;
  background:#111;
  list-style:none;
}

.fr-process-list li{
  display:grid;
  grid-template-columns:74px 1fr;
  gap:1.5rem;
  padding:1.8rem 0;
  border-bottom:1px solid #303030;
  background:#111;
}

.fr-process-list>li>span{
  color:var(--fr-orange);
  font-size:1.18rem;
  font-weight:950;
}

.fr-process-list h3{
  margin:0;
  color:#fff;
  font-size:1.65rem;
}

.fr-process-list p{
  margin:.45rem 0 0;
  color:#aaa;
  line-height:1.65;
}

/* VIABILIDAD TÉCNICA */
.fr-tech{background:var(--fr-bg)}

.fr-tech-grid{
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:clamp(4rem,8vw,9rem);
  align-items:start;
}

.fr-tech-copy{
  position:sticky;
  top:118px;
}

.fr-tech-copy h2{
  margin:.7rem 0 1.2rem;
  font-size:clamp(3rem,4.65vw,5.15rem);
  line-height:.96;
  letter-spacing:-.05em;
  text-wrap:balance;
}

.fr-tech-copy p{
  color:var(--fr-muted);
  line-height:1.75;
}

.fr-tech-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  border:1px solid var(--fr-line);
  background:var(--fr-line);
}

.fr-tech-list article{
  padding:2rem;
  background:#fff;
}

.fr-tech-list strong{font-size:1.23rem}
.fr-tech-list p{margin:.55rem 0 0;color:var(--fr-muted);line-height:1.6}

/* PRESUPUESTO */
.fr-budget{background:#fff}

.fr-budget-grid{
  display:grid;
  grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr);
  gap:clamp(4rem,8vw,9rem);
  align-items:center;
}

.fr-budget-image{
  position:relative;
  max-width:610px;
  margin:0;
  padding:2rem 0 0 2rem;
}

.fr-budget-image>span{
  position:absolute;
  inset:0 2.4rem 2.7rem 0;
  border:4px solid var(--fr-orange);
}

.fr-budget-image img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  box-shadow:var(--fr-shadow);
}

.fr-budget-image figcaption{
  position:relative;
  z-index:2;
  width:min(90%,470px);
  margin:-4.7rem 0 0 auto;
  padding:1.4rem 1.5rem;
  background:#111;
  color:#fff;
}

.fr-budget-image figcaption strong,
.fr-budget-image figcaption small{display:block}
.fr-budget-image figcaption small{margin-top:.5rem;color:#bbb;line-height:1.55}

.fr-budget-copy h2{
  margin:.7rem 0 1.35rem;
  font-size:clamp(3rem,4.9vw,5.35rem);
  line-height:.96;
  letter-spacing:-.05em;
  text-wrap:balance;
}

.fr-budget-copy p{color:var(--fr-muted);line-height:1.75}

.fr-budget-copy ul{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.7rem 1.3rem;
  margin:1.8rem 0 2rem;
  padding:0;
  list-style:none;
}

.fr-budget-copy li{
  padding:1rem 0;
  border-top:1px solid var(--fr-line);
  font-weight:800;
}

/* SERVICIOS RELACIONADOS */
.fr-related{background:var(--fr-bg)}
.fr-related .section-heading{margin-bottom:3rem}

.fr-related-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1.25rem;
}

.fr-related-card{
  display:flex;
  min-width:0;
  flex-direction:column;
  overflow:hidden;
  border-bottom:4px solid transparent;
  background:#fff;
  color:var(--fr-text);
  text-decoration:none;
  box-shadow:0 12px 30px rgba(0,0,0,.07);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}

.fr-related-card:hover{
  transform:translateY(-5px);
  border-color:var(--fr-orange);
  box-shadow:var(--fr-shadow);
}

.fr-related-card img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}

.fr-related-card>div{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:1.55rem;
}

.fr-related-card span{
  color:var(--fr-orange);
  font-size:.72rem;
  font-weight:950;
  letter-spacing:.1em;
}

.fr-related-card h3{
  margin:1rem 0 .7rem;
  font-size:1.55rem;
  line-height:1.08;
}

.fr-related-card p{
  flex:1;
  margin:0;
  color:var(--fr-muted);
  line-height:1.6;
}

.fr-related-card em{
  margin-top:1.2rem;
  color:var(--fr-orange-dark);
  font-style:normal;
  font-weight:900;
}

.fr-guides{background:#fff}

/* RESPONSIVE */
@media(max-width:1180px){
  .fr-hero-grid{
    grid-template-columns:1fr;
    gap:4rem;
  }

  .fr-hero-copy{max-width:920px}

  .fr-hero-media,
  .fr-framed-image,
  .fr-budget-image{
    width:min(82%,680px);
    margin-inline:auto;
    justify-self:center;
  }

  .fr-case-media{
    width:min(82%,680px);
    margin-inline:auto;
  }

  .fr-case-image{
    width:100%;
    margin-inline:0;
  }

  .fr-intro-grid,
  .fr-case-grid,
  .fr-process-grid,
  .fr-tech-grid,
  .fr-budget-grid{
    grid-template-columns:1fr;
  }

  .fr-process-heading,
  .fr-tech-copy{position:static}
  .fr-process-heading::after{display:none}

  .fr-solutions-grid,
  .fr-context-grid,
  .fr-related-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:900px){
  .service-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-trust-grid>div:nth-child(2){border-right:0}
  .service-trust-grid>div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.3)}

  .fr-hero-grid{padding-top:9.5rem}
  .fr-visual-banner{min-height:690px}
  .fr-visual-overlay{background:linear-gradient(0deg,rgba(0,0,0,.96) 0%,rgba(0,0,0,.8) 58%,rgba(0,0,0,.38) 100%)}
  .fr-visual-content{align-self:end;padding-block:5rem}
}

@media(max-width:700px){
  .fr-hero-grid{
    padding-top:8.2rem;
    padding-bottom:4.3rem;
  }

  .fr-hero h1{font-size:clamp(3rem,13vw,4.75rem)}

  .fr-hero .hero-actions{display:grid}
  .fr-hero .btn{width:100%;text-align:center}

  .fr-hero-media,
  .fr-framed-image,
  .fr-case-image,
  .fr-budget-image{
    width:100%;
    padding:1.1rem 0 0 1.1rem;
  }

  .fr-case-media{
    width:100%;
  }

  .fr-case-button{
    width:calc(100% - 1.1rem);
    margin:1.7rem 0 0 1.1rem;
    justify-content:center;
    text-align:center;
  }

  .fr-hero-media>span,
  .fr-framed-image>span,
  .fr-budget-image>span,
  .fr-case-image::before{
    inset:0 1.2rem 1.3rem 0;
    border-width:3px;
  }

  .fr-hero-media figcaption,
  .fr-framed-image figcaption,
  .fr-budget-image figcaption{
    width:94%;
    margin-top:-3.7rem;
    padding:1.2rem;
  }

  .service-trust-grid,
  .fr-solutions-grid,
  .fr-context-grid,
  .fr-tech-list,
  .fr-budget-copy ul,
  .fr-related-grid{
    grid-template-columns:1fr;
  }

  .service-trust-grid>div{
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.3);
  }

  .service-trust-grid>div:last-child{border-bottom:0}

  .fr-card>div{padding:1.5rem}
  .fr-context-grid article{min-height:auto}
  .fr-process-list li{grid-template-columns:52px 1fr}
  .fr-case-copy dl div{grid-template-columns:1fr;gap:.35rem}
  .fr-case-image>span{left:.15rem;bottom:.65rem;font-size:.7rem}
  .fr-visual-content h2{font-size:clamp(2.8rem,12vw,4.1rem)}
}

@media(max-width:480px){
  .fr-hero-tags{gap:8px}
  .fr-hero-tags li{padding:.6rem .8rem;font-size:.68rem}
  .fr-visual-banner{min-height:650px}
  .fr-related-card>div{padding:1.35rem}
}
