/* Lato requiere conexión; Arial es la fuente de respaldo. */
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,400;0,700;1,400&display=swap');
/* Variables de marca y tamaños editables. */
:root { --navy:#112033; --gold:#D5A63B; --ivory:#FCF8EA; --font:'Lato',Arial,sans-serif; --h1-size:48px; --body-size:20px; --invitation-size:20px; --footer-size:14px; --content-width:1240px; --gutter:40px; }
body { margin:0; }
#nm-site, #nm-site * { box-sizing:border-box; }
#nm-site { background:var(--ivory); color:var(--navy); font-family:var(--font); min-height:100svh; display:flex; flex-direction:column; }
#nm-site .container { width:min(var(--content-width),calc(100% - var(--gutter) * 2)); margin-inline:auto; }
#nm-site .header { background:var(--navy); padding-block:40px; }
#nm-site .logo { width:200px; max-width:100%; height:auto; display:block; }
#nm-site .main { flex:1; padding-block:62px 76px; }
#nm-site .main-inner { position:relative; }
#nm-site .copy { position:relative; z-index:1; width:72%; max-width:890px; }
#nm-site h1 { font-family:var(--font); font-size:var(--h1-size); font-weight:400; line-height:1.18; letter-spacing:-.6px; margin:0 0 26px; }
#nm-site strong { font-weight:700; }
#nm-site .presentation { font-size:var(--body-size); line-height:1.45; margin:0 0 22px; }
#nm-site .invitation { font-size:var(--invitation-size); font-weight:700; line-height:1.4; margin:0 0 22px; }
#nm-site .button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; padding:12px 26px; border-radius:40px; background:var(--gold); color:var(--navy); text-decoration:none; font-size:18px; font-weight:700; line-height:1.35; }
#nm-site .button:hover { background:#e0b853; }
#nm-site a:focus-visible { outline:3px solid var(--gold); outline-offset:5px; }
#nm-site .button:focus-visible { outline-color:var(--navy); }
/* Isotipo decorativo recortado mediante CSS, sin modificar el PNG. */
#nm-site .watermark { position:absolute; right:0; top:0; width:25%; aspect-ratio:.82; overflow:hidden; pointer-events:none; opacity:.6; }
#nm-site .watermark img { display:block; width:340%; max-width:none; height:auto; filter:brightness(0) invert(1); }
#nm-site .footer { background:var(--navy); color:#FCF7EA; text-align:center; padding-block:24px; font-size:var(--footer-size); line-height:1.5; }
#nm-site .footer p { margin:0; }
#nm-site .contact { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:0 8px; }
#nm-site .contact a { color:inherit; text-decoration:none; padding-block:8px; overflow-wrap:anywhere; }
#nm-site .contact a:hover { text-decoration:underline; text-underline-offset:3px; }
#nm-site .footer .credit { margin-top:14px; }
#nm-site .credit span { color:inherit; font-style:italic; }
#nm-site .skip { position:absolute; top:-100px; left:20px; z-index:3; background:var(--ivory); color:var(--navy); padding:12px; }
#nm-site .skip:focus { top:12px; }
@media(max-width:900px) {
 :root { --h1-size:40px; --gutter:32px; }
 #nm-site .copy { width:85%; }
 #nm-site .watermark { width:28%; opacity:.3; }
}
@media(max-width:600px) {
 :root { --h1-size:32px; --body-size:18px; --invitation-size:18px; --gutter:24px; --footer-size:14px; }
 #nm-site .header { padding-block:26px; }
 #nm-site .logo { width:190px; }
 #nm-site .main { padding-block:34px 40px; }
 #nm-site .copy { width:100%; }
 #nm-site h1 { letter-spacing:-.3px; }
 #nm-site .watermark { display:none; }
 #nm-site .button { width:100%; font-size:16px; padding-inline:14px; }
 #nm-site .contact { flex-direction:column; gap:0; margin-top:6px; }
 #nm-site .contact a { min-height:44px; display:flex; align-items:center; }
 #nm-site .separator { display:none; }
}
