/* ============================================================
   Barbiere · Mallorca — "Tonsorial" design
   Lather-bone parlour, espresso shopfront at dusk, one barber-pole crimson.
   Display: Big Shoulders Display · Body: Hanken Grotesk · Tickets: Space Mono
   ============================================================ */

@font-face{font-family:"Big Shoulders";src:url(fonts/bigshoulders.woff2) format("woff2");
  font-weight:400 800;font-style:normal;font-display:swap;}
@font-face{font-family:"Hanken";src:url(fonts/hanken.woff2) format("woff2");
  font-weight:400 800;font-style:normal;font-display:swap;}
@font-face{font-family:"Space Mono";src:url(fonts/spacemono-400.woff2) format("woff2");
  font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Space Mono";src:url(fonts/spacemono-700.woff2) format("woff2");
  font-weight:700;font-style:normal;font-display:swap;}

:root{
  --strop:#15100C;        /* dark espresso shopfront */
  --strop-2:#221A13;      /* raised dark panel */
  --lather:#F3ECDF;       /* warm bone — body */
  --lather-2:#FBF6EC;     /* lighter — cards */
  --edge:#E2D7C2;         /* hairline on lather */
  --ink:#1B1510;          /* text on lather */
  --smoke:#7B6F5F;        /* muted secondary */
  --pole:#B0231C;         /* barber-pole crimson — THE accent */
  --pole-2:#7E140F;       /* deep crimson */
  --brass:#C49A5C;        /* aged brass */
  --brass-2:#9B7333;      /* deeper brass */
  --cream:#F4EDE1;        /* pole / text on dark */
  --ok:#3E7D4F;           /* open */
  --no:#B0231C;           /* closed */
  --wrap:1200px;
  --r:14px;
  --shadow:0 18px 50px -28px rgba(20,12,6,.55);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--lather);color:var(--ink);
  font-family:"Hanken",system-ui,sans-serif;font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(18px,4vw,40px)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3{margin:0;font-family:"Big Shoulders",sans-serif;font-weight:800;
  line-height:.94;letter-spacing:.005em;text-transform:uppercase}
:focus-visible{outline:2.5px solid var(--pole);outline-offset:3px;border-radius:4px}

/* eyebrow / ticket type */
.hero-eyebrow,.bh-eyebrow,.mast-tag,.card-ticket,.row-ref,.card-seg,.row-seg,
.bh-count,.foot-tag,.stat,.open-now,.results-head h2{
  font-family:"Space Mono",ui-monospace,monospace;
}

/* ---------------- masthead ---------------- */
.mast{position:relative;background:var(--strop);color:var(--cream);
  border-bottom:1px solid rgba(196,154,92,.28)}
.mast-in{display:flex;align-items:center;justify-content:space-between;
  gap:16px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-family:"Big Shoulders",sans-serif;
  font-weight:800;font-size:23px;text-transform:uppercase;letter-spacing:.04em}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;color:var(--strop);
  background:linear-gradient(150deg,var(--brass),#e7c98c 55%,var(--brass-2));
  border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.15) inset}
.brand-mark svg{width:17px;height:17px}
.brand-dot{color:var(--pole);margin-inline:1px}
.mast-tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(244,237,225,.6)}
.mast-tag b{color:var(--brass);font-weight:700}

/* ---------------- hero ---------------- */
.hero{position:relative;background:
   radial-gradient(120% 80% at 82% 18%,rgba(176,35,28,.20),transparent 55%),
   radial-gradient(90% 70% at 12% 110%,rgba(196,154,92,.12),transparent 60%),
   var(--strop);
  color:var(--cream);overflow:hidden;border-bottom:1px solid rgba(196,154,92,.22)}
.hero::before{ /* faint pinstripe texture, like wallpaper */
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.4;
  background:repeating-linear-gradient(90deg,rgba(244,237,225,.035) 0 1px,transparent 1px 12px);}
.hero-in{position:relative;display:grid;grid-template-columns:1.25fr .75fr;
  gap:clamp(24px,5vw,70px);align-items:center;
  padding-block:clamp(54px,8vw,104px)}
