/* ==========================================================================
   Can Mas — shared design system
   Stone / limewash / pine palette, Fraunces + Archivo type system.
   ========================================================================== */

:root{
  --limewash:#EAE4D6;
  --limewash-dim:#DFD8C6;
  --stone:#8A8371;
  --ink:#262620;
  --pine:#3B4531;
  --pine-dark:#262E20;
  --terracotta:#A85630;
  --wheat:#C7A566;
  --paper:#F4F0E6;
  --line: rgba(38,38,32,0.14);
  --line-soft: rgba(38,38,32,0.1);
  --maxw:1180px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--limewash);
  color:var(--ink);
  font-family:'Archivo', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--ink);
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.eyebrow{
  font-family:'Archivo',sans-serif;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--terracotta);
  font-weight:600;
}
.eyebrow.on-dark{color:var(--wheat);}

/* ---------- stone-edge divider (signature element) ---------- */
.stone-edge{width:100%;height:22px;display:block;line-height:0;}
.stone-edge svg{width:100%;height:100%;display:block;}
.stone-edge.flip{transform:rotate(180deg);}
.stone-edge.on-limewash svg polygon{fill:var(--limewash);}
.stone-edge.on-paper svg polygon{fill:var(--paper);}
.stone-edge.on-pine svg polygon{fill:var(--pine-dark);}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}

/* ==========================================================================
   Header + navigation
   ========================================================================== */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:22px 0;
  transition:padding .35s ease, background .35s ease, box-shadow .35s ease;
}
header.scrolled{
  padding:12px 0;
  background:rgba(234,228,214,0.94);
  backdrop-filter:blur(6px);
  box-shadow:0 1px 0 rgba(38,38,32,0.08);
}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{
  font-family:'Fraunces',serif;font-size:22px;font-weight:600;letter-spacing:0.01em;
  display:flex;align-items:center;gap:10px;
}
.brand .mark{width:26px;height:26px;flex:none;}
body.solid-header header{background:rgba(234,228,214,0.94);backdrop-filter:blur(6px);box-shadow:0 1px 0 rgba(38,38,32,0.08);}
body.solid-header header .brand{color:var(--ink);}
body.solid-header nav.primary .navlink{color:var(--ink);}
body.solid-header .lang-switch{color:var(--ink);}
body.solid-header .menu-toggle{color:var(--ink);}
header:not(.scrolled):not(.solid-header) .brand{color:var(--paper);}
header.scrolled .brand{color:var(--ink);}

nav.primary{display:flex;align-items:center;gap:26px;}
nav.primary .navlink{
  position:relative;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;
  font-weight:600;padding:6px 0;cursor:pointer;
}
header:not(.scrolled) nav.primary .navlink{color:var(--paper);}
header.scrolled nav.primary .navlink{color:var(--ink);}
nav.primary .navlink::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:currentColor;transition:right .3s ease;
}
nav.primary .navlink:hover::after,
nav.primary .navlink.active::after{right:0;}

.navlink.has-sub{position:relative;}
.subnav{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translate(-50%,6px);
  background:var(--paper);box-shadow:0 14px 30px rgba(38,38,32,0.16);
  min-width:210px;padding:10px 0;
  opacity:0;visibility:hidden;transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.navlink.has-sub:hover .subnav{opacity:1;visibility:visible;transform:translate(-50%,0);}
.subnav a{display:block;padding:9px 18px;font-size:13px;letter-spacing:0.02em;text-transform:none;font-weight:500;color:var(--ink);}
.subnav a:hover{background:var(--limewash-dim);color:var(--terracotta);}
.subnav .subnav-label{display:block;padding:6px 18px 2px;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--stone);}

.lang-switch{display:flex;gap:8px;font-size:11px;letter-spacing:0.06em;}
.lang-switch a{opacity:.6;font-weight:600;}
.lang-switch a.active{opacity:1;text-decoration:underline;text-underline-offset:3px;}
header:not(.scrolled) .lang-switch{color:var(--paper);}
header.scrolled .lang-switch{color:var(--ink);}

