/* WAPA · carta web — estil tipogràfic clàssic */
@font-face{font-family:"Cormorant";src:url(../fonts/cormorant.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant";src:url(../fonts/cormorant-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Josefin";src:url(../fonts/josefin.woff2) format("woff2");font-weight:100 700;font-display:swap}

:root{
  --paper:#fbf9f4; --paper-2:#f4f0e6; --ink:#2f3237; --ink-2:#5d636b; --muted:#8a9099;
  --wa:#e46f1f; --pa:#454a50; --turq:#3fa9b5; --navy:#1f3a7a; --gold:#e8a21c; --rule:#d9d3c4;
  --serif:"Cormorant","Cormorant Garamond",Garamond,"Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Josefin","Josefin Sans","Avenir Next","Century Gothic",system-ui,sans-serif;
  --w:44rem;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:6.5rem}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:1.175rem;line-height:1.35;
  font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;color:inherit}

/* barra superior */
.site-head{position:sticky;top:0;z-index:20;background:rgba(251,249,244,.95);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--rule)}
.topbar{display:flex;align-items:center;justify-content:space-between;
  padding:.55rem max(1rem,env(safe-area-inset-left));min-height:2.9rem}
.topbar__logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;font-family:var(--sans);
  letter-spacing:.32em;font-size:.78rem;color:var(--pa);text-transform:lowercase}
.lang{display:flex;gap:.15rem}
.lang button{background:none;border:1px solid transparent;border-radius:2rem;padding:.3rem .6rem .2rem;cursor:pointer;
  font-family:var(--sans);font-size:.74rem;letter-spacing:.14em;color:var(--muted)}
.lang button[aria-pressed="true"]{color:var(--ink);border-color:var(--ink)}

/* mosaic trencadís */
.mosaic{position:absolute;background:url(../img/trencadis.svg) center/cover;pointer-events:none}
.mosaic--tl{top:0;left:0;width:34%;height:9.5rem;border-bottom-right-radius:100% 85%}
.mosaic--tr{top:0;right:0;width:30%;height:7rem;border-bottom-left-radius:90% 100%;background-position:right top}
.mosaic--bl{bottom:0;left:0;width:26%;height:5rem;border-top-right-radius:100% 100%}
.mosaic--br{bottom:0;right:0;width:36%;height:8rem;border-top-left-radius:100% 90%;background-position:left bottom}

/* portada */
.hero{position:relative;overflow:hidden;text-align:center;padding:2.2rem 1.25rem 1.6rem;border-bottom:1px solid var(--rule)}
.hero__glass{position:relative;width:8.6rem;height:21.5rem;margin:0 auto}
.hero__copa{position:absolute;inset:0;width:100%;height:100%}
.brand{position:absolute;left:50%;top:3.6rem;transform:translateX(-50%);width:4.4rem;text-align:right}
.brand__logo{display:block;width:100%;height:auto}
.brand__sub{display:block;margin-top:-.2rem;font-family:var(--sans);font-size:.56rem;letter-spacing:.12em;color:var(--ink-2)}
.hero__title{margin:.9rem 0 .2rem;font-weight:500;font-size:1.55rem;letter-spacing:.24em;text-transform:uppercase;font-family:var(--serif)}
.hero__addr{margin:0 0 1.1rem;font-style:italic;color:var(--ink-2)}

.allergen{display:inline-flex;align-items:center;gap:.55rem;margin:0;padding:.45rem .95rem .4rem;border:1px solid var(--turq);
  border-radius:2rem;font-family:var(--sans);font-size:.78rem;letter-spacing:.06em;color:#226d76;background:#fff}
.allergen__icon{display:inline-grid;place-items:center;width:1.15rem;height:1.15rem;border-radius:50%;background:var(--turq);
  color:#fff;font-family:var(--serif);font-style:italic;font-weight:700;font-size:.85rem;line-height:1}

/* xips de navegació */
.chips{position:sticky;top:2.95rem;z-index:15;display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;
  padding:.6rem 1rem;background:rgba(251,249,244,.96);border-bottom:1px solid var(--rule)}
.chips::-webkit-scrollbar{display:none}
.chips a{flex:none;text-decoration:none;font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.42rem .75rem .32rem;border-radius:2rem;border:1px solid var(--rule);color:var(--ink-2);background:#fff}
.chips a.is-active{background:var(--pa);border-color:var(--pa);color:#fff}

/* carta */
.carta{max-width:var(--w);margin:0 auto;padding:1rem 1.25rem 3rem}
.loading,.error{text-align:center;font-style:italic;color:var(--muted);padding:3rem 0}
.group{margin-top:2.6rem}
.group__title{display:flex;align-items:center;gap:1rem;margin:0 0 .4rem;font-family:var(--sans);font-weight:400;
  font-size:.78rem;letter-spacing:.42em;text-transform:uppercase;color:var(--muted);justify-content:center;text-align:center}
.group__title::before,.group__title::after{content:"";flex:1;height:1px;background:var(--rule);max-width:6rem}

.sec{padding-top:1.6rem}
.sec__title{margin:0;text-align:center;font-weight:500;font-style:italic;font-size:2rem;line-height:1.1;color:var(--ink)}
.sec__orn{display:block;width:4.2rem;height:.42rem;margin:.55rem auto .5rem;background:url(../img/trencadis.svg) center/cover;border-radius:1px}
.sec__note{text-align:center;margin:0 0 .6rem;font-style:italic;color:var(--ink-2);font-size:1rem}

.list{list-style:none;margin:.4rem 0 0;padding:0}
.it{padding:.42rem 0}
.it__row{display:flex;align-items:baseline;gap:.4rem}
.it__name{font-weight:500;font-size:1.2rem}
.it__lead{flex:1;min-width:1rem;border-bottom:1px dotted #b9b2a2;transform:translateY(-.3rem)}
.it__price{white-space:nowrap;font-variant-numeric:tabular-nums lining-nums;font-weight:600;font-size:1.12rem}
.it__price small,.vlabel{font-family:var(--sans);font-weight:400;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:.25rem}
.it__price .sep{color:var(--muted);font-weight:400;margin:0 .35rem}
.it__note{margin:.05rem 0 0;font-style:italic;color:var(--ink-2);font-size:1rem;max-width:34rem}

/* taules petit/gran i promo */
.cols{display:grid;grid-template-columns:1fr 4.3rem 4.3rem;align-items:baseline;column-gap:.5rem}
.cols--head{padding:.3rem 0 .25rem;border-bottom:1px solid var(--rule);margin-top:.6rem}
.cols--head span{font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:right}
.cols .it__name{display:flex;gap:.4rem;align-items:baseline}
.cols .it__name::after{content:"";flex:1;border-bottom:1px dotted #b9b2a2;transform:translateY(-.3rem);min-width:.6rem}
.cols .p{text-align:right;font-weight:600;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.cols .p--na{color:var(--rule);font-weight:400}
.subhead{margin:1.3rem 0 0;text-align:center;font-family:var(--sans);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}

.card{position:relative;margin-top:1.8rem;padding:1.6rem 1.2rem 1.3rem;background:#fff;border:1px solid var(--rule);overflow:hidden}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:.45rem;background:url(../img/trencadis.svg) center/cover}
.card .sec{padding-top:0}
.badge{display:inline-block;margin:.2rem auto 0;padding:.25rem .65rem .15rem;border-radius:2rem;background:var(--gold);color:#3a2a00;
  font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}
.center{text-align:center}

/* carta del dia */
.dia__empty{text-align:center;padding:.6rem .4rem .2rem}
.dia__empty img{width:1.6rem;height:4rem;opacity:.9}
.dia__empty p{margin:.5rem auto 0;max-width:22rem;font-style:italic;color:var(--ink-2)}
.dia__price{text-align:center;font-size:1.5rem;font-weight:600;margin:.8rem 0 0}
.dia__course{margin:1rem 0 .1rem;text-align:center;font-family:var(--sans);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.dia__dish{text-align:center;margin:.2rem 0;font-size:1.2rem}

/* peu */
.foot{position:relative;overflow:hidden;background:var(--paper-2);border-top:1px solid var(--rule);text-align:center;padding:2.4rem 1.25rem 6.5rem}
.foot__inner{position:relative;max-width:30rem;margin:0 auto}
.foot p{margin:.35rem 0}
.foot a{text-decoration:none;border-bottom:1px solid var(--turq)}
.foot__logo{display:block;margin:0 auto .6rem}
.foot__name{font-family:var(--sans);font-size:.76rem;letter-spacing:.24em;text-transform:uppercase}
.foot__ph{color:var(--muted);font-style:italic}
.allergen--foot{margin:1rem 0 .6rem}
.foot__note{margin-top:1.2rem!important;font-size:.92rem;font-style:italic;color:var(--muted)}

/* ===== web multi-pàgina ===== */
.skip{position:absolute;left:-999px;top:0;z-index:50;background:#fff;padding:.5rem 1rem}
.skip:focus{left:.5rem}
.sitenav{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;padding:.1rem 1rem .55rem;justify-content:center}
.sitenav::-webkit-scrollbar{display:none}
.sitenav a{flex:none;text-decoration:none;font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);padding:.2rem 0;border-bottom:1px solid transparent}
.sitenav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--turq)}
.btn{display:inline-block;margin-top:.3rem;padding:.7rem 1.4rem .6rem;border:1px solid var(--pa);background:var(--pa);color:#fff;border-radius:2rem;
  font-family:var(--sans);font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.btn:hover{background:#2f3237}
.btn--ghost{background:#fff;color:var(--pa)}
.btn--ghost:hover{background:var(--paper-2)}
.btn:disabled{opacity:.5}
.page{max-width:var(--w);margin:0 auto;padding:0 1.25rem 3.5rem}
.phead{position:relative;overflow:hidden;text-align:center;padding:4.2rem 1.25rem 1.8rem;border-bottom:1px solid var(--rule)}
.mosaic--sm.mosaic--tl{height:4.2rem;width:28%}
.mosaic--sm.mosaic--tr{height:3.2rem;width:24%}
.phead__kicker{margin:0 0 .3rem;font-family:var(--sans);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.phead__title{margin:0;font-weight:500;font-style:italic;font-size:2.5rem;line-height:1.05}
.phead__intro{max-width:32rem;margin:0 auto;color:var(--ink-2);font-size:1.15rem}
.intro{text-align:center;padding-top:2.4rem}
.intro__title{margin:0;font-weight:500;font-style:italic;font-size:2rem;line-height:1.1}
.intro__text{max-width:34rem;margin:0 auto;font-size:1.2rem}
.intro__promo{display:inline-block;margin:1.6rem 0 0;padding:.35rem .9rem .3rem;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);font-style:italic}
.hls{display:grid;gap:1.2rem;margin-top:2rem}
.hl__t{margin:0;font-family:var(--sans);font-weight:400;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--turq)}
.hl__d{margin:.3rem auto 0;max-width:20rem;color:var(--ink-2)}
.discover{margin-top:2.8rem}
.lcards,.tcards{display:grid;gap:.9rem;margin-top:1rem}
.lcard,.tcard{position:relative;display:block;overflow:hidden;padding:1.35rem 1.2rem 1.1rem;background:#fff;border:1px solid var(--rule);text-decoration:none}
.lcard__strip,.tcard__strip{position:absolute;left:0;top:0;bottom:0;width:.4rem;background:url(../img/trencadis.svg) center/cover}
.lcard__t{display:block;font-style:italic;font-weight:500;font-size:1.6rem;line-height:1.1}
.lcard__d{display:block;margin-top:.2rem;color:var(--ink-2)}
.lcard__go{position:absolute;right:1.1rem;top:50%;transform:translateY(-50%);color:var(--turq);font-size:1.4rem}
.lcard:hover{border-color:var(--turq)}
.tcard__t{margin:0;font-style:italic;font-weight:500;font-size:1.45rem}
.tcard__d{margin:.15rem 0 0;color:var(--ink-2)}
.tcard__soon{margin:.6rem 0 0;font-family:var(--sans);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ev-empty{text-align:center}
.ev-empty img{width:1.6rem;height:4rem}
.ev-empty p{margin:.5rem auto 0;max-width:24rem;font-style:italic;color:var(--ink-2)}
.events{list-style:none;margin:1rem 0 0;padding:0}
.ev{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rule)}
.ev__date{flex:none;width:3.6rem;text-align:center;border-right:1px solid var(--rule);padding-right:.8rem}
.ev__d{display:block;font-size:2rem;font-weight:600;line-height:1}
.ev__m{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ev__t{margin:0;font-weight:500;font-size:1.35rem}
.ev__meta,.ev__org{margin:.1rem 0 0;font-family:var(--sans);font-size:.7rem;letter-spacing:.08em;color:var(--muted)}
.ev__desc{margin:.3rem 0 0;color:var(--ink-2)}
.types{margin-top:2.6rem}
.discreet{margin:2.6rem auto 0;max-width:28rem;text-align:center;font-size:.92rem;font-style:italic;color:var(--muted)}
.cap{text-align:center;padding:2rem 0 .4rem}
.cap__n{margin:0;font-size:4.2rem;font-weight:500;line-height:1;color:var(--pa)}
.cap__l{margin:.2rem 0 0;font-family:var(--sans);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2)}
.tbc{font-style:normal;color:#b5651d}
.cols2{display:grid;gap:1rem;margin-top:1.6rem}
.box{background:#fff;border:1px solid var(--rule);padding:1.3rem 1.2rem 1.1rem}
.box__t{margin:0 0 .5rem;font-family:var(--sans);font-weight:400;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;color:var(--turq)}
.box__foot{margin:.8rem 0 0;font-style:italic;color:var(--ink-2)}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{position:relative;padding:.3rem 0 .3rem 1.2rem}
.ticks li::before{content:"";position:absolute;left:0;top:.85rem;width:.45rem;height:.45rem;background:var(--gold);transform:rotate(45deg)}
.ph{color:#b5651d;font-style:italic;font-size:.95em}
.info{margin:0}
.info dt{margin-top:.9rem;font-family:var(--sans);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.info dt:first-child{margin-top:0}
.info dd{margin:.15rem 0 0}
.info a,.foot a,.map__links a{text-decoration:none;border-bottom:1px solid var(--turq)}
.hours p{margin:0}
.hours__row{font-variant-numeric:tabular-nums lining-nums}
.hours__note{margin-top:.25rem!important;font-size:.92rem;font-style:italic;color:var(--ink-2)}
.foot__hours{margin:.8rem 0}
.foot__hl{margin:0 0 .15rem!important;font-family:var(--sans);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.foot__more{margin-top:1rem!important;font-family:var(--sans);font-size:.72rem;letter-spacing:.08em}
.mapbox{display:flex;flex-direction:column;padding:0;overflow:hidden}
.map__ph{position:relative}
.map__svg,.map__frame{display:block;width:100%;height:13rem;border:0}
.map__svg{object-fit:cover}
.map__label{position:absolute;left:0;right:0;top:62%;margin:0;text-align:center;font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.map__sub{position:absolute;right:1rem;top:.7rem;margin:0;font-size:.85rem;font-style:italic;color:var(--muted)}
.map__actions{margin:.9rem 1.2rem 0;text-align:center}
.map__links{margin:.7rem 1.2rem 0;text-align:center;font-size:1rem}
.map__note{margin:.3rem 1.2rem 1rem;text-align:center;font-size:.85rem;font-style:italic;color:var(--muted)}
.formcard{margin-top:2.4rem}
.notice{margin:.4rem 0 1.1rem;padding:.75rem .9rem;border-left:3px solid #c0392b;background:#fbf0ee;color:#7a261c;font-family:var(--sans);font-size:.8rem;line-height:1.45;letter-spacing:.02em}
.grid{display:grid;gap:.85rem}
.fld{display:block}
.fld__l{display:block;margin-bottom:.25rem;font-family:var(--sans);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.req{color:#c0392b}
.fld input,.fld select,.fld textarea{width:100%;padding:.65rem .75rem;border:1px solid #cfc8b8;border-radius:2px;background:var(--paper);font:inherit;font-size:1.1rem;color:var(--ink)}
.fld input:focus,.fld select:focus,.fld textarea:focus,.btn:focus-visible{outline:2px solid var(--turq);outline-offset:1px}
.fld--hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.check{display:flex;gap:.6rem;align-items:flex-start;margin:1.1rem 0 .3rem;font-size:1rem;color:var(--ink-2)}
.check input{margin-top:.3rem;width:1.1rem;height:1.1rem;flex:none;accent-color:var(--turq)}
.form__req{margin:.2rem 0 .8rem;font-size:.85rem;color:var(--muted)}
.form__status{margin:1rem 0 0;padding:.7rem .9rem;font-family:var(--sans);font-size:.8rem;line-height:1.45}
.form__status--warn{background:#fbf0ee;color:#7a261c;border-left:3px solid #c0392b}
.form__status--ok{background:#eef7f8;color:#1f5f66;border-left:3px solid var(--turq)}
.form__status--err{background:#fbf0ee;color:#7a261c;border-left:3px solid #c0392b}
.hero--carta{padding:1.4rem 1.25rem 1.2rem}
.brand--inline{position:static;transform:none;width:3.6rem;margin:0 auto}
.hero--carta .hero__title{margin-top:.5rem;font-size:1.6rem;letter-spacing:.3em}
.hero--carta .hero__addr{margin-bottom:.8rem}
.allergen--end{display:flex;width:max-content;max-width:100%;margin:2.6rem auto 0}
.box--cond{margin-top:1.4rem;border-color:var(--gold);text-align:left}
.ticks--big li{font-size:1.2rem}
.ticks--big strong{font-weight:600}
.form__hint{margin:0;padding:.7rem .9rem;border-left:3px solid var(--gold);background:#fdf6e6;color:#5c4300;font-family:var(--sans);font-size:.8rem;line-height:1.45}
.social__links{display:flex;justify-content:center;gap:1rem;margin:.2rem 0 0!important}
.social__links a{border:0!important;color:var(--pa)}
.social{margin:.6rem 0}
.foot--compact{padding-bottom:5.5rem}

@media (max-width:480px){
  .hero .mosaic--tl:not(.mosaic--sm){width:24%;height:7.5rem}
  .hero .mosaic--tr:not(.mosaic--sm){width:22%;height:5.5rem}
  .sitenav a{font-size:.66rem;letter-spacing:.12em}
  .hero__title{font-size:1.3rem;letter-spacing:.16em}
  .card{padding:1.5rem .9rem 1.1rem;margin-left:-.25rem;margin-right:-.25rem}
  .cols{grid-template-columns:1fr 3.7rem 3.7rem;column-gap:.35rem}
  .cols .p{font-size:1.05rem}
}
@media (min-width:760px){
  body{font-size:1.25rem}
  .hero{padding-top:3rem}
  .mosaic--tl{height:13rem;width:30%}
  .mosaic--tr{height:10rem;width:28%}
  .chips{justify-content:center;flex-wrap:wrap}
  .cols{grid-template-columns:1fr 5rem 5rem}
  .sitenav{justify-content:center;gap:2rem}
  .phead{padding-top:5rem}
  .phead__title{font-size:3rem}
  .hls{grid-template-columns:repeat(3,1fr)}
  .lcards,.tcards{grid-template-columns:1fr 1fr}
  .cols2{grid-template-columns:1fr 1fr}
  .grid{grid-template-columns:1fr 1fr}
  .fld--full{grid-column:1 / -1}
  .map__svg,.map__frame{height:100%;min-height:15rem}
  .map__ph{flex:1}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.topbar,.chips{display:none}.mosaic{display:none}}

/* Pàgines legals */
.page--legal{max-width:46rem}
.legal h1{margin:1.5rem 0 .4rem}
.legal h2{font-size:1.25rem;margin:1.6rem 0 .4rem}
.legal p,.legal li{line-height:1.6}
.legal__draft{font-style:italic;color:var(--muted)}
mark.pend{background:#fde8e4;color:#c0392b;font-weight:700;padding:0 .2em}
.foot__legal{font-size:.92rem;margin-top:.8rem!important}

/* =====================================================================
   SISTEMA DE DISSENY v2 · tokens + polit (escala 8px, ritme vertical,
   amplada de contingut, contrast WCAG AA, objectius tàctils >=44px)
   ===================================================================== */
:root{
  /* escala d'espai 8px */
  --s-1:.25rem; --s0:.5rem; --s1:1rem; --s2:1.5rem; --s3:2rem; --s4:3rem; --s5:4rem; --s6:6rem;
  /* amplades */
  --container:72rem;            /* 1152px */
  --w:46rem;                    /* columna de lectura */
  --measure:62ch;
  --gutter:clamp(1rem,4vw,1.5rem);
  --section:clamp(3rem,6vw,5rem);
  /* escala tipogràfica modular (1.25) fluida */
  --fs-xs:.75rem; --fs-sm:clamp(.95rem,.9rem + .2vw,1.05rem);
  --fs-base:clamp(1.125rem,1.07rem + .25vw,1.25rem);
  --fs-md:clamp(1.3rem,1.2rem + .5vw,1.56rem);
  --fs-lg:clamp(1.6rem,1.4rem + 1vw,2.2rem);
  --fs-xl:clamp(2.1rem,1.7rem + 2vw,3.2rem);
  /* superfícies */
  --radius:.75rem; --radius-sm:.5rem; --pill:999px;
  --shadow-1:0 1px 2px rgba(31,35,40,.05),0 2px 8px rgba(31,35,40,.05);
  --shadow-2:0 2px 4px rgba(31,35,40,.06),0 12px 28px rgba(31,35,40,.10);
  --ease:cubic-bezier(.2,.7,.2,1);
  /* colors amb contrast AA sobre el paper (>=4.5:1) */
  --muted:#656b73; --turq-ink:#1f7480; --warn-ink:#94501a;
}
body{font-size:var(--fs-base);line-height:1.6;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,.sec__title,.phead__title,.intro__title,.lcard__t,.tcard__t{line-height:1.15;text-wrap:balance}
p{text-wrap:pretty}
img,svg{max-width:100%}
:focus-visible{outline:2px solid var(--turq-ink);outline-offset:3px;border-radius:4px}

/* capçalera alineada amb el contenidor */
.topbar{max-width:var(--container);margin:0 auto;padding:var(--s0) var(--gutter);min-height:3.5rem}
.topbar__logo{min-height:44px;font-size:.8rem}
.lang{gap:var(--s-1)}
.lang button{min-width:44px;min-height:44px;padding:0 .7rem;font-size:.75rem;transition:color .2s,border-color .2s}
.lang button:hover{color:var(--ink)}
.sitenav{max-width:var(--container);margin:0 auto;padding:0 var(--gutter) var(--s0);gap:0 var(--s2)}
.sitenav a{display:inline-flex;align-items:center;min-height:44px;padding:0;font-size:.75rem;border-bottom-width:2px;transition:color .2s,border-color .2s}
.sitenav a:hover{color:var(--ink);border-bottom-color:var(--rule)}
.sitenav a[aria-current="page"]{border-bottom-color:var(--turq)}
html{scroll-padding-top:7.5rem}

/* portada */
.hero{padding:var(--s4) var(--gutter) var(--s5)}
.hero__title{margin:var(--s2) 0 var(--s0);font-size:var(--fs-md);line-height:1.2}
.hero__addr{margin:0 0 var(--s3);font-size:var(--fs-sm)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s0);min-height:48px;margin:0;padding:0 var(--s3);
  border-radius:var(--pill);font-size:.78rem;line-height:1;box-shadow:var(--shadow-1);transition:background .2s var(--ease),transform .2s var(--ease),box-shadow .2s}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-2)}
.btn:active{transform:none}

/* contenidors i seccions */
.page{max-width:calc(var(--container) + 2*var(--gutter));padding:0 var(--gutter) var(--section)}
.page>section,.page>div{max-width:var(--container);margin-left:auto;margin-right:auto}
.carta{max-width:calc(var(--w) + 2*var(--gutter));padding:var(--s2) var(--gutter) var(--section)}
.page--legal{max-width:calc(var(--w) + 2*var(--gutter))}
.intro{padding-top:var(--section)}
.intro__title{font-size:var(--fs-lg);max-width:22ch;margin:0 auto}
.intro__text{max-width:var(--measure);font-size:var(--fs-base);margin-top:var(--s1)}
.sec__orn{margin:var(--s2) auto}
.hls{gap:var(--s3);margin-top:var(--s4)}
.hl{padding:0 var(--s1)}
.hl__d{margin-top:var(--s0);max-width:30ch;font-size:var(--fs-sm);line-height:1.6}
.intro__promo{margin-top:var(--s4);padding:var(--s0) var(--s2)}
.discover{margin-top:var(--section)}
.group__title{margin-bottom:var(--s2)}

/* targetes consistents */
.lcards,.tcards{gap:var(--s2);margin-top:var(--s2)}
.lcard,.tcard,.box,.card{border-radius:var(--radius);box-shadow:var(--shadow-1);border-color:#e4dfd3}
.lcard{padding:var(--s2) calc(var(--s4) + var(--s1)) var(--s2) var(--s3);min-height:7.5rem;transition:transform .25s var(--ease),box-shadow .25s,border-color .25s}
.lcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.lcard__strip,.tcard__strip{width:.5rem}
.lcard__t{font-size:var(--fs-md)}
.lcard__d{margin-top:var(--s0);font-size:var(--fs-sm);line-height:1.5}
.lcard__go{right:var(--s2);color:var(--turq-ink);transition:transform .25s var(--ease)}
.lcard:hover .lcard__go{transform:translate(4px,-50%)}
.tcard{padding:var(--s2) var(--s2) var(--s2) var(--s3)}
.box{padding:var(--s3) var(--s2)}
.card{padding:var(--s3) var(--s2) var(--s2)}
.cols2{gap:var(--s2);margin-top:var(--s3)}
.grid{gap:var(--s2)}

/* capçaleres de pàgina */
.phead{padding:var(--s5) var(--gutter) var(--s4)}
.phead__kicker{margin-bottom:var(--s0)}
.phead__title{font-size:var(--fs-xl);line-height:1.1}
.phead__intro{max-width:var(--measure);margin-top:var(--s1);font-size:var(--fs-base)}
.sec{padding-top:var(--s4)}
.sec__title{font-size:var(--fs-lg)}
.types,.formcard,.discreet{margin-top:var(--section)}
.it{padding:var(--s0) 0}
.it__note{max-width:var(--measure);line-height:1.45}

/* xips de la carta, objectius tàctils */
.chips{top:var(--chips-top,6.9rem);padding:var(--s0) var(--gutter);gap:var(--s0)}
.chips a{display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s1);transition:background .2s,color .2s}

/* formularis */
.fld input,.fld select,.fld textarea{min-height:48px;border-radius:var(--radius-sm);background:#fff;transition:border-color .2s,box-shadow .2s}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--turq-ink);box-shadow:0 0 0 3px rgba(63,169,181,.25)}
.notice,.form__status,.form__hint{border-radius:var(--radius-sm)}

/* contrast AA */
.hl__t,.box__t,.lcard__go{color:var(--turq-ink)}
.allergen{color:var(--turq-ink)}
.tbc,.ph{color:var(--warn-ink)}
.it__lead,.cols .it__name::after{border-bottom-color:#a39b89}

/* peu */
.foot{padding:var(--section) var(--gutter) calc(var(--section) + 4rem)}
.foot__inner{max-width:36rem}
.foot p{margin:var(--s0) 0}
.foot a{display:inline-block;padding:.35rem 0;border-bottom:0;text-decoration:underline;text-decoration-color:var(--turq);text-underline-offset:4px}
.foot__hours,.social{margin:var(--s2) 0}
.foot__name{margin-bottom:var(--s1)!important}

.map__svg,.map__frame{height:16rem}
.mapbox{border-radius:var(--radius)}

@media (max-width:480px){
  .hero{padding-top:var(--s3);padding-bottom:var(--s4)}
  .sitenav{gap:0 var(--s1);justify-content:center}
  .sitenav a{font-size:.68rem;letter-spacing:.1em}
  .lcard{padding:var(--s2) var(--s4) var(--s2) var(--s2)}
  .card{margin-left:0;margin-right:0;padding:var(--s3) var(--s1) var(--s2)}
  .box{padding:var(--s2) var(--s1)}
}
@media (min-width:760px){
  body{font-size:var(--fs-base)}
  .sitenav{gap:0 var(--s3)}
  .hls{grid-template-columns:repeat(3,1fr)}
  .lcards{max-width:60rem;margin-left:auto;margin-right:auto}
}
@media (min-width:1024px){
  .lcards{grid-template-columns:repeat(4,1fr);max-width:none}
  .lcard{padding:var(--s3) var(--s2) var(--s5);min-height:13rem}
  .lcard__go{top:auto;bottom:var(--s2);transform:none;left:var(--s3);right:auto}
  .lcard:hover .lcard__go{transform:translateX(4px)}
  .lcard__strip{width:auto;right:0;bottom:auto;height:.5rem}
  .intro .hls{max-width:60rem;margin-left:auto;margin-right:auto}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}
.dia__prices{display:grid;gap:var(--s1);max-width:26rem;margin:var(--s2) auto 0}
.dia__opt{display:flex;align-items:center;justify-content:space-between;gap:var(--s1);margin:0;padding:var(--s1) var(--s2);border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--paper)}
.dia__optn{display:flex;flex-direction:column;text-align:left;font-weight:500;font-size:var(--fs-md);line-height:1.2}
.dia__optn small{margin-top:.2rem;font-family:var(--sans);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dia__opt strong{font-size:var(--fs-md);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}
/* evitar salts de maquetació (CLS) mentre es carrega la carta */
.chips{min-height:57px;box-sizing:border-box}
#carta{min-height:100vh}
