@import url('https://fonts.googleapis.com/css2?family=Allura&family=DM+Sans:wght@400;450;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--cream:#f5f2ed;--rose:#eee1db;--ink:#59443f;--muted:#756b62;--green:#687d60;--line:#d9d1c7;--serif:'Libre Caslon Display',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.75}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:5px}button{cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}.wrap{width:min(1180px,calc(100% - 100px));margin-inline:auto}.header{height:120px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:12px;line-height:.85;font-family:var(--serif);font-size:48px}.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:9px;letter-spacing:3px;margin-top:12px}.flower{font-size:39px;color:var(--green);font-family:Georgia,serif}.header nav{display:flex;align-items:center;gap:32px;font-size:12px}.nav-contact{border-bottom:1px solid var(--green);padding:9px 0}.nav-contact span{margin-left:16px}.menu-toggle{display:none}.hero{position:relative;min-height:670px;isolation:isolate;overflow:hidden}.hero-art{position:absolute;inset:0 0 0 32%;z-index:-2}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;background:radial-gradient(ellipse at 75% 30%,#d6d5bd,transparent 60%),linear-gradient(120deg,#e9ded2,#a9b098);display:grid;place-items:center}.hero-slide:nth-child(2){background:linear-gradient(130deg,#e4d7c7,#b7b9a5)}.hero-slide:nth-child(3){background:linear-gradient(120deg,#dbd0bc,#c1a99c)}.hero-slide.active{opacity:1}.hero-art:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--cream),transparent 52%),linear-gradient(0deg,var(--cream),transparent 28%),linear-gradient(180deg,var(--cream),transparent 17%)}.hero-slide .photo-label{margin-left:25%;position:relative;z-index:1}.hero-content{padding-top:85px;padding-bottom:80px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2.6px;color:var(--green);margin:0 0 23px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.07}h1{font-size:clamp(44px,4.6vw,68px);letter-spacing:-1.8px;margin-bottom:25px}em{font-weight:400;color:var(--green)}.intro{max-width:395px;font-size:14px;line-height:1.85;margin-bottom:29px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:14px 24px;background:var(--green);color:#fff;border:1px solid var(--green);border-radius:4px;font-size:12px;font-weight:500;box-shadow:0 5px 13px #3b482312;transition:background .2s}.button:hover{background:#52674b}.slider-controls{display:flex;align-items:center;gap:10px;margin-top:62px}.slider-controls button{width:32px;height:32px;border:0;background:none;color:var(--ink);font-size:11px;padding:0}.slider-controls .slide-choice{border:1px solid #c8bbb1;border-radius:50%}.slider-controls .selected{background:var(--ink);border-color:var(--ink);color:#fff}.control-divider{height:15px;width:1px;background:var(--line);margin-left:10px}.hero-note{position:absolute;right:6%;bottom:32px;font-family:var(--serif);font-size:18px;font-style:italic}.section{padding-block:100px}h2{font-size:clamp(36px,3.5vw,50px);letter-spacing:-.8px;margin-bottom:25px}.section-heading{text-align:center;margin-bottom:54px}.section-heading>p:last-child{color:var(--muted);font-size:14px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.photo{position:relative;display:grid;place-items:center;overflow:hidden;background:#e5dfd3;min-width:0}.photo:before{content:'';position:absolute;inset:12px;border:1px solid #ffffff52;pointer-events:none}.photo-label{font-family:var(--serif);font-style:italic;font-size:30px;color:#68594d;letter-spacing:1px}.service-photo{aspect-ratio:4/4.6}.services article:nth-child(2) .photo{background:#dce0d4}.services article:nth-child(3) .photo{background:#e6d6cd}.service-title{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.service-title h3{font-size:30px;margin:0}.service-title>span{font-size:10px;color:var(--green)}.services p{font-size:13px;color:var(--muted);margin-block:15px}.text-link{font-size:11px;border-bottom:1px solid #adad98;padding-bottom:6px;display:inline-block}.text-link span{margin-left:16px}.text-link:hover{color:var(--green)}.gallery-section{padding:60px 0 80px}.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;width:min(1400px,calc(100% - 48px));margin:auto}.gallery .photo{grid-column:span 3;aspect-ratio:1.6}.gallery .photo:nth-child(n+3):nth-child(-n+5){grid-column:span 2;aspect-ratio:.85}.gallery .photo:nth-child(2n){background:#d9ddcf}.gallery .photo:nth-child(3n){background:#e8d9d0}.gallery .photo:last-child{grid-column:span 6;aspect-ratio:3.3;background:#d6d9cc}.gallery-caption{text-align:center;font-size:12px;font-style:italic;margin:25px 0 0;color:var(--muted)}.process{background:var(--rose)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:48px}.steps article{border-top:1px solid #cabcb1;padding-top:25px}.steps span{font-family:var(--serif);font-size:26px;color:var(--green)}.steps h3{font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;margin:18px 0 12px}.steps p{font-size:13px;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.about-copy p:not(.eyebrow),.location-copy>p:not(.eyebrow){font-size:14px;color:var(--muted)}.about-photo{aspect-ratio:.88;background:#ded8ca}.signature{display:block;font:italic 29px var(--serif);color:var(--green);margin:30px 0}.locations{border-top:1px solid var(--line)}.location-photo{aspect-ratio:1;background:#d6dccd}.places{padding:0;list-style:none;margin:28px 0}.places li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}.places span{font-family:var(--serif);font-size:23px}.places small{align-self:center;font-size:11px;color:var(--muted)}.faq{border-top:1px solid var(--line);display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}.questions details{border-bottom:1px solid var(--line);padding:17px 0}.questions summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font-size:13px}.questions summary:after{content:'+';color:var(--green);font-size:20px;line-height:1}.questions details[open] summary:after{content:'−'}.questions details p{font-size:13px;color:var(--muted);padding-top:16px;margin-bottom:0}.contact{background:var(--rose)}.contact .split{gap:70px;align-items:stretch}.contact h2{font-size:44px}.contact p{font-size:13px}.contact-photo{background:#d3d5c5;min-height:600px}form{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}form label{font-size:11px}input,select,textarea{width:100%;background:#f8f4ee;border:1px solid transparent;border-radius:0;padding:12px;color:var(--ink);font-size:13px;margin-top:5px}input:focus,textarea:focus,select:focus{border-color:var(--green)}form label:nth-child(n+3){grid-column:1/-1}textarea{resize:vertical}form .button{justify-self:start;grid-column:1/-1}form .form-note,form #form-status{grid-column:1/-1;font-size:11px;margin:0;color:var(--muted)}#form-status:empty{display:none}.footer{padding-top:65px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:25px}.footer>p{font-family:var(--serif);font-size:24px;margin:0}.footer small{font-family:'DM Sans',sans-serif;font-size:10px;color:var(--muted)}.footer>a:last-of-type{font-size:11px}.footer-bottom{width:100%;border-top:1px solid var(--line);padding-block:25px;margin-top:25px;font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.skip{position:fixed;top:-100px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}
@media(min-width:1600px){.hero-art{right:5%}}@media(max-width:900px){.wrap{width:calc(100% - 56px)}.header nav{gap:18px}.split{gap:40px}.hero-art{left:23%}.services{gap:20px}.service-title h3{font-size:26px}.steps{gap:20px}.faq{gap:35px}.contact .split{gap:35px}.hero-note{display:none}}
@media(max-width:650px){.wrap{width:calc(100% - 40px)}.header{height:96px}.brand{font-size:40px}.brand small{font-size:8px}.menu-toggle{display:flex;gap:14px;border:0;background:none;font-size:12px;color:var(--ink);padding:10px}.header nav{display:none;position:absolute;left:-20px;right:-20px;top:96px;background:var(--cream);padding:25px;box-shadow:0 8px 12px #59443f10}.header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:20px}.hero{min-height:750px}.hero-art{inset:310px 0 0 0}.hero-art:after{background:linear-gradient(180deg,var(--cream),transparent 40%),linear-gradient(0deg,var(--cream),transparent 25%)}.hero-content{padding-top:25px;padding-bottom:330px}.hero h1{font-size:45px;letter-spacing:-1px}.hero .eyebrow{font-size:9px;margin-bottom:20px}.intro{font-size:13px;max-width:340px}.hero-slide .photo-label{margin:45px 0 0}.slider-controls{position:absolute;bottom:23px;margin:0;left:20px}.section{padding-block:65px}h2{font-size:39px}.section-heading{margin-bottom:35px}.services{grid-template-columns:1fr;gap:40px}.service-photo{aspect-ratio:1.12}.service-title h3{font-size:32px}.gallery-section{padding-top:25px;padding-bottom:55px}.gallery{width:calc(100% - 24px);gap:10px;grid-template-columns:1fr 1fr}.gallery .photo,.gallery .photo:nth-child(n+3):nth-child(-n+5){grid-column:span 1;aspect-ratio:.8}.gallery .photo:first-child,.gallery .photo:last-child{grid-column:span 2;aspect-ratio:1.5}.steps{grid-template-columns:1fr 1fr;gap:22px}.split{grid-template-columns:1fr;gap:35px}.about-photo{aspect-ratio:1}.locations .location-photo{order:2}.faq{grid-template-columns:1fr;gap:12px}.contact .split{grid-template-columns:1fr}.contact-photo{min-height:0;aspect-ratio:1.2}.contact h2{font-size:39px}.footer{padding-top:45px;align-items:flex-start}.footer>p{width:100%;order:2}.footer>a:last-of-type{margin-top:10px}.footer-bottom{order:3;gap:12px;flex-direction:column}form{gap:12px}.form-note{max-width:300px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-slide{transition:none}*{animation:none!important}}

/* Brand direction from the supplied logo. Screenshot is framed in CSS, not redrawn. */
:root{--cream:#fff5f5;--rose:#f4e5e6;--ink:#392c2d;--muted:#756467;--green:#805d66;--line:#e2cfd2}
.logo-window{display:block;position:relative;overflow:hidden;width:155px;aspect-ratio:360/260;flex:none;background:#fff5f5}
.logo-window img{position:absolute;width:262.5%;height:auto;max-width:none;left:-83.333%;top:-300%;mix-blend-mode:multiply}
.brand{line-height:1}.header{height:132px}.button:hover{background:#674650}
h1 em,h2 em,.signature{font-family:'Allura',cursive;font-style:normal;font-weight:400}
h1 em{font-size:1.25em;line-height:.85}h2 em{font-size:1.25em;line-height:.9}.signature{font-size:38px}
.hero-slide{background:radial-gradient(ellipse at 75% 30%,#f0d9d8,transparent 60%),linear-gradient(120deg,#f5e7df,#d5bcbc)}
.hero-slide:nth-child(2){background:linear-gradient(130deg,#f1e4db,#d4c8bf)}.hero-slide:nth-child(3){background:linear-gradient(120deg,#eddcda,#cbb1b8)}
.photo{background:#eee1db}.services article:nth-child(2) .photo,.gallery .photo:nth-child(2n){background:#e5ded5}.services article:nth-child(3) .photo,.gallery .photo:nth-child(3n){background:#ecd6d8}.gallery .photo:last-child,.location-photo{background:#e4dcd3}.about-photo{background:#eadbd6}.contact-photo{background:#e2d4cf}
input,select,textarea{background:#fff8f7}.hero-note{color:#765a62}
@media(max-width:650px){.header{height:112px}.header nav{top:112px}.logo-window{width:130px}.hero h1{font-size:43px}.hero-art{top:330px}}

.logo-window{aspect-ratio:4/3;background:transparent}.logo-window img{width:236.25%;left:-70%;top:-253.333%;mix-blend-mode:normal}.logo-window{mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);}


/* Exact dominant background sampled from the supplied logo: RGB 252,242,242. */
:root{--cream:#fcf2f2}

/* Encuadres de cabecera: ajuste solicitado sobre las fotos originales. */
@media(min-width:651px){
.hero-slide[data-photo="2"] img{transform:translate(3%,-4%)}
.hero-slide[data-photo="3"] img{transform:translate(5%,0%) scale(.585);transform-origin:right center}
}
@media(max-width:650px){
.hero-slide[data-photo="2"] img,.hero-slide[data-photo="3"] img{transform:translateY(-4%)}
}
/* Keep intrinsic portrait dimensions inside the slideshow frame. */
.hero-slide{overflow:hidden}
.hero-slide img{position:absolute;inset:0;width:100%;height:100%;min-height:0}
@media(max-width:650px){
.hero{min-height:0}
.hero-content{padding-bottom:500px}
.hero-art{top:auto;bottom:50px;height:440px}
.hero-art:after{background:linear-gradient(180deg,var(--cream),transparent 12%),linear-gradient(0deg,var(--cream),transparent 15%)}
.hero-slide[data-photo="2"] img,.hero-slide[data-photo="3"] img{transform:none}
.hero-slide[data-photo="2"] img{object-position:50% 82%!important}
.hero-slide[data-photo="3"] img{object-position:50% 40%!important}
}
/* Feather the actual image edges, including translated/scaled portraits. */
.hero-slide,.hero-slide:nth-child(2),.hero-slide:nth-child(3){background:var(--cream)}
.hero-slide img{
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 18%,#000 88%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 16%,#000 78%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,#000 18%,#000 88%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 16%,#000 78%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect;
}
.hero-art:after{background:linear-gradient(90deg,var(--cream),transparent 52%)}
@media(max-width:650px){
.hero-slide img{
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 82%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 82%,transparent 100%);
}
.hero-art:after{background:none}
}
.hero-art{ -webkit-mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent)}
@media(min-width:651px){.hero-art{
-webkit-mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent),linear-gradient(to right,#000 92%,transparent 100%);
mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent),linear-gradient(to right,#000 92%,transparent 100%);
-webkit-mask-composite:source-in;mask-composite:intersect;
}}
/* Keep the closing line and mobile action outside the photographs. */
@media(min-width:651px){
.hero{padding-bottom:60px}
.hero-art{bottom:60px}
.hero-note{bottom:8px;margin:0;color:var(--ink)}
}
@media(max-width:650px){
.hero-content{padding-bottom:590px}
.hero-art{bottom:140px}
.hero .slider-controls{bottom:90px}
.hero-content>.button{position:absolute;left:20px;bottom:15px}
}
/* A shared fixed window; zoom affects the photograph, never its feathered frame. */
@media(min-width:651px){
.hero-slide img{-webkit-mask-image:none;mask-image:none}
.hero-slide[data-photo="2"] img{transform:none;object-position:50% 62%!important}
.hero-slide[data-photo="3"]::before{content:'';position:absolute;inset:-24px;background:url('assets/foto-3.jpg') center 40%/cover no-repeat;filter:blur(22px);opacity:.65}
.hero-slide[data-photo="3"] img{transform:none;object-fit:contain;object-position:70% 50%!important}
.hero-art{
-webkit-mask-image:linear-gradient(to right,transparent,#000 24%,#000 90%,transparent),linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent);
mask-image:linear-gradient(to right,transparent,#000 24%,#000 90%,transparent),linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent);
-webkit-mask-composite:source-in;mask-composite:intersect;
}
}

/* Photo 03 replacement: full shared frame, without the previous blurred fill. */
.hero-slide[data-photo="3"]::before{content:none}
.hero-slide[data-photo="3"] img{transform:none;object-fit:cover;object-position:50% 52%!important}
@media(max-width:650px){.hero-slide[data-photo="3"] img{object-position:50% 65%!important}}

/* Service images stay within their existing responsive frames. */
.service-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Consistent photographic frames across desktop and mobile.
   Responsive layout changes columns, not the orientation of each photograph. */
.service-photo{aspect-ratio:4/4.6}
.about-photo{aspect-ratio:.88}
.contact-photo{min-height:0;aspect-ratio:.88;align-self:center}
.photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:650px){
.service-photo{aspect-ratio:4/4.6}
.about-photo{aspect-ratio:.88}
.location-photo{aspect-ratio:1}
.contact-photo{aspect-ratio:.88}
.gallery .photo{grid-column:span 2;aspect-ratio:1.6}
.gallery .photo:nth-child(n+3):nth-child(-n+5){grid-column:span 1;aspect-ratio:.85}
.gallery .photo:nth-child(5){grid-column:span 2;width:calc((100% - 10px)/2);justify-self:center}
.gallery .photo:first-child{aspect-ratio:1.6}
.gallery .photo:last-child{grid-column:span 2;aspect-ratio:3.3}
}

/* Portfolio: standard final slots, full-width photographs on mobile. */
.gallery .photo[data-photo="11"]{aspect-ratio:9/16}
.gallery .photo[data-photo="12"]{aspect-ratio:16/9}
@media(max-width:650px){
.gallery{grid-template-columns:1fr}
.gallery .photo,
.gallery .photo:nth-child(n+3):nth-child(-n+5),
.gallery .photo:nth-child(5),
.gallery .photo:first-child,
.gallery .photo:last-child{grid-column:1/-1;width:100%;justify-self:stretch}
.gallery .photo[data-photo="11"]{aspect-ratio:9/16}
.gallery .photo[data-photo="12"]{aspect-ratio:16/9}
}

.legal-links{display:flex;flex-wrap:wrap;gap:12px 24px;width:100%;font-size:12px;padding-top:18px}.legal-links a,.site-credit a{text-decoration:underline;text-underline-offset:3px}.footer .site-credit{font:12px/1.6 "DM Sans",sans-serif;width:100%;margin:0 0 24px}.policy{max-width:820px;padding-block:45px 70px;overflow-wrap:anywhere}.policy h1{font:48px/1.15 var(--serif);margin-bottom:24px}.policy h2{font-size:29px;margin:36px 0 14px}.policy p,.policy li{font-size:15px}.policy a{text-decoration:underline}.policy-header{padding-block:24px;border-bottom:1px solid var(--line)}

/* Compact footer: one desktop row, readable wrapping on smaller screens. */
.footer.footer-compact{padding-block:22px;display:flex;align-items:center;justify-content:space-between;gap:12px 20px;border-top:1px solid var(--line);flex-wrap:nowrap}
.footer-compact .footer-name{font:18px/1.3 var(--serif);white-space:nowrap}
.footer-compact .footer-copyright{font-size:10px;white-space:nowrap}
.footer-compact .legal-links{display:flex;width:auto;padding:0;gap:16px;font-size:10px;flex-wrap:nowrap}
.footer-compact .legal-links a{white-space:nowrap;text-decoration:none}
.footer.footer-compact .site-credit{font:10px/1.5 "DM Sans",sans-serif;width:auto;margin:0;white-space:nowrap;order:initial}
.footer-compact a:hover{text-decoration:underline;text-underline-offset:3px}
.footer.footer-compact>a:last-of-type{margin:0;font-size:18px}
@media(max-width:1000px){.footer.footer-compact{flex-wrap:wrap;justify-content:center}.footer-compact .legal-links{flex-wrap:wrap;justify-content:center;gap:10px 16px}}