.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:10px;margin:-10px;}
.menu-toggle span{display:block;width:24px;height:2px;background:currentColor;margin:5px 0;}
header:not(.scrolled) .menu-toggle{color:var(--paper);}
header.scrolled .menu-toggle{color:var(--ink);}

.drawer{
  position:fixed;inset:0;z-index:150;background:var(--pine-dark);color:var(--paper);
  display:flex;flex-direction:column;justify-content:flex-start;gap:16px;padding:72px 40px 48px;
  transform:translateY(-100%);transition:transform .4s ease;overflow-y:auto;
}
.drawer.open{transform:translateY(0);}
.drawer a{font-family:'Fraunces',serif;font-size:23px;}
.drawer .drawer-sub{font-family:'Archivo',sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--wheat);margin:14px 0 2px;}
.drawer .drawer-sub-link{font-size:17px;padding-left:6px;}
.drawer-close{position:absolute;top:22px;right:26px;background:none;border:0;color:var(--paper);font-size:26px;cursor:pointer;}

/* ==========================================================================
   Hero — homepage (full height)
   ========================================================================== */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;
  background:
    linear-gradient(180deg, rgba(38,38,32,0.15) 0%, rgba(38,38,32,0.55) 78%, rgba(38,38,32,0.72) 100%),
    url("../../Fotos/BANNERS/Casa.jpg?v=202610041715");
  background-size:cover;
  background-position:center 65%;
}
.hero-content{position:relative;z-index:2;width:100%;padding:0 0 88px;color:var(--paper);}
.hero-content h1{font-size:clamp(48px,8vw,104px);line-height:0.95;margin:14px 0 22px;color:var(--paper);}
.hero-content .lede{max-width:560px;font-size:17px;color:rgba(244,240,230,0.88);margin-bottom:34px;}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(244,240,230,0.75);}
.hero-tags span{display:flex;align-items:center;gap:8px;}
.hero-tags span::before{content:"";width:5px;height:5px;background:var(--terracotta);border-radius:50%;}
.scroll-cue{position:absolute;bottom:26px;left:28px;z-index:2;display:flex;align-items:center;gap:10px;color:rgba(244,240,230,0.7);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;}
.scroll-cue .line{width:1px;height:34px;background:rgba(244,240,230,0.5);position:relative;overflow:hidden;}
.scroll-cue .line::after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--wheat);animation:cueMove 2.2s ease-in-out infinite;}
@keyframes cueMove{0%{top:-100%;}50%{top:0;}100%{top:100%;}}

/* ---------- hero — inner pages (compact) ---------- */
.hero-page{
  position:relative;min-height:56vh;display:flex;align-items:flex-end;overflow:hidden;padding-top:120px;
  background-color:#262620;
  background-size:cover;
  background-position:center;
}
.hero-page::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(38,38,32,0.28) 0%, rgba(38,38,32,0.74) 88%);
}
.hero-page-content{position:relative;z-index:2;padding-bottom:64px;color:var(--paper);}
.hero-page-content h1{font-size:clamp(38px,6vw,66px);line-height:1;margin:12px 0 14px;color:var(--paper);}
.hero-page-content .lede{max-width:60ch;font-size:16px;color:rgba(244,240,230,0.85);}
.crumb{font-size:12px;letter-spacing:.05em;color:rgba(244,240,230,.6);margin-top:10px;}
.crumb a{text-decoration:underline;text-underline-offset:3px;}

/* ==========================================================================
   Section shell
   ========================================================================== */