.hero-eyebrow{display:inline-block;font-size:12px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--brass);margin-bottom:22px;
  padding-bottom:10px;border-bottom:1px solid rgba(196,154,92,.4)}
.hero h1{font-size:clamp(58px,11vw,128px);letter-spacing:-.01em}
.hero h1 em{font-style:normal;color:var(--pole);
  text-shadow:0 0 38px rgba(176,35,28,.5)}
.hero-sub{max-width:46ch;margin:26px 0 0;color:rgba(244,237,225,.82);
  font-size:clamp(16px,1.5vw,18.5px)}
.hero-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.stat{display:inline-flex;align-items:baseline;gap:7px;font-size:12.5px;
  letter-spacing:.1em;text-transform:uppercase;color:rgba(244,237,225,.62);
  padding:9px 15px;border:1px solid rgba(196,154,92,.32);border-radius:40px}
.stat b{font-family:"Big Shoulders",sans-serif;font-size:21px;font-weight:800;
  color:var(--cream)}
.hero-cta{display:inline-flex;align-items:center;gap:10px;margin-top:34px;
  padding:15px 26px;border-radius:42px;background:var(--pole);color:#fff;
  font-weight:700;letter-spacing:.02em;border:1px solid rgba(255,255,255,.12);
  box-shadow:0 16px 34px -16px rgba(176,35,28,.8);transition:.25s}
.hero-cta svg{width:18px;height:18px}
.hero-cta:hover{background:var(--pole-2);transform:translateY(-2px)}

/* ---------------- the barber pole (signature) ---------------- */
.hero-pole{margin:0;display:flex;flex-direction:column;align-items:center;gap:18px;
  justify-self:center}
.pole{position:relative;display:flex;flex-direction:column;align-items:center;
  filter:drop-shadow(0 26px 40px rgba(0,0,0,.5))}
.pole::after{ /* crimson glow halo */
  content:"";position:absolute;top:18%;left:50%;width:200px;height:78%;
  transform:translateX(-50%);z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(176,35,28,.34),transparent 72%);
  filter:blur(8px)}
.pole-cap{width:78px;height:26px;border-radius:9px;
  background:linear-gradient(180deg,#f0dcb4,var(--brass) 45%,var(--brass-2));
  box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 -3px 6px rgba(0,0,0,.3) inset}
.pole-cap--top{position:relative}
.pole-cap--top::before{ /* finial */
  content:"";position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  width:16px;height:16px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#f7e6c2,var(--brass-2));
  box-shadow:0 2px 4px rgba(0,0,0,.4)}
.pole-neck{width:62px;height:9px;
  background:linear-gradient(180deg,#e9d2a4,var(--brass-2))}
.pole-glass{position:relative;width:58px;height:300px;overflow:hidden;
  border-radius:30px;background:#221a13;
  box-shadow:0 0 0 2px rgba(196,154,92,.5),
             inset 0 0 14px rgba(0,0,0,.55)}
.pole-stripes{position:absolute;inset:-40% -30%;
  background:repeating-linear-gradient(122deg,
     var(--pole) 0 20px,#f4ede1 20px 40px);
  animation:poleSpin 2.6s linear infinite}
@keyframes poleSpin{to{transform:translateY(-40px)}}
.pole-shine{position:absolute;inset:0;border-radius:30px;pointer-events:none;
  background:linear-gradient(100deg,rgba(255,255,255,.45) 0 14%,transparent 32% 70%,
     rgba(0,0,0,.32) 100%)}
.hero-pole figcaption{display:flex;flex-direction:column;align-items:center;gap:3px;
  font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(244,237,225,.55);text-align:center}
.hero-pole figcaption span:first-child{color:var(--brass)}

/* ---------------- filter ---------------- */
.filter-sec{position:sticky;top:0;z-index:40;background:var(--lather);
  padding-block:18px;border-bottom:1px solid var(--edge);transition:box-shadow .25s}
.filter-sec.stuck{box-shadow:0 14px 30px -22px rgba(20,12,6,.6)}
.filter{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:14px;
  align-items:end}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--smoke)}
.field input,.field select{font-family:"Hanken",sans-serif;font-size:15px;
  color:var(--ink);background:var(--lather-2);border:1px solid var(--edge);
  border-radius:10px;padding:12px 14px;width:100%;transition:.2s}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237B6F5F' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:34px}
.field input:focus,.field select:focus{outline:none;border-color:var(--pole);
  box-shadow:0 0 0 3px rgba(176,35,28,.14)}
.btn-reset{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink);background:transparent;cursor:pointer;
  border:1px solid var(--ink);border-radius:10px;padding:12px 18px;height:46px;
  transition:.2s}
.btn-reset:hover{background:var(--ink);color:var(--lather)}

/* ---------------- section blocks ---------------- */
.block{padding-block:clamp(48px,7vw,82px)}
.block + .block{border-top:1px solid var(--edge)}
.block-head{display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;margin-bottom:38px}
.bh-left{max-width:62ch}
.bh-eyebrow{display:inline-block;font-size:11.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--pole);font-weight:700;margin-bottom:14px}
.bh-title{font-size:clamp(32px,4.6vw,54px);color:var(--ink)}
.bh-sub{margin:14px 0 0;color:var(--smoke);font-size:16.5px;max-width:54ch}
.pole-rule{display:block;height:7px;width:108px;margin-top:22px;border-radius:4px;
  background:repeating-linear-gradient(122deg,var(--pole) 0 9px,var(--lather-2) 9px 18px);
  box-shadow:0 0 0 1px var(--edge)}
.bh-count{font-size:clamp(34px,5vw,58px);font-weight:700;color:var(--ink);
  line-height:1;white-space:nowrap;letter-spacing:-.02em}
.bh-count span{display:block;font-size:12px;letter-spacing:.18em;color:var(--brass-2);
  margin-bottom:4px}

/* ---------------- card grid ---------------- */
.grid{display:grid;gap:22px}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

.card{position:relative;display:flex;flex-direction:column;
  background:var(--lather-2);border:1px solid var(--edge);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--shadow);transition:transform .28s,box-shadow .28s}
.card:hover{transform:translateY(-4px);box-shadow:0 26px 56px -26px rgba(20,12,6,.55)}
.card-ticket{position:absolute;top:12px;left:12px;z-index:3;
  font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--cream);
  background:rgba(21,16,12,.82);backdrop-filter:blur(3px);
  padding:5px 10px;border-radius:30px;border:1px solid rgba(196,154,92,.45)}
.card-ticket span{color:var(--brass)}
.card-media{position:relative;aspect-ratio:16/10;background:var(--strop-2);
  display:grid;place-items:center}
.card-media .mono{position:absolute;font-family:"Big Shoulders",sans-serif;
  font-size:62px;font-weight:800;color:rgba(196,154,92,.34)}
.card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card--premium .card-media{aspect-ratio:16/11}
.badge{position:absolute;top:12px;right:12px;z-index:3;
  font-family:"Space Mono",monospace;font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--pole);
  padding:5px 11px;border-radius:30px;box-shadow:0 6px 16px -6px rgba(176,35,28,.8)}
.badge--soft{background:var(--ink);color:var(--brass)}
.open-now{position:absolute;left:12px;bottom:12px;z-index:3;display:inline-flex;
  align-items:center;gap:6px;font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--cream);background:rgba(21,16,12,.8);
  backdrop-filter:blur(3px);padding:5px 11px;border-radius:30px;
  border:1px solid rgba(244,237,225,.18)}
.open-now .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 0 3px rgba(62,125,79,.28)}
.open-now.closed .dot{background:var(--no);box-shadow:0 0 0 3px rgba(176,35,28,.28)}

.card-body{display:flex;flex-direction:column;flex:1;padding:18px 18px 16px}
.card-seg{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass-2);margin-bottom:8px}
.card-name{font-size:25px;color:var(--ink);margin-bottom:12px}
.card--premium .card-name{font-size:29px}
.card-meta{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.m-row{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:var(--smoke)}
.m-row svg{width:15px;height:15px;flex:none;margin-top:3px;color:var(--brass-2)}
.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.act{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;
  padding:9px 14px;border-radius:9px;transition:.2s;border:1px solid transparent}
.act svg{width:15px;height:15px}
.act--primary{background:var(--ink);color:var(--lather)}
.act--primary:hover{background:var(--pole)}
.act--ghost{background:transparent;border-color:var(--edge);color:var(--ink)}
.act--ghost:hover{border-color:var(--ink);background:rgba(27,21,16,.04)}

/* ---------------- claim affordance ---------------- */
.claim{position:absolute;display:grid;place-items:center;color:var(--smoke);
  width:30px;height:30px;border-radius:50%;border:1px solid var(--edge);
  background:var(--lather-2);transition:.2s;z-index:4}
.claim svg{width:15px;height:15px}
.claim--corner{top:12px;right:12px}
.card--premium .claim--corner,.card .badge ~ *{}
.card .claim--corner{top:auto;bottom:14px;right:14px}
.claim:hover{color:var(--pole);border-color:var(--pole)}
.claim-tip{position:absolute;right:0;bottom:calc(100% + 9px);display:flex;
  align-items:center;gap:7px;white-space:nowrap;background:var(--ink);
  color:var(--lather);font-family:"Hanken",sans-serif;font-size:12px;font-weight:600;
  padding:8px 12px;border-radius:8px;opacity:0;transform:translateY(5px);
  pointer-events:none;transition:.2s;box-shadow:var(--shadow)}
.claim-tip svg{width:14px;height:14px;color:#56d06a}
.claim:hover .claim-tip{opacity:1;transform:translateY(0)}

/* ---------------- list ---------------- */
.restList{display:flex;flex-direction:column;gap:0;border:1px solid var(--edge);
  border-radius:var(--r);overflow:hidden;background:var(--lather-2)}
.list-row{position:relative;display:grid;
  grid-template-columns:56px 1fr 1.1fr auto;gap:18px;align-items:center;
  padding:14px 56px 14px 18px;border-bottom:1px solid var(--edge);transition:background .2s}
.list-row:last-child{border-bottom:none}
.list-row:hover{background:rgba(196,154,92,.07)}
.row-ref{font-size:12.5px;font-weight:700;color:var(--brass-2);letter-spacing:.04em}
.list-thumb{position:relative;width:56px;height:56px;border-radius:10px;
  overflow:hidden;background:var(--strop-2);display:grid;place-items:center;flex:none}
.list-thumb .mono{position:absolute;font-family:"Big Shoulders",sans-serif;
  font-size:24px;font-weight:800;color:rgba(196,154,92,.4)}
.list-thumb .card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.row-main{min-width:0}
.row-name{font-family:"Big Shoulders",sans-serif;font-weight:700;font-size:21px;
  text-transform:uppercase;line-height:1.02;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-seg{font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--smoke);margin-top:3px}
.row-loc{font-size:13.5px;color:var(--smoke);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.row-links{display:flex;gap:7px}
.icon-btn{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;
  border:1px solid var(--edge);color:var(--ink);transition:.2s}
.icon-btn svg{width:16px;height:16px}
.icon-btn:hover{background:var(--ink);color:var(--lather);border-color:var(--ink)}
.list-row .claim--row{top:50%;right:16px;transform:translateY(-50%);
  width:26px;height:26px}
.list-row .claim--row .claim-tip{transform:translateY(-50%)}
.list-row .claim--row:hover .claim-tip{transform:translateY(-50%)}

/* ---------------- results / empty ---------------- */
#results{padding-block:clamp(40px,6vw,72px)}
.results-head{display:flex;align-items:baseline;gap:16px;margin-bottom:30px;
  padding-bottom:18px;border-bottom:1px solid var(--edge)}
.results-head h2{font-family:"Big Shoulders",sans-serif;font-size:34px;color:var(--ink)}
#resultCount{font-size:46px;font-weight:700;color:var(--pole);line-height:1}
#resultHint{color:var(--smoke);font-size:14px;margin-left:auto}
.empty{text-align:center;padding:64px 20px;border:1px dashed var(--edge);
  border-radius:var(--r);background:var(--lather-2)}
.empty h3{font-size:26px;color:var(--ink);margin-bottom:8px}
.empty p{color:var(--smoke);margin:0}

/* ---------------- footer ---------------- */
.foot{background:
   radial-gradient(80% 120% at 88% 0%,rgba(176,35,28,.14),transparent 55%),var(--strop);
  color:var(--cream);margin-top:20px;border-top:1px solid rgba(196,154,92,.22)}
.foot-in{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;
  padding-block:clamp(46px,7vw,76px)}
.foot-in>div:first-child{max-width:48ch}
.foot h2{font-size:clamp(28px,3.6vw,42px);color:var(--cream);margin-bottom:14px}
.foot-in p{color:rgba(244,237,225,.74);margin:0 0 26px}
.foot-cta{display:inline-flex;align-items:center;gap:9px;padding:14px 26px;
  border-radius:42px;background:var(--cream);color:var(--strop);font-weight:700;
  letter-spacing:.02em;transition:.25s}
.foot-cta:hover{background:var(--brass);transform:translateY(-2px)}
.foot-meta{display:flex;flex-direction:column;gap:12px;justify-content:center;
  font-size:13px;color:rgba(244,237,225,.6)}
.foot-brand{display:flex;align-items:center;gap:10px;font-family:"Big Shoulders",sans-serif;
  font-size:21px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  color:var(--cream)}
.foot-tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.foot-bottom{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;
  padding-block:20px;border-top:1px solid rgba(196,154,92,.18);
  font-family:"Space Mono",monospace;font-size:11.5px;letter-spacing:.06em;
  color:rgba(244,237,225,.5)}

/* ---------------- whatsapp fab ---------------- */
.wa-fab{position:fixed;right:20px;bottom:20px;z-index:60;display:grid;
  place-items:center;width:56px;height:56px;border-radius:50%;background:#25D366;
  color:#fff;box-shadow:0 16px 34px -12px rgba(37,211,102,.7);transition:transform .2s}
.wa-fab svg{width:28px;height:28px}
.wa-fab:hover{transform:scale(1.07)}

/* ---------------- reveal ---------------- */
.card.r,.list-row.r{opacity:0;transform:translateY(18px)}
.card.r.in,.list-row.r.in{opacity:1;transform:none;
  transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}

/* ---------------- responsive ---------------- */
@media(max-width:1040px){
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .hero-in{grid-template-columns:1fr;text-align:left}
  .hero-pole{flex-direction:row;gap:26px;align-self:flex-start}
  .pole-glass{height:200px;width:48px}
  .pole::after{height:88%}
  .hero-pole figcaption{align-items:flex-start;text-align:left}
}
@media(max-width:780px){
  .filter{grid-template-columns:1fr 1fr;gap:12px}
  .field--q{grid-column:1/-1}
  .btn-reset{grid-column:1/-1;height:auto;padding:12px}
  .block-head{flex-direction:column;align-items:flex-start;gap:8px}
  .bh-count{align-self:flex-end;margin-top:-44px}
}
@media(max-width:620px){
  body{font-size:16px}
  .grid--3,.grid--4{grid-template-columns:1fr}
  .mast-tag{display:none}
  .list-row{grid-template-columns:48px 1fr;gap:12px;
    padding:14px 50px 14px 14px}
  .row-loc,.row-links{display:none}
  .hero-pole{flex-direction:column}
  .pole-glass{height:230px}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important}
  .pole-stripes{animation:none}
  .card.r,.list-row.r{opacity:1;transform:none}
  .card:hover,.hero-cta:hover,.foot-cta:hover,.wa-fab:hover{transform:none}
}
