/* CABECERA */
.header {
  height:132px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line)}
.brand {
  width:225px}
.brand img {
  width:100%;
  height:100px;
  object-fit:contain}
.header nav {
  display:flex;
  align-items:center;
  gap:38px;
  font-size:12px}
.header nav a {
  text-decoration:none}
.header nav a:hover {
  text-decoration:underline;
  text-underline-offset:6px}
.nav-contact {
  border-bottom:1px solid var(--ink);
  padding:8px 0}

/* PRESENTACIÓN */
.hero {
  display:grid;
  grid-template-columns:1.12fr 1fr;
  gap:72px;
  align-items:center;
  padding-block:68px 76px}
h1 {
  font-size:clamp(66px,7.2vw,100px);
  margin:28px 0}
.hero h1 em {
  color:#927849}
.intro {
  font-size:15px;
  color:var(--muted);
  line-height:1.8;
  margin-bottom:27px}
.micro {
  font-size:11px;
  color:var(--muted);
  margin-top:13px}









.occasion-strip {
  border-block:1px solid var(--line)}
.occasion-strip>.wrap {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:65px;
  padding:22px 0;
  font-family:var(--serif);
  font-size:23px}
.occasion-strip i {
  font-size:15px;
  color:var(--gold);
  font-style:normal}

/* SERVICIOS */
.services {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:70px;
  padding-block:100px 105px}
h2 {
  font-size:48px}
.section-intro h2 {
  margin:22px 0}
.section-intro h2 em {
  color:#927849}
.section-intro>p:last-child {
  font-size:13px;
  color:var(--muted)}
.service {
  display:grid;
  grid-template-columns:28px 1fr;
  gap:18px;
  padding:26px 0;
  border-bottom:1px solid var(--line)}
.service:first-child {
  padding-top:0}
.number {
  font-size:10px;
  color:#927849;
  padding-top:7px}
.service h3 {
  font-size:25px;
  line-height:1.3}
.service p {
  font-size:13px;
  color:var(--muted);
  line-height:1.8;
  margin-top:10px;
  max-width:455px}
.service-heading {
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:10px}
.tag {
  font-size:7px;
  letter-spacing:.1em;
  border:1px solid #d2c2a9;
  padding:4px 6px;
  margin-top:5px;
  color:#75603b}
.photo-note {
  font-size:11px;
  color:var(--muted);
  margin:24px 0 0 46px;
  max-width:420px}

/* CONTACTO */
.visit {
  background:var(--ink);
  color:var(--paper);
  padding:76px 0}
.visit-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:80px}
.visit .eyebrow {
  color:#d5bfa1}
.visit h2 {
  margin:25px 0}
.visit h2 em {
  color:#d5bfa1}
.visit-lead {
  font-size:14px;
  color:#e2d6dc}
.contact-label {
  display:block;
  font-size:9px;
  letter-spacing:.18em;
  color:#d5bfa1;
  margin-bottom:12px}
.contact-row {
  border-bottom:1px solid #66545f;
  padding-bottom:26px}
.contact-row+.contact-row {
  padding-top:26px;
  border:0;
  padding-bottom:0}
address {
  font-style:normal;
  font-size:16px}
address span {
  font-size:13px;
  color:#e2d6dc}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:45px;
  font-size:12px;
  text-decoration:none;
  border-bottom:1px solid #b9a593;
  margin-top:18px;
  padding-bottom:5px}
.phone {
  font-family:var(--serif);
  font-size:30px;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:270px}
.contact-row p {
  font-size:12px;
  color:#e2d6dc;
  margin-top:7px}
.footer {
  padding-block:29px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:10px;
  color:var(--muted)}
.footer p {
  font-family:var(--serif);
  font-size:20px;
  color:var(--ink)}
.footer p span {
  display:block;
  font-family:var(--sans);
  font-size:9px;
  letter-spacing:.09em;
  margin-top:3px;
  color:var(--muted)}

/* ADAPTACIÓN A TABLET Y MÓVIL */
@media(max-width:1000px) {
  .hero {
  gap:30px}

.hero h1 {
  font-size:76px}
.services {
  gap:40px}
.visit-grid {
  gap:40px}
h2 {
  font-size:40px}
.header nav {
  gap:24px}
.occasion-strip>.wrap {
  gap:40px}
}

@media(max-width:700px) {
  .header {
  height:100px}
.brand {
  width:150px}
.brand img {
  height:85px}
.header nav {
  gap:16px;
  font-size:11px}
.header nav>a:first-child {
  display:none}
.hero {
  grid-template-columns:1fr;
  gap:42px;
  padding-block:38px 44px}
.hero h1 {
  font-size:76px;
  line-height:1.02;
  margin:25px 0}
.intro {
  font-size:14px}
.hero .eyebrow {
  font-size:8px;
  letter-spacing:.16em}






.occasion-strip>.wrap {
  gap:17px;
  font-size:18px;
  padding-block:18px}
.occasion-strip i {
  font-size:11px}
.services {
  grid-template-columns:1fr;
  padding-block:56px;
  gap:35px}
.section-intro h2 {
  font-size:39px}
.service h3 {
  font-size:24px}
.visit {
  padding-block:50px}
.visit-grid {
  grid-template-columns:1fr;
  gap:38px}
.visit h2 {
  font-size:40px}
.footer {
  gap:20px;
  align-items:flex-start}
.footer>span {
  text-align:right;
  font-size:9px;
  max-width:110px}
.desktop {
  display:none}
}

@media(max-width:700px) {
  .hero h1 {
  font-size:clamp(48px,15.4vw,64px)}
.header nav {
  flex-shrink:0}
.brand {
  flex-shrink:0}
.nav-contact {
  white-space:nowrap}
}

@media(max-width:360px) {
  .header nav>a:nth-child(2) {
  display:none}
.occasion-strip>.wrap {
  gap:12px;
  font-size:16px}
.hero .eyebrow {
  letter-spacing:.12em}
.visit h2 {
  font-size:35px}
.section-intro h2 {
  font-size:35px}
}

/* CONTACTOS VISUALES: iconos compartidos y alternativa secundaria. */
.contact-icon { width:28px; height:28px; flex:0 0 28px; }
.nav-contact { display:inline-flex; align-items:center; gap:9px; min-height:44px; }
.hero .button { gap:12px; padding:17px 20px; }
.hero .button>span { margin-left:12px; }
.phone { justify-content:flex-start; gap:12px; max-width:320px; min-height:48px; }
.phone>span { margin-left:auto; }
.map-button { display:inline-flex; align-items:center; gap:12px; min-height:50px; padding:12px 18px; margin-top:20px; background:#eadbc5; color:var(--ink); font-size:13px; text-decoration:none; border:1px solid #eadbc5; transition:background .2s; }
.map-button:hover { background:var(--paper); }
.map-button>span { margin-left:20px; font-size:20px; }
.map-icon { width:24px; height:24px; flex:0 0 24px; }
.backup-contact { margin-top:25px; padding-top:22px; border-top:1px solid #66545f; }
.backup-contact .contact-label { color:#d6c9d0; font-size:8px; }
.backup-phone { display:inline-flex; align-items:center; gap:11px; padding:9px 13px; min-height:46px; border:1px solid #897681; color:#f1e7ed; text-decoration:none; font-size:16px; }
.backup-phone:hover { background:#51404b; }
.backup-phone .contact-icon { width:23px; height:23px; flex-basis:23px; }
.backup-phone>span { margin-left:12px; }
@media(max-width:360px) { .hero .button { gap:9px; padding:16px 13px; font-size:12px; } .hero .button>span { margin-left:0; } .phone { font-size:27px; } }
/* FOTOGRAFÍA DE PORTADA */
.hero-photo { margin:0; align-self:stretch; min-height:520px; }
.hero-photo img { width:100%; height:100%; max-height:600px; object-fit:cover; object-position:50% 42%; border-radius:3px; }
/* COMPLEMENTOS: bloque independiente, sin catálogo ni carrusel. */
.details { padding-block:0 90px; }
.details-heading { border-top:1px solid var(--line); padding-top:60px; margin-bottom:35px; }
.details-heading h2 { margin:20px 0 15px; font-size:46px; }
.details-heading h2 em { color:#927849; }
.details-heading>p:last-child { color:var(--muted); font-size:14px; }
.details-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.detail-card img { width:100%; aspect-ratio:1; object-fit:cover; }
.detail-card h3 { font-size:25px; line-height:1.2; margin:20px 0 8px; }
.detail-card p { font-size:13px; color:var(--muted); }
.details-note { margin-top:25px; font-size:11px; color:var(--muted); }
@media(max-width:1000px) { .details-heading h2 { font-size:40px; } .detail-card h3 { font-size:22px; } }
@media(max-width:700px) {
 .hero-photo { min-height:0; }
 .hero-photo img { height:auto; aspect-ratio:4/5; max-height:540px; }
 .details { padding-bottom:55px; }
 .details-heading { padding-top:40px; margin-bottom:28px; }
 .details-heading h2 { font-size:37px; }
 .details-grid { grid-template-columns:1fr; gap:22px; }
 .detail-card { display:grid; grid-template-columns:125px minmax(0,1fr); gap:18px; align-items:center; }
 .detail-card h3 { margin:0 0 8px; font-size:22px; }
 .detail-card p { font-size:12px; }
}
@media(max-width:360px) { .detail-card { grid-template-columns:105px minmax(0,1fr); gap:14px; } .detail-card h3 { font-size:20px; } }