section{position:relative;background:var(--limewash);}
.section-pad{padding-top:96px;padding-bottom:96px;}
.section-pad.tight{padding-top:64px;padding-bottom:64px;}
.section-head{max-width:640px;margin-bottom:52px;}
.section-head h2{font-size:clamp(28px,4vw,42px);margin-top:10px;}
.section-head p{margin-top:14px;color:#3c3a33;font-size:16px;max-width:60ch;}
.on-paper{background:var(--paper);}
.on-pine{background:var(--pine-dark);color:var(--paper);}
.on-pine h2, .on-pine h3, .on-pine .section-head h2{color:var(--paper);}
.on-pine .section-head p{color:rgba(244,240,230,0.72);}

/* ---------- prose (long-form justified text blocks) ---------- */
.prose{max-width:74ch;}
.prose p{margin-bottom:16px;color:#3c3a33;font-size:16px;text-align:justify;}
.prose h3{font-size:22px;margin:30px 0 12px;}
.prose strong{color:var(--ink);}

/* ---------- timeline (history / sequence) ---------- */
.story-grid{display:grid;grid-template-columns:220px 1fr;gap:64px;}
.story-rail-inner{position:sticky;top:130px;}
.story-rail h2{font-size:clamp(26px,3.2vw,36px);line-height:1.1;}
.timeline{border-left:1px solid var(--line);}
.tl-item{position:relative;padding:0 0 52px 34px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{content:"";position:absolute;left:-6px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:2px solid var(--terracotta);}
.tl-date{font-family:'Fraunces',serif;font-weight:600;font-size:15px;color:var(--terracotta);margin-bottom:6px;display:block;}
.tl-item h3{font-size:21px;margin-bottom:10px;}
.tl-item p{max-width:62ch;color:#3c3a33;font-size:15.5px;text-align:justify;}
.tl-item p + p{margin-top:12px;}
.story-closing{margin-top:8px;padding:26px 0 0;border-top:1px solid var(--line);font-family:'Fraunces',serif;font-size:clamp(19px,2.2vw,25px);font-style:italic;color:var(--pine);max-width:52ch;line-height:1.4;}

/* ==========================================================================
   Cards / grids
   ========================================================================== */
.card-grid{display:grid;gap:24px;}
.card-grid.cols-2{grid-template-columns:1fr 1fr;}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.info-card{border:1px solid var(--line);background:var(--paper);padding:28px;}
.info-card h3{font-size:19px;margin-bottom:12px;}
.info-card p{color:#3c3a33;font-size:14.5px;margin-bottom:8px;}
.info-card p:last-child{margin-bottom:0;}
.info-card ul{margin-top:6px;}
.info-card li{position:relative;padding-left:16px;color:#3c3a33;font-size:14.5px;margin-bottom:6px;}
.info-card li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;background:var(--terracotta);}

.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--line);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--pine);}
.pill.on-dark{border-color:rgba(244,240,230,.3);color:var(--wheat);}
.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px;}

/* ---------- offer columns (used on homepage) ---------- */
.offer-cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.offer-col{border:1px solid var(--line);background:var(--paper);}
.offer-col.featured{border-color:var(--terracotta);}
.offer-col-head{padding:26px 28px;display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);}
.offer-col-head h3{font-size:21px;}
.offer-col-head .eyebrow{color:var(--stone);}
.offer-list a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 28px;border-bottom:1px solid var(--line-soft);font-family:'Fraunces',serif;font-size:19px;transition:background .25s ease, padding-left .25s ease;}
.offer-list a:last-child{border-bottom:0;}
.offer-list a:hover{background:var(--limewash-dim);padding-left:34px;}
.offer-list a .arrow{font-family:'Archivo',sans-serif;font-size:14px;color:var(--terracotta);opacity:0;transform:translateX(-6px);transition:opacity .25s ease, transform .25s ease;}
.offer-list a:hover .arrow{opacity:1;transform:translateX(0);}

.cta-inline{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-size:13px;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;color:var(--pine);border-bottom:1px solid var(--pine);padding-bottom:3px;}
.cta-inline.on-dark{color:var(--wheat);border-color:var(--wheat);}

/* ==========================================================================
   Image placeholders
   ========================================================================== */
.ph{
  position:relative;overflow:hidden;background:linear-gradient(155deg, #cfc7ae 0%, #b8ae8f 55%, #a89a75 100%);
  display:flex;align-items:flex-end;
}
.ph::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(115deg, rgba(255,255,255,0.12) 0 2px, transparent 2px 30px);}
.ph.dark{background:linear-gradient(155deg, #55503f 0%, #3a3729 60%, #262620 100%);}
.ph.dark::before{background-image:repeating-linear-gradient(115deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 26px);}
.ph .ph-label{position:relative;z-index:1;padding:14px 16px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(38,38,32,0.55);}
.ph.dark .ph-label{color:rgba(244,240,230,0.75);}
.ph.ratio-16-10{aspect-ratio:16/10;}
.ph.ratio-4-3{aspect-ratio:4/3;}
.ph.ratio-4-5{aspect-ratio:4/5;}
.ph.ratio-1-1{aspect-ratio:1/1;}

/* ---------- real photos (replaces .ph placeholders once images are ready) ---------- */
.ph-img{position:relative;overflow:hidden;background:var(--stone);}
.ph-img img{width:100%;height:100%;object-fit:cover;display:block;}
.ph-img.ratio-16-10{aspect-ratio:16/10;}
.ph-img.ratio-4-3{aspect-ratio:4/3;}
.ph-img.ratio-4-5{aspect-ratio:4/5;}
.ph-img.ratio-1-1{aspect-ratio:1/1;}

/* ---------- gallery strip ---------- */
.gallery-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px, 1fr);gap:14px;overflow-x:auto;padding-bottom:8px;}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}

/* ==========================================================================
   Gallery page — filterable masonry + lightbox
   ========================================================================== */
.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px;}
.pill.filter{
  cursor:pointer;background:transparent;font-family:'Archivo',sans-serif;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.pill.filter:hover{border-color:var(--terracotta);color:var(--terracotta);}
.pill.filter.active{background:var(--pine);border-color:var(--pine);color:var(--paper);}

.masonry{column-count:3;column-gap:16px;--cols:3;}
/* amb JS les fotos es reparteixen per files (esquerra -> dreta) en columnes */
.masonry.is-rows{column-count:auto;display:flex;align-items:flex-start;gap:16px;}
.masonry-col{flex:1 1 0;min-width:0;}
.masonry-item{break-inside:avoid;margin-bottom:16px;display:block;transition:opacity .25s ease;}
.masonry-item.is-hidden{display:none;}
.masonry-link{
  display:block;width:100%;padding:0;border:0;background:var(--stone);
  cursor:zoom-in;overflow:hidden;position:relative;line-height:0;
}
.masonry-link img{width:100%;display:block;transition:transform .5s ease;}
.masonry-link:hover img{transform:scale(1.045);}
.masonry-link::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(38,38,32,0.35) 100%);
  opacity:0;transition:opacity .3s ease;
}
.masonry-link:hover::after{opacity:1;}

.gallery-empty{display:none;padding:48px 0;text-align:center;color:var(--stone);font-size:15px;}
.gallery-empty.is-visible{display:block;}

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:300;background:rgba(38,38,32,0.95);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .3s ease, visibility .3s ease;
}
.lightbox.open{opacity:1;visibility:visible;}
.lightbox-img{max-width:88vw;max-height:82vh;object-fit:contain;box-shadow:0 30px 70px rgba(0,0,0,0.45);}
.lightbox-close{position:absolute;top:24px;right:28px;background:none;border:0;color:var(--paper);font-size:32px;line-height:1;cursor:pointer;padding:8px;}
.lightbox-nav{
  position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;
  color:var(--paper);font-size:28px;cursor:pointer;padding:14px;opacity:.75;transition:opacity .2s ease;
}
.lightbox-nav:hover{opacity:1;}
.lightbox-nav.prev{left:10px;}
.lightbox-nav.next{right:10px;}
.lightbox-caption{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:rgba(244,240,230,0.82);font-size:13px;letter-spacing:.03em;}
.lightbox-count{position:absolute;top:28px;left:28px;color:rgba(244,240,230,0.6);font-size:12px;letter-spacing:.08em;}

/* ==========================================================================
   Pricing tables
   ========================================================================== */
.price-table-wrap{overflow-x:auto;margin:18px 0 8px;}
table.price-table{border-collapse:collapse;width:100%;min-width:520px;background:var(--paper);}
table.price-table th, table.price-table td{border:1px solid var(--line);padding:16px 14px;text-align:center;}
table.price-table thead th{
  font-family:'Archivo',sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  font-weight:600;color:var(--stone);background:var(--limewash-dim);
}
table.price-table td{font-family:'Fraunces',serif;font-size:20px;color:var(--pine);}
table.price-table td.note{font-family:'Archivo',sans-serif;font-size:13px;color:#3c3a33;}
.price-note{font-size:13.5px;color:var(--stone);margin-top:10px;}
.price-block + .price-block{margin-top:44px;}
.price-block h3{font-size:19px;margin-bottom:4px;}

/* ==========================================================================
   Footer / contact
   ========================================================================== */
footer{background:var(--ink);color:var(--paper);}
.foot-top{display:grid;grid-template-columns:1.3fr 0.85fr 0.85fr 1fr;gap:40px;padding:88px 0 56px;}
@media (max-width:1080px){.foot-top{grid-template-columns:1fr 1fr;}}
.foot-brand h2{color:var(--paper);font-size:30px;margin-bottom:16px;}
.foot-brand p{color:rgba(244,240,230,0.68);max-width:36ch;font-size:14.5px;}
.foot-col h4{font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--wheat);margin-bottom:18px;font-weight:600;}
.foot-col p, .foot-col a{display:block;color:rgba(244,240,230,0.82);font-size:14.5px;margin-bottom:10px;}
.foot-col a:hover{color:var(--wheat);}
.foot-bottom{border-top:1px solid rgba(244,240,230,0.14);padding:22px 0;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;font-size:12px;color:rgba(244,240,230,0.5);letter-spacing:0.02em;}

.contact-card{border:1px solid var(--line);background:var(--paper);padding:36px;}
.contact-card h3{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:16px;}
.contact-card a, .contact-card p{display:block;font-family:'Fraunces',serif;font-size:21px;margin-bottom:10px;color:var(--ink);}
.contact-card a:hover{color:var(--terracotta);}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:920px){
  .story-grid{grid-template-columns:1fr;gap:32px;}
  .story-rail-inner{position:static;}
  .offer-cols{grid-template-columns:1fr;}
  .card-grid.cols-2, .card-grid.cols-3{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .masonry{column-count:2;--cols:2;}
  .foot-top{grid-template-columns:1fr;gap:36px;padding:64px 0 40px;}
}
@media (max-width:980px){
  nav.primary, .lang-switch{display:none;}
  .menu-toggle{display:block;}
  .hero-content{padding-bottom:64px;}
  .section-pad{padding-top:72px;padding-bottom:72px;}
  .section-pad.tight{padding-top:48px;padding-bottom:48px;}
  .gallery-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .wrap{padding:0 20px;}
  .hero-page{padding-top:100px;min-height:46vh;}
  .hero-page-content{padding-bottom:40px;}
  .hero-content{padding-bottom:48px;}
  .section-pad{padding-top:56px;padding-bottom:56px;}
  .section-pad.tight{padding-top:36px;padding-bottom:36px;}
  .section-head{margin-bottom:36px;}
  .card-grid{gap:16px;}
  .info-card{padding:22px;}
  .contact-card{padding:26px;}
  .contact-card a, .contact-card p{font-size:18px;}
  .price-table-wrap{margin:14px -20px 8px;padding:0 20px;}
  table.price-table td{font-size:17px;padding:13px 10px;}
  table.price-table th{padding:10px 8px;font-size:10px;}
  .pill{font-size:10px;padding:5px 11px;}
  .gallery-strip{grid-auto-columns:minmax(66vw, 1fr);scroll-snap-type:x mandatory;margin:0 -20px;padding:0 20px 8px;}
  .gallery-strip .ph-img, .gallery-strip .ph{scroll-snap-align:start;}
  .masonry{column-count:1;--cols:1;}
  .filter-row{gap:8px;margin-bottom:28px;}
  .lightbox-img{max-width:94vw;max-height:76vh;}
  .lightbox-nav{font-size:22px;padding:10px;}
  .lightbox-close{top:16px;right:16px;font-size:28px;}
  .lightbox-count{top:18px;left:18px;}
  .foot-col{margin-bottom:8px;}
}
@media (max-width:400px){
  .brand{font-size:19px;}
  .hero-content .lede, .hero-page-content .lede{font-size:15px;}
  .card-grid.cols-3, .card-grid.cols-2{gap:14px;}
}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition:none !important;}
  .reveal{opacity:1;transform:none;}
}
/* ==========================================================================
   Tabs (Tarifes: informació general / prestacions)
   ========================================================================== */
.info-tabs{margin-top:88px;padding-top:56px;border-top:1px solid var(--line);}
.info-tabs-title{font-size:clamp(26px,3.6vw,38px);margin:10px 0 28px;}
.tab-list{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--line);margin-bottom:32px;}
.tab-btn{
  background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;
  padding:14px 22px;cursor:pointer;font-family:'Archivo',sans-serif;font-size:13px;
  letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--stone);
  transition:color .2s ease, border-color .2s ease;
}
.tab-btn:hover{color:var(--ink);}
.tab-btn.active{color:var(--pine);border-bottom-color:var(--terracotta);}
.tab-btn:focus-visible{outline:2px solid var(--terracotta);outline-offset:2px;}
.tab-panel[hidden]{display:none;}
.tab-panel.active{animation:tabFade .35s ease;}
@keyframes tabFade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media (max-width:600px){
  .info-tabs{margin-top:56px;padding-top:40px;}
  .tab-btn{flex:1;padding:12px 10px;font-size:12px;}
}

/* language links inside the mobile drawer */
.drawer .drawer-langs{display:flex;gap:18px;margin-bottom:10px;}
.drawer .drawer-langs a{font-family:'Archivo',sans-serif;font-size:13px;letter-spacing:.08em;font-weight:600;opacity:.6;}
.drawer .drawer-langs a.active{opacity:1;text-decoration:underline;text-underline-offset:3px;}

/* ---------- phone refinements ---------- */
@media (max-width:600px){
  .scroll-cue{display:none;}
  .prose p, .tl-item p{text-align:left;}
  .hero-tags{gap:8px 18px;}
  .tl-item{padding-left:26px;}
  .story-closing{padding-left:0;}
}
html, body{overflow-x:clip;}

/* gallery filters repeated below the photos */
.filter-row-bottom{margin:40px 0 0;padding-top:28px;border-top:1px solid var(--line);}
.filter-row-bottom:empty{display:none;}

/* lightbox: follow the finger while swiping */
.lightbox-img{transition:transform .2s ease;touch-action:pan-y;}
.lightbox{touch-action:pan-y;}

/* gallery photos waiting to load */
.masonry-link img:not(.is-loaded){aspect-ratio:4/3;background:var(--limewash-dim);}

/* ---------- menys espai entre la foto de capçalera i el primer títol ---------- */
.hero-page + .stone-edge + section > .section-pad{padding-top:40px;}
@media (max-width:640px){ .hero-page + .stone-edge + section > .section-pad{padding-top:28px;} }

/* ---------- requadres de les habitacions dels elements ---------- */
a.info-card.room-card{display:block;color:inherit;text-decoration:none;transition:border-color .25s ease, transform .25s ease;}
a.info-card.room-card:hover{border-color:var(--terracotta);transform:translateY(-2px);}
.room-more{display:inline-block;margin-top:10px;font-size:12.5px;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;color:var(--terracotta);}

/* ---------- menú de dalt: amb Galeria hi ha un enllaç més; evitem que les paraules es parteixin ---------- */
.brand, nav.primary .navlink{white-space:nowrap;}
@media (max-width:1380px){ nav.primary{gap:18px;} nav.primary .navlink{letter-spacing:0.06em;} }
@media (max-width:1240px){
  nav.primary, .lang-switch{display:none;}
  .menu-toggle{display:block;}
}

/* ---------- títols de secció: en ordinador, en una sola línia si hi caben ---------- */
.section-head{max-width:none;}
