:root{
  --pink:#d82c67; --pink-dark:#b91f55; --rose:#f6bfd1; --blush:#fff0f5;
  --cream:#fffaf7; --paper:#fff; --ink:#241f21; --muted:#6f6568;
  --line:#eedee4; --shadow:0 18px 54px rgba(80,34,49,.11); --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--cream);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.58;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%}
.hero-grid>*{min-width:0}
a{color:inherit;text-decoration:none}
button{font:inherit}
section[id]{scroll-margin-top:132px}
a:focus-visible,button:focus-visible{outline:3px solid rgba(216,44,103,.38);outline-offset:4px;border-radius:8px}
.wrap{width:min(calc(100% - 42px),var(--max));margin-inline:auto}
.skip{position:absolute;left:-9999px;top:12px;background:#fff;padding:10px 14px;z-index:9999;border-radius:10px}
.skip:focus{left:12px}
.utility{background:linear-gradient(90deg,#c92359,#e23a72);color:#fff;font-size:.88rem}
.utility .wrap{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.utility-right{display:flex;gap:18px;align-items:center}
.lang{display:flex;align-items:center}
.lang button{border:0;background:transparent;cursor:pointer;min-width:36px;min-height:36px;padding:5px 8px;border-radius:999px;font-weight:800;transition:.2s}
.lang button.active{opacity:1}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,250,247,.96);backdrop-filter:blur(16px);border-bottom:1px solid rgba(216,44,103,.09)}
.nav-row{height:108px;display:flex;align-items:center;gap:34px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{width:330px;max-height:92px;object-fit:contain}
.primary-nav{margin-left:auto}
.primary-nav ul{list-style:none;display:flex;align-items:center;gap:29px;padding:0;margin:0}
.primary-nav a{font-weight:720;font-size:.96rem;position:relative}
.primary-nav a::after{content:"";height:2px;background:var(--pink);position:absolute;left:0;right:100%;bottom:-9px;transition:right .2s ease}
.primary-nav a:hover::after,.primary-nav a:focus-visible::after{right:0}
.header-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--pink);color:#fff;padding:11px 17px;border-radius:999px;font-weight:850;white-space:nowrap}
.header-lang{flex:0 0 auto;gap:2px;padding:4px;border:1px solid #efc9d6;border-radius:999px;background:#fff6f9;color:#6b4d58}
.header-lang button{color:#7a5964}
.header-lang button.active{background:var(--pink);color:#fff;box-shadow:0 3px 10px rgba(216,44,103,.18)}
.header-lang span{font-weight:800;color:#bd8a9c;padding-inline:1px}

.menu-btn{display:none;margin-left:auto;background:#fff6f9;border:1px solid #efc9d6;font-size:1.5rem;color:var(--pink);cursor:pointer;width:48px;height:48px;border-radius:14px;transition:.2s;align-items:center;justify-content:center}
.mobile-menu-note,.mobile-menu-cta{display:none}
.hero{overflow:hidden;background:radial-gradient(circle at 14% 15%,rgba(216,44,103,.09),transparent 33%),linear-gradient(180deg,#fffdfb,#fff8f7)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);min-height:560px;align-items:center;gap:34px}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:64px 12px 60px 0;min-width:0}
.kicker{font-size:.77rem;text-transform:uppercase;letter-spacing:.15em;font-weight:850;color:var(--pink)}
.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.55rem,5.9vw,5.8rem);letter-spacing:-.055em;line-height:.95;margin:12px 0 22px;max-width:620px}
.hero h1 .accent{color:var(--pink)}
.hero p{font-size:1.075rem;line-height:1.62;color:#554d50;max-width:560px;margin:0}
.spanish-line{font-family:Georgia,"Times New Roman",serif;font-style:italic;color:var(--pink);font-size:1.1rem;margin-top:17px}
.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:30px}
.btn{min-height:50px;padding:0 21px;border:1.5px solid var(--pink);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:850;transition:transform .2s ease,box-shadow .2s ease}
.btn.primary{background:var(--pink);color:#fff}
@media(hover:hover){.btn:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(216,44,103,.13)}}
.hero-photo{position:relative;min-height:440px;max-height:470px;min-width:0;overflow:hidden;border:2px solid #efa0bb;border-radius:38px;margin-left:0;box-shadow:0 16px 38px rgba(80,34,49,.08);align-self:center}
.hero-photo::before{display:none}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center;min-width:0}
.trust{background:#fff0f5;border-block:1px solid #f3d7e1}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-item{padding:22px 20px;display:flex;align-items:center;gap:13px;border-right:1px solid #edd7df}
.trust-item:last-child{border-right:0}
.icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--pink);border:1px solid #f0ced9;font-weight:900;flex:0 0 auto}
.trust-item strong{display:block;font-size:.94rem;line-height:1.22}
.trust-item span{font-size:.86rem;color:#665d60}
section.content{padding:82px 0}
.section-head{text-align:center;max-width:700px;margin:0 auto 40px}
.section-head h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.3rem,4vw,3.45rem);line-height:1.04;letter-spacing:-.035em;margin:8px 0 12px}
.section-head p{margin:0;color:var(--muted);line-height:1.65}
.ornament{width:104px;height:2px;background:linear-gradient(90deg,transparent,var(--pink),transparent);margin:18px auto 0;position:relative}
.ornament::after{content:"♥";position:absolute;left:50%;top:50%;transform:translate(-50%,-55%);background:var(--cream);color:var(--pink);padding:0 7px;font-size:.78rem}
.services{background:#fff}
.services .ornament::after{background:#fff}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 7px 22px rgba(58,29,39,.05);transition:transform .22s ease,box-shadow .22s ease}
@media(hover:hover){.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}}
.card figure{margin:0;height:260px;overflow:hidden}
.card figure img{width:100%;height:100%;object-fit:cover}
.card:nth-child(3) figure img{object-position:center 36%}
.card-body{padding:0 19px 24px;text-align:center}
.service-icon{width:50px;height:50px;margin:-25px auto 12px;position:relative;border:4px solid #fff;background:var(--pink);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:1.05rem;font-weight:900}
.card h3{font-family:Georgia,"Times New Roman",serif;font-size:1.32rem;margin:0 0 7px}
.card p{margin:0;color:var(--muted);font-size:.91rem;line-height:1.55}
.chips{margin-top:28px;display:flex;flex-wrap:wrap;gap:9px;justify-content:center}
.chip{padding:8px 12px;border-radius:999px;background:#fff6f9;color:#7d3b52;border:1px solid #f0cad6;font-size:.86rem;font-weight:750}
.gallery{background:var(--cream)}
.mosaic{display:grid;grid-template-columns:1.08fr 1fr .9fr .9fr;grid-template-rows:255px 255px;gap:12px}
.mosaic figure{margin:0;border-radius:18px;overflow:hidden;background:#eee}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .28s ease}
@media(hover:hover){.mosaic figure:hover img{transform:scale(1.025)}}
.mosaic .tall{grid-row:1/3}
.mosaic .wide{grid-column:3/5}
.about{background:linear-gradient(90deg,#fff0f5,#fff9f6)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.about-photo{overflow:hidden;border-radius:28px;box-shadow:var(--shadow)}
.about-photo img{width:100%;height:520px;object-fit:cover;object-position:center 45%}
.about-copy h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.55rem,4vw,4rem);line-height:1.02;letter-spacing:-.045em;margin:8px 0 18px}
.about-copy p{color:#574f51;font-size:1.02rem;line-height:1.68;margin:0 0 14px}
.quote{font-family:Georgia,"Times New Roman",serif;font-style:italic;color:var(--pink)!important;font-size:1.08rem!important}
.signature{font-family:"Segoe Script","Brush Script MT",cursive;font-size:1.35rem;margin-top:8px}
.why{background:#fff}
.why .ornament::after{background:#fff}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.why-item{padding:28px 34px;border-right:1px solid var(--line)}
.why-item:last-child{border-right:0}
.why-item h3{font-family:Georgia,"Times New Roman",serif;font-size:1.34rem;margin:12px 0 6px}
.why-item p{color:var(--muted);line-height:1.6;margin:0}
.contact{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff2f6 0%,#fffaf7 60%,#f7e9ef 100%)}
.contact::after{content:"";position:absolute;width:470px;height:470px;border-radius:50%;right:-120px;top:-180px;border:72px solid rgba(216,44,103,.045)}
.contact-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:center}
.contact h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.55rem,4vw,4rem);letter-spacing:-.045em;margin:8px 0 10px}
.contact p{margin:0;color:#5d5457}
.contact .location-line{margin-top:6px;display:flex;align-items:center;gap:8px;line-height:1.5}
.phone{font-size:clamp(2rem,4vw,3.35rem);font-weight:920;color:var(--pink);margin:12px 0 10px;letter-spacing:-.03em;line-height:1.05}
.contact-actions{display:grid;gap:13px}
.contact-actions .btn{min-height:57px;font-size:1.02rem}
footer{background:#cf275f;color:#fff;padding:34px 0}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr .8fr;gap:32px;align-items:center}
.footer-logo img{width:270px;max-height:100px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.12))}
footer h4{font-size:.77rem;letter-spacing:.14em;text-transform:uppercase;margin:0 0 7px}
footer small{color:rgba(255,255,255,.88)}
.footer-links{display:flex;gap:17px;flex-wrap:wrap;font-size:.88rem;color:rgba(255,255,255,.9)}
@media(max-width:1040px){
  .brand img{width:285px}
  .nav-row{gap:22px}
  .primary-nav ul{gap:22px}
  .header-cta{display:none}
  .header-lang{margin-left:auto}
  .menu-btn{margin-left:4px}
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:26px}
  .hero-copy{padding-right:18px}
  .hero h1{font-size:clamp(3.1rem,4.9vw,4.5rem)}
  .hero-photo{min-height:390px;max-height:420px;margin-left:0;border-radius:32px}
  .cards{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .nav-row{height:94px}
  .brand img{width:280px;max-height:82px}
  .primary-nav{display:none}
  .menu-btn{display:flex}
  .menu-btn[aria-expanded="true"]{background:var(--pink);border-color:var(--pink);color:#fff;box-shadow:0 8px 22px rgba(216,44,103,.2)}
  .primary-nav.open{display:block;position:absolute;left:18px;right:18px;top:102px;background:linear-gradient(180deg,#fff,#fff8fb);padding:18px;border:1px solid #f0d5df;border-radius:22px;box-shadow:0 22px 48px rgba(65,31,43,.16)}
  .primary-nav.open::before{content:"";position:absolute;right:28px;top:-8px;width:15px;height:15px;background:#fff;border-left:1px solid #f0d5df;border-top:1px solid #f0d5df;transform:rotate(45deg)}
  .primary-nav.open ul{display:grid;gap:8px}
  .primary-nav.open li{list-style:none}
  .primary-nav.open li:not(.mobile-menu-cta):not(.mobile-menu-note){border:1px solid transparent;border-radius:13px;transition:.2s}
  .primary-nav.open li:not(.mobile-menu-cta):not(.mobile-menu-note):hover{background:#fff1f6;border-color:#f4d5df}
  .primary-nav.open a{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:13px;font-weight:760}
  .primary-nav.open a::after{content:"→";position:static;height:auto;background:none;color:var(--pink);font-weight:900;opacity:.8}
  .primary-nav.open .mobile-menu-note{display:block;padding:2px 14px 10px;color:#8b6672;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:.92rem}
  .primary-nav.open .mobile-menu-cta{display:block;margin-top:5px}
  .primary-nav.open .mobile-menu-cta a{justify-content:center;gap:9px;background:var(--pink);color:#fff;min-height:50px;border-radius:13px;box-shadow:0 9px 20px rgba(216,44,103,.18)}
  .primary-nav.open .mobile-menu-cta a::after{display:none}
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{padding:50px 0 32px;max-width:720px}
  .hero-photo{min-height:360px;max-height:380px;margin-left:0;border:2px solid #efa0bb;border-radius:28px;max-width:640px}
  .hero-photo::before{display:none}
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .trust-item:nth-child(2){border-right:0}
  .mosaic{grid-template-columns:repeat(2,1fr);grid-template-rows:280px 280px 280px}
  .mosaic .tall{grid-row:auto}
  .mosaic .wide{grid-column:auto}
  .about-grid,.contact-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;align-items:start}
}
@media(max-width:560px){
  .wrap{width:min(calc(100% - 28px),var(--max))}
  .utility .utility-label{display:none}
  .utility .wrap{min-height:44px}
  .utility-right{width:100%;justify-content:space-between}
  .nav-row{height:84px;gap:10px}
  .brand{min-width:0;flex:1 1 auto}
  .brand img{width:180px;max-width:100%;max-height:62px}
  .header-lang{padding:3px;flex:0 0 auto}
  .header-lang button{min-width:30px;min-height:32px;padding:3px 5px;font-size:.8rem}
  .menu-btn{flex:0 0 46px;width:46px;height:46px;margin-left:0}
  .primary-nav.open{top:92px;left:12px;right:12px;padding:15px;border-radius:19px}
  .hero-copy{padding:45px 0 36px}
  .hero h1{font-size:clamp(2.9rem,13vw,3.2rem);line-height:.97}
  .hero-photo{min-height:300px;max-height:320px;border-radius:22px}
  .actions{display:grid}
  .btn{width:100%}
  .trust-grid{grid-template-columns:1fr}
  .trust-item{border-right:0;border-bottom:1px solid #edd7df}
  .trust-item:last-child{border-bottom:0}
  section.content{padding:58px 0}
  .cards{grid-template-columns:1fr}
  .card figure{height:310px}
  .mosaic{grid-template-columns:1fr 1fr;grid-template-rows:225px 225px 225px}
  .mosaic figure:first-child{grid-row:span 2}
  .mosaic .wide{grid-column:1/3}
  .about-grid{gap:30px}
  .about-photo img{height:370px}
  .why-grid{grid-template-columns:1fr}
  .why-item{border-right:0;border-bottom:1px solid var(--line);padding:21px 0}
  .why-item:last-child{border-bottom:0}
  .footer-grid{grid-template-columns:1fr}
  .footer-logo img{width:250px}
}

@media(max-width:380px){
  .nav-row{gap:8px}
  .brand img{width:158px;max-height:58px}
  .header-lang button{min-width:28px;padding:3px 4px;font-size:.76rem}
  .menu-btn{flex-basis:44px;width:44px;height:44px}
  .hero h1{font-size:2.7rem}
  .hero p{font-size:1rem}
  .utility-right{gap:10px}
  .phone{font-size:2rem;margin-bottom:10px}
  .mosaic{grid-template-columns:1fr;grid-template-rows:none}
  .mosaic figure,.mosaic figure:first-child,.mosaic .wide{grid-column:auto;grid-row:auto;height:250px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
}