*{box-sizing:border-box}
:root{--bg:#f4f3ef;--text:#111;--muted:#6f6f6f;--line:#d9d7d2;--max:1500px}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.5}
a{color:inherit;text-decoration:none}
.site-header{position:sticky;top:0;z-index:50;max-width:var(--max);margin:0 auto;padding:26px 42px;display:flex;justify-content:space-between;align-items:center;background:rgba(244,243,239,.92);backdrop-filter:blur(12px)}
.logo{font-size:24px;font-weight:600;letter-spacing:-.04em}
.main-nav{display:flex;gap:28px;align-items:center}
.main-nav a,.text-links a,.site-footer a{font-size:15px}
.main-nav a:hover,.text-links a:hover,.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.hero{position:relative;max-width:var(--max);min-height:82vh;margin:0 auto 130px;padding:0 42px;display:flex;align-items:flex-end}
.hero-video,.hero-overlay{position:absolute;inset:0 42px 0 42px;width:calc(100% - 84px);height:100%;border-radius:22px}
.hero-video{object-fit:cover;background:#171717;pointer-events:none}
.hero-overlay{background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.15) 48%,rgba(0,0,0,.22));pointer-events:none}
.hero-content{position:relative;z-index:2;width:100%;padding:0 42px 52px;color:#fff}
.eyebrow{margin:0 0 20px;font-size:15px;color:rgba(255,255,255,.82)}
h1{margin:0 0 24px;font-size:clamp(60px,8vw,128px);line-height:.9;letter-spacing:-.075em;font-weight:500;max-width:980px}
.hero-copy{margin:0;max-width:420px;font-size:18px;line-height:1.45;color:rgba(255,255,255,.86)}
.work-section,.about,.contact-section{max-width:var(--max);margin:0 auto;padding:0 42px 150px}
.section-heading{display:flex;align-items:baseline;gap:18px;padding:18px 0 42px;border-top:1px solid var(--line)}
.section-heading span{font-size:13px;color:var(--muted)}
.section-heading h2{margin:0;font-size:32px;font-weight:500;letter-spacing:-.04em}
.category{margin-bottom:120px}
.category-heading{display:flex;justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:25px}
.category-heading h3{margin:0;font-size:28px;font-weight:500;letter-spacing:-.04em}
.category-heading p{margin:0;font-size:13px;color:var(--muted)}
.video{position:relative;width:100%;aspect-ratio:16/9;background:#d9d9d5;overflow:hidden;border-radius:14px}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.project-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:12px 2px 0}
.project-meta h4{margin:0 0 2px;font-size:18px;font-weight:500;letter-spacing:-.02em}
.project-meta p{margin:0;font-size:13px;color:var(--muted)}
.project-meta span{font-size:13px;color:var(--muted);white-space:nowrap}
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 14px}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:74px;align-items:start}
.about-photo{position:relative;aspect-ratio:4/5;background:#d9d9d5;overflow:hidden;border-radius:14px}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block}
.about-copy{max-width:580px;padding-top:2px}
.about-copy p{margin:0 0 24px;color:#4b4b4b;font-size:18px;line-height:1.55}
.about-copy .lead{margin-bottom:30px;color:var(--text);font-size:29px;line-height:1.2;letter-spacing:-.035em}
.text-links{display:flex;gap:24px;margin-top:38px}
.contact-box{padding:68px 0 20px}
.contact-box p{margin:0 0 18px;font-size:17px;color:var(--muted)}
.email{display:inline-block;max-width:100%;font-size:clamp(34px,5vw,76px);line-height:1;letter-spacing:-.06em;border-bottom:2px solid var(--text);padding-bottom:8px;overflow-wrap:anywhere}
.email:hover{opacity:.65}
.site-footer{max-width:var(--max);margin:0 auto;padding:25px 42px 35px;display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
@media(max-width:920px){.site-header{padding:20px}.main-nav{gap:16px}.main-nav a:nth-child(1),.main-nav a:nth-child(2){display:none}.hero{min-height:74vh;margin-bottom:95px;padding:0 20px}.hero-video,.hero-overlay{inset:0 20px 0 20px;width:calc(100% - 40px)}.hero-content{padding:0 24px 30px}h1{font-size:clamp(52px,14vw,88px)}.work-section,.about,.contact-section{padding:0 20px 100px}.projects-grid{grid-template-columns:1fr;gap:16px}.category{margin-bottom:82px}.about-grid{grid-template-columns:1fr;gap:42px}.site-footer{padding:25px 20px 35px}}
@media(max-width:560px){.logo{font-size:20px}.main-nav a{font-size:13px}.category-heading{display:block}.category-heading p{margin-top:4px}.section-heading h2{font-size:27px}.about-copy .lead{font-size:25px}.text-links{flex-direction:column;gap:12px}.site-footer{display:block}.site-footer a{display:inline-block;margin-top:8px}}


html,
body {
  margin: 0;
  padding: 0;
}

.video-extra {
  display: none;
}

.video-extra.visible {
  display: block;
  animation: aparecer-video 0.7s ease both;
}

.ver-mas {
  display: block;
  grid-column: 1 / -1;
  margin: 0 auto;
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-align: center;
  text-decoration: underline;
}

.flecha-abajo {
  font-family: 'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.5;
  font-style: normal;
  font-weight: normal;
}


.ver-mas:hover {
  opacity: 0.55;
}

@keyframes aparecer-video {
  from {
    opacity: 0;
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.video-cover {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: #111;
  cursor: pointer;
}

.video-cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  width: 66px;
  height: 66px;
  padding-left: 4px;
  border-radius: 50%;
  color: #111;
  background: rgba(255, 255, 255, 0.9);
  font-size: 22px;
  transition: transform 0.25s ease;
}

.video-cover:hover .play-icon {
  transform: translate(-50%, -50%) scale(1.08);
}

.video video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: contain;
  background: #111;
}

/* Página de casamientos */
.wedding-intro{max-width:var(--max);margin:0 auto 130px;padding:52px 42px 0}
.wedding-intro>h1{margin:0 0 30px;font-size:clamp(38px,4vw,62px);line-height:1;letter-spacing:-.055em}
.wedding-hero{position:relative;min-height:76vh;display:flex;align-items:flex-end}
.wedding-hero-video,.wedding-hero-overlay{position:absolute;inset:0;width:100%;height:100%;border-radius:22px}
.wedding-hero-video{object-fit:cover;background:#171717;pointer-events:none}
.wedding-hero-overlay{background:linear-gradient(to top,rgba(0,0,0,.74),rgba(0,0,0,.22) 60%,rgba(0,0,0,.25));pointer-events:none}
.wedding-intro-content{position:relative;z-index:2;width:100%;padding:52px 42px;color:#fff}
.wedding-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:74px;padding-top:24px;border-top:1px solid rgba(255,255,255,.38)}
.wedding-lead{max-width:620px;margin:0;font-size:clamp(28px,3vw,48px);line-height:1.08;letter-spacing:-.045em}
.wedding-description{max-width:580px;color:rgba(255,255,255,.84);font-size:18px;line-height:1.55}
.wedding-description p{margin:0 0 22px}
.inline-link{display:inline-block;margin-top:16px;color:#fff;font-size:16px;border-bottom:1px solid rgba(255,255,255,.8);padding-bottom:3px}
.inline-link:hover{opacity:.55}
.wedding-work{max-width:var(--max);margin:0 auto;padding:0 42px 150px}
.wedding-grid{gap:70px 14px}
.wedding-grid .project-meta h3{margin:0 0 2px;font-size:18px;font-weight:500;letter-spacing:-.02em}
.wedding-contact{padding-bottom:145px}

@media(max-width:920px){
  .wedding-intro{margin-bottom:95px;padding:42px 20px 0}
  .wedding-intro>h1{margin-bottom:24px;font-size:clamp(34px,7vw,52px)}
  .wedding-hero{min-height:78vh}
  .wedding-intro-content{padding:40px 24px}
  .wedding-intro-grid{grid-template-columns:1fr;gap:34px}
  .wedding-description{font-size:17px}
  .wedding-work{padding:0 20px 105px}
  .wedding-grid{gap:42px}
  .wedding-contact{padding-bottom:100px}
}

@media(max-width:560px){
  .wedding-intro{padding-top:32px}
  .wedding-intro>h1{font-size:34px}
  .wedding-hero{min-height:calc(100svh - 145px)}
  .wedding-intro-content{padding:30px 24px}
  .wedding-intro-grid{gap:22px;padding-top:18px}
  .wedding-lead{font-size:27px}
  .wedding-description{font-size:15px;line-height:1.45}
  .wedding-description p{margin-bottom:14px}
  .inline-link{margin-top:6px;font-size:15px}
}
