:root{--ink:#231f20;--soft:#4a4340;--paper:#f6f3ee;--sand:#ece5d8;--accent:#CE9E7A;--line:rgba(35,31,32,.16)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font:17px/1.7 Lato,sans-serif;-webkit-font-smoothing:antialiased}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}h1,h2,h3,blockquote{font-family:Merriweather,Georgia,serif;font-weight:300;line-height:1.3}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:34px;padding:15px 5vw;background:rgba(246,243,238,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand img{width:150px;height:auto}.site-header nav{display:flex;gap:25px;margin-left:auto;font-size:.87rem}.site-header nav a{padding:8px 0;border-bottom:1px solid transparent}.site-header nav a:hover{border-color:var(--ink)}.nav-cta,.button{display:inline-block;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:12px 20px;font-size:.86rem}.menu-button{display:none;background:none;border:0;padding:10px}.menu-button span{display:block;width:25px;height:1px;background:var(--ink);margin:5px}.page-hero{max-width:1280px;margin:auto;padding:clamp(90px,13vw,170px) 6vw clamp(65px,8vw,105px)}.eyebrow{color:var(--accent);font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:14px}.page-hero h1{font-size:clamp(2.25rem,5.4vw,5rem);max-width:16ch}.page-hero>p:last-child{color:var(--soft);font-size:clamp(1rem,1.5vw,1.2rem);max-width:55ch;margin-top:24px}.portfolio-grid{max-width:1440px;margin:auto;padding:0 4vw clamp(90px,12vw,160px);display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.image{overflow:hidden;background:var(--sand);min-height:280px}.portfolio-grid .image{grid-column:span 6;aspect-ratio:3/2}.portfolio-grid .portrait{grid-column:span 5;aspect-ratio:3/4}.portfolio-grid .tall{grid-column:span 4;aspect-ratio:2/3}.portfolio-grid .wide{grid-column:span 8;aspect-ratio:3/2}.dark-section{background:var(--ink);color:var(--paper);padding:clamp(80px,10vw,130px) 6vw}.section-heading{max-width:1280px;margin:0 auto 40px}.section-heading h2{font-size:clamp(1.8rem,3.5vw,3rem);max-width:16ch}.video-grid{max-width:1280px;margin:auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}.video-grid a{position:relative;min-height:420px;overflow:hidden}.video-grid img{position:absolute;inset:0}.video-grid a:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.72))}.video-grid span{position:absolute;z-index:1;left:20px;bottom:18px}.page-cta{text-align:center;padding:clamp(80px,11vw,140px) 6vw;border-top:1px solid var(--line)}.page-cta h2{font-size:clamp(1.8rem,3.6vw,3rem);max-width:22ch;margin:0 auto 17px}.page-cta>p:not(.eyebrow){color:var(--soft);max-width:54ch;margin:0 auto 28px}.story-layout{max-width:1280px;margin:auto;padding:0 6vw clamp(80px,11vw,140px);display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,8vw,110px);align-items:start}.story-layout .image{aspect-ratio:2/3;position:sticky;top:110px}.story-layout .role{color:var(--accent);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.story-layout p{color:var(--soft);margin-bottom:20px}.story-layout h2{font-size:clamp(1.5rem,2.7vw,2.15rem);margin:34px 0 18px}.story-layout blockquote{font-style:italic;font-size:clamp(1.2rem,2vw,1.6rem);border-top:1px solid var(--line);padding-top:25px;margin-top:34px}.values{max-width:1280px;margin:auto;padding:0 6vw clamp(90px,11vw,140px);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.values article{padding:34px clamp(18px,3vw,40px);border-right:1px solid var(--line)}.values article:last-child{border:0}.values span,.journey>article>span{color:var(--accent);font-size:.8rem;letter-spacing:.12em}.values h3{font-size:1.12rem;margin:26px 0 12px}.values p,.journey p,.what-includes p{color:var(--soft);font-size:.95rem}.journey{max-width:1050px;margin:auto;padding:0 6vw clamp(90px,11vw,140px)}.journey article{display:grid;grid-template-columns:80px 1fr;gap:30px;padding:34px 0;border-top:1px solid var(--line)}.journey article:last-child{border-bottom:1px solid var(--line)}.journey h2{font-size:clamp(1.35rem,2.3vw,1.8rem);margin-bottom:8px}.delivery{background:var(--sand);padding:clamp(70px,9vw,110px) 6vw}.delivery>div{max-width:1280px;margin:auto}.delivery h2{font-size:clamp(1.7rem,3vw,2.5rem);max-width:16ch}.delivery-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:45px;border-block:1px solid var(--line)}.delivery-grid article{padding:28px;border-right:1px solid var(--line)}.delivery-grid article:last-child{border:0}.delivery-grid strong{display:block;font-family:Merriweather,serif;font-size:clamp(1.3rem,2.4vw,2rem);font-weight:300}.delivery-grid span{color:var(--soft)}.service-list{max-width:1180px;margin:auto;padding:0 6vw clamp(90px,11vw,140px)}.service-list article{display:grid;grid-template-columns:90px 1fr 1fr;gap:30px;padding:38px 0;border-top:1px solid var(--line);align-items:start}.service-list article:last-child{border-bottom:1px solid var(--line)}.service-list h2{font-size:clamp(1.45rem,2.8vw,2.1rem)}.service-list article>p:last-child{color:var(--soft)}.destination-feature{max-width:1280px;margin:auto;padding:0 6vw clamp(90px,11vw,140px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,90px);align-items:center}.destination-feature .image{aspect-ratio:4/5}.destination-feature h2,.what-includes h2{font-size:clamp(1.8rem,3.4vw,2.8rem);margin-bottom:18px}.destination-feature p,.what-includes p{color:var(--soft);margin-bottom:22px}.text-link{border-bottom:1px solid var(--ink);padding-bottom:4px}.what-includes{background:var(--sand);padding:clamp(70px,9vw,110px) max(6vw,calc((100vw - 1100px)/2));text-align:center}.what-includes h2,.what-includes p{margin-inline:auto;max-width:25ch}.what-includes p{max-width:60ch}.faq-list{max-width:900px;margin:auto;padding:0 6vw clamp(90px,11vw,140px)}.faq-list details{border-top:1px solid var(--line);padding:22px 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;font-family:Merriweather,serif;font-size:clamp(1rem,1.5vw,1.16rem);list-style:none;padding-right:35px;position:relative}.faq-list summary:after{content:'+';position:absolute;right:4px;font-family:Lato}.faq-list details[open] summary:after{content:'−'}.faq-list details p{color:var(--soft);padding-top:16px;max-width:70ch}.floating-cta{position:fixed;right:18px;bottom:18px;z-index:10;background:var(--ink);color:var(--paper);padding:12px 17px;font-size:.82rem;box-shadow:0 8px 25px rgba(0,0,0,.15)}footer{display:grid;grid-template-columns:1fr auto;gap:40px;padding:60px 6vw 34px;border-top:1px solid var(--line)}footer img{width:160px;height:auto;margin-bottom:15px}footer p{color:var(--soft);max-width:40ch}footer>div:nth-child(2){display:grid;align-content:start;gap:8px}footer .copyright{grid-column:1/-1;font-size:.8rem;margin-top:25px}
@media(max-width:850px){.site-header{padding:12px 5vw}.brand img{width:135px}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:22px 6vw;border-bottom:1px solid var(--line);flex-direction:column;gap:4px}.site-header nav.open{display:flex}.nav-cta{display:none}.menu-button{display:block;margin-left:auto}.portfolio-grid{grid-template-columns:1fr 1fr}.portfolio-grid .image,.portfolio-grid .portrait,.portfolio-grid .tall,.portfolio-grid .wide{grid-column:span 1;aspect-ratio:3/4}.portfolio-grid .wide:first-child{grid-column:1/-1;aspect-ratio:3/2}.video-grid{grid-template-columns:1fr}.video-grid a{min-height:360px}.story-layout,.destination-feature{grid-template-columns:1fr}.story-layout .image{position:static;aspect-ratio:3/4}.values{grid-template-columns:1fr}.values article{border-right:0;border-bottom:1px solid var(--line);padding-inline:0}.service-list article{grid-template-columns:45px 1fr}.service-list article>p:last-child{grid-column:2}.delivery-grid{grid-template-columns:1fr}.delivery-grid article{border-right:0;border-bottom:1px solid var(--line)}.delivery-grid article:last-child{border-bottom:0}footer{grid-template-columns:1fr}.floating-cta{right:12px;bottom:12px}}
@media(max-width:520px){.page-hero{padding-top:72px}.portfolio-grid{gap:8px;padding-inline:12px}.journey article{grid-template-columns:42px 1fr;gap:15px}.video-grid a{min-height:300px}}

/* Películas reproducibles sin descargar Vimeo hasta que alguien elige verlas */
.about-field{max-width:1120px;margin:0 auto clamp(80px,10vw,130px);padding:0 6vw}
.about-field img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
@media(max-width:850px){.about-field{padding:0 5vw;margin-bottom:78px}}
.video-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:28px}
.film.featured{grid-column:1/-1;max-width:1000px;width:100%;margin:0 auto 20px}
.film-frame{position:relative;aspect-ratio:9/16;background:#171515;overflow:hidden}
.film.featured .film-frame{aspect-ratio:16/9}
.film-frame .video-facade,.film-frame iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}
.film-frame .video-facade{padding:0;background:#171515;color:#fff;cursor:pointer;font:inherit}
.film-frame .video-facade img{display:block;width:100%;height:100%;object-fit:cover}
.film-frame .video-facade:focus-visible{outline:3px solid #c49e7e;outline-offset:-3px}
.film>p{margin:12px 0 0;color:#f5f2ec;font-size:.95rem}
@media(max-width:850px){.video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.film.featured{margin-bottom:12px}}
@media(max-width:520px){.video-grid{gap:12px}}

/* Preserve pinch zoom while avoiding accidental double-tap zoom on media and controls */
.image,.film-frame,button,a,input,select,summary{touch-action:manipulation}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.portfolio-grid .image{grid-column:span 1;aspect-ratio:3/2;min-height:0}
.portfolio-grid .portrait,.portfolio-grid .tall{grid-column:span 1;aspect-ratio:3/4}
.portfolio-grid .wide{grid-column:1/-1;aspect-ratio:3/2;max-height:750px}
@media(max-width:850px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portfolio-grid .image{grid-column:1/-1;aspect-ratio:3/2}.portfolio-grid .portrait,.portfolio-grid .tall{grid-column:span 1;aspect-ratio:3/4}.portfolio-grid .wide{grid-column:1/-1;aspect-ratio:3/2}}

.portfolio-hero{padding-top:clamp(50px,7vw,92px);padding-bottom:clamp(38px,5vw,62px)}
.portfolio-hero h1{font-size:clamp(2.3rem,4.4vw,4.2rem);max-width:18ch}
@media(max-width:850px){.portfolio-hero{padding-top:clamp(42px,11vw,72px);padding-bottom:36px}.portfolio-hero h1{font-size:clamp(2.2rem,8vw,3.8rem)}}
/* Films: calm editorial catalog, with video loaded only after play. */
.film-frame .video-facade::before{content:'';position:absolute;z-index:1;top:50%;left:50%;width:clamp(58px,6vw,78px);aspect-ratio:1;border:1px solid rgba(246,243,238,.9);border-radius:50%;background:rgba(35,31,32,.78);box-shadow:0 2px 18px rgba(0,0,0,.22);transform:translate(-50%,-50%);transition:background .2s ease,transform .2s ease}
.film-frame .video-facade::after{content:'';position:absolute;z-index:2;top:50%;left:calc(50% + 3px);width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:16px solid var(--paper);transform:translate(-50%,-50%);pointer-events:none}
.film-frame .video-facade:hover::before,.film-frame .video-facade:focus-visible::before{background:rgba(35,31,32,.94);transform:translate(-50%,-50%) scale(1.08)}
.films-hero{padding-top:clamp(76px,8vw,112px);padding-bottom:clamp(42px,5vw,72px)}
.films-hero h1{max-width:20ch}
.films-collection{padding-top:clamp(50px,6vw,88px)}
.films-collection>.film.featured{max-width:1080px}
.films-subheading{margin-top:clamp(72px,9vw,120px)}
.films-list{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(26px,4vw,56px) clamp(16px,3vw,40px)}
.films-list .film-frame{aspect-ratio:16/9}
.films-list .video-facade img{object-fit:contain}
.films-list .film>p{font-family:Merriweather,Georgia,serif;font-size:clamp(1rem,1.4vw,1.2rem);font-weight:300;margin-top:15px}
.films-all-link{display:block;max-width:1280px;width:max-content;margin:38px auto 0;border-bottom:1px solid var(--paper);padding:8px 0;color:var(--paper)}
@media(max-width:650px){.films-list{grid-template-columns:1fr;gap:32px}.films-collection>.film.featured{margin-bottom:0}.films-subheading{margin-top:66px}}
/* Portfolio: quiet, mixed-format photo wall with the original frame preserved. */
.portfolio-grid{display:block;columns:3 270px;column-gap:14px;max-width:1500px;padding:0 4vw clamp(90px,12vw,150px)}
.portfolio-grid .image,.portfolio-grid .portrait,.portfolio-grid .tall,.portfolio-grid .wide{display:inline-block;break-inside:avoid;vertical-align:top;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;margin:0 0 14px;background:var(--sand)}
.portfolio-open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;text-align:left}
.portfolio-open img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.portfolio-open:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.portfolio-lightbox{position:fixed;inset:0;margin:auto;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:#181616;color:white;overflow:hidden}
.portfolio-lightbox::backdrop{background:rgba(0,0,0,.95)}
.portfolio-lightbox img{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:auto;height:auto;max-width:calc(100vw - 130px);max-height:calc(100dvh - 90px);object-fit:contain}
.portfolio-lightbox button{position:absolute;z-index:2;border:1px solid rgba(255,255,255,.4);background:rgba(24,22,22,.65);color:#fff;cursor:pointer;width:44px;height:44px;font:27px/1 Lato,sans-serif}
.portfolio-lightbox button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.portfolio-lightbox .lightbox-close{right:18px;top:18px}.portfolio-lightbox .lightbox-prev{left:18px;top:50%;transform:translateY(-50%)}.portfolio-lightbox .lightbox-next{right:18px;top:50%;transform:translateY(-50%)}
.lightbox-count{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-size:.75rem;letter-spacing:.08em}
@media(max-width:850px){.portfolio-grid{columns:2 150px;column-gap:8px;padding-inline:12px}.portfolio-grid .image,.portfolio-grid .portrait,.portfolio-grid .tall,.portfolio-grid .wide{margin-bottom:8px;height:auto;max-height:none;aspect-ratio:auto}.portfolio-lightbox img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 100px)}.portfolio-lightbox .lightbox-prev{left:8px;bottom:14px;top:auto;transform:none}.portfolio-lightbox .lightbox-next{right:8px;bottom:14px;top:auto;transform:none}}
/* Justified editorial rows keep the story in visual reading order. */
.portfolio-grid{display:block;columns:auto;max-width:1500px;padding:0 4vw clamp(90px,12vw,150px)}
.portfolio-row{display:flex;gap:14px;align-items:stretch;margin-bottom:14px;height:clamp(310px,29vw,430px)}
.portfolio-row .image,.portfolio-row .portrait,.portfolio-row .tall,.portfolio-row .wide{display:block;min-width:0;width:auto;height:100%;flex:1.5 1 0;margin:0;max-height:none;aspect-ratio:auto}
.portfolio-row .portrait,.portfolio-row .tall{flex:.75 1 0}
.portfolio-row .portfolio-open,.portfolio-row img{height:100%;width:100%}
.portfolio-row img{object-fit:cover}
.portfolio-row:last-child{height:min(39vw,500px)}
.portfolio-row:last-child .image{flex:0 1 70%}
@media(max-width:850px){.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-inline:12px}.portfolio-row{display:contents}.portfolio-row .image,.portfolio-row .portrait,.portfolio-row .tall,.portfolio-row .wide{width:100%;height:auto;min-height:0;aspect-ratio:3/4;flex:none;grid-column:span 1}.portfolio-row .wide{grid-column:1/-1;aspect-ratio:3/2}.portfolio-row .portfolio-open,.portfolio-row img{height:100%}.portfolio-row img{object-fit:cover}}
/* Las proporciones reales mantienen cada encuadre y el orden editorial. */
.portfolio-row,.portfolio-row:last-child{height:auto;aspect-ratio:var(--row-ratio);max-height:none}
.portfolio-row .image,.portfolio-row .portrait,.portfolio-row .tall,.portfolio-row .wide,.portfolio-row:last-child .image{flex:var(--ratio) 1 0}
@media(max-width:850px){.portfolio-row{aspect-ratio:auto}.portfolio-row .image,.portfolio-row .portrait,.portfolio-row .tall,.portfolio-row .wide{aspect-ratio:var(--ratio);height:auto;align-self:start}}

.privacy-copy{max-width:900px;margin:auto;padding:0 6vw 90px}.privacy-copy h2{margin:32px 0 12px;font-size:1.5rem}.privacy-copy p{margin-bottom:18px}.privacy-draft{padding:20px;background:var(--sand);border-left:3px solid var(--accent)}

/* Portfolio: chronological pairs with full photographs and generous image sizes. */
.portfolio-grid{display:block;columns:auto}
.portfolio-grid .portfolio-row{display:flex;gap:18px;align-items:flex-start;height:auto;aspect-ratio:auto;max-width:min(100%,calc(var(--row-ratio) * 640px));margin:0 auto 18px}
.portfolio-grid .portfolio-row .image{display:block;flex:var(--ratio) 1 0;width:auto;height:auto;min-width:0;max-height:none;aspect-ratio:auto;margin:0;background:transparent}
.portfolio-grid .portfolio-row .portfolio-open{display:block;width:100%;height:auto}
.portfolio-grid .portfolio-row img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
@media(max-width:700px){
 .portfolio-grid{display:block;columns:auto;padding-inline:12px}
 .portfolio-grid .portfolio-row{display:flex;flex-direction:column;gap:12px;max-width:none;margin-bottom:12px}
 .portfolio-grid .portfolio-row .image{width:100%;flex:none;height:auto;grid-column:auto}
}

.process-hero{padding-top:clamp(56px,7vw,100px);padding-bottom:56px}.process-hero h1{max-width:21ch;font-size:clamp(2.3rem,4.4vw,4rem)}
.eyebrow{color:#855B3D}
.dark-section .eyebrow{color:var(--accent)}
@media(max-width:720px){body.has-mobile-cta{padding-bottom:calc(88px + env(safe-area-inset-bottom))}}

.not-found-layout{max-width:1280px;margin:0 auto;padding:clamp(48px,8vw,100px) 6vw;display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.not-found-layout h1{font-size:clamp(2.2rem,4vw,4rem);line-height:1.2;margin:0 0 24px}
.not-found-layout .image{margin:0}.not-found-layout .image img{width:100%;height:auto}
.not-found-actions{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:32px;padding-top:24px;border-top:1px solid #ddd4cc;font-size:.9375rem}
.not-found-actions span{flex-basis:100%;color:#4A4340}
.not-found-actions a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px}
.gallery-recovery{margin:28px 0 0}
.gallery-recovery .button{display:block;width:100%;max-width:440px;min-height:56px;box-sizing:border-box;white-space:normal;text-align:center;font-weight:700}
.gallery-recovery p{margin:24px 0 8px;color:#4A4340}
.gallery-help{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 20px;border:1px solid #231F20;box-sizing:border-box;font-weight:700;text-align:center}
.gallery-help:hover{color:#CE9E7A;border-color:#CE9E7A}
.gallery-recovery small{display:block;margin-top:12px;font-size:.875rem;line-height:1.6;color:#4A4340}
.gallery-recovery a:focus-visible,.not-found-actions a:focus-visible{outline:2px solid #CE9E7A;outline-offset:5px}
@media(max-width:700px){.not-found-layout{grid-template-columns:1fr;padding-top:36px}.not-found-layout .image img{max-height:280px;object-fit:cover}.gallery-help{display:flex;width:100%}.gallery-recovery .button{max-width:none}}

.aviso-privacidad{max-width:900px;margin:auto;padding:clamp(72px,10vw,128px) 6vw 90px}.aviso-privacidad h1{font-size:clamp(2.25rem,5.4vw,5rem);margin-bottom:24px}.aviso-privacidad h2{margin:32px 0 12px;font-size:1.5rem}.aviso-privacidad p{margin-bottom:18px}.aviso-privacidad ul{padding-left:24px;margin-bottom:18px}.aviso-privacidad a{text-decoration:underline;text-underline-offset:3px}

/* A clear invitation to play, leaving the video frame visible. */
.video-facade .film-play-label{position:absolute;z-index:3;left:50%;top:calc(50% + 54px);transform:translateX(-50%);color:#fff;font:700 14px/1.3 Lato,sans-serif;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px 6px #000;background:rgba(35,31,32,.72);padding:7px 12px;border-radius:2px;pointer-events:none}

.films-list .film.portrait .film-frame{aspect-ratio:9/16}

/* Full-width films alternate with pairs of genuine portrait videos. */
.films-list{max-width:1080px}
.films-list .film.landscape{grid-column:1/-1}
@media(max-width:650px){
 .films-list .film.portrait{width:100%;max-width:420px;justify-self:center}
}
