@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=Jost:wght@300;400;500&display=swap');
:root{--ink:#273124;--deep:#1e261e;--paper:#faf9f5;--white:#fff;--line:rgba(39,49,36,.13);--muted:#788073;--mint:#edf5ef;--sand:#f5efe8;--blue:#edf4f3;--ease:cubic-bezier(.16,.75,.2,1);--mouse-x:50%;--mouse-y:50%}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Jost,sans-serif;font-weight:300;line-height:1.65;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");opacity:.018}a{color:inherit;text-decoration:none}img{display:block;width:100%}button{font:inherit}.wrap{width:min(1260px,88vw);margin:auto}.label,.eyebrow,.meta{font-size:10px;line-height:1;letter-spacing:.22em;text-transform:uppercase}.nav{position:fixed;z-index:50;top:0;left:0;width:100%;padding:27px 5vw;display:flex;align-items:center;justify-content:space-between;transition:background .7s var(--ease),padding .7s var(--ease),box-shadow .7s var(--ease),color .5s}.nav-hero{color:#fff}.nav.scrolled{padding-top:15px;padding-bottom:15px;background:rgba(250,249,245,.78);backdrop-filter:blur(18px);box-shadow:0 1px 0 rgba(39,49,36,.08);color:var(--ink)}.nav-logo{width:154px;transition:filter .55s var(--ease),transform .55s var(--ease)}.nav-hero:not(.scrolled) .nav-logo{filter:brightness(0) invert(1)}.navlinks{display:flex;gap:34px;font-size:10px;letter-spacing:.16em;text-transform:uppercase}.navlinks a{position:relative}.navlinks a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:currentColor;transition:.45s var(--ease)}.navlinks a:hover:after{right:0}.menu{display:none;border:0;background:none;padding:0;color:inherit}.menu span{display:block;width:23px;height:1px;background:currentColor;margin:6px 0}.mobile-menu{position:fixed;z-index:45;inset:0;background:rgba(250,249,245,.97);backdrop-filter:blur(20px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:26px;font:400 43px/1 Cormorant Garamond,serif;opacity:0;pointer-events:none;transform:translateY(-12px);transition:.5s var(--ease)}.mobile-menu.open{opacity:1;pointer-events:auto;transform:none}
.hero{height:100svh;min-height:720px;position:relative;overflow:hidden;background:#242a24;color:#fff}.hero-media{position:absolute;inset:-6%;animation:heroZoom 18s ease-in-out infinite alternate;transform-origin:center;opacity:.76}.hero-media img{height:100%;object-fit:cover;object-position:center 50%;filter:saturate(.72) contrast(.95)}body:not(.page-ready) .hero-media{opacity:0;transform:scale(1.12);filter:blur(12px)}body.page-ready .hero-media{animation:heroEnter 1.8s var(--ease) both,heroZoom 18s 1.8s ease-in-out infinite alternate}.hero-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,15,9,.38),rgba(10,15,9,.04) 36%,rgba(8,12,8,.62))}.hero-grain{position:absolute;inset:-30%;opacity:.08;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 7s steps(5) infinite}.hero-light{position:absolute;z-index:2;width:42vw;height:42vw;border-radius:50%;filter:blur(55px);mix-blend-mode:screen;pointer-events:none}.hero-light-a{left:-12%;top:-18%;background:radial-gradient(circle,rgba(255,245,205,.25),transparent 65%);animation:lightA 13s ease-in-out infinite alternate}.hero-light-b{right:-12%;top:2%;background:radial-gradient(circle,rgba(255,249,221,.18),transparent 63%);animation:lightB 16s ease-in-out infinite alternate}.hero-content{position:absolute;z-index:4;left:7vw;bottom:9vw;max-width:900px;opacity:0;transform:translateY(30px)}body.page-ready .hero-content{animation:heroText 1.1s .65s var(--ease) forwards}.eyebrow{opacity:.78}.hero h1{font:400 clamp(78px,10.4vw,165px)/.73 Cormorant Garamond,serif;letter-spacing:-.045em;margin:22px 0 0}.hero h1 em{font-weight:300}.scrollhint{position:absolute;z-index:4;right:5vw;bottom:37px;display:flex;align-items:center;gap:15px;font-size:9px;letter-spacing:.2em;text-transform:uppercase}.scrollhint i{display:block;width:48px;height:1px;background:rgba(255,255,255,.7)}
.section{position:relative;overflow:hidden;padding:150px 0}.section:before{content:"";position:absolute;inset:-12% -5%;pointer-events:none;background:radial-gradient(480px circle at var(--mouse-x) var(--mouse-y),rgba(255,255,255,.46),transparent 65%);opacity:.7;transition:opacity .8s}.section-inner{position:relative;z-index:2}.ambient{position:absolute;width:52vw;height:52vw;border-radius:50%;filter:blur(70px);opacity:.7;pointer-events:none;transform:translate3d(var(--mx,0),var(--my,0),0);transition:transform 1.8s var(--ease)}.ambient-1{left:-26%;top:-12%;background:radial-gradient(circle,var(--mint),transparent 67%)}.ambient-2{right:-27%;top:8%;background:radial-gradient(circle,var(--blue),transparent 66%)}.ambient-3{left:15%;bottom:-40%;background:radial-gradient(circle,var(--sand),transparent 66%)}.ambient-4{right:-20%;top:-45%;background:radial-gradient(circle,var(--mint),transparent 66%)}.ambient-5{left:15%;top:-30%;background:radial-gradient(circle,#edf1e8,transparent 66%)}
.about{background:linear-gradient(120deg,#faf9f5 0%,#fbfaf7 50%,#f7f5ef 100%)}.about-grid{display:grid;grid-template-columns:.55fr 1.8fr;gap:8vw}.section-number{font:300 150px/.8 Cormorant Garamond,serif;color:rgba(39,49,36,.07);margin-top:55px}.about-copy{max-width:700px}.about h2{font:400 clamp(66px,7.3vw,108px)/.8 Cormorant Garamond,serif;letter-spacing:-.035em;margin:0 0 38px}.about p{max-width:620px;font-size:15px;line-height:1.95;margin:0 0 17px;color:#596054}.about .lead{font-size:18px;line-height:1.65;color:var(--ink)}.about-visual{margin-top:100px;display:flex;align-items:end;justify-content:flex-end;gap:28px}.about-photo{width:min(570px,62%);overflow:hidden;aspect-ratio:4/5}.about-photo img{height:100%;object-fit:cover;object-position:center;transition:transform 1.5s var(--ease);filter:saturate(.78) contrast(.98)}.about-photo:hover img{transform:scale(1.035)}.photo-note{font:300 21px/1.1 Cormorant Garamond,serif;color:#777d73;padding-bottom:13px}
.fragments{background:linear-gradient(120deg,#fff 0%,#fff 50%,#fbfaf6 100%)}.fragment-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:75px}.fragment-head h2{font:400 clamp(57px,6.4vw,94px)/.82 Cormorant Garamond,serif;letter-spacing:-.03em;margin:22px 0 0}.fragment-head p{font-size:12px;line-height:1.8;color:var(--muted);text-align:right;margin:0}.fragment-stage{position:relative;height:1450px}.frag{position:absolute;margin:0;overflow:hidden;background:#eee;box-shadow:0 20px 70px rgba(39,49,36,.08)}.frag img{height:100%;object-fit:cover;transition:transform 1.4s var(--ease);filter:saturate(.82)}.frag:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(0,0,0,.28));opacity:.65}.frag:hover img{transform:scale(1.045)}.frag figcaption{position:absolute;z-index:2;bottom:18px;left:20px;color:#fff;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.frag-1{left:0;top:0;width:44%;height:570px}.frag-2{right:0;top:145px;width:48%;height:690px}.frag-3{left:6%;top:600px;width:42%;height:640px}.frag-4{right:0;top:900px;width:46%;height:386px}.portfolio-cta{margin-top:35px}.cta-line{height:1px;background:var(--line);margin-bottom:25px}.big-link{display:flex;justify-content:space-between;align-items:center;font:400 clamp(38px,4.5vw,66px)/1 Cormorant Garamond,serif}
.services-section{background:linear-gradient(120deg,#f7f4ee 0%,#fbfaf7 52%,#f0f5ef 100%)}.services-section .section-inner{display:grid;grid-template-columns:1fr 1.15fr;gap:10vw;align-items:start}.services-intro h2{font:400 clamp(70px,8vw,115px)/.77 Cormorant Garamond,serif;letter-spacing:-.04em;margin:28px 0 0}.services-intro h2 em{font-weight:300}.service-list{border-top:1px solid var(--line)}.service-list a{display:grid;grid-template-columns:44px 1fr 28px;align-items:center;gap:15px;padding:30px 0;border-bottom:1px solid var(--line);transition:padding .55s var(--ease),color .45s}.service-list a span{font-size:9px;letter-spacing:.15em;color:var(--muted)}.service-list strong{font:400 clamp(27px,3vw,45px)/1 Cormorant Garamond,serif;font-weight:400}.service-list i{font-style:normal;font-size:20px;transition:transform .5s var(--ease)}.service-list a:hover{padding-left:15px;color:#4a5439}.service-list a:hover i{transform:translate(6px,-6px)}
.testimonial{background:linear-gradient(120deg,#f2f6f1 0%,#f7f8f3 52%,#eef4ef 100%);min-height:680px;display:flex;align-items:center}.testimonial blockquote{font:400 clamp(48px,6.4vw,95px)/.92 Cormorant Garamond,serif;letter-spacing:-.025em;margin:35px 0;max-width:1100px;min-height:1.9em}.testimonial blockquote em{font-weight:300}.caret{display:inline-block;width:2px;height:.78em;background:currentColor;margin-left:5px;vertical-align:-.05em;animation:blink .9s steps(1) infinite}.signature{font:300 27px/1 Cormorant Garamond,serif}
.contact{background:linear-gradient(120deg,#fbfaf7 0%,#fff 50%,#f7f3ec 100%);min-height:820px;display:flex;align-items:center;text-align:center}.contact h2{font:400 clamp(90px,13vw,180px)/.7 Cormorant Garamond,serif;letter-spacing:-.05em;margin:40px 0}.contact p{max-width:540px;margin:0 auto 42px;font-size:14px;color:var(--muted);line-height:1.9}.contact-form{max-width:820px;margin:0 auto;text-align:left}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.contact-form label{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.contact-form label span{font-size:8px;letter-spacing:.05em;text-transform:none}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid rgba(39,49,36,.2);background:rgba(255,255,255,.35);padding:13px 4px 12px;margin-top:7px;font:300 15px Jost,sans-serif;color:var(--ink);outline:none;transition:border .35s,background .35s}.contact-form textarea{resize:vertical;min-height:110px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--ink);background:rgba(255,255,255,.7)}.contact-form .full{grid-column:1/-1}.form-submit{margin:34px auto 0;display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;border:0;padding:15px 22px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:transform .4s var(--ease),background .4s}.form-submit:hover{transform:translateY(-3px);background:#4a5439}.form-submit span{font-size:16px}.hidden-field{position:absolute!important;left:-9999px!important}.footer{padding:22px 5vw;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:28px;align-items:center;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.footer>a{text-align:center}.footer .instagram{text-align:right}.footer a:hover{color:var(--ink)}.author-seal{display:flex;justify-content:flex-end;align-items:center}.author-seal img{width:52px;height:52px;display:block;object-fit:contain;opacity:.78;transition:opacity .35s,transform .35s}.author-seal:hover img{opacity:1;transform:scale(1.04)}
.reveal{opacity:0;transform:translateY(45px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}.reveal.visible{opacity:1;transform:none}@keyframes heroEnter{0%{opacity:0;transform:scale(1.12);filter:blur(12px)}65%{opacity:.76}100%{opacity:.76;transform:scale(1.025);filter:blur(0)}}@keyframes heroZoom{0%{transform:scale(1.025) translate3d(0,0,0)}100%{transform:scale(1.085) translate3d(-1.4%,-.8%,0)}}@keyframes heroText{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes lightA{0%{transform:translate(-3%,2%) scale(.95)}100%{transform:translate(8%,5%) scale(1.13)}}@keyframes lightB{0%{transform:translate(3%,0) scale(1)}100%{transform:translate(-9%,7%) scale(1.16)}}@keyframes grain{0%,100%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-2%)}60%{transform:translate(3%,3%)}80%{transform:translate(-2%,-3%)}}@keyframes blink{50%{opacity:0}}
@media(max-width:800px){.wrap{width:88vw}.nav{padding:19px 6vw}.nav-logo{width:125px}.navlinks{display:none}.menu{display:block}.hero{min-height:650px}.hero-content{left:7vw;bottom:15vw}.hero h1{font-size:74px}.scrollhint{display:none}.section{padding:100px 0}.about-grid{grid-template-columns:1fr;gap:45px}.section-number{font-size:95px;margin-top:35px}.about h2,.services-intro h2{font-size:70px}.about-visual{margin-top:60px;display:block}.about-photo{width:88%;margin-left:auto}.photo-note{margin-top:20px;font-size:19px}.fragment-head{display:block}.fragment-head h2{font-size:61px}.fragment-head p{text-align:left;margin-top:22px}.fragment-stage{height:auto}.frag,.frag-1,.frag-2,.frag-3,.frag-4{position:relative;left:auto;right:auto;top:auto;width:100%;height:68vh;margin:0 0 14px}.big-link{font-size:40px}.services-section .section-inner{grid-template-columns:1fr;gap:60px}.service-list a{grid-template-columns:36px 1fr 22px;padding:25px 0}.service-list strong{font-size:34px}.testimonial{min-height:590px}.testimonial blockquote{font-size:52px}.contact{min-height:760px}.contact h2{font-size:95px}.form-grid{grid-template-columns:1fr}.contact-form .full{grid-column:auto}.footer{grid-template-columns:1fr;gap:13px;text-align:center}.footer>a,.footer .instagram{text-align:center}.author-seal{justify-content:center;margin-top:4px}.author-seal img{width:58px;height:58px}.mobile-menu{font-size:40px}.eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-media{opacity:.76!important;filter:none!important;transform:none!important}}
/* Portfolio y relatos */
.portfolio-hero{position:relative;overflow:hidden;padding:190px 0 90px;background:linear-gradient(120deg,#faf9f5,#f3f7f3)}.portfolio-hero:before{content:"";position:absolute;width:55vw;height:55vw;border-radius:50%;right:-20%;top:-30%;filter:blur(70px);background:var(--blue);opacity:.75}.portfolio-hero h1{position:relative;font:400 clamp(90px,12vw,175px)/.68 Cormorant Garamond,serif;letter-spacing:-.05em;margin:25px 0 30px}.portfolio-intro{position:relative;max-width:610px;font-size:15px;line-height:1.9;color:var(--muted)}.filters{position:relative;display:flex;gap:9px;flex-wrap:wrap;margin-top:42px}.filter{border:1px solid rgba(39,49,36,.2);background:transparent;color:var(--ink);padding:9px 14px;font-size:9px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:.3s}.filter:hover,.filter.active{background:var(--ink);color:#fff}.weddings{background:#fff;padding:0 0 150px}.wedding-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:95px 30px}.wedding-card{display:block}.wedding-image{aspect-ratio:4/5;overflow:hidden;background:#eee}.wedding-image img{height:100%;object-fit:cover;transition:transform 1.3s var(--ease);filter:saturate(.82)}.wedding-card:hover img{transform:scale(1.045)}.wedding-info{padding:20px 3px 0;display:flex;justify-content:space-between;gap:25px}.wedding-title{font:400 39px/1 Cormorant Garamond,serif}.wedding-meta{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);text-align:right;line-height:1.8}.wedding-card.hidden{display:none}.story-page{background:#fff}.story-page .back{padding:100px 5vw 0;}.story-top{padding:95px 5vw 75px;display:flex;justify-content:space-between;align-items:end}.story-top h1{font:400 clamp(85px,10vw,150px)/.68 Cormorant Garamond,serif;letter-spacing:-.045em;margin:22px 0 0}.story-top .meta{text-align:right;color:var(--muted);line-height:1.9}.story-gallery{padding:0 4vw 140px;display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.story-gallery figure{margin:0;overflow:hidden}.story-gallery img{height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.story-gallery figure:hover img{transform:scale(1.025)}.story-gallery figure:nth-child(odd){grid-column:1/8;height:74vh}.story-gallery figure:nth-child(even){grid-column:8/13;height:58vh;margin-top:10vh}.back{font-size:9px;letter-spacing:.15em;text-transform:uppercase}
@media(max-width:800px){.portfolio-hero{padding:140px 0 65px}.portfolio-hero h1{font-size:90px}.wedding-grid{grid-template-columns:1fr;gap:60px}.wedding-title{font-size:33px}.wedding-info{display:block}.wedding-meta{text-align:left;margin-top:8px}.story-page .back{padding:88px 6vw 0}.story-top{display:block;padding:70px 6vw 55px}.story-top h1{font-size:80px}.story-top .meta{text-align:left;margin-top:18px}.story-gallery{display:block;padding:0 5vw 90px}.story-gallery figure,.story-gallery figure:nth-child(n){height:67vh;margin:0 0 14px}}

/* V6 — Servicios desplegables */
.about-visual{display:none}
.service-list{border-top:1px solid var(--line)}
.service-item{border-bottom:1px solid var(--line)}
.service-item summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 1fr 28px;align-items:center;gap:15px;padding:30px 0;transition:padding .55s var(--ease),color .45s}
.service-item summary::-webkit-details-marker{display:none}
.service-item summary span{font-size:9px;letter-spacing:.15em;color:var(--muted)}
.service-item summary strong{font:400 clamp(27px,3vw,45px)/1 Cormorant Garamond,serif}
.service-item summary i{font-style:normal;font-size:25px;font-weight:300;transition:transform .5s var(--ease)}
.service-item summary:hover{padding-left:15px;color:#4a5439}
.service-item[open] summary{padding-bottom:17px;color:#4a5439}
.service-item[open] summary i{transform:rotate(45deg)}
.service-detail{max-width:650px;padding:0 45px 30px 59px;font-size:14px;line-height:1.85;color:#596054;animation:serviceIn .55s var(--ease)}
@keyframes serviceIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@media(max-width:800px){.service-item summary{grid-template-columns:36px 1fr 22px;padding:25px 0}.service-item summary strong{font-size:34px}.service-detail{padding:0 25px 27px 36px;font-size:14px}}


/* MOBILE SERVICE STABILITY FIX */
@media (max-width: 700px) {
  .services-list,
  .service-list,
  .services-accordion {
    overflow: visible;
  }

  .service-item,
  .service-row,
  .service-accordion-item {
    position: relative;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }

  .service-item:not(.active),
  .service-row:not(.active),
  .service-accordion-item:not(.active) {
    min-height: 0 !important;
  }

  .service-item .service-content,
  .service-row .service-content,
  .service-accordion-item .service-content {
    overflow: hidden;
  }
}


/* Safari/WebKit: keep the document compositor simple while scrolling. */
@media (max-width:800px){
  html{scroll-behavior:auto}
  body:before{display:none}
  .hero-grain,.hero-light{display:none}
  .hero-media{inset:0;animation:none!important;transform:none!important;filter:none!important;opacity:.78}
  body:not(.page-ready) .hero-media,
  body.page-ready .hero-media{opacity:.78;transform:none;filter:none;animation:none!important}
  .section:before{display:none}
  .ambient{display:none!important;transform:none!important;transition:none!important;filter:none!important}
  .reveal,.reveal.visible{opacity:1;transform:none;transition:none!important}
  .nav{backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .2s linear,padding .2s linear,box-shadow .2s linear,color .2s linear}
  .mobile-menu{backdrop-filter:none;-webkit-backdrop-filter:none}
  .service-item summary,
  .service-item[open] summary{transition:none!important}
  .service-item summary:hover{padding-left:0;color:inherit}
  .service-item[open] summary{color:#4a5439}
  .service-item summary i{transition:none!important}
  .service-detail{animation:none!important}
  .author-seal img{width:64px;height:64px}
  
}

/* Avoid compositing/layout surprises caused by nested transformed elements. */
@media (hover:none) and (pointer:coarse){
  .frag img,.wedding-image img,.story-gallery img{transition:none!important}
  .frag:hover img,.wedding-card:hover img,.story-gallery figure:hover img{transform:none!important}
}

@media (hover:none) and (pointer:coarse){
  a:hover{color:inherit}
  .navlinks a:after{display:none}
  .service-item summary:hover{padding-left:0}
  .frag:hover img,.wedding-card:hover img,.story-gallery figure:hover img,.about-photo:hover img{transform:none!important}
}

/* FINAL MOBILE PASS — touch-first layout and low-compositor scrolling */
@media (max-width:800px){
  html{width:100%;overflow-x:hidden;scroll-behavior:auto;-webkit-text-size-adjust:100%}
  body{width:100%;overflow-x:hidden;overscroll-behavior-x:none}
  .wrap{width:88vw;max-width:none}
  .hero{height:100svh;min-height:0;max-height:none}
  .hero-content{left:6vw;right:6vw;bottom:14vh;max-width:none}
  .hero h1{font-size:clamp(60px,18vw,92px);line-height:.77}
  .scrollhint{display:none}
  .nav{padding:18px 6vw;min-height:66px}
  .nav.scrolled{padding-top:13px;padding-bottom:13px}
  .nav-logo{width:124px}
  .menu{display:block;min-width:44px;min-height:44px;margin:-8px -8px -8px 0}
  .menu span{width:23px}
  .mobile-menu{padding:88px 8vw 40px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .section{padding:88px 0}
  .about-grid,.services-section .section-inner{grid-template-columns:1fr;gap:42px}
  .section-number{font-size:90px;margin-top:22px}
  .about h2,.services-intro h2{font-size:clamp(56px,16vw,82px);line-height:.8}
  .about p{font-size:15px;line-height:1.8}
  .fragment-head{display:block;margin-bottom:42px}
  .fragment-head h2{font-size:clamp(50px,15vw,72px)}
  .fragment-head p{text-align:left;margin-top:20px}
  .fragment-stage{height:auto;display:grid;grid-template-columns:1fr;gap:14px}
  .frag,.frag-1,.frag-2,.frag-3,.frag-4{position:relative;inset:auto;width:100%;height:auto;margin:0;aspect-ratio:4/5}
  .frag-4{aspect-ratio:3/2}
  .frag img{width:100%;height:100%;object-fit:cover}
  .portfolio-cta{margin-top:30px}
  .big-link{font-size:clamp(36px,10.5vw,54px);line-height:1}
  .services-section .section-inner{gap:48px}
  .service-item summary{grid-template-columns:34px minmax(0,1fr) 22px;padding:23px 0;gap:10px}
  .service-item summary strong{font-size:clamp(29px,9vw,38px);line-height:1}
  .service-detail{padding:0 18px 25px 34px;font-size:14px;line-height:1.8}
  .testimonial{min-height:560px}
  .testimonial blockquote{font-size:clamp(44px,13vw,60px);line-height:.94}
  .contact{min-height:720px}
  .contact h2{font-size:clamp(78px,22vw,110px)}
  .form-grid{grid-template-columns:1fr;gap:14px}
  .footer{grid-template-columns:1fr;gap:14px;padding:32px 6vw;text-align:center}
  .footer>a,.footer .instagram{text-align:center}
  .author-seal{justify-content:center;margin-top:4px}
  .author-seal img{width:58px;height:58px}
  .portfolio-hero{padding:125px 0 60px}
  .portfolio-hero h1{font-size:clamp(70px,20vw,96px);line-height:.72}
  .portfolio-intro{font-size:15px;line-height:1.8}
  .filters{gap:7px;margin-top:30px}
  .filter{padding:9px 12px;min-height:38px}
  .weddings{padding-bottom:90px}
  .wedding-grid{grid-template-columns:1fr;gap:52px}
  .wedding-title{font-size:34px}
  .wedding-info{display:block;padding-top:16px}
  .wedding-meta{text-align:left;margin-top:7px}
  .story-page .back{padding:94px 6vw 0}
  .story-page .back a{display:inline-block;padding:10px 0}
  .story-top{display:block;padding:48px 6vw 52px}
  .story-top h1{font-size:clamp(68px,19vw,94px);line-height:.72;margin-top:20px}
  .story-top .meta{text-align:left;margin-top:20px}
  .story-gallery{display:block;padding:0 5vw 80px}
  .story-gallery figure,.story-gallery figure:nth-child(n){height:auto;aspect-ratio:4/5;margin:0 0 14px}
  .story-gallery img{height:100%;object-fit:cover}
}
@media (max-width:420px){
  .hero-content{bottom:12vh}
  .hero h1{font-size:clamp(56px,17.5vw,78px)}
  .story-top h1{font-size:clamp(62px,18vw,82px)}
  .service-item summary strong{font-size:30px}
}
@media (hover:none) and (pointer:coarse){
  .navlinks a:after{display:none}
  .frag img,.wedding-image img,.story-gallery img,.about-photo img{transition:none!important}
  .frag:hover img,.wedding-card:hover img,.story-gallery figure:hover img,.about-photo:hover img{transform:none!important}
}


/* FINAL LINK HIT-AREA + PORTFOLIO CTA PASS */
.portfolio-cta-inner{display:flex;align-items:baseline;justify-content:space-between;gap:30px}
.portfolio-link{display:inline-block;width:max-content;font:400 clamp(22px,2.1vw,32px)/1 Jost,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);padding:8px 0;border-bottom:1px solid currentColor;transition:opacity .3s,transform .3s}
.portfolio-link:hover{opacity:.65;transform:translateY(-1px)}
.footer>a{width:max-content;justify-self:center}
.footer .instagram{justify-self:end}
@media(max-width:800px){
  .portfolio-cta-inner{display:block}
  .portfolio-cta-inner .label{margin-bottom:18px}
  .portfolio-link{font-size:18px;letter-spacing:.1em;padding:7px 0}
  .footer>a,.footer .instagram{justify-self:center;width:max-content}
}
@media (hover:none) and (pointer:coarse){.portfolio-link:hover{opacity:1;transform:none}}

/* MARINI FINAL MICRO-CORRECTIONS */
@media (min-width: 769px) {
  .fragment-stage .fragment:nth-child(4) img {
    transform: translateX(-2%);
  }
}
#contacto h2, .contact-section h2 {
  font-size: clamp(2.65rem, 5.4vw, 5rem);
}
#contacto p, .contact-section p {
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.65;
}
@media (max-width: 768px) {
  .mobile-menu .site-logo,
  .mobile-menu .logo,
  .mobile-menu .brand,
  .mobile-menu .menu-toggle,
  .mobile-menu .hamburger,
  .mobile-nav-toggle {
    color: #2E3620 !important;
  }
  .mobile-menu .menu-toggle span,
  .mobile-menu .hamburger span,
  .mobile-nav-toggle span {
    background-color: #2E3620 !important;
  }
  .mobile-menu .site-logo img,
  .mobile-menu .logo img,
  .mobile-menu .brand img {
    filter: none !important;
  }
}

/* MARINI STORY HEADER BACKGROUND FIX */
.story-page .nav {
  background: rgba(250, 249, 245, .94);
  color: var(--ink);
  box-shadow: 0 1px 0 rgba(39, 49, 36, .08);
  backdrop-filter: blur(18px);
}
.story-page .nav-logo {
  filter: none !important;
}
.story-page .nav.scrolled {
  background: rgba(250, 249, 245, .94);
  color: var(--ink);
}

/* PRÓXIMAMENTE wedding card (no photo yet) */
.wedding-image--soon{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--sand),var(--mint))}
.soon-label{font:400 13px/1 Jost,sans-serif;letter-spacing:.25em;text-transform:uppercase;color:var(--ink);opacity:.7}
.wedding-card--soon:hover .soon-label{opacity:1}

/* "Volver al portfolio" — floating pill button, stays visible while scrolling the gallery */
.story-page .back{position:fixed;top:100px;left:24px;z-index:70;padding:0}
.story-page .back a{display:inline-flex;align-items:center;gap:8px;background:rgba(250,249,245,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:999px;padding:12px 22px 12px 17px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);box-shadow:0 10px 30px rgba(39,49,36,.12);transition:transform .3s var(--ease),background .3s}
.story-page .back a:before{content:"←";font-size:13px;line-height:1}
.story-page .back a:hover{transform:translateX(-3px);background:#fff}
@media(max-width:800px){
  .story-page .back{top:80px;left:5vw}
  .story-page .back a{padding:10px 18px 10px 14px;font-size:10px}
}

/* Story page prev/next wedding navigation (replaces old back button) */
.story-nav{position:fixed;top:100px;z-index:70}
.story-nav-prev{left:24px}
.story-nav-next{right:24px}
.story-nav a{display:inline-flex;align-items:center;background:rgba(250,249,245,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:999px;height:44px;padding:0 17px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);box-shadow:0 10px 30px rgba(39,49,36,.12);transition:transform .3s var(--ease),background .3s}
.story-nav-prev a:before{content:"←";font-size:13px;line-height:1}
.story-nav-next a:after{content:"→";font-size:13px;line-height:1}
.story-nav a span{display:inline-block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .4s var(--ease),opacity .25s var(--ease) .05s,margin .4s var(--ease)}
.story-nav a:hover{transform:translateY(-1px);background:#fff}
.story-nav a:hover span{max-width:220px;opacity:1}
.story-nav-prev a:hover span{margin-left:8px}
.story-nav-next a:hover span{margin-right:8px}
@media(max-width:800px){
  .story-nav{top:80px}
  .story-nav-prev{left:5vw}
  .story-nav-next{right:5vw}
  .story-nav a{padding:10px 14px;font-size:10px;height:auto}
}

/* Contact form: card wrapper, service select, textarea fix, footer IG icon */
.contact-form{background:rgba(242,237,227,.55);border:0;border-radius:20px;padding:46px 46px 42px;box-shadow:0 25px 60px rgba(39,49,36,.06)}
.contact-form input,.contact-form textarea{background:rgba(255,255,255,.6)}
.contact-form input:focus,.contact-form textarea:focus{background:#fff}
.contact-form textarea{resize:none}
.contact-form select{display:block;width:100%;border:0;border-bottom:1px solid rgba(39,49,36,.2);background:rgba(255,255,255,.6);padding:13px 24px 12px 4px;margin-top:7px;font:300 15px Jost,sans-serif;color:var(--ink);outline:none;transition:border .35s,background .35s;-webkit-appearance:none;appearance:none;cursor:pointer;border-radius:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23788073' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:14px}
.contact-form select:focus{border-color:var(--ink);background-color:#fff}
.contact-form select:invalid{color:var(--muted)}
.contact-form select option[disabled]{color:rgba(39,49,36,.3)}
@media(max-width:800px){
  .contact-form{padding:30px 22px 28px;border-radius:16px}
}
.footer .instagram{display:inline-flex;align-items:center}
.footer .instagram svg{display:block}

/* SEO: sr-only utility + service-area internal links strip */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.service-area{padding:0 0 100px;text-align:center}
.service-area-text{max-width:640px;margin:0 auto;font-size:12px;line-height:2.1;color:var(--muted);letter-spacing:.02em}
.service-area-text a{color:var(--ink);border-bottom:1px solid rgba(39,49,36,.25);transition:border-color .3s}
.service-area-text a:hover{border-color:var(--ink)}
@media(max-width:800px){
  .service-area{padding:0 0 60px}
  .service-area-text{font-size:11px;line-height:2}
}

/* Mobile scroll performance: remove live backdrop-filter blur on fixed
   elements that overlay scrolling content (major jank source on mid-range
   Android + can read as "stutter" while scrolling). Kept on desktop. */
@media(max-width:800px){
  body{overscroll-behavior-y:none}
  .nav.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(250,249,245,.94)}
  .story-nav a{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(250,249,245,.94)}
  /* Mobile nav: always a light bar with dark logo/menu icon, regardless of
     hero/scrolled state, so they never render white-on-white over light
     sections (was unreadable on hero/ambient light backgrounds on mobile). */
  .nav{background:rgba(250,249,245,.94);color:var(--ink)!important;box-shadow:0 1px 0 rgba(39,49,36,.08)}
  .nav .nav-logo{filter:none!important}
  .menu span{background:var(--ink)!important}
}

/* Contact form: inline validation state + success modal (replaces Netlify's
   default post-submit redirect, which pointed at a non-existent page) */
.contact-form .field-invalid input,
.contact-form .field-invalid select,
.contact-form .field-invalid textarea{border-color:#c1685a;background:rgba(193,104,90,.1)}
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(30,38,30,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .35s var(--ease)}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal-box{position:relative;background:var(--paper);border-radius:18px;padding:50px 44px;max-width:420px;width:100%;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.22);transform:translateY(14px);transition:transform .4s var(--ease)}
.modal-overlay.open .modal-box{transform:translateY(0)}
.modal-box p{font-size:17px;line-height:1.7;color:var(--ink);margin:0;font-family:Jost,sans-serif;font-weight:300}
.modal-close{position:absolute;top:12px;right:14px;background:none;border:0;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:8px}
.modal-close:hover{color:var(--ink)}
@media(max-width:800px){
  .modal-box{padding:38px 26px}
}

/* Legal pages (aviso legal, política de privacidad) */
.legal-content{padding:0 0 130px}
.legal-content .wrap{max-width:760px}
.legal-content h2{font:400 30px/1.2 Cormorant Garamond,serif;margin:52px 0 16px}
.legal-content h2:first-child{margin-top:0}
.legal-content p{font-size:15px;line-height:1.9;color:#596054;margin:0 0 16px}
.legal-content ul{margin:0 0 16px;padding-left:20px;font-size:15px;line-height:1.9;color:#596054}
.legal-content li{margin-bottom:4px}
.legal-content a{color:var(--ink);border-bottom:1px solid rgba(39,49,36,.25);transition:border-color .3s}
.legal-content a:hover{border-color:var(--ink)}
.legal-updated{margin-top:44px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.footer span a{color:inherit;border-bottom:1px solid rgba(39,49,36,.25);transition:border-color .3s,color .3s}
.footer span a:hover{color:var(--ink);border-color:var(--ink)}
@media(max-width:800px){
  .legal-content{padding:0 0 80px}
  .legal-content h2{font-size:25px;margin:38px 0 12px}
}

/* Legal page hero titles: single line, slightly smaller than the default
   portfolio-hero size (which was sized for one short word). */
.legal-hero-title{white-space:nowrap;font-size:clamp(46px,7vw,120px)!important}
@media(max-width:800px){
  .legal-hero-title{white-space:normal;font-size:clamp(40px,11vw,70px)!important}
}

/* Portfolio CTA as centered button (2026-09-10) */
.portfolio-cta-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:26px}
.portfolio-cta-inner .label{margin:0}
.portfolio-btn{display:inline-flex;align-items:center;justify-content:center;padding:19px 50px;border:1px solid var(--ink);border-radius:999px;font:400 12px/1 Jost,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:transparent;transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease)}
.portfolio-btn:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}
@media (hover:none) and (pointer:coarse){.portfolio-btn:hover{transform:none}}
@media(max-width:480px){.portfolio-btn{padding:16px 36px;font-size:11px}}

/* Portfolio CTA: just the button, centered, more breathing room (2026-09-10) */
.portfolio-cta{display:flex;justify-content:center;margin-top:40px}
@media(max-width:800px){.portfolio-cta{margin-top:32px}}
