:root{
  --ebm-orange:#f28a00;
  --ebm-orange-dark:#d86f00;
  --ebm-orange-soft:#fff0da;
  --ebm-cream:#fffaf2;
  --ebm-white:#ffffff;
  --ebm-green:#5d8a3a;
  --ebm-green-soft:#eaf4e3;
  --ebm-brown:#4d2812;
  --ebm-text:#291d16;
  --ebm-muted:#7b6b5e;
  --ebm-border:rgba(77,40,18,.14);
  --ebm-shadow:0 1.25rem 3.5rem rgba(83,40,0,.16);
  --ebm-radius:1.35rem;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  color:var(--ebm-text);
  background:linear-gradient(180deg,var(--ebm-cream) 0%,#fff 42%,var(--ebm-cream) 100%);
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.menu-open{overflow:hidden;}
img{max-width:100%;height:auto;}
a{color:var(--ebm-orange-dark);}
a:hover{color:#a95000;}
::selection{background:var(--ebm-orange);color:white;}
.skip-link{position:absolute;left:-999px;top:1rem;z-index:2000;background:white;color:var(--ebm-text);padding:.75rem 1rem;border-radius:.75rem;box-shadow:var(--ebm-shadow);}
.skip-link:focus{left:1rem;}

.navbar-ebm{
  background:rgba(255,250,242,.88);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--ebm-border);
}
.navbar-brand{
  font-family:"Libre Bodoni",Georgia,serif;
  letter-spacing:.02em;
  font-size:1.38rem;
  color:var(--ebm-text)!important;
}
.navbar .nav-link{font-weight:700;color:rgba(41,29,22,.78);}
.navbar .nav-link:hover,.navbar .nav-link.active{color:var(--ebm-orange-dark);}

.btn-ebm{
  --bs-btn-bg:var(--ebm-orange);
  --bs-btn-border-color:var(--ebm-orange);
  --bs-btn-hover-bg:var(--ebm-orange-dark);
  --bs-btn-hover-border-color:var(--ebm-orange-dark);
  --bs-btn-active-bg:var(--ebm-orange-dark);
  --bs-btn-active-border-color:var(--ebm-orange-dark);
  --bs-btn-color:#fff;
  --bs-btn-hover-color:#fff;
  border-radius:999px;
  font-weight:800;
  box-shadow:0 .85rem 2rem rgba(216,111,0,.23);
}
.btn-outline-ebm{
  --bs-btn-color:var(--ebm-orange-dark);
  --bs-btn-border-color:rgba(216,111,0,.38);
  --bs-btn-hover-bg:var(--ebm-orange);
  --bs-btn-hover-border-color:var(--ebm-orange);
  --bs-btn-hover-color:#fff;
  border-radius:999px;
  font-weight:800;
}
.btn-white{
  --bs-btn-bg:#fff;
  --bs-btn-border-color:#fff;
  --bs-btn-color:var(--ebm-text);
  --bs-btn-hover-bg:var(--ebm-cream);
  --bs-btn-hover-border-color:#fff;
  --bs-btn-hover-color:var(--ebm-text);
  border-radius:999px;
  font-weight:800;
}

.hero{
  position:relative;
  overflow:hidden;
  min-height:86vh;
  padding:9rem 0 5rem;
  background:
    radial-gradient(circle at 18% 18%,rgba(255,255,255,.34),transparent 28rem),
    radial-gradient(circle at 74% 72%,rgba(255,255,255,.18),transparent 30rem),
    linear-gradient(135deg,#ff990e 0%,#f28a00 45%,#ec7c00 100%);
  color:#fff;
}
.hero::before,
.hero::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  pointer-events:none;
}
.hero::before{width:26rem;height:26rem;left:-8rem;bottom:-12rem;}
.hero::after{width:20rem;height:20rem;right:-7rem;top:8rem;}
.hero .container{position:relative;z-index:2;}
.hero-title{
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:clamp(3.8rem,8.5vw,8.4rem);
  line-height:1.08;
  letter-spacing:-.055em;
  margin:0;
  text-transform:uppercase;
}
.hero-title .small-line{display:block;font-size:1em;letter-spacing:inherit;margin-bottom:0;line-height:inherit;}
.hero-subtitle{font-size:clamp(1.18rem,2.25vw,2rem);font-weight:800;}
.hero-copy{font-size:1.08rem;color:rgba(255,255,255,.88);max-width:43rem;}
.hero-graphic{
  border-radius:2rem;
  overflow:hidden;
  box-shadow:0 2rem 5rem rgba(77,40,18,.28);
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.12);
}
.hero-graphic img{display:block;width:100%;}
.hero-card{
  border-radius:var(--ebm-radius);
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 1.2rem 3.5rem rgba(90,41,0,.16);
  backdrop-filter:blur(10px);
}
.hero-card .icon-circle{background:#fff;color:var(--ebm-orange-dark);}

.icon-circle{
  width:3rem;
  height:3rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  flex:0 0 auto;
}
.section-pad{padding:5.8rem 0;}
.section-kicker{
  color:var(--ebm-orange-dark);
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.78rem;
}
.section-title{
  font-family:"Libre Bodoni",Georgia,serif;
  font-size:clamp(2.4rem,5vw,4.4rem);
  line-height:1.12;
  letter-spacing:-.045em;
}
.section-lead{font-size:1.08rem;color:var(--ebm-muted);max-width:52rem;}

.quick-card,
.content-card,
.event-card,
.space-card,
.info-card{
  background:rgba(255,255,255,.92);
  border:1px solid var(--ebm-border);
  border-radius:var(--ebm-radius);
  box-shadow:0 .9rem 2.2rem rgba(83,40,0,.08);
}
.quick-card{transition:.2s ease transform,.2s ease box-shadow;}
.quick-card:hover{transform:translateY(-4px);box-shadow:var(--ebm-shadow);}
.quick-card .icon-circle{background:var(--ebm-orange-soft);color:var(--ebm-orange-dark);}

.bg-soft{background:linear-gradient(180deg,var(--ebm-orange-soft),#fff);}
.bg-green-soft{background:linear-gradient(180deg,var(--ebm-green-soft),#fff);}

.filter-panel{
  position:sticky;
  top:72px;
  z-index:8;
  background:rgba(255,250,242,.94);
  border:1px solid var(--ebm-border);
  border-radius:1.4rem;
  box-shadow:0 .8rem 2rem rgba(83,40,0,.09);
  backdrop-filter:blur(14px);
}
.filter-chip{
  border:1px solid rgba(216,111,0,.28);
  background:#fff;
  color:var(--ebm-text);
  border-radius:999px;
  padding:.58rem .95rem;
  font-weight:800;
  font-size:.92rem;
  display:inline-flex;
  gap:.45rem;
  align-items:center;
}
.filter-chip:hover{background:var(--ebm-orange-soft);}
.filter-chip.active{background:var(--ebm-orange);border-color:var(--ebm-orange);color:#fff;}
.form-control,.form-select{
  border-radius:999px;
  border-color:rgba(77,40,18,.2);
  padding:.72rem 1rem;
}
.form-control:focus,.form-select:focus{border-color:var(--ebm-orange);box-shadow:0 0 0 .25rem rgba(242,138,0,.15);}

.event-card{height:100%;position:relative;overflow:hidden;}
.event-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:.45rem;
  background:var(--event-color,var(--ebm-orange));
}
.event-card .time-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border-radius:999px;
  padding:.42rem .72rem;
  background:var(--ebm-orange-soft);
  color:var(--ebm-orange-dark);
  font-weight:900;
  font-size:.9rem;
}
.event-card .date-badge{
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ebm-muted);
}
.tag{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border-radius:999px;
  background:rgba(93,138,58,.1);
  color:#456d2a;
  padding:.35rem .65rem;
  font-weight:800;
  font-size:.78rem;
  margin:.15rem .1rem .15rem 0;
}
.event-card .tag{background:rgba(242,138,0,.1);color:var(--ebm-orange-dark);}

.space-card{height:100%;}
.space-number{
  width:2.75rem;
  height:2.75rem;
  border-radius:999px;
  background:var(--ebm-orange);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  flex:0 0 auto;
}
.space-area{color:var(--ebm-orange-dark);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;}
.map-shell{
  position:relative;
  border-radius:2rem;
  overflow:hidden;
  border:1px solid var(--ebm-border);
  box-shadow:var(--ebm-shadow);
  background:#fff;
}
.map-shell img{display:block;width:100%;height:auto;}
.map-zoom-trigger{
  position:absolute;
  right:1rem;
  bottom:1rem;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  border:0;
  border-radius:999px;
  padding:.65rem .95rem;
  background:rgba(255,255,255,.94);
  color:var(--ebm-ink);
  font-weight:900;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
  backdrop-filter:blur(10px);
}
.map-zoom-trigger:hover,.map-zoom-trigger:focus{background:#fff;color:var(--ebm-orange-dark);}
.map-modal .modal-content{border:0;border-radius:1.5rem;overflow:hidden;}

.map-modal-floating-close{
  position:fixed;
  top:calc(env(safe-area-inset-top, 0px) + .75rem);
  right:.75rem;
  z-index:1100;
  width:2.75rem;
  height:2.75rem;
  border:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.96);
  color:var(--ebm-ink);
  box-shadow:0 12px 30px rgba(0,0,0,.2);
  backdrop-filter:blur(10px);
}
.map-modal-floating-close:hover,.map-modal-floating-close:focus{background:#fff;color:var(--ebm-orange-dark);}
.map-modal-floating-close i{font-size:1.15rem;line-height:1;}

.map-modal-body{
  padding:0;
  overflow:auto;
  background:#f7f0df;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y pinch-zoom;
}
.map-modal-img{
  display:block;
  width:1600px;
  max-width:none;
  height:auto;
}
.parking-card{background:rgba(255,255,255,.88);}
.parking-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.48rem .75rem;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--ebm-border);
  font-weight:800;
  margin:.2rem;
}

.logo-strip{
  background:var(--ebm-orange);
  color:#fff;
  border-radius:2rem;
  overflow:hidden;
  box-shadow:var(--ebm-shadow);
}
.footer{
  background:#2a1609;
  color:rgba(255,255,255,.82);
  padding:4rem 0 2rem;
}
.footer a{color:#fff;text-decoration:none;}
.footer a:hover{text-decoration:underline;}
.footer-title{font-family:"Libre Bodoni",Georgia,serif;font-size:2.2rem;color:#fff;letter-spacing:-.04em;text-transform:uppercase;}

.credit-inline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
}
.social-link-inline{
  margin-left:.1rem;
  padding:.28rem .62rem;
  font-size:.78rem;
}

.share-toast{
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:1080;
  background:var(--ebm-text);
  color:#fff;
  padding:.85rem 1rem;
  border-radius:999px;
  box-shadow:var(--ebm-shadow);
  transform:translateY(120%);
  opacity:0;
  transition:.22s ease;
  font-weight:800;
}
.share-toast.show{transform:translateY(0);opacity:1;}

@media (max-width:991.98px){
  .hero{padding-top:7.2rem;min-height:auto;}
  .filter-panel{position:static;}
}
@media (max-width:575.98px){
  .section-pad{padding:4.2rem 0;}
  .hero-title{font-size:3.85rem;}
  .filter-chip{width:100%;justify-content:center;}
}
.fw-black{font-weight:900!important;}

.social-links{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin:.65rem 0 1rem;
}
.social-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.34rem .62rem;
  border-radius:999px;
  background:rgba(202,69,129,.09);
  border:1px solid rgba(202,69,129,.22);
  color:#9b2d62;
  font-weight:850;
  font-size:.78rem;
  line-height:1.1;
  text-decoration:none;
}
.social-link:hover{
  background:#ca4581;
  border-color:#ca4581;
  color:#fff;
  text-decoration:none;
}
.social-link i{font-size:.95rem;}
.info-card .social-links,
.content-card .social-links{margin-bottom:0;}
.footer-social{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  justify-content:flex-start;
}
.footer-social .social-link{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);
  color:#fff;
}
.footer-social .social-link:hover{background:#ca4581;border-color:#ca4581;}
@media (min-width:992px){.footer-social{justify-content:flex-end;}}

/* Botons socials i calendari més discrets */
.social-links{
  gap:.32rem;
  margin:.5rem 0 .85rem;
}
.social-link,
.social-icon-link,
.icon-action{
  width:2rem;
  height:2rem;
  min-width:2rem;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  text-decoration:none;
  line-height:1;
}
.social-link{
  background:rgba(202,69,129,.08);
  border:1px solid rgba(202,69,129,.2);
  color:#9b2d62;
}
.social-link span{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.social-link i{font-size:1rem;}
.icon-action{
  border:1px solid rgba(216,111,0,.24);
  background:rgba(242,138,0,.08);
  color:var(--ebm-orange-dark);
  transition:.18s ease background,.18s ease color,.18s ease border-color,.18s ease transform;
}
.icon-action:hover{
  background:var(--ebm-orange);
  border-color:var(--ebm-orange);
  color:#fff;
  transform:translateY(-1px);
}
.calendar-add{
  cursor:pointer;
}
.footer-social .social-link{
  width:2.15rem;
  height:2.15rem;
}

.window-card .social-links{
  margin:0;
}
.window-card .social-link{
  width:1.9rem;
  height:1.9rem;
  min-width:1.9rem;
}

/* Ajustos v9: comerç local, imatge de campanya i footer més integrat */
.campaign-image-card{
  background:#fff;
  border:1px solid var(--ebm-border);
  border-radius:var(--ebm-radius);
  box-shadow:0 .9rem 2.2rem rgba(83,40,0,.08);
  overflow:hidden;
}
.campaign-image-card img{
  display:block;
  width:100%;
  height:auto;
}
.thanks-card .h3{
  line-height:1.25;
}
.footer-partners{
  color:rgba(255,255,255,.9);
}
.footer-label{
  display:block;
  color:rgba(255,255,255,.58);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:.25rem;
}
.footer-partners strong{
  color:#fff;
  font-weight:850;
}

@media (max-width: 767.98px){
  .map-zoom-trigger{right:.75rem;bottom:.75rem;padding:.55rem .8rem;font-size:.9rem;}
  .map-modal .modal-content{border-radius:0;min-height:100vh;}
  .map-modal .modal-header{padding-right:4.25rem;}
  .map-modal-floating-close{top:calc(env(safe-area-inset-top, 0px) + .65rem);right:.65rem;width:3rem;height:3rem;}
  .map-modal-img{width:1250px;}
}


/* SEO / UX refinements */
.faq-accordion .accordion-item{border:0;overflow:hidden;}
.faq-accordion .accordion-button{font-weight:800;background:#fff;color:#231f20;border-radius:1rem;box-shadow:none;}
.faq-accordion .accordion-button:not(.collapsed){background:#fff7e8;color:#231f20;}
.faq-accordion .accordion-body{color:#5f5a55;line-height:1.7;}

/* Botons d'Instagram amb usuari visible a l'apartat Oficina de Turisme */
.info-social-links .social-link-labeled{
  width:auto;
  min-width:0;
  height:2rem;
  padding:0 .72rem;
  gap:.38rem;
}
.info-social-links .social-link-labeled span{
  position:static!important;
  width:auto!important;
  height:auto!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  clip:auto!important;
  white-space:nowrap!important;
  border:0!important;
}
@media (max-width:575.98px){
  .info-social-links .social-link-labeled{
    font-size:.76rem;
    padding:0 .62rem;
  }
}
