*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0c0c0c;color:#eee;font-family:Arial,sans-serif}.desktop{position:relative;max-width:1672px;margin:auto}.approved{width:100%;height:auto;display:block}.hotspot{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);z-index:2;border-radius:3px}.hotspot:focus-visible{outline:3px solid #e2b56e;outline-offset:-3px}.mobile{display:none}.below{text-align:center;background:#f5f0e7;color:#17120e;padding:85px 6%}.below h2{font-family:Georgia,serif;font-size:clamp(30px,4vw,48px);font-weight:400;margin:10px 0 20px}.below p{line-height:1.7}.eyebrow{font-size:12px;letter-spacing:3px;color:#c49b5d;font-weight:bold}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:1080px;margin:40px auto 0;text-align:left}.service-grid article{background:white;padding:26px;min-height:150px}.service-grid h3{font:normal 25px Georgia,serif;margin:0}.dark{background:#151311;color:#f5f0e7}.contact form{max-width:600px;margin:35px auto;text-align:left;display:grid;gap:16px}.contact label{display:grid;gap:7px}.contact input,.contact select,.contact textarea{width:100%;padding:14px;border:1px solid #b4a58e;border-radius:2px;font:inherit;background:white}.contact button,.primary{background:#d3a964;color:#100d09;border:0;padding:16px 22px;font-weight:bold;cursor:pointer;text-decoration:none}.contact #notice{font-size:14px;color:#d3a964}@media(max-width:720px){.desktop{display:none}.mobile{display:block;background:#0d0b0a}.mobile-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:#0b0b0b}.brand{display:flex;align-items:center;gap:10px;min-width:0}.monogram{font:italic 34px Georgia,serif;color:#d6ab68}.brand strong{display:block;color:#d6ab68;font:19px Georgia,serif;letter-spacing:1px}.brand small{display:block;font-size:7px;letter-spacing:.8px;margin-top:4px}.mobile-head details{position:relative;flex-shrink:0}.mobile-head summary{cursor:pointer;list-style:none;color:#d6ab68;font-size:26px}.mobile-head nav{position:absolute;z-index:10;right:0;top:35px;background:#15110d;border:1px solid #7d623e;padding:10px;min-width:180px}.mobile-head nav a{display:block;padding:12px;color:white;text-decoration:none}.mobile-photo{height:360px;background-image:linear-gradient(to bottom,transparent 65%,#0d0b0a 100%),url('assets/foto_movil.webp');background-size:cover;background-position:center 28%}.mobile-copy{padding:10px 24px 34px}.mobile-copy h1{font:normal clamp(40px,11vw,60px)/1.04 Georgia,serif;margin:18px 0}.mobile-copy em{color:#d6ab68}.mobile-copy>p:not(.eyebrow){font:17px/1.6 Georgia,serif}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.actions a{display:inline-block;font-size:12px;letter-spacing:.5px}.secondary{border:1px solid #d6ab68;color:white;padding:15px 18px;text-decoration:none}.mobile-services{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #38302a}.mobile-services a{min-height:120px;padding:20px 8px;text-align:center;color:#d6ab68;border-right:1px solid #38302a;border-bottom:1px solid #38302a;text-decoration:none;font-size:28px}.mobile-services span{display:block;color:white;font-size:10px;line-height:1.5;letter-spacing:.7px;margin-top:9px}.service-grid{grid-template-columns:1fr}.below{padding:55px 22px}}@media(min-width:721px) and (max-width:1000px){.service-grid{grid-template-columns:repeat(2,1fr)}}
/* V12: Sección de servicios. La portada aprobada permanece sin cambios. */
.services-section{background:#f5f0e7;padding:86px max(22px,5vw) 96px}.section-intro{max-width:730px;margin:0 auto 45px}.section-intro h2{font-size:clamp(35px,4.5vw,57px);line-height:1.13}.section-intro h2 em{font-weight:400;color:#a77b41}.section-intro>p:last-child{color:#6c6259;max-width:600px;margin:0 auto;font-size:16px}.premium-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;max-width:1230px;margin:auto;text-align:left}.premium-card{background:#fff;box-shadow:0 10px 28px #271c1110;display:flex;flex-direction:column;min-width:0}.card-visual{position:relative;aspect-ratio:1.24;background:linear-gradient(140deg,#17120f,#514338 65%,#89735a);overflow:hidden}.premium-card:nth-child(2) .card-visual{background:linear-gradient(145deg,#252018,#665849)}.premium-card:nth-child(3) .card-visual{background:linear-gradient(145deg,#241c20,#5c4346)}.premium-card:nth-child(4) .card-visual{background:linear-gradient(145deg,#191e2e,#39465c)}.premium-card:nth-child(5) .card-visual{background:linear-gradient(145deg,#1c2725,#4e6860)}.premium-card:nth-child(6) .card-visual{background:linear-gradient(145deg,#1b222b,#4c5c6b)}.card-number{position:absolute;top:18px;left:20px;color:#ddbb7b;font:21px Georgia,serif;z-index:1}.photo-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:12px;color:#e9d8b7;letter-spacing:2px;font-size:10px;padding:30px}.placeholder-mark{font:italic 43px Georgia,serif;opacity:.32}.photo-placeholder small{color:#c5b8a5;letter-spacing:1px;font-size:9px}.card-copy{padding:28px 26px 30px;display:flex;flex:1;flex-direction:column}.card-kicker{font-size:9px;letter-spacing:2px;color:#aa844d;margin:0 0 15px!important}.card-copy h3{font:normal 27px/1.16 Georgia,serif;margin:0 0 13px}.card-tag{font:italic 17px/1.45 Georgia,serif;color:#987244;margin:0 0 11px!important}.card-description{font-size:13px;line-height:1.7;color:#655e58;margin:0 0 26px!important}.card-copy a{font-size:11px;font-weight:700;letter-spacing:1px;color:#956a31;text-decoration:none;margin-top:auto}.card-copy a:hover,.services-end a:hover{text-decoration:underline}.services-end{margin:58px auto 0}.services-end p{font:normal 26px Georgia,serif}.services-end a{display:inline-block;border:1px solid #b68b51;padding:16px 24px;color:#74532a;text-decoration:none;font-weight:bold;font-size:12px;letter-spacing:1px}@media(max-width:980px){.premium-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.services-section{padding:58px 18px 65px}.premium-grid{grid-template-columns:1fr;gap:22px}.card-visual{aspect-ratio:1.6}.card-copy{padding:23px}.card-copy h3{font-size:26px}.section-intro{margin-bottom:30px}}

/* V13: fotografía de graduación, sin cambios a la portada aprobada */
.card-photo{width:100%;height:100%;object-fit:cover;object-position:12% 40%;display:block}
.graduation-page{background:#0c0b0a;color:#f6f0e8;min-height:100vh}
.graduation-nav{display:flex;justify-content:space-between;align-items:center;padding:20px max(24px,6vw);border-bottom:1px solid #4b3927;gap:15px}
.graduation-nav a{color:#d8b47a;text-decoration:none;font-size:13px;letter-spacing:1px}
.graduation-logo{font:normal 24px Georgia,serif;color:#d8b47a}
.graduation-hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:570px;max-width:1500px;margin:auto}
.graduation-copy{padding:55px max(25px,8vw)}
.graduation-copy h1{font:normal clamp(40px,5vw,76px)/1.06 Georgia,serif;margin:18px 0 25px}
.graduation-copy h1 em{color:#d9b477;font-weight:400}
.graduation-copy p{line-height:1.8;color:#d0c4b4;max-width:480px}
.graduation-photo{height:100%;min-height:570px;position:relative;overflow:hidden}
.graduation-photo img{width:100%;height:100%;object-fit:cover;object-position:center;position:absolute;inset:0}
.graduation-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0c0b0a 0%,transparent 28%)}
.graduation-details{background:#f5f0e7;color:#231a13;text-align:center;padding:70px 25px}
.graduation-details h2{font:normal clamp(30px,4vw,49px) Georgia,serif}
.graduation-features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1100px;margin:35px auto}
.graduation-features article{background:white;padding:28px 20px}
.graduation-features h3{font:normal 25px Georgia,serif}
.graduation-features p{line-height:1.7;color:#655d55}
.graduation-back{display:inline-block;padding:15px 24px;border:1px solid #a57a43;color:#a57a43;text-decoration:none;margin-top:20px}
@media(max-width:720px){.graduation-hero{grid-template-columns:1fr}.graduation-photo{grid-row:1;min-height:370px}.graduation-copy{padding:40px 25px 60px}.graduation-photo:after{background:linear-gradient(0deg,#0c0b0a,transparent 30%)}.graduation-features{grid-template-columns:1fr}}

/* V13.2: encuadre de la fotografía de promoción, sin alterar la imagen original */
.card-photo.promo-photo{object-position:center 23%}

/* V13.2 ajustada: retrato escolar un poco menor, birrete con margen superior.
   Fotografía original intacta; el fondo es una copia desenfocada mediante CSS. */
.promo-visual{background:#393438;display:flex;align-items:center;justify-content:center}
.promo-visual::before{content:"";position:absolute;inset:-20px;background:url("assets/promocion_2026.webp") center 28% / cover no-repeat;filter:blur(18px) brightness(.60);opacity:.72}
.card-photo.promo-photo{position:relative;width:92%;height:94%;object-fit:contain;object-position:center center;transform:none;z-index:0}
.promo-visual .card-number{z-index:2}

/* V13.3: imagen de promoción a todo el ancho, sin bandas laterales.
   Encuadre prioriza birrete y rostro sin modificar el archivo fotográfico. */
.promo-visual{display:block;background:#393438;overflow:hidden}
.promo-visual::before{content:none;display:none}
.card-photo.promo-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 11%;transform:none;z-index:0}
.promo-visual .card-number{position:relative;z-index:2;text-shadow:0 1px 5px rgba(0,0,0,.75)}

/* V13.4: encuadre aprobado de referencia, nueva fotografía original, sin alterar facciones. */
.promo-visual::before{display:none!important;content:none!important}
.card-photo.promo-photo{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:50% 23%!important;transform:none!important;display:block!important}
.promo-visual .card-number{position:absolute!important;top:18px!important;left:20px!important;z-index:3!important}

/* V13.5: encuadre de referencia, birrete completamente visible. Sin editar foto. */
.card-photo.promo-photo{object-position:50% 0%!important}

/* V13.6: fotografía original de bodas, sin modificar rostros */
.card-photo.bodas-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}

/* V13.7: encuadre de quinceañera, sin alterar imagen original */
.card-photo.quince-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}

/* V13.8: quinceañera centrada, corona completa y sin bordes superpuestos. */
.card-photo.quince-photo{object-fit:cover!important;object-position:50% 0%!important;transform:none!important;width:100%!important;height:100%!important;}

/* V13.9: fotografía original de quinceañera fucsia; rostro, corona y ramo visibles. */
.card-photo.quince-photo{object-fit:cover!important;object-position:50% 47%!important;transform:none!important;filter:none!important;}

/* V14.0 — fotografía original de maternidad, sin modificar rostros */
.card-photo.sesiones-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 49%;display:block;}

/* V14.1: encuadre del evento corporativo */
.card-photo.corporativos-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:45% 50%;display:block;}

/* V14.2 — dos nuevos servicios, sin alterar las seis tarjetas aprobadas */
.sport-placeholder{background:linear-gradient(135deg,#121d29,#334960 55%,#18222b)}
.engraving-placeholder{background:linear-gradient(135deg,#30241c,#6b5039 55%,#2d251f)}
.service-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;text-align:center;color:#e7d1aa;letter-spacing:.16em;font-size:11px;font-weight:600}
.service-placeholder .placeholder-monogram{font:italic 48px Georgia,serif;letter-spacing:0;color:rgba(231,209,170,.45)}
.service-placeholder small{font-size:9px;letter-spacing:.12em;color:#f1e7d7}
.coming-soon{display:inline-block;margin-top:auto;font-size:11px;letter-spacing:.12em;color:#a57942;font-weight:700}

/* V14.3: encuadre deportivo centrado */
.deporte-photo { object-position: center 52%; }

/* Galerías fotográficas V14.5 */
.gallery-page{background:#0b0b0b;color:#f4eddf;font-family:Georgia,serif;min-height:100vh}.gallery-nav{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px clamp(20px,6vw,85px);border-bottom:1px solid #62502b}.gallery-nav a{color:#d6b977;text-decoration:none;font-size:clamp(12px,1.4vw,16px)}.gallery-wrap{max-width:1250px;margin:auto;padding:60px 22px 100px}.gallery-heading{text-align:center;max-width:800px;margin:0 auto 45px}.gallery-heading .eyebrow{color:#c6a463;letter-spacing:3px;font:12px Arial,sans-serif}.gallery-heading h1{font-size:clamp(36px,5vw,66px);font-weight:normal;margin:15px 0}.gallery-heading p{color:#c7bfb2;line-height:1.7}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-tile{appearance:none;border:1px solid #594b35;background:#171511;padding:0;cursor:zoom-in;overflow:hidden;aspect-ratio:4/3}.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-tile:hover img{transform:scale(1.035)}.gallery-empty{border:1px dashed #77613a;border-radius:8px;padding:25px;margin:35px auto;color:#b7ab98;text-align:center;max-width:720px;font:14px/1.7 Arial,sans-serif}.gallery-actions{text-align:center;margin:35px}.gallery-actions a{display:inline-block;color:#d8bb7b;border:1px solid #ae8a4d;padding:15px 23px;text-decoration:none;letter-spacing:1px;font:12px Arial,sans-serif}.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.96);display:flex;align-items:center;justify-content:center;padding:50px 60px}.lightbox[hidden]{display:none}.lightbox img{max-width:100%;max-height:85vh;object-fit:contain}.lightbox button{position:absolute;background:#1a1714;color:#f6e6bf;border:1px solid #9c804c;font-size:25px;cursor:pointer;width:44px;height:44px}.lb-close{right:20px;top:18px}.lb-prev{left:12px;top:50%}.lb-next{right:12px;top:50%}.lb-count{position:absolute;bottom:18px;color:#c7b182;font:13px Arial,sans-serif}@media(max-width:750px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-wrap{padding-top:38px}.lightbox{padding:55px 12px}.lb-prev,.lb-next{top:auto;bottom:15px}.lb-count{bottom:30px}}@media(max-width:440px){.gallery-grid{grid-template-columns:1fr}}

/* V46: contacto premium negro, crema y dorado */
.contact-premium{background:radial-gradient(ellipse at 0% 5%,#302114 0%,#15110e 27%,#0e0c0b 70%);color:#f7f0e5;padding:75px 6% 85px}.contact-premium h2{font-size:clamp(36px,5vw,62px);margin:12px 0 30px}.contact-premium .eyebrow{color:#d9b16d}.contact-details{display:flex;justify-content:center;align-items:center;max-width:1050px;margin:0 auto 35px;gap:0;text-align:left}.contact-detail{display:flex;align-items:center;justify-content:center;gap:16px;flex:1;min-width:0;padding:8px 23px;border-right:1px solid #a8834f}.contact-detail:last-child{border-right:0}.contact-detail p{margin:0;font:15px/1.6 Georgia,serif}.contact-detail strong{font-weight:normal}.contact-symbol{font-size:35px;color:#d6ab68;line-height:1}.contact-whatsapp>div{display:flex;flex-direction:column;align-items:flex-start;gap:5px;font:14px Georgia,serif}.contact-phone{display:block;background:linear-gradient(130deg,#e9c98c,#b98b4a);color:#17110a!important;text-decoration:none;border-radius:15px;padding:11px 20px;font:700 21px Georgia,serif;white-space:nowrap;box-shadow:0 3px 12px #0005}.contact-phone:hover{filter:brightness(1.1)}.contact-whatsapp small{align-self:center;font-size:14px;color:#e9d1a7}.contact-premium form{max-width:740px;gap:17px;margin:30px auto 0}.contact-premium label{font:17px Georgia,serif;color:#f6ecdf;gap:9px}.contact-premium input,.contact-premium select,.contact-premium textarea{background:#191716;color:#fff7eb;border:1px solid #a98451;border-radius:7px;padding:17px 20px;font:17px Georgia,serif;min-height:58px;outline-offset:3px}.contact-premium input::placeholder,.contact-premium textarea::placeholder{color:#b6aaa0}.contact-premium input:focus,.contact-premium select:focus,.contact-premium textarea:focus{border-color:#f0ca86;outline:1px solid #f0ca86}.contact-premium button{background:linear-gradient(110deg,#c59b5e,#f0d79e,#c39a5b);color:#17100a;border-radius:9px;max-width:650px;width:100%;justify-self:center;font:700 16px Georgia,serif;padding:21px 12px;margin-top:4px}.contact-premium button:hover{filter:brightness(1.08)}.contact-premium #notice{text-align:center;margin:0}.contact-premium .contact-help{text-align:center;color:#e1bd7d;font:14px/1.5 Georgia,serif;margin:0}@media(max-width:850px){.contact-details{flex-direction:column;align-items:stretch;gap:16px;max-width:420px}.contact-detail{border-right:0;border-bottom:1px solid #6e573a;justify-content:flex-start;padding:8px 10px 16px}.contact-detail:last-child{border-bottom:0}.contact-premium{padding:55px 20px}.contact-premium h2{font-size:clamp(35px,8vw,50px)}.contact-premium button{font-size:14px}}

/* V47: cuatro columnas alineadas, título sin superposición, ambos contactos */
.contact-premium>.eyebrow{display:flex;align-items:center;justify-content:center;gap:24px;letter-spacing:.36em;white-space:nowrap;font-size:13px;line-height:1.6;margin:0 auto 12px}
.contact-premium>.eyebrow::before,.contact-premium>.eyebrow::after{content:"";width:90px;max-width:16vw;height:1px;background:#d5aa65;flex-shrink:0}
.contact-premium .contact-details{max-width:1400px;display:grid;grid-template-columns:1.05fr 1.05fr 1fr 1fr;align-items:center;margin:0 auto 38px}
.contact-premium .contact-detail{height:100%;padding:6px 17px;gap:12px;min-width:0;align-items:center}
.contact-premium .contact-detail:last-child{border-right:0}
.contact-premium .contact-whatsapp{justify-content:center;text-align:center}
.contact-premium .contact-whatsapp>div{align-items:center;gap:7px;width:100%;font-size:15px}
.contact-premium .contact-whatsapp>div>span{display:block;white-space:nowrap;line-height:1.35;text-align:center}
.contact-premium .contact-phone{font-size:clamp(16px,1.35vw,21px);padding:11px 13px;width:100%;text-align:center}
.contact-premium .contact-whatsapp small{font-size:clamp(11px,1.05vw,14px);white-space:nowrap;text-align:center}
@media(max-width:1050px){.contact-premium .contact-details{grid-template-columns:repeat(2,minmax(0,1fr));max-width:850px;gap:18px}.contact-premium .contact-detail:nth-child(2){border-right:0}.contact-premium .contact-detail{border-bottom:1px solid #6e573a;padding:14px}.contact-premium .contact-detail:nth-child(n+3){border-bottom:0}}
@media(max-width:600px){.contact-premium .contact-details{grid-template-columns:1fr;max-width:420px;gap:0}.contact-premium .contact-detail{border-right:0!important;border-bottom:1px solid #6e573a!important;justify-content:flex-start}.contact-premium .contact-detail:last-child{border-bottom:0!important}.contact-premium .contact-whatsapp{justify-content:flex-start}.contact-premium .contact-whatsapp>div{align-items:flex-start}.contact-premium .contact-whatsapp>div>span{text-align:left}.contact-premium .contact-whatsapp small{align-self:center}.contact-premium .contact-phone{width:auto;min-width:230px}.contact-premium>.eyebrow{gap:12px;letter-spacing:.25em}}

/* V48: Numeros de contacto en tipografia sans serif, legibles y alineados */
.contact-premium .contact-phone{font-family:Arial,Helvetica,sans-serif!important;font-size:21px!important;font-weight:700!important;letter-spacing:.25px;font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;gap:10px;text-align:center;line-height:1.3;}
.contact-premium .contact-phone .phone-digits{font-family:Arial,Helvetica,sans-serif!important;font-variant-numeric:tabular-nums;white-space:nowrap;}
.contact-premium .contact-phone .phone-icon{font-family:Arial,Helvetica,sans-serif;font-size:19px;line-height:1;flex-shrink:0;}
@media(max-width:650px){.contact-premium .contact-phone{font-size:18px!important;padding:11px 12px;}}

/* V49: únicamente el título de servicios en una línea en pantallas amplias */
@media (min-width: 900px){.services-section .section-intro{max-width:1200px}.services-section .section-intro h2{white-space:nowrap;font-size:clamp(35px,4vw,57px)}}
