{"id":378,"date":"2026-03-17T13:51:24","date_gmt":"2026-03-17T19:51:24","guid":{"rendered":"https:\/\/giistudio.cloud\/?page_id=378"},"modified":"2026-03-30T20:31:36","modified_gmt":"2026-03-31T02:31:36","slug":"fotografo-de-xv-anos-saltillo","status":"publish","type":"page","link":"https:\/\/giistudio.com.mx\/en\/fotografo-de-xv-anos-saltillo\/","title":{"rendered":"Fot\u00f3grafo de XV a\u00f1os en Saltillo"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"378\" class=\"elementor elementor-378\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a307332 e-flex e-con-boxed e-con e-parent\" data-id=\"a307332\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6f46d20 elementor-widget elementor-widget-html\" data-id=\"6f46d20\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@500;600;700;800&family=Cormorant+Garamond:wght@400;500;600;700&display=swap');\n\n\/* ELEMENTOR OVERRIDE *\/\nhtml,body,body.elementor-default,body.elementor-page,body.page,body.home,\n#page,#content,#primary,#main,.site,.site-content,.entry-content,\n.page-content,.post-content,main,article,.elementor,.elementor-element,\n.elementor-widget-container,.elementor-section,.elementor-section-wrap,\n.elementor-inner,.elementor-column,.elementor-column-wrap,.elementor-widget,\n.elementor-widget-wrap,.elementor-top-section,.elementor-inner-section,\n.e-con,.e-con-inner,.e-con-full,.e-child,[data-elementor-type],\n[data-elementor-type=\"wp-page\"],[data-elementor-type=\"wp-post\"] {\n    background-color: #070709 !important;\n    background-image: none !important;\n}\n\n:root {\n    --xv-bg: #070709;\n    --xv-surface: #0c0c10;\n    --xv-surface-2: #121216;\n    --xv-border: rgba(255,255,255,0.06);\n    --xv-border-h: rgba(255,255,255,0.14);\n    --xv-text: #f2f0f5;\n    --xv-text-2: #c4bfcc;\n    --xv-text-dim: #5e5868;\n    --xv-pink: #e879a8;\n    --xv-pink-s: rgba(232,121,168,0.08);\n    --xv-pink-b: rgba(232,121,168,0.20);\n    --xv-gold: #d4b896;\n    --xv-gold-s: rgba(212,184,150,0.08);\n    --xv-gold-b: rgba(212,184,150,0.18);\n    --xv-purple: #a78bfa;\n    --xv-purple-s: rgba(167,139,250,0.08);\n    --xv-blue: #60a5fa;\n    --xv-green: #34d399;\n    --xv-accent: #8b5cf6;\n    --xv-r: 10px;\n}\n\n.XV * { box-sizing:border-box; margin:0; padding:0; }\n.XV {\n    position:relative; width:100%; background:transparent !important;\n    overflow:hidden; display:flex; flex-direction:column;\n    font-family:'Inter',-apple-system,sans-serif;\n    color:var(--xv-text-2); -webkit-font-smoothing:antialiased;\n}\n.XV .xv-glow {\n    position:fixed; inset:0; pointer-events:none; z-index:0;\n    background:\n        radial-gradient(ellipse 50% 40% at 70% 8%, rgba(232,121,168,0.04) 0%, transparent 70%),\n        radial-gradient(ellipse 40% 50% at 20% 90%, rgba(167,139,250,0.03) 0%, transparent 70%);\n}\n.XV section,.XV header,.XV footer { position:relative; z-index:1; background:transparent !important; }\n\n.xv-s { width:100%; padding:110px 24px; display:flex; flex-direction:column; align-items:center; background:transparent !important; }\n.xv-c { width:100%; max-width:1120px; margin:0 auto; }\n\n\/* LANG *\/\n.xv-lang {\n    position:fixed; top:28px; right:28px; background:rgba(10,10,14,0.88);\n    border:1px solid var(--xv-border); backdrop-filter:blur(20px);\n    color:#fff; padding:8px 16px; border-radius:6px; font-size:12px; font-weight:600;\n    z-index:9999; display:flex; align-items:center; gap:6px; user-select:none;\n}\n.XV .lang-options { display:flex; align-items:center; gap:6px; }\n.XV .lang-option { opacity:.35; transition:opacity .3s; text-decoration:none; color:inherit; display:inline-flex; align-items:center; gap:4px; }\n.XV .lang-option.active { opacity:1; color:#fff; }\n.XV .lang-separator { opacity:.2; }\n\n\/* TYPOGRAPHY *\/\n.XV h1,.XV h2,.XV h3,.XV h4 { color:var(--xv-text) !important; font-family:'Poppins',sans-serif !important; line-height:1.15 !important; }\n.XV p,.XV li { font-size:16px !important; line-height:1.65 !important; color:var(--xv-text-2) !important; }\n\n.xv-hero-t {\n    font-size:clamp(36px,6.5vw,72px) !important; font-weight:700 !important;\n    color:var(--xv-text) !important; margin-bottom:28px !important;\n    letter-spacing:-0.03em !important; line-height:1.08 !important;\n}\n.xv-serif { font-family:'Cormorant Garamond',serif !important; font-style:italic; font-weight:500; }\n\n.xv-eyebrow {\n    display:inline-flex; align-items:center; gap:10px;\n    border:1px solid var(--xv-pink-b); padding:10px 24px; border-radius:4px;\n    color:var(--xv-pink); font-weight:600; letter-spacing:3px;\n    margin-bottom:32px; font-size:11px !important; text-transform:uppercase;\n}\n\n\/* SECTION TITLES *\/\n.xv-st { text-align:center; display:flex; flex-direction:column; align-items:center; margin-bottom:60px; }\n.xv-st h2 { font-size:clamp(28px,5vw,46px) !important; margin-bottom:16px !important; letter-spacing:-0.025em !important; font-weight:700 !important; }\n.xv-st p { max-width:600px; font-size:17px !important; }\n\n\/* GRIDS *\/\n.xv-g2 { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; width:100%; }\n.xv-g3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; width:100%; }\n\n\/* VIDEO HERO *\/\n.xv-reel {\n    width:100%; max-width:960px; margin:0 auto; border-radius:var(--xv-r);\n    overflow:hidden; border:1px solid var(--xv-border); aspect-ratio:16\/9;\n    background:var(--xv-surface);\n}\n.xv-reel video { width:100%; height:100%; object-fit:cover; display:block; }\n\n\/* GALLERY *\/\n.xv-gallery { display:grid; grid-template-columns:1fr 1fr; gap:14px; width:100%; }\n.xv-gallery-col { display:flex; flex-direction:column; gap:14px; }\n.xv-gallery-item {\n    border-radius:10px; overflow:hidden;\n    border:1px solid var(--xv-border); transition:transform .4s, box-shadow .4s;\n    cursor:pointer;\n}\n.xv-gallery-item:hover { transform:translateY(-5px); box-shadow:0 20px 50px -10px rgba(0,0,0,.6); }\n.xv-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }\n.xv-gallery-item:hover img { transform:scale(1.04); }\n.xv-gallery-item.h { aspect-ratio:16\/10; }\n.xv-gallery-item.v { flex:1; min-height:0; }\n\n\/* CARDS *\/\n.xv-card {\n    background:var(--xv-surface) !important; border:1px solid var(--xv-border) !important;\n    border-radius:var(--xv-r) !important; padding:44px 32px !important;\n    transition:border-color .4s, transform .3s, box-shadow .4s;\n    display:flex; flex-direction:column; height:100%;\n}\n.xv-card:hover { border-color:var(--xv-border-h) !important; transform:translateY(-3px); box-shadow:0 20px 50px -15px rgba(0,0,0,.5); }\n\n.xv-icon {\n    width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center;\n    margin-bottom:24px; font-size:24px;\n}\n.xv-icon.pink { color:var(--xv-pink); background:var(--xv-pink-s); border:1px solid var(--xv-pink-b); }\n.xv-icon.gold { color:var(--xv-gold); background:var(--xv-gold-s); border:1px solid var(--xv-gold-b); }\n.xv-icon.purple { color:var(--xv-purple); background:var(--xv-purple-s); border:1px solid rgba(167,139,250,0.18); }\n.xv-icon.green { color:var(--xv-green); background:rgba(52,211,153,0.08); border:1px solid rgba(52,211,153,0.15); }\n.xv-icon.blue { color:var(--xv-blue); background:rgba(96,165,250,0.08); border:1px solid rgba(96,165,250,0.15); }\n\n.xv-card h3 { font-size:20px !important; margin-bottom:12px !important; font-weight:700 !important; }\n.xv-card p { font-size:15px !important; line-height:1.6 !important; }\n\n\/* PACKAGES *\/\n.xv-pkg {\n    background:var(--xv-surface) !important; border:1px solid var(--xv-border) !important;\n    border-radius:var(--xv-r) !important; padding:48px 36px !important;\n    display:flex; flex-direction:column; transition:border-color .4s, transform .3s;\n    height:100%; position:relative;\n}\n.xv-pkg:hover { border-color:var(--xv-border-h) !important; transform:translateY(-3px); }\n.xv-pkg.featured { border-color:var(--xv-pink-b) !important; background:var(--xv-surface-2) !important; }\n.xv-pkg h3 { font-size:24px !important; margin-bottom:14px !important; }\n.xv-pkg-price { font-size:36px !important; font-weight:800 !important; color:var(--xv-gold) !important; font-family:'Poppins',sans-serif !important; margin-bottom:8px !important; }\n.xv-pkg-sub { font-size:13px !important; color:var(--xv-text-dim) !important; margin-bottom:28px !important; }\n\n.xv-check { list-style:none !important; padding:0 !important; }\n.xv-check li { position:relative; padding-left:28px !important; margin-bottom:12px !important; font-size:14px !important; color:var(--xv-text-2) !important; }\n\n\/* PROCESS *\/\n.xv-process {\n    display:grid; grid-template-columns:repeat(4,1fr); gap:0;\n    background:var(--xv-surface) !important; border:1px solid var(--xv-border) !important;\n    border-radius:var(--xv-r) !important; overflow:hidden;\n}\n.xv-step {\n    padding:44px 24px; text-align:center; display:flex; flex-direction:column; align-items:center;\n    border-right:1px solid var(--xv-border);\n}\n.xv-step:last-child { border-right:none; }\n.xv-step-n {\n    width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;\n    font-weight:800 !important; font-size:16px !important; margin-bottom:18px;\n    font-family:'Poppins',sans-serif !important; color:#fff !important;\n}\n.xv-step h4 { font-size:17px !important; margin-bottom:10px !important; }\n.xv-step p { font-size:14px !important; }\n\n\/* FAQ *\/\n.xv-faq { background:var(--xv-surface) !important; border:1px solid var(--xv-border) !important; border-left:2px solid var(--xv-pink-b) !important; border-radius:var(--xv-r) !important; margin-bottom:10px !important; overflow:hidden; }\n.xv-faq.open { border-left-color:var(--xv-pink) !important; }\n.xv-faq-q {\n    padding:22px 28px !important; font-weight:600 !important; color:var(--xv-text) !important; cursor:pointer;\n    display:flex !important; justify-content:space-between !important; align-items:center !important;\n    font-size:16px !important; background:transparent !important; border:none !important; user-select:none;\n    font-family:'Inter',sans-serif !important;\n}\n.xv-faq-q::after { content:'+' !important; font-size:20px !important; color:var(--xv-text-dim) !important; font-weight:300 !important; flex-shrink:0; margin-left:16px; }\n.xv-faq.open .xv-faq-q { color:var(--xv-pink) !important; }\n.xv-faq.open .xv-faq-q::after { content:'\u2212' !important; color:var(--xv-pink) !important; }\n.xv-faq-a { max-height:0; overflow:hidden; transition:max-height .4s ease, padding .3s; padding:0 28px; }\n.xv-faq.open .xv-faq-a { max-height:200px; padding:0 28px 22px; }\n.xv-faq-a p { font-size:15px !important; line-height:1.7 !important; }\n\n\/* QUOTE *\/\n.xv-quote { background:var(--xv-pink-s); border-left:3px solid var(--xv-pink); padding:20px 24px; border-radius:0 var(--xv-r) var(--xv-r) 0; }\n.xv-quote p { font-weight:600 !important; color:var(--xv-pink) !important; font-size:15px !important; margin:0 !important; }\n\n\/* BUTTONS *\/\n.xv-btn-g { display:flex; gap:14px; justify-content:center; align-items:center; flex-wrap:wrap; width:100%; }\n.xv-btn {\n    display:inline-flex; align-items:center; justify-content:center;\n    padding:18px 36px; border-radius:6px; font-size:15px !important; font-weight:600;\n    text-decoration:none; cursor:pointer; transition:all .3s; border:none;\n    font-family:'Inter',sans-serif; gap:8px; text-align:center;\n}\n.xv-btn-pink { background:var(--xv-pink); color:#070709; box-shadow:0 8px 30px rgba(232,121,168,.2); }\n.xv-btn-pink:hover { box-shadow:0 12px 40px rgba(232,121,168,.35); transform:translateY(-1px); }\n.xv-btn-o { background:transparent; border:1px solid rgba(255,255,255,.12); color:#fff; }\n.xv-btn-o:hover { border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.03); }\n.xv-btn-wa { background:#25d366; color:white; box-shadow:0 8px 25px rgba(37,211,102,.12); }\n.xv-btn-wa:hover { transform:translateY(-1px); }\n\n\/* FORM *\/\n.xv-form {\n    background:var(--xv-surface-2) !important; border:1px solid var(--xv-border) !important;\n    border-radius:var(--xv-r); padding:48px; width:100%; max-width:580px; margin:0 auto;\n}\n.xv-fg { margin-bottom:20px; }\n.xv-fl { display:block !important; color:var(--xv-text) !important; font-weight:600 !important; font-size:14px !important; margin-bottom:10px !important; }\n.xv-fi {\n    width:100% !important; padding:16px 20px !important; background:transparent !important;\n    border:1px solid var(--xv-border) !important; border-radius:8px !important; color:#fff !important;\n    font-family:'Inter',sans-serif !important; font-size:16px !important; transition:all .3s;\n}\n.xv-fi:focus { outline:none !important; border-color:var(--xv-pink) !important; box-shadow:0 0 0 3px var(--xv-pink-s) !important; }\n.xv-fi::placeholder { color:var(--xv-text-dim) !important; opacity:.7; }\ntextarea.xv-fi { resize:vertical; min-height:110px; }\n\n\/* ANIMATIONS *\/\n.xvf { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1); }\n.xvf.vis { opacity:1; transform:translateY(0); }\n.xvf-d1 { transition-delay:.1s; }\n.xvf-d2 { transition-delay:.2s; }\n\n\/* FOOTER *\/\n.XV footer { background-color:transparent !important; position:relative; z-index:1; background:transparent !important; }\n.xv-foot a {\n    color:var(--xv-text-dim) !important; font-size:22px; text-decoration:none !important;\n    transition:color .3s, transform .3s; display:inline-flex; align-items:center; justify-content:center;\n    width:44px; height:44px; border-radius:50%; border:1px solid var(--xv-border);\n    background:var(--xv-surface) !important;\n}\n.xv-foot a:hover { color:var(--xv-text) !important; border-color:var(--xv-border-h); transform:translateY(-2px); }\n\n\/* RESPONSIVE *\/\n@media (max-width:1024px) {\n    .xv-s { padding:80px 20px; }\n    .xv-g2,.xv-g3 { grid-template-columns:1fr !important; gap:40px; }\n    .xv-gallery { grid-template-columns:1fr 1fr; gap:10px; }\n    .xv-gallery-col { gap:10px; }\n    .xv-st { margin-bottom:50px; }\n    .xv-card,.xv-pkg { padding:32px 24px !important; }\n    .xv-btn-g { flex-direction:column; width:100%; }\n    .xv-btn { width:100%; }\n    .xv-lang { top:14px; right:14px; padding:6px 12px; font-size:11px; }\n    .xv-process { grid-template-columns:1fr 1fr; }\n    .xv-step { border-right:none; border-bottom:1px solid var(--xv-border); }\n    .xv-step:nth-child(odd) { border-right:1px solid var(--xv-border); }\n    .xv-step:nth-last-child(-n+2) { border-bottom:none; }\n    .xv-form { padding:32px 22px; }\n}\n@media (max-width:600px) {\n    .xv-hero-t { font-size:clamp(28px,8vw,42px) !important; }\n    .xv-gallery { grid-template-columns:1fr 1fr; gap:8px; }\n    .xv-gallery-col { gap:8px; }\n    .xv-gallery-item.v { min-height:200px; }\n    .xv-process { grid-template-columns:1fr; }\n    .xv-step { border-right:none !important; border-bottom:1px solid var(--xv-border); }\n    .xv-step:last-child { border-bottom:none; }\n}\n\n\/* ===== CHATBOT PRO \u2014 XV A\u00d1OS ===== *\/\n@keyframes chtRingSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}\n@keyframes chtOrbPulse{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.12);opacity:1}}\n@keyframes chtHeaderLine{0%{background-position:0% 50%}100%{background-position:200% 50%}}\n@keyframes chtWaveBar{0%,100%{height:3px}50%{height:13px}}\n@keyframes chtBdot{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}\n.chtgl{position:fixed;bottom:24px;right:24px;z-index:9990;width:58px;height:58px;border-radius:50%;background:#070709;display:flex;align-items:center;justify-content:center;transition:all .3s;overflow:hidden;cursor:pointer;border:none}.chtgl::before{content:'';position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(#e879a8,#a78bfa,#d4b896,#e879a8);animation:chtRingSpin 3s linear infinite}.chtgl::after{content:'';position:absolute;inset:2px;border-radius:50%;background:#070709}.chtgl svg{width:24px;height:24px;position:relative;z-index:1}.chtgl:hover{box-shadow:0 4px 24px rgba(232,121,168,.25)}\n.chtw{position:fixed;bottom:96px;right:24px;z-index:9990;width:370px;max-width:calc(100vw - 48px);height:540px;max-height:72vh;border-radius:16px;border:1px solid rgba(232,121,168,.15);background:#0c0c10;box-shadow:0 20px 60px rgba(0,0,0,.5);display:none;flex-direction:column;overflow:hidden;font-family:'Inter',-apple-system,sans-serif}.chtw.op{display:flex}\n.chth{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px}.chth::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#e879a8,#a78bfa,transparent);background-size:200% 100%;animation:chtHeaderLine 3s linear infinite}\n.chtav-wrap{position:relative;width:40px;height:40px;flex-shrink:0}.chtav-ring{position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(#e879a8,#a78bfa,#d4b896,#e879a8);animation:chtRingSpin 3s linear infinite}.chtav-bg{position:absolute;inset:2px;border-radius:50%;background:#0c0c10}.chtav{position:absolute;inset:4px;border-radius:50%;background:radial-gradient(circle,#e879a8,#a78bfa);display:flex;align-items:center;justify-content:center;animation:chtOrbPulse 2.5s ease-in-out infinite}.chtav svg{width:16px;height:16px}\n.cht-badge{font-size:.65rem;font-weight:500;color:#e879a8;background:rgba(232,121,168,.1);padding:2px 8px;border-radius:99px;margin-left:6px}\n.cht-voz{display:flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;border:1px solid rgba(232,121,168,.2);background:transparent;font-size:.65rem;color:#5e5868;transition:all .2s;cursor:pointer}.cht-voz svg{width:12px;height:12px}.cht-voz.active{border-color:rgba(232,121,168,.4);background:rgba(232,121,168,.1);color:#e879a8}\n.chts{display:flex;align-items:center;gap:6px;margin-top:2px}.chton{width:6px;height:6px;border-radius:50%;background:#4ade80}\n.chtms{flex-grow:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}\n.msg-wrap{display:flex;align-items:flex-end;gap:8px;max-width:84%}.msg-wrap.bot{align-self:flex-start}.msg-wrap.usr{align-self:flex-end;flex-direction:row-reverse}\n.msg-av{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#e879a8,#a78bfa);flex-shrink:0;display:flex;align-items:center;justify-content:center}.msg-av svg{width:12px;height:12px}\n.msg{padding:10px 16px;border-radius:16px;font-size:.875rem;line-height:1.5}.msg-u{background:linear-gradient(135deg,#e879a8,#c45a88);color:#fff;border-bottom-right-radius:4px}.msg-b{background:rgba(232,121,168,.06);border:1px solid rgba(232,121,168,.08);border-bottom-left-radius:4px;color:#f2f0f5}\n.msg-tts{display:none;align-items:center;gap:3px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(232,121,168,.06)}.msg-tts.playing{display:flex}.msg-tts-bar{width:3px;background:#e879a8;border-radius:2px;animation:chtWaveBar .5s ease-in-out infinite}.msg-tts-bar:nth-child(1){animation-delay:0s}.msg-tts-bar:nth-child(2){animation-delay:.1s}.msg-tts-bar:nth-child(3){animation-delay:.2s}.msg-tts-bar:nth-child(4){animation-delay:.3s}.msg-tts-bar:nth-child(5){animation-delay:.15s}.msg-tts-bar:nth-child(6){animation-delay:.25s}.msg-tts-bar:nth-child(7){animation-delay:.05s}.msg-tts-lbl{font-size:.7rem;color:#5e5868;margin-left:6px}\n.cht-typ{display:flex;gap:4px;padding:12px 16px;align-self:flex-start;background:rgba(232,121,168,.06);border:1px solid rgba(232,121,168,.08);border-radius:16px;border-bottom-left-radius:4px}.cht-typ span{width:8px;height:8px;border-radius:50%;background:#e879a8}.cht-typ span:nth-child(1){animation:chtBdot .6s infinite 0s}.cht-typ span:nth-child(2){animation:chtBdot .6s infinite .15s}.cht-typ span:nth-child(3){animation:chtBdot .6s infinite .3s}\n.qrs{padding:0 16px 8px;display:flex;flex-wrap:wrap;gap:6px}.qr{padding:6px 12px;font-size:.72rem;border-radius:9999px;border:1px solid rgba(232,121,168,.18);color:#e879a8;transition:all .2s;cursor:pointer;background:rgba(232,121,168,.04);font-family:'Inter',sans-serif}.qr:hover{background:rgba(232,121,168,.12)}\n.cht-ia{padding:12px 16px;border-top:1px solid rgba(232,121,168,.06);display:flex;gap:8px;align-items:center}\n.cht-in{flex-grow:1;background:rgba(0,0,0,.5);border:1px solid rgba(232,121,168,.1);border-radius:10px;padding:10px 16px;font-size:.875rem;color:#fff;outline:none;transition:border-color .2s;font-family:'Inter',sans-serif}.cht-in:focus{border-color:rgba(232,121,168,.35)}.cht-in::placeholder{color:rgba(94,88,104,.7)}\n.cht-sn{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#e879a8,#c45a88);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;transition:all .2s;border:none;cursor:pointer}.cht-sn:disabled{opacity:.3}.cht-sn:hover{filter:brightness(1.1)}.cht-sn svg{width:16px;height:16px}\n<\/style>\n\n<main class=\"XV\">\n<div class=\"xv-glow\"><\/div>\n\n<!-- LANG -->\n\n<!-- ========== 1. HERO ========== -->\n<header class=\"xv-s xvf\" style=\"min-height:100vh; justify-content:center; padding-top:100px; padding-bottom:60px;\">\n    <div class=\"xv-c\" style=\"text-align:center;\">\n        <div class=\"xv-eyebrow\">\ud83d\udc51 FOTO Y VIDEO PARA XV A\u00d1OS \u00b7 SALTILLO<\/div>\n\n        <h1 class=\"xv-hero-t\">Tu d\u00eda merece<br>una producci\u00f3n <span class=\"xv-serif\" style=\"color:var(--xv-pink) !important;\">cinematogr\u00e1fica.<\/span><\/h1>\n\n        <p style=\"font-size:clamp(16px,1.8vw,19px) !important; color:var(--xv-text-2) !important; max-width:640px; margin:0 auto 40px; font-weight:400; line-height:1.65 !important; text-align:center;\">\n            Sesiones casuales y formales, cobertura completa del evento, videoclips, drone y color grading profesional. Todo para que tus XV se vean espectaculares.\n        <\/p>\n\n        <div class=\"xv-btn-g\">\n            <a href=\"#reservar\" class=\"xv-btn xv-btn-pink\">Reservar mi fecha<\/a>\n            <a href=\"#paquetes\" class=\"xv-btn xv-btn-o\">Ver paquetes<\/a>\n        <\/div>\n\n        <p style=\"font-size:12px !important; color:var(--xv-text-dim) !important; margin-top:40px; letter-spacing:2px; text-transform:uppercase; font-weight:600;\">\n            Sesiones \u00b7 Evento completo \u00b7 Videoclips \u00b7 Drone \u00b7 Color grading\n        <\/p>\n    <\/div>\n<\/header>\n\n<!-- ========== 2. DEMO REEL ========== -->\n<section class=\"xv-s\" style=\"padding-top:0; padding-bottom:80px;\">\n    <div class=\"xv-c\">\n        <div class=\"xv-reel xvf\">\n            <video autoplay muted loop playsinline>\n                <source src=\"https:\/\/res.cloudinary.com\/derecxngo\/video\/upload\/v1773806202\/xvs_demo_yc0fri.mp4\" type=\"video\/mp4\">\n            <\/video>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 3. EL POR QU\u00c9 ========== -->\n<section class=\"xv-s\">\n    <div class=\"xv-c\">\n        <div class=\"xv-g2\">\n            <div class=\"xvf xvf-d1\">\n                <p style=\"font-size:11px !important; color:var(--xv-pink) !important; text-transform:uppercase; letter-spacing:3px; margin-bottom:24px; font-weight:700;\">Por qu\u00e9 elegirnos<\/p>\n\n                <h2 style=\"font-size:clamp(26px,4vw,38px) !important; margin-bottom:24px !important; letter-spacing:-0.02em !important; line-height:1.15 !important; color:var(--xv-text) !important;\">Tus XV a\u00f1os son una vez en la vida. Mereces un equipo profesional.<\/h2>\n\n                <p style=\"margin-bottom:20px; color:var(--xv-text-2) !important;\">No somos solo fot\u00f3grafos. Somos un equipo de producci\u00f3n completo que incluye fotograf\u00eda, video cinematogr\u00e1fico, drone, color grading profesional y edici\u00f3n de alto nivel.<\/p>\n\n                <p style=\"margin-bottom:32px; color:var(--xv-text-2) !important;\">Desde la sesi\u00f3n casual hasta el \u00faltimo baile de tu fiesta, capturamos cada momento con la calidad que tu evento merece.<\/p>\n\n                <div class=\"xv-quote\">\n                    <p>En Gii Studio dirigimos cada sesi\u00f3n y cada toma para que tus fotos y videos se vean como de revista.<\/p>\n                <\/div>\n            <\/div>\n\n            <div class=\"xvf xvf-d2\" style=\"border-radius:var(--xv-r); overflow:hidden; border:1px solid var(--xv-border); aspect-ratio:3\/4; max-height:520px;\">\n                <img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/derecxngo\/image\/upload\/v1773803780\/Captura_de_pantalla_2026-03-17_211200_y7cseh.png\" alt=\"XV A\u00f1os Gii Studio\" loading=\"lazy\" style=\"width:100%; height:100%; object-fit:cover; display:block;\">\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 4. GALER\u00cdA ========== -->\n<section class=\"xv-s\" style=\"padding-top:40px;\">\n    <div class=\"xv-c\">\n        <div class=\"xv-st xvf\">\n            <h2 style=\"color:var(--xv-text) !important;\">Nuestro trabajo.<\/h2>\n            <p style=\"color:var(--xv-text-2) !important;\">Cada sesi\u00f3n tiene direcci\u00f3n de arte, color grading profesional y atenci\u00f3n a cada detalle.<\/p>\n        <\/div>\n        <div class=\"xv-gallery xvf xvf-d1\">\n            <div class=\"xv-gallery-col\">\n                <div class=\"xv-gallery-item h\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/derecxngo\/image\/upload\/v1773803823\/Captura_de_pantalla_2026-03-17_211100_pxaxfe.png\" alt=\"XV A\u00f1os\" loading=\"lazy\"><\/div>\n                <div class=\"xv-gallery-item h\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/derecxngo\/image\/upload\/v1773808141\/Captura_de_pantalla_2026-03-17_222507_j2qlrb.png\" alt=\"XV A\u00f1os\" loading=\"lazy\"><\/div>\n            <\/div>\n            <div class=\"xv-gallery-col\">\n                <div class=\"xv-gallery-item v\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/derecxngo\/image\/upload\/v1773803802\/Captura_de_pantalla_2026-03-17_211221_qu3itn.png\" alt=\"XV A\u00f1os\" loading=\"lazy\"><\/div>\n            <\/div>\n        <\/div>\n        <div class=\"xv-gallery xvf\" style=\"margin-top:14px;\">\n            <div class=\"xv-gallery-col\">\n                <div class=\"xv-gallery-item v\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/derecxngo\/image\/upload\/v1773806848\/Captura_de_pantalla_2026-03-17_220714_gli19t.png\" alt=\"XV A\u00f1os\" loading=\"lazy\"><\/div>\n            <\/div>\n            <div class=\"xv-gallery-col\">\n                <div class=\"xv-gallery-item h\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/derecxngo\/image\/upload\/v1773805648\/Captura_de_pantalla_2026-03-17_214718_ufclfv.png\" alt=\"XV A\u00f1os\" loading=\"lazy\"><\/div>\n                <div class=\"xv-gallery-item h\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/derecxngo\/image\/upload\/v1773808462\/Captura_de_pantalla_2026-03-17_223414_pid9n6.png\" alt=\"XV A\u00f1os\" loading=\"lazy\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 5. QU\u00c9 INCLUIMOS ========== -->\n<section class=\"xv-s\">\n    <div class=\"xv-c\">\n        <div class=\"xv-st xvf\">\n            <h2 style=\"color:var(--xv-text) !important;\">Todo lo que necesitas para tus XV.<\/h2>\n            <p style=\"color:var(--xv-text-2) !important;\">Un equipo completo de producci\u00f3n para que t\u00fa solo te preocupes por disfrutar.<\/p>\n        <\/div>\n        <div class=\"xv-g3 xvf xvf-d1\">\n            <div class=\"xv-card\">\n                <div class=\"xv-icon pink\"><i class=\"ph-fill ph-dress\"><\/i><\/div>\n                <h3>Sesi\u00f3n formal<\/h3>\n                <p>Con tu vestido de XV en la locaci\u00f3n de tu elecci\u00f3n. Direcci\u00f3n de poses, iluminaci\u00f3n profesional y color grading art\u00edstico.<\/p>\n            <\/div>\n            <div class=\"xv-card\">\n                <div class=\"xv-icon gold\"><i class=\"ph-fill ph-camera\"><\/i><\/div>\n                <h3>Sesi\u00f3n casual<\/h3>\n                <p>Ropa casual, actitud relajada, fotos incre\u00edbles. Un estilo m\u00e1s personal y natural que complementa la sesi\u00f3n formal.<\/p>\n            <\/div>\n            <div class=\"xv-card\">\n                <div class=\"xv-icon purple\"><i class=\"ph-fill ph-video-camera\"><\/i><\/div>\n                <h3>Video cinematogr\u00e1fico<\/h3>\n                <p>Cobertura completa del evento: misa, vals, brindis, fiesta. Short film emotivo y largometraje editado profesionalmente.<\/p>\n            <\/div>\n            <div class=\"xv-card\">\n                <div class=\"xv-icon blue\"><i class=\"ph-fill ph-drone\"><\/i><\/div>\n                <h3>Drone 4K<\/h3>\n                <p>Tomas a\u00e9reas espectaculares del venue y la ceremonia. Perspectivas \u00fanicas que nadie m\u00e1s ofrece en Saltillo.<\/p>\n            <\/div>\n            <div class=\"xv-card\">\n                <div class=\"xv-icon pink\"><i class=\"ph-fill ph-music-notes\"><\/i><\/div>\n                <h3>Foto-clip de infancia<\/h3>\n                <p>Video emotivo con fotos de tu ni\u00f1ez musicalizado. El momento m\u00e1s especial de la fiesta que hace llorar a todos.<\/p>\n            <\/div>\n            <div class=\"xv-card\">\n                <div class=\"xv-icon green\"><i class=\"ph-fill ph-share-network\"><\/i><\/div>\n                <h3>Highlight para redes<\/h3>\n                <p>Video de 60 segundos optimizado para TikTok e Instagram. Listo para compartir y presumir tu evento.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 6. PAQUETES ========== -->\n<section class=\"xv-s\" id=\"paquetes\">\n    <div class=\"xv-c\">\n        <div class=\"xv-st xvf\">\n            <h2 style=\"color:var(--xv-text) !important;\">Elige tu paquete de XV.<\/h2>\n            <p style=\"color:var(--xv-text-2) !important;\">Desde la sesi\u00f3n hasta la cobertura completa con drone. Todos incluyen edici\u00f3n profesional.<\/p>\n        <\/div>\n\n        <div class=\"xv-g3 xvf xvf-d1\">\n            <div class=\"xv-pkg\">\n                <h3 style=\"color:var(--xv-text) !important;\">Sesiones<\/h3>\n                <div class=\"xv-pkg-price\">$6,500<\/div>\n                <div class=\"xv-pkg-sub\">Sesi\u00f3n formal + casual \u00b7 3 horas<\/div>\n                <ul class=\"xv-check\">\n                    <li>60-80 fotos editadas<\/li>\n                    <li>Color grading profesional<\/li>\n                    <li>2 cambios de vestuario<\/li>\n                    <li>1 ampliaci\u00f3n 16x20<\/li>\n                    <li>Galer\u00eda digital privada<\/li>\n                <\/ul>\n            <\/div>\n\n            <div class=\"xv-pkg featured\">\n                <h3 style=\"color:var(--xv-text) !important;\">Evento Completo<\/h3>\n                <div class=\"xv-pkg-price\">$17,900<\/div>\n                <div class=\"xv-pkg-sub\">8 horas de cobertura<\/div>\n                <ul class=\"xv-check\">\n                    <li>Sesi\u00f3n formal previa<\/li>\n                    <li>Foto ilimitada del evento<\/li>\n                    <li>Video completo (misa + fiesta)<\/li>\n                    <li>Short film 3-5 min<\/li>\n                    <li>Foto-clip con fotos de infancia<\/li>\n                    <li>Highlight para redes (60s)<\/li>\n                    <li>Galer\u00eda digital + USB<\/li>\n                <\/ul>\n            <\/div>\n\n            <div class=\"xv-pkg\">\n                <h3 style=\"color:var(--xv-text) !important;\">Premium + Drone<\/h3>\n                <div class=\"xv-pkg-price\">$25,000<\/div>\n                <div class=\"xv-pkg-sub\">10 horas de cobertura<\/div>\n                <ul class=\"xv-check\">\n                    <li>Todo lo del Evento Completo<\/li>\n                    <li>Sesi\u00f3n casual extra<\/li>\n                    <li>Drone en ceremonia y venue<\/li>\n                    <li>Videoclip cinematogr\u00e1fico<\/li>\n                    <li>100 impresiones 6x4<\/li>\n                    <li>\u00c1lbum digital interactivo<\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n\n        <div class=\"xvf\" style=\"text-align:center; margin-top:40px;\">\n            <p style=\"font-size:14px !important; color:var(--xv-text-dim) !important;\">\n                <strong style=\"color:var(--xv-text-2);\">Extras:<\/strong> Sesi\u00f3n casual sola $3,500 \u00b7 Drone add-on $4,000 \u00b7 Videoclip extra $5,500 \u00b7 Hora extra $3,000\n            <\/p>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 7. PROCESO ========== -->\n<section class=\"xv-s\" style=\"padding-top:40px;\">\n    <div class=\"xv-c\">\n        <div class=\"xv-st xvf\">\n            <h2 style=\"color:var(--xv-text) !important;\">C\u00f3mo trabajamos.<\/h2>\n            <p style=\"color:var(--xv-text-2) !important;\">Desde la primera pl\u00e1tica hasta la entrega. Sin estr\u00e9s, sin sorpresas.<\/p>\n        <\/div>\n        <div class=\"xv-process xvf xvf-d1\">\n            <div class=\"xv-step\">\n                <div class=\"xv-step-n\" style=\"border:2px solid var(--xv-text-dim); background:rgba(255,255,255,.03);\">1<\/div>\n                <h4 style=\"color:var(--xv-text) !important;\">Consulta<\/h4>\n                <p style=\"color:var(--xv-text-2) !important;\">Platiquemos sobre tu evento, fecha, locaci\u00f3n y estilo.<\/p>\n            <\/div>\n            <div class=\"xv-step\">\n                <div class=\"xv-step-n\" style=\"border:2px solid var(--xv-pink); background:var(--xv-pink-s);\">2<\/div>\n                <h4 style=\"color:var(--xv-text) !important;\">Planeaci\u00f3n<\/h4>\n                <p style=\"color:var(--xv-text-2) !important;\">Definimos vestuario, locaciones, itinerario y log\u00edstica.<\/p>\n            <\/div>\n            <div class=\"xv-step\">\n                <div class=\"xv-step-n\" style=\"border:2px solid var(--xv-purple); background:var(--xv-purple-s);\">3<\/div>\n                <h4 style=\"color:var(--xv-text) !important;\">Producci\u00f3n<\/h4>\n                <p style=\"color:var(--xv-text-2) !important;\">Capturamos cada momento con equipo y direcci\u00f3n profesional.<\/p>\n            <\/div>\n            <div class=\"xv-step\">\n                <div class=\"xv-step-n\" style=\"border:2px solid var(--xv-green); background:rgba(52,211,153,.08);\">4<\/div>\n                <h4 style=\"color:var(--xv-text) !important;\">Entrega<\/h4>\n                <p style=\"color:var(--xv-text-2) !important;\">Galer\u00eda digital y videos editados en 30-45 d\u00edas m\u00e1ximo.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 8. FAQ ========== -->\n<section class=\"xv-s\">\n    <div class=\"xv-c\">\n        <div class=\"xv-st xvf\"><h2 style=\"color:var(--xv-text) !important;\">Preguntas frecuentes<\/h2><\/div>\n        <div class=\"xvf xvf-d1\" style=\"max-width:740px; margin:0 auto; width:100%;\">\n            <div class=\"xv-faq\"><div class=\"xv-faq-q\">\u00bfCon cu\u00e1nta anticipaci\u00f3n debo reservar?<\/div><div class=\"xv-faq-a\"><p>Lo ideal es 3-6 meses antes del evento. Las fechas en temporada alta (mayo-diciembre) se agotan r\u00e1pido. Reservar con tiempo nos da margen para planear mejor las sesiones.<\/p><\/div><\/div>\n            <div class=\"xv-faq\"><div class=\"xv-faq-q\">\u00bfLa sesi\u00f3n formal es el mismo d\u00eda del evento?<\/div><div class=\"xv-faq-a\"><p>Puede ser el mismo d\u00eda o en una fecha previa. Recomendamos hacerla 1-2 meses antes para tener las fotos listas y usarlas en la fiesta (ampliaciones, video de infancia, etc).<\/p><\/div><\/div>\n            <div class=\"xv-faq\"><div class=\"xv-faq-q\">\u00bfQu\u00e9 incluye el foto-clip de infancia?<\/div><div class=\"xv-faq-a\"><p>Es un video emotivo de 3-5 minutos con fotos de tu ni\u00f1ez, musicalizado con la canci\u00f3n que elijas. Se proyecta durante la fiesta y es el momento m\u00e1s emotivo del evento.<\/p><\/div><\/div>\n            <div class=\"xv-faq\"><div class=\"xv-faq-q\">\u00bfCubren eventos fuera de Saltillo?<\/div><div class=\"xv-faq-a\"><p>S\u00ed. Cubrimos eventos en Saltillo, Monterrey y ciudades cercanas. Para eventos for\u00e1neos se agregan vi\u00e1ticos que se cotizan por separado.<\/p><\/div><\/div>\n            <div class=\"xv-faq\"><div class=\"xv-faq-q\">\u00bfPuedo personalizar mi paquete?<\/div><div class=\"xv-faq-a\"><p>Claro. Los paquetes son una base. Podemos agregar o quitar elementos seg\u00fan lo que necesites. Escr\u00edbenos y armamos algo a tu medida.<\/p><\/div><\/div>\n            <div class=\"xv-faq\"><div class=\"xv-faq-q\">\u00bfCu\u00e1nto tarda la entrega?<\/div><div class=\"xv-faq-a\"><p>Fotograf\u00eda: 20-30 d\u00edas. Video completo: 30-45 d\u00edas. El highlight para redes se entrega en 5-7 d\u00edas para que lo compartas r\u00e1pido.<\/p><\/div><\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 9. CONTACTO ========== -->\n<section class=\"xv-s\" id=\"reservar\">\n    <div class=\"xv-c\">\n        <div class=\"xv-g2\" style=\"gap:60px;\">\n            <div class=\"xvf\" style=\"text-align:center;\">\n                <div style=\"width:72px; height:72px; border-radius:50%; background:rgba(37,211,102,.08); border:1px solid rgba(37,211,102,.2); display:flex; align-items:center; justify-content:center; margin:0 auto 28px; font-size:32px; color:#25d366;\">\n                    <i class=\"ph-fill ph-whatsapp-logo\"><\/i>\n                <\/div>\n\n                <h2 style=\"font-size:clamp(26px,4vw,38px) !important; font-family:'Poppins',sans-serif !important; margin-bottom:18px !important; color:var(--xv-text) !important;\">Reserva la fecha de tus XV.<\/h2>\n\n                <p style=\"font-size:16px !important; margin-bottom:40px; max-width:400px; margin-left:auto; margin-right:auto; color:var(--xv-text-2) !important;\">Cu\u00e9ntanos sobre tu evento y te armamos una propuesta a la medida. Sin compromiso.<\/p>\n\n                <a href=\"https:\/\/wa.me\/5219541259727?text=Hola,%20vengo%20de%20la%20p%C3%A1gina%20de%20Gii%20Studio.%20Me%20interesa%20un%20paquete%20de%20foto%20y%20video%20para%20XV%20a%C3%B1os.\" target=\"_blank\" class=\"xv-btn xv-btn-wa\" style=\"padding:18px 36px;\" rel=\"noopener\">\n                    <i class=\"ph-fill ph-whatsapp-logo\" style=\"font-size:18px;\"><\/i> WhatsApp directo\n                <\/a>\n\n                <div style=\"margin-top:44px;\">\n                    <p style=\"color:var(--xv-text) !important; font-weight:700; font-size:15px !important; margin-bottom:6px;\">Respuesta en menos de 48 hrs.<\/p>\n                    <p style=\"font-size:15px !important; color:var(--xv-text-2) !important;\">Saltillo, Coahuila \u00b7 Cobertura en Monterrey disponible.<\/p>\n                <\/div>\n            <\/div>\n\n            <div class=\"xv-form xvf xvf-d2\">\n                <form id=\"xvForm\">\n                    <div class=\"xv-fg\"><label class=\"xv-fl\">Nombre de la quincea\u00f1era *<\/label><input type=\"text\" id=\"xvNombre\" name=\"nombre\" class=\"xv-fi\" placeholder=\"Nombre\" required><\/div>\n                    <div class=\"xv-fg\"><label class=\"xv-fl\">Fecha del evento<\/label><input type=\"text\" id=\"xvFecha\" name=\"fecha\" class=\"xv-fi\" placeholder=\"Ej: 15 de julio 2026\"><\/div>\n                    <div class=\"xv-fg\"><label class=\"xv-fl\">WhatsApp del pap\u00e1\/mam\u00e1 *<\/label><input type=\"tel\" id=\"xvTelefono\" name=\"telefono\" class=\"xv-fi\" placeholder=\"+52 000 000 0000\" required><\/div>\n                    <div class=\"xv-fg\"><label class=\"xv-fl\">Correo<\/label><input type=\"email\" id=\"xvEmail\" name=\"email\" class=\"xv-fi\" placeholder=\"correo@ejemplo.com\"><\/div>\n                    <div class=\"xv-fg\"><label class=\"xv-fl\">\u00bfQu\u00e9 paquete te interesa?<\/label><textarea id=\"xvNecesidad\" name=\"necesidad\" class=\"xv-fi\" placeholder=\"Ej: Me interesa el paquete Evento Completo, mi fiesta es en julio en Saltillo...\"><\/textarea><\/div>\n                    <div style=\"margin-top:28px;\"><button type=\"submit\" class=\"xv-btn xv-btn-pink\" id=\"xvSubmitBtn\" style=\"width:100%; padding:20px; font-size:17px !important;\">Reservar mi fecha \u2192<\/button><\/div>\n                    <div id=\"xvFormMessage\" style=\"display:none; margin-top:18px; text-align:center; font-size:14px; font-weight:600;\"><\/div>\n                <\/form>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- ========== 10. CIERRE ========== -->\n<section class=\"xv-s\" style=\"padding-top:40px; padding-bottom:80px;\">\n    <div class=\"xv-c\" style=\"text-align:center;\">\n        <div class=\"xvf\" style=\"max-width:600px; margin:0 auto;\">\n            <h2 style=\"font-size:clamp(28px,5vw,46px) !important; color:var(--xv-text) !important; margin-bottom:20px !important; letter-spacing:-0.03em !important; font-weight:800 !important;\">Que tus XV se vean<br><span class=\"xv-serif\" style=\"color:var(--xv-pink) !important; font-size:clamp(30px,5.5vw,50px) !important;\">espectaculares.<\/span><\/h2>\n            <p style=\"font-size:clamp(15px,1.8vw,17px) !important; color:var(--xv-text-2) !important; max-width:460px; margin:0 auto; line-height:1.65 !important;\">Reserva tu fecha y asegura el mejor equipo de foto y video en Saltillo.<\/p>\n        <\/div>\n    <\/div>\n<\/section>\n\n<!-- FOOTER -->\n<footer style=\"padding:40px 24px 48px; text-align:center; width:100%; background:transparent !important;\">\n    <div class=\"xv-foot\" style=\"display:flex; justify-content:center; gap:20px; margin-bottom:24px;\">\n        <a href=\"https:\/\/instagram.com\/giistudio\" target=\"_blank\" aria-label=\"Instagram\" rel=\"noopener\"><i class=\"ph-fill ph-instagram-logo\"><\/i><\/a>\n        <a href=\"https:\/\/facebook.com\/giistudiofilms\" target=\"_blank\" aria-label=\"Facebook\" rel=\"noopener\"><i class=\"ph-fill ph-facebook-logo\"><\/i><\/a>\n        <a href=\"https:\/\/tiktok.com\/@giistudio\" target=\"_blank\" aria-label=\"TikTok\" rel=\"noopener\"><i class=\"ph-fill ph-tiktok-logo\"><\/i><\/a>\n        <a href=\"https:\/\/wa.me\/5219541259727\" target=\"_blank\" aria-label=\"WhatsApp\" rel=\"noopener\"><i class=\"ph-fill ph-whatsapp-logo\"><\/i><\/a>\n    <\/div>\n    <p style=\"font-size:12px !important; color:var(--xv-text-dim) !important; margin:0; letter-spacing:.5px;\">\u00a9 2026 Gii Studio. Foto y video para XV a\u00f1os en Saltillo.<\/p>\n<\/footer>\n<\/main>\n\n<!-- CHATBOT PRO \u2014 XV A\u00d1OS -->\n<button class=\"chtgl\" id=\"chtgl\" onclick=\"tgChat()\" aria-label=\"Abrir chat de Gii Studio\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"#e879a8\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z\"\/><\/svg><\/button>\n<div class=\"chtw\" id=\"chtw\">\n<div class=\"chth\">\n<div class=\"chtav-wrap\"><div class=\"chtav-ring\"><\/div><div class=\"chtav-bg\"><\/div><div class=\"chtav\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"#fff\" stroke-width=\"2\"><path d=\"M12 2a3 3 0 00-3 3v7a3 3 0 006 0V5a3 3 0 00-3-3z\"\/><path d=\"M19 10v2a7 7 0 01-14 0v-2\"\/><line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"\/><\/svg><\/div><\/div>\n<div style=\"flex-grow:1\"><p style=\"font-size:.875rem;font-weight:600;color:#f2f0f5;margin:0\">Gii Studio <span class=\"cht-badge\">IA<\/span><\/p><div class=\"chts\"><span class=\"chton\"><\/span><span style=\"font-size:.7rem;color:#5e5868\">Asistente activo<\/span><\/div><\/div>\n<button class=\"cht-voz\" id=\"ttsBtn\" onclick=\"tgTTS()\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M15.536 8.464a5 5 0 010 7.072M17.95 6.05a8 8 0 010 11.9M6.5 8H4a1 1 0 00-1 1v6a1 1 0 001 1h2.5l4.5 4V4l-4.5 4z\"\/><\/svg><span>VOZ<\/span><\/button>\n<button onclick=\"tgChat()\" style=\"color:#5e5868;margin-left:4px;background:none;border:none;cursor:pointer\"><svg style=\"width:18px;height:18px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\"\/><\/svg><\/button>\n<\/div>\n<div class=\"chtms\" id=\"chtms\"><\/div>\n<div class=\"qrs\" id=\"qrs\"><\/div>\n<div class=\"cht-ia\"><form id=\"chtForm\" style=\"display:flex;gap:8px;width:100%;margin:0\"><input class=\"cht-in\" id=\"chtIn\" placeholder=\"Escribe un mensaje...\" maxlength=\"500\"><button type=\"submit\" class=\"cht-sn\" id=\"chtSn\" disabled><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 19V5m0 0l-7 7m7-7l7 7\"\/><\/svg><\/button><\/form><\/div>\n<\/div>\n\n<script>\n(function() {\n    if (!document.querySelector('script[src*=\"phosphor-icons\"]')) {\n        var s = document.createElement('script'); s.src = 'https:\/\/unpkg.com\/@phosphor-icons\/web'; s.async = true; document.head.appendChild(s);\n    }\n\n    var obs = new IntersectionObserver(function(e) {\n        e.forEach(function(en) { if (en.isIntersecting) { en.target.classList.add('vis'); obs.unobserve(en.target); } });\n    }, { threshold: 0.08 });\n    document.querySelectorAll('.xvf').forEach(function(el) { obs.observe(el); });\n\n    \n\n    document.querySelectorAll('.xv-faq-q').forEach(function(q) {\n        q.addEventListener('click', function() {\n            var item = q.parentElement;\n            var wasOpen = item.classList.contains('open');\n            document.querySelectorAll('.xv-faq').forEach(function(i) { i.classList.remove('open'); });\n            if (!wasOpen) item.classList.add('open');\n        });\n    });\n\n    var form = document.getElementById('xvForm');\n    if (form) {\n        form.addEventListener('submit', async function(e) {\n            e.preventDefault();\n            var btn = document.getElementById('xvSubmitBtn'), msg = document.getElementById('xvFormMessage');\n            btn.disabled = true; btn.innerHTML = 'Enviando...'; msg.style.display = 'none';\n            var data = {\n                nombre: document.getElementById('xvNombre').value,\n                fecha: document.getElementById('xvFecha').value,\n                telefono: document.getElementById('xvTelefono').value,\n                email: document.getElementById('xvEmail').value,\n                necesidad: document.getElementById('xvNecesidad').value,\n                origen: 'giistudio.com.mx\/xv-anos \u2014 Landing XV A\u00f1os'\n            };\n            try {\n                var res = await fetch('https:\/\/giistudio-n8n-giistudio.8quhmc.easypanel.host\/webhook\/c587bf56-11b4-40c8-9277-9b565dfa78ad', {\n                    method: 'POST', headers: { 'Content-Type': 'application\/json' }, body: JSON.stringify(data)\n                });\n                if (res.ok) { msg.style.color='#10b981'; msg.textContent='\u00a1Solicitud enviada! Te contactaremos pronto.'; msg.style.display='block'; form.reset(); }\n                else { throw new Error('err'); }\n            } catch (err) { msg.style.color='#ef4444'; msg.textContent='Error de conexi\u00f3n. Escr\u00edbenos por WhatsApp.'; msg.style.display='block'; }\n            finally { btn.disabled=false; btn.innerHTML='Reservar mi fecha \\u2192'; }\n        });\n    }\n\n    \/* ===== CHATBOT PRO \u2014 XV A\u00d1OS ===== *\/\n    var CHAT_WH='https:\/\/giistudio-n8n-giistudio.8quhmc.easypanel.host\/webhook\/gii-chat';\n    var TTS_WH='https:\/\/giistudio-n8n-giistudio.8quhmc.easypanel.host\/webhook\/gii-tts';\n    var QR=[\n        {l:\"\u00bfQu\u00e9 paquetes tienen?\",m:\"\u00bfQu\u00e9 paquetes tienen para XV a\u00f1os?\"},\n        {l:\"\u00bfIncluyen drone?\",m:\"\u00bfIncluyen drone en los paquetes de XV a\u00f1os?\"},\n        {l:\"\u00bfCubren en Monterrey?\",m:\"\u00bfCubren eventos de XV a\u00f1os en Monterrey?\"},\n        {l:\"Quiero reservar mi fecha\",m:\"Quiero reservar la fecha de mis XV a\u00f1os\"}\n    ];\n    var chatOpen=false,chatInit=false,sid='gii_xv_'+(Date.now()).toString(36)+'_'+Math.random().toString(36).slice(2,9),msgC=0,lastS=0,chatL=false,ttsOn=false,ttsPlaying=false;\n\n    function norm(v){return String(v||'').replace(\/\\s+\/g,' ').trim()}\n    function safeTrack(name,params){if(typeof gtag==='function'){gtag('event',name,params||{})}}\n\n    window.tgTTS=function(){ttsOn=!ttsOn;var b=document.getElementById('ttsBtn');b.classList.toggle('active',ttsOn);if(!ttsOn&&window._ttsAudio){window._ttsAudio.pause();window._ttsAudio=null;ttsPlaying=false;document.querySelectorAll('.msg-tts.playing').forEach(function(e){e.classList.remove('playing')})}};\n\n    async function speakTTS(text){\n        if(!ttsOn||!text||ttsPlaying)return;\n        if(text.length>500)text=text.slice(0,500);\n        ttsPlaying=true;\n        var lastTts=document.querySelectorAll('.msg-tts');lastTts=lastTts[lastTts.length-1];\n        if(lastTts)lastTts.classList.add('playing');\n        try{\n            var ctrl=new AbortController();var to=setTimeout(function(){ctrl.abort()},15000);\n            var r=await fetch(TTS_WH,{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify({text:text}),signal:ctrl.signal});\n            clearTimeout(to);\n            if(!r.ok)throw new Error('TTS HTTP '+r.status);\n            var b=await r.blob();\n            if(b.size<1000)throw new Error('Audio too small');\n            var a=new Audio(URL.createObjectURL(b));\n            window._ttsAudio=a;\n            a.onended=function(){ttsPlaying=false;window._ttsAudio=null;if(lastTts)lastTts.classList.remove('playing')};\n            a.onerror=function(){ttsPlaying=false;window._ttsAudio=null;if(lastTts)lastTts.classList.remove('playing')};\n            a.play().catch(function(){ttsPlaying=false;if(lastTts)lastTts.classList.remove('playing')});\n        }catch(e){console.warn('TTS error:',e);ttsPlaying=false;if(lastTts)lastTts.classList.remove('playing')}\n    }\n\n    function parseJSON(t){try{return JSON.parse(t)}catch(e){return t}}\n    function extractBotText(data){\n        if(typeof data==='string')return data.trim();\n        var vals=[data&&data.output,data&&data.text,data&&data.message,data&&data.response,data&&data.reply,data&&data.answer];\n        if(data&&data.data){vals.push(data.data.output,data.data.text,data.data.message)}\n        if(data&&data.result){vals.push(data.result.output,data.result.text)}\n        for(var i=0;i<vals.length;i++){if(typeof vals[i]==='string'&&vals[i].trim())return vals[i].trim()}\n        return '';\n    }\n\n    window.tgChat=function(){\n        chatOpen=!chatOpen;\n        var w=document.getElementById('chtw'),b=document.getElementById('chtgl');\n        if(chatOpen){\n            w.classList.add('op');\n            b.innerHTML='<svg style=\"width:24px;height:24px;position:relative;z-index:1\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"white\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\"\/><\/svg>';\n            if(!chatInit){chatInit=true;addMsg('b','\u00a1Hola! Soy el asistente de Gii Studio. Puedo ayudarte con informaci\u00f3n sobre paquetes de foto y video para XV a\u00f1os, sesiones, cobertura del evento y c\u00f3mo reservar tu fecha.');showQR()}\n            setTimeout(function(){var inp=document.getElementById('chtIn');if(inp)inp.focus()},60);\n            safeTrack('open_chat',{event_category:'engagement',event_label:'xv_chat'});\n        }else{\n            w.classList.remove('op');\n            b.innerHTML='<svg style=\"width:24px;height:24px;position:relative;z-index:1\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"#e879a8\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z\"\/><\/svg>';\n        }\n    };\n\n    function addMsg(r,t){\n        var m=document.getElementById('chtms');\n        var text=String(t||'');\n        if(r==='b'){\n            var wrap=document.createElement('div');wrap.className='msg-wrap bot';\n            wrap.innerHTML='<div class=\"msg-av\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M12 2v4m0 12v4M2 12h4m12 0h4\"\/><\/svg><\/div><div><div class=\"msg msg-b\"><\/div><div class=\"msg-tts\"><span class=\"msg-tts-bar\"><\/span><span class=\"msg-tts-bar\"><\/span><span class=\"msg-tts-bar\"><\/span><span class=\"msg-tts-bar\"><\/span><span class=\"msg-tts-bar\"><\/span><span class=\"msg-tts-bar\"><\/span><span class=\"msg-tts-bar\"><\/span><span class=\"msg-tts-lbl\">Reproduciendo...<\/span><\/div><\/div>';\n            wrap.querySelector('.msg-b').textContent=text;\n            m.appendChild(wrap);\n        }else{\n            var wrap=document.createElement('div');wrap.className='msg-wrap usr';\n            wrap.innerHTML='<div class=\"msg msg-u\"><\/div>';\n            wrap.querySelector('.msg-u').textContent=text;\n            m.appendChild(wrap);\n        }\n        m.scrollTop=m.scrollHeight;\n        if(r==='b')speakTTS(text);\n    }\n    function showQR(){document.getElementById('qrs').innerHTML=QR.map(function(q){return '<button class=\"qr\" onclick=\"sendChat(\\''+q.m.replace(\/'\/g,\"\\\\'\")+'\\')\">'+q.l+'<\/button>'}).join('')}\n    function hideQR(){document.getElementById('qrs').innerHTML=''}\n\n    window.sendChat=async function(text){\n        text=norm(text);\n        if(!text||msgC>=60||chatL)return;\n        var now=Date.now();if(now-lastS<3000)return;\n        lastS=now;msgC++;\n        addMsg('u',text);hideQR();document.getElementById('chtIn').value='';chatL=true;\n        var m=document.getElementById('chtms'),typ=document.createElement('div');typ.className='cht-typ';typ.innerHTML='<span><\/span><span><\/span><span><\/span>';m.appendChild(typ);m.scrollTop=m.scrollHeight;\n        var payload={action:'sendMessage',chatInput:text,message:text,sessionId:sid,timestamp:new Date().toISOString(),source:'website_chat',pageUrl:window.location.href,pageTitle:document.title};\n        try{\n            var ctrl=new AbortController();var to=setTimeout(function(){ctrl.abort()},30000);\n            var res=await fetch(CHAT_WH,{method:'POST',headers:{'Content-Type':'application\/json'},body:JSON.stringify(payload),signal:ctrl.signal});\n            clearTimeout(to);\n            var raw=await res.text();\n            if(!res.ok)throw new Error('HTTP '+res.status);\n            var data=parseJSON(raw);\n            var bt=extractBotText(data);\n            typ.remove();addMsg('b',bt||'Gracias por tu mensaje. Te contactaremos pronto para planear tus XV.');\n            safeTrack('send_chat_message',{event_category:'engagement',event_label:'xv_chat'});\n        }catch(err){typ.remove();addMsg('b','Hubo un error al conectar. Intenta de nuevo o escr\u00edbenos por WhatsApp.')}\n        finally{chatL=false;document.getElementById('chtSn').disabled=!document.getElementById('chtIn').value.trim()}\n    };\n\n    document.getElementById('chtForm').addEventListener('submit',function(e){e.preventDefault();sendChat(document.getElementById('chtIn').value)});\n    document.getElementById('chtIn').addEventListener('input',function(){document.getElementById('chtSn').disabled=!this.value.trim()});\n    document.addEventListener('keydown',function(e){if(e.key==='Escape'&&chatOpen)tgChat()});\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\ud83d\udc51 FOTO Y VIDEO PARA XV A\u00d1OS \u00b7 SALTILLO Tu d\u00eda mereceuna producci\u00f3n cinematogr\u00e1fica. Sesiones casuales y formales, cobertura completa del evento, videoclips, drone y color grading profesional. Todo para que tus XV se vean espectaculares. Reservar mi fecha Ver paquetes Sesiones \u00b7 Evento completo \u00b7 Videoclips \u00b7 Drone \u00b7 Color grading Por qu\u00e9 elegirnos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-378","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/pages\/378","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/comments?post=378"}],"version-history":[{"count":22,"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/pages\/378\/revisions"}],"predecessor-version":[{"id":882,"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/pages\/378\/revisions\/882"}],"wp:attachment":[{"href":"https:\/\/giistudio.com.mx\/en\/wp-json\/wp\/v2\/media?parent=378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}