/* sections / panels — all internal blocks */

section{padding:64px 0}
@media (min-width:880px){section{padding:88px 0}}
@media (min-width:1180px){section{padding:104px 0}}

.section__head{margin-bottom:48px;max-width:62ch}
.section__eyebrow{
  font-family:var(--body);
  font-style:italic;
  font-size:0.8rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:14px;
}
.section__title{font-family:var(--display);font-weight:600;margin-bottom:14px}
.section__lead{font-size:1.04rem;color:var(--ink-soft);max-width:60ch;line-height:1.65}

/* partner strip — anticuarios */
.partners{
  display:flex;
  flex-wrap:wrap;
  gap:8px 28px;
  align-items:baseline;
  padding:28px 0;
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}
.partners__label{
  font-family:var(--body);
  font-style:italic;
  font-size:0.84rem;
  color:var(--brass);
  letter-spacing:0.04em;
  margin-right:8px;
}
.partners__name{
  font-family:var(--display);
  font-weight:500;
  font-size:0.98rem;
  color:var(--ink-soft);
  letter-spacing:0.02em;
}

/* category cards 4-up */
.cats{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}
@media (min-width:680px){.cats{grid-template-columns:1fr 1fr;gap:32px}}
@media (min-width:1180px){.cats{grid-template-columns:repeat(4,1fr);gap:24px}}

.cat{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  border:1px solid var(--hairline);
  background:var(--paper-soft);
  border-radius:var(--r-sm);
  transition:border-color var(--t), transform var(--t);
}
.cat:hover{border-color:var(--brass);transform:translateY(-2px)}
.cat__img{aspect-ratio:3/4;overflow:hidden}
.cat__img img{width:100%;height:100%;object-fit:cover;filter:saturate(0.9)}
.cat__body{padding:22px 22px 26px;display:flex;flex-direction:column;gap:8px}
.cat__num{
  font-family:var(--display);
  font-weight:600;
  font-size:0.74rem;
  letter-spacing:0.18em;
  color:var(--brass);
  text-transform:uppercase;
}
.cat__title{
  font-family:var(--display);
  font-weight:600;
  font-size:1.2rem;
  margin:0;
  color:var(--ink);
}
.cat__desc{font-size:0.92rem;color:var(--ink-soft);margin:0;line-height:1.5}
.cat__from{
  font-family:var(--body);
  font-style:italic;
  font-size:0.88rem;
  color:var(--oak);
  margin-top:6px;
}

/* process strip */
.proceso{margin-top:8px}
.proceso__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  counter-reset:step;
}
@media (min-width:760px){.proceso__grid{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.proceso__grid{grid-template-columns:repeat(4,1fr)}}

.step{
  position:relative;
  padding-top:48px;
  border-top:1px solid var(--brass);
}
.step::before{
  counter-increment:step;
  content:"Paso " counter(step,decimal-leading-zero);
  position:absolute;
  top:14px;left:0;
  font-family:var(--display);
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass);
}
.step__title{font-family:var(--display);font-weight:600;font-size:1.2rem;margin:0 0 10px}
.step__text{font-size:0.95rem;color:var(--ink-soft);line-height:1.6;margin:0}

/* lots grid (gallery / featured) */
.lots{
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
}
@media (min-width:760px){.lots{grid-template-columns:1fr 1fr;gap:48px 40px}}
@media (min-width:1100px){.lots{grid-template-columns:repeat(3,1fr);gap:56px 36px}}

.lot{
  display:flex;
  flex-direction:column;
}
.lot__img{
  aspect-ratio:4/5;
  overflow:hidden;
  position:relative;
  background:var(--paper-soft);
  margin-bottom:18px;
}
.lot__img img{width:100%;height:100%;object-fit:cover;filter:saturate(0.88) contrast(0.98)}
.lot__img::after{
  content:"";
  position:absolute;inset:0;
  border:1px solid var(--brass);
  opacity:0;
  transition:opacity var(--t);
  pointer-events:none;
}
.lot:hover .lot__img::after{opacity:0.55}

.lot__num{
  font-family:var(--display);
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:10px;
}
.lot__title{
  font-family:var(--display);
  font-weight:600;
  font-size:1.25rem;
  margin:0 0 8px;
  color:var(--ink);
}
.lot__meta{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 14px;
  font-size:0.86rem;
  color:var(--ink-soft);
  margin:8px 0 10px;
}
.lot__meta dt{font-family:var(--display);font-style:normal;color:var(--brass);letter-spacing:0.04em}
.lot__meta dd{margin:0}
.lot__caption{
  font-family:var(--body);
  font-style:italic;
  font-size:0.92rem;
  color:var(--ink-soft);
  line-height:1.55;
  margin:6px 0 0;
}

/* team */
.team{
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
}
@media (min-width:760px){.team{grid-template-columns:repeat(3,1fr);gap:32px}}
@media (min-width:1100px){.team{gap:48px}}

.craftsman__img{aspect-ratio:3/4;overflow:hidden;margin-bottom:18px;background:var(--paper-soft)}
.craftsman__img img{width:100%;height:100%;object-fit:cover;filter:saturate(0.9)}
.craftsman__name{font-family:var(--display);font-weight:600;font-size:1.2rem;margin:0 0 4px}
.craftsman__role{
  font-family:var(--body);
  font-style:italic;
  font-size:0.92rem;
  color:var(--brass);
  margin:0 0 12px;
  letter-spacing:0.02em;
}
.craftsman__bio{font-size:0.94rem;color:var(--ink-soft);line-height:1.6}
.craftsman__bio p{margin:0 0 10px}

/* pricing table */
.tarifa{
  width:100%;
  border-collapse:collapse;
  font-family:var(--body);
  font-size:0.96rem;
  margin:24px 0;
}
.tarifa thead th{
  text-align:left;
  font-family:var(--display);
  font-weight:600;
  font-size:0.8rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--brass);
  padding:14px 0;
  border-bottom:1px solid var(--brass);
}
.tarifa tbody td{
  padding:18px 0;
  border-bottom:1px solid var(--hairline);
  vertical-align:top;
}
.tarifa tbody tr:last-child td{border-bottom:1px solid var(--brass)}
.tarifa td:first-child{font-family:var(--display);font-weight:500;color:var(--ink);width:55%}
.tarifa td:last-child{text-align:right;font-family:var(--display);font-weight:600;color:var(--oak);white-space:nowrap}
.tarifa td em{font-family:var(--body);font-style:italic;color:var(--ink-soft);font-size:0.88rem;display:block;margin-top:4px}

@media (max-width:560px){
  .tarifa td:first-child{width:auto}
  .tarifa td:last-child{font-size:0.96rem}
}

/* FAQ accordion */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--hairline)}
.faq__item{border-bottom:1px solid var(--hairline)}
.faq__q{
  all:unset;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  width:100%;
  padding:22px 0;
  font-family:var(--display);
  font-weight:600;
  font-size:1.1rem;
  color:var(--ink);
}
.faq__q:hover{color:var(--oak)}
.faq__q:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.faq__q::after{
  content:"+";
  font-family:var(--display);
  font-weight:500;
  font-size:1.5rem;
  color:var(--brass);
  flex-shrink:0;
  transition:transform var(--t);
}
.faq__item.is-open .faq__q::after{content:"–"}
.faq__a{
  max-height:0;
  overflow:hidden;
  transition:max-height var(--t);
}
.faq__a-inner{padding:0 0 22px}
.faq__a p{margin:0 0 10px;color:var(--ink-soft);font-size:0.96rem;max-width:60ch}
.faq__item.is-open .faq__a{max-height:600px}

/* CTA block */
.cta-block{
  background:var(--ink);
  color:var(--paper);
  padding:64px 32px;
  border-radius:var(--r-md);
  display:grid;
  gap:24px;
  align-items:center;
}
.cta-block h2{color:var(--paper);margin:0}
.cta-block p{color:rgba(233,231,226,0.78);margin:0;max-width:54ch}
.cta-block .btn{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.cta-block .btn:hover{background:var(--brass-light);border-color:var(--brass-light)}
.cta-block__inner{display:flex;flex-direction:column;gap:22px}
@media (min-width:760px){
  .cta-block{grid-template-columns:1fr auto;padding:56px}
  .cta-block__inner{gap:14px}
}

/* form */
.form{
  display:flex;
  flex-direction:column;
  gap:16px;
  max-width:520px;
}
.form__field{display:flex;flex-direction:column;gap:6px}
.form__label{
  font-family:var(--display);
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--brass);
}
.form__input,
.form__textarea{
  font-family:var(--body);
  font-size:1rem;
  padding:14px 16px;
  border:1px solid var(--hairline);
  background:var(--paper-soft);
  color:var(--ink);
  border-radius:var(--r-sm);
  transition:border-color var(--t), background var(--t);
}
.form__input:focus,
.form__textarea:focus{
  outline:none;
  border-color:var(--brass);
  background:var(--paper);
}
.form__textarea{min-height:120px;resize:vertical;font-family:var(--body)}

.form__consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:0.88rem;
  color:var(--ink-soft);
  line-height:1.5;
}
.form__consent input{margin-top:4px;accent-color:var(--brass)}

.form__pot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

.form__status{font-size:0.92rem;font-style:italic;margin:0;min-height:1.4em}
.form__status.is-ok{color:var(--oak)}
.form__status.is-err{color:#993333}

/* gallery 2col before/after */
.diptych{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:24px 0;
}
.diptych figure{margin:0}
.diptych img{width:100%;border-radius:var(--r-sm)}
.diptych figcaption{
  font-family:var(--body);
  font-style:italic;
  font-size:0.84rem;
  color:var(--ink-soft);
  margin-top:8px;
  text-align:center;
  letter-spacing:0.04em;
}

/* values list (sobre nosotros) */
.values{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
}
@media (min-width:760px){.values{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.values{grid-template-columns:repeat(5,1fr);gap:24px}}

.value{
  padding-top:24px;
  border-top:1px solid var(--brass);
}
.value__num{
  font-family:var(--display);
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:10px;
}
.value__title{font-family:var(--display);font-weight:600;font-size:1.05rem;margin:0 0 8px}
.value__text{font-size:0.92rem;color:var(--ink-soft);line-height:1.55;margin:0}

/* contact two-col */
.contact-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
}
@media (min-width:880px){.contact-grid{grid-template-columns:1fr 1fr;gap:64px}}

.contact-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:24px}
.contact-list h3{font-family:var(--display);font-weight:600;font-size:1rem;margin:0 0 4px}
.contact-list p{margin:0;font-size:1rem;color:var(--ink-soft)}
.contact-list a{color:var(--oak);text-decoration:none;border-bottom:1px solid var(--brass)}
.contact-list a:hover{color:var(--brass)}

/* reveal animation (set by IO) */
.fx-up{opacity:0;transform:translateY(14px);transition:opacity 0.6s ease, transform 0.6s ease}
.fx-up.is-in{opacity:1;transform:none}

/* hours table */
.hours{
  width:100%;
  border-collapse:collapse;
  font-size:0.95rem;
  margin-top:14px;
}
.hours td{padding:8px 0;border-bottom:1px dotted var(--hairline)}
.hours td:last-child{text-align:right;font-style:italic;color:var(--ink-soft)}

/* fabrics list */
.fabrics{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
@media (min-width:680px){.fabrics{grid-template-columns:1fr 1fr;gap:22px}}
@media (min-width:1024px){.fabrics{grid-template-columns:repeat(4,1fr)}}

.fabric{
  padding:22px;
  border:1px solid var(--hairline);
  background:var(--paper-soft);
  border-radius:var(--r-sm);
}
.fabric__name{font-family:var(--display);font-weight:600;font-size:1.05rem;margin:0 0 6px}
.fabric__origin{font-family:var(--body);font-style:italic;font-size:0.86rem;color:var(--brass);margin:0 0 10px}
.fabric__text{font-size:0.9rem;color:var(--ink-soft);line-height:1.55;margin:0}

/* numeric stats strip */
.stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  padding:36px 0;
  border-top:1px solid var(--brass);
  border-bottom:1px solid var(--brass);
}
@media (min-width:760px){.stats{grid-template-columns:repeat(4,1fr);gap:32px}}
.stats__num{font-family:var(--display);font-weight:600;font-size:2rem;color:var(--oak);line-height:1}
.stats__label{font-family:var(--body);font-style:italic;font-size:0.86rem;color:var(--ink-soft);margin-top:8px}

/* legal text */
.legal{font-size:0.95rem;line-height:1.7;max-width:64ch}
.legal h2{margin-top:48px;font-size:1.4rem}
.legal h3{margin-top:32px;font-size:1.1rem;color:var(--oak)}
.legal p{margin-bottom:16px}

/* 404 styles */
.notfound{
  min-height:60vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:80px 0;
}
.notfound__lot{
  font-family:var(--display);
  font-weight:600;
  font-size:0.85rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:14px;
}
.notfound__title{font-size:clamp(2.2rem,1.4rem + 3vw,3.8rem);margin-bottom:14px;font-style:italic;color:var(--oak)}
.notfound__text{max-width:54ch;color:var(--ink-soft);font-size:1.05rem;margin-bottom:28px}
