@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('../../fonts/instrument-sans-latin.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('../../fonts/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url('../../fonts/manrope-latin.woff2') format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400 700;font-display:swap;src:url('../../fonts/newsreader-latin.woff2') format('woff2')}
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; background:#e8e9e7; color:#18232a; font-family:'DM Sans',Arial,sans-serif; }
    a { color:inherit; }
    button { font:inherit; }
    .review { position:sticky; z-index:30; top:0; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px max(20px,calc((100vw - 1420px)/2)); color:#eef3f3; background:#152027; box-shadow:0 8px 25px #101c2040; }
    .review strong { display:block; font-size:13px; font-weight:700; }
    .review-brand { display:flex; align-items:center; gap:10px; }
    .review-brand img { width:23px; height:23px; flex:none; }
    .review p { margin:3px 0 0; color:#aebfc2; font-size:11px; }
    .review nav { display:flex; flex-wrap:wrap; gap:5px; padding:4px; border:1px solid #ffffff35; border-radius:9px; background:#0b161c; }
    .review nav a { padding:8px 13px; border-radius:6px; color:#d8e1e2; font-size:11px; font-weight:700; text-decoration:none; white-space:nowrap; }
    .review nav a:hover,.review nav a:focus-visible { color:#172229; background:#e3eded; }
    .review nav a[aria-current="location"] { color:#172229;background:#e3eded; }
    .review a:focus-visible,.preview a:focus-visible { outline:3px solid #5b92df; outline-offset:4px; }
    .frame { max-width:1490px; margin:32px auto 70px; padding:0 clamp(12px,2vw,32px); scroll-margin-top:100px; }
    .estoc-showcase .frame { scroll-margin-top:68px; }
    .preview [id] { scroll-margin-top:90px; }
    .frame-head { display:flex; justify-content:space-between; align-items:end; gap:20px; margin:0 0 15px; padding:0 4px; }
    .frame-head h1,.frame-head h2 { margin:0; font-size:clamp(20px,2.1vw,29px); letter-spacing:-.045em; }
    .frame-head p { max-width:540px; margin:0; color:#53616a; font-size:12px; line-height:1.5; }
    .preview { overflow:hidden; border:1px solid #d0d6d6; border-radius:15px; box-shadow:0 25px 70px #16262c29; }
    .preview .wrap { width:min(100% - 9vw,1270px); margin-inline:auto; }
    .preview header { display:flex; justify-content:space-between; align-items:center; gap:22px; min-height:90px; }
    .preview .logo { display:flex; align-items:center; gap:11px; font-size:20px; font-weight:800; text-decoration:none; letter-spacing:-.07em; }
    .preview .logo i { display:grid; place-items:center; width:29px; height:29px; font-size:16px; font-style:normal; letter-spacing:-.08em; }
    .preview header nav { display:flex; gap:30px; font-size:12px; font-weight:600; }
    .preview header nav a { text-decoration:none; }
    .preview .header-cta { display:inline-flex; align-items:center; min-height:40px; padding:9px 16px; font-size:11px; font-weight:700; text-decoration:none; white-space:nowrap; }
    .eyebrow { display:block; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
    .hero h1,.hero h2,.hero h3 { margin:0; letter-spacing:-.07em; }
    .hero p { line-height:1.6; }
    .actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
    .button { display:inline-flex; align-items:center; justify-content:center; min-height:51px; padding:13px 21px; font-size:13px; font-weight:800; text-decoration:none; }
    .button,.header-cta,.review nav a { transition:transform .26s ease-out,background .26s ease-out,color .26s ease-out; }
    .button:active,.header-cta:active,.review nav a:active { transform:scale(.98); }
    .quiet { font-size:13px; font-weight:700; text-underline-offset:5px; }
    .visual { position:relative; overflow:hidden; }
    .visual img { display:block; width:100%; height:100%; object-fit:cover; }
    .hero-note { margin:15px 0 0; font-size:11px; line-height:1.5; }
    .section-kicker { display:block; margin-bottom:15px; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
    .section-title { max-width:800px; margin:0 0 26px; font-size:clamp(32px,3.5vw,53px); line-height:1.08; letter-spacing:-.055em; }
    .service-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
    .service { display:flex; flex-direction:column; min-height:190px; padding:25px; }
    .service small { font-size:11px; font-weight:700; }
    .service h4 { margin:18px 0 8px; font-size:24px; letter-spacing:-.045em; }
    .service p { max-width:430px; margin:0; font-size:13px; line-height:1.55; }
    .service .duration { display:block; margin-top:auto; padding-top:15px; font-size:11px; font-weight:700; }
    .service-link { display:inline-block; align-self:flex-start; margin-top:12px; padding-bottom:3px; border-bottom:1px solid currentColor; color:inherit; font-size:12px; font-weight:800; text-decoration:none; }
    .service-link:hover,.service-link:focus-visible { opacity:.7; }
    .booking { padding:68px 0 82px; }
    .booking-grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1fr); align-items:center; gap:clamp(35px,7vw,110px); }
    .booking-copy p { max-width:470px; font-size:15px; line-height:1.65; }
    .booking-copy .mode-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:25px; }
    .mode-row span { padding:9px 12px; font-size:11px; font-weight:800; }
    .booking-sample { padding:25px; }
    .booking-sample .sample-head { display:flex; justify-content:space-between; gap:12px; padding-bottom:17px; }
    .booking-sample .sample-head strong { font-size:17px; letter-spacing:-.04em; }
    .booking-sample .sample-head span { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
    .booking-sample .sample-row { display:grid; grid-template-columns:1fr auto; gap:7px 16px; padding:17px 0; border-top:1px solid; }
    .booking-sample .sample-row strong { font-size:13px; }
    .booking-sample .sample-row span { font-size:11px; }
    .booking-sample .sample-row small { grid-column:1/-1; font-size:10px; }
    a.sample-row { color:inherit; text-decoration:none; transition:padding-left .28s ease,background .28s ease; }
    a.sample-row:hover,a.sample-row:focus-visible { padding-left:8px; background:#ffffff25; }
    .booking-sample .slots { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
    .booking-sample .slots span { padding:9px 11px; font-size:11px; font-weight:700; }
    .booking-sample footer { margin-top:19px; font-size:10px; line-height:1.5; }
    .disclaimer { padding:12px 0 25px; font-size:10px; line-height:1.5; }

    .a { --ink:#26332d; --page:#f6f3e9; --accent:#315f49; color:var(--ink); background:var(--page); font-family:'DM Sans',Arial,sans-serif; }
    .a header { border-bottom:1px solid #d9dbd0; }
    .a .logo i { border:1px solid #476b56; border-radius:10px; color:#476b56; }
    .a .header-cta { border:1px solid #476b56; border-radius:4px; }
    .a .hero { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(42px,6vw,90px); padding:75px 0 98px; }
    .a .eyebrow,.a .section-kicker { color:#52715a; }
    .a .hero h1,.a .hero h2 { max-width:660px; margin:20px 0 21px; font-family:Newsreader,Georgia,serif; font-size:clamp(62px,6.8vw,105px); font-weight:400; line-height:.96; }
    .a .hero-copy>p { max-width:460px; color:#5b675c; font-size:16px; }
    .a .actions { margin-top:27px; }
    .a .button { border-radius:4px; color:#fff; background:var(--accent); }
    .a .quiet { color:var(--accent); }
    .a .hero-note { color:#6d796e; }
    .a .visual { height:590px; border-radius:230px 230px 8px 8px; background:#e7e2d1; }
    .a .visual img { object-position:50% center; }
    .a .visual::after { content:attr(data-badge); position:absolute; right:17px; bottom:18px; padding:10px 13px; border-radius:4px; color:#fff; background:#284736dc; font-size:10px; font-weight:800; letter-spacing:.08em; }
    .a .offer { padding:65px 0 75px; border-top:1px solid #d9dbd0; }
    .a .section-title { font-family:Newsreader,Georgia,serif; font-size:clamp(41px,4.5vw,66px); font-weight:400; }
    .a .service { border:1px solid #d8dfd4; border-radius:7px; background:#fcfaf3; }
    .a .service p,.a .service small,.a .duration { color:#5b6e5e; }
    .a .booking { background:#e9eee5; }
    .a .booking-copy p { color:#5c6c60; }
    .a .mode-row span { border:1px solid #b8cbb8; border-radius:3px; color:#345842; }
    .a .booking-sample { border:1px solid #c9d6c8; border-radius:8px; background:#fcfdf8; box-shadow:18px 18px 0 #d6e1d3; }
    .a .booking-sample header span,.a .booking-sample footer,.a .sample-row small { color:#66816b; }
    .a .sample-row { border-color:#dbe4da; }
    .a .slots span { border:1px solid #c7d8c6; border-radius:3px; color:#466f52; }
    .a .disclaimer { color:#718073; }

    .b { --ink:#182c3a; --page:#f9fbfc; --accent:#245e78; color:var(--ink); background:var(--page); font-family:Manrope,Arial,sans-serif; }
    .b header { border-bottom:1px solid #dfe8ed; }
    .b .logo i { border:1px solid #94b6c5; border-radius:50%; color:#28647d; }
    .b .header-cta { border:1px solid #aec4cd; border-radius:10px; }
    .b .hero { display:grid; grid-template-columns:minmax(0,.91fr) minmax(0,1.09fr); align-items:center; gap:clamp(35px,5vw,77px); padding:78px 0 90px; }
    .b .eyebrow,.b .section-kicker { color:#386b84; }
    .b .hero h1,.b .hero h2,.b .hero h3 { max-width:680px; margin:20px 0 21px; font-size:clamp(58px,5.8vw,87px); font-weight:600; line-height:1.04; }
    .b .hero-copy>p { max-width:475px; color:#5f7380; font-size:16px; }
    .b .actions { margin-top:28px; }
    .b .button { border-radius:11px; color:#fff; background:var(--accent); }
    .b .quiet { color:var(--accent); }
    .b .hero-note { color:#71848d; }
    .b .visual { height:540px; border-radius:24px; background:#e7f1f5; }
    .b .visual img { object-position:63% center; }
    .b .visual::after { content:attr(data-badge); position:absolute; left:20px; bottom:20px; padding:15px 20px; border:1px solid #c9dce6; border-radius:10px; color:#27546a; background:#ffffffeb; box-shadow:0 10px 30px #0c2d4326; font-size:12px; font-weight:800; }
    .b .offer { padding:69px clamp(24px,4vw,64px) 78px; background:#eef4f6; }
    .b .service { border:1px solid #d9e6eb; border-radius:15px; background:#fff; }
    .b .service p,.b .service small,.b .duration { color:#607986; }
    .b .booking-copy p { color:#5f7380; }
    .b .mode-row span { border-radius:100px; color:#2f6580; background:#e9f2f5; }
    .b .booking-sample { border:1px solid #d8e4e9; border-radius:20px; background:#fff; box-shadow:0 24px 60px #193d501c; }
    .b .booking-sample header span,.b .booking-sample footer,.b .sample-row small { color:#6a8796; }
    .b .sample-row { border-color:#dfe9ed; }
    .b .slots span { border-radius:9px; color:#27627e; background:#e9f3f7; }
    .b .disclaimer { color:#788b96; }

    .c { --ink:#16203a; --page:#f8e9da; --accent:#e25135; color:var(--ink); background:var(--page); font-family:Manrope,Arial,sans-serif; }
    .c header { border-bottom:2px solid #1a2641; }
    .c .logo { font-weight:800; text-transform:uppercase; }
    .c .logo i { width:31px; height:31px; border-radius:9px; color:#fff; background:#1a2641; }
    .c .header-cta { border-radius:100px; color:#fff; background:#1a2641; }
    .c .hero { position:relative; min-height:690px; padding:74px 0 80px; }
    .c .hero-copy { position:relative; z-index:2; max-width:660px; }
    .c .eyebrow,.c .section-kicker { color:#b04332; }
    .c .hero h1,.c .hero h2,.c .hero h3 { max-width:710px; margin:20px 0 23px; font-size:clamp(67px,7.4vw,111px); font-weight:800; line-height:.93; }
    .c .hero-copy>p { max-width:440px; font-size:17px; font-weight:600; }
    .c .actions { margin-top:26px; }
    .c .button { border-radius:100px; color:#fff; background:var(--accent); box-shadow:5px 5px 0 #182540; }
    .c .quiet { color:#16203a; }
    .c .hero-note { max-width:425px; color:#60565c; }
    .c .visual { position:absolute; right:-4%; top:67px; width:49%; height:610px; border:8px solid #1a2641; border-radius:190px 10px 190px 10px; background:#e9c1a6; transform:rotate(3deg); }
    .c .visual img { object-position:58% center; }
    .c .visual::after { content:attr(data-badge); position:absolute; right:45px; bottom:38px; padding:11px 16px; border-radius:100px; color:#fff; background:#192640; font-size:11px; font-weight:800; letter-spacing:.04em; }
    .c .offer { position:relative; padding:70px clamp(24px,4vw,64px) 86px; color:#f7eadd; background:#1c2845; }
    .c .offer .section-kicker { color:#ff937a; }
    .c .service { border:1px solid #8290b0; border-radius:20px; background:#273657; }
    .c .service h4 { font-size:29px; }
    .c .service p,.c .service small,.c .duration { color:#d6dcec; }
    .c .booking { background:#f4d4c3; }
    .c .booking-copy p { color:#5d5360; }
    .c .mode-row span { border:1px solid #e65b40; border-radius:100px; color:#993e33; background:#fff0e2; }
    .c .booking-sample { border:2px solid #1a2641; border-radius:20px; background:#fff6ec; box-shadow:10px 10px 0 #1a2641; }
    .c .booking-sample header span,.c .booking-sample footer,.c .sample-row small { color:#825e62; }
    .c .sample-row { border-color:#e9b9a6; }
    .c .slots span { border-radius:100px; color:#fff; background:#e25135; }
    .c .disclaimer { color:#68595c; }

    @media(max-width:960px) {
      .preview .wrap { width:min(100% - 44px,680px); }
      .preview header nav { display:none; }
      .a .hero,.b .hero { grid-template-columns:1fr; gap:42px; padding:62px 0 74px; }
      .a .visual,.b .visual { height:440px; }
      .c .hero { display:flex; flex-direction:column; gap:38px; min-height:0; }
      .c .visual { position:relative; top:auto; right:auto; width:100%; height:440px; transform:none; }
      .booking-grid { grid-template-columns:1fr; }
    }
    @media(max-width:620px) {
      .review { align-items:stretch; flex-direction:column; gap:9px; padding:10px 15px; }
      .review p { display:none; }
      .review nav { justify-content:space-between; }
      .review nav a { flex:1; padding:9px 6px; text-align:center; font-size:10px; }
      .frame { margin:22px auto 50px; scroll-margin-top:132px; }
      .estoc-showcase .frame { scroll-margin-top:68px; }
      .preview [id] { scroll-margin-top:132px; }
      .frame-head { display:block; }
      .frame-head p { margin-top:6px; }
      .preview .wrap { width:calc(100% - 38px); }
      .preview header { min-height:70px; }
      .preview .logo { font-size:17px; }
      .preview .header-cta { min-height:36px; padding:8px 11px; font-size:10px; }
      .a .hero,.b .hero,.c .hero { padding:54px 0 61px; }
      .a .hero h1,.a .hero h2,.b .hero h1,.b .hero h2,.c .hero h1,.c .hero h2 { font-size:clamp(49px,12vw,72px); }
      .a .visual,.b .visual,.c .visual { height:355px; }
      .a .visual { border-radius:140px 140px 7px 7px; }
      .c .visual { border-width:5px; border-radius:120px 8px 120px 8px; }
      .hero-copy>p { font-size:14px !important; }
      .actions { gap:13px; }
      .button { min-height:47px; }
      .offer { padding:56px 0 64px !important; }
      .b .offer,
      .c .offer { padding-inline:clamp(20px,5vw,28px) !important; }
      .section-title { font-size:clamp(38px,10vw,51px) !important; }
      .service-list { grid-template-columns:1fr; }
      .service { min-height:175px; }
      .booking { padding:57px 0 72px; }
      .booking-sample { padding:19px; }
      .a .booking-sample { box-shadow:9px 9px 0 #d6e1d3; }
      .c .booking-sample { box-shadow:6px 6px 0 #1a2641; }
    }
    @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } a.sample-row,.button,.header-cta,.review nav a { transition:none; } }

    .skip-link { position:fixed; z-index:1000; top:12px; left:12px; padding:12px 16px; background:#f9f7f0; color:#18221f; border:2px solid currentColor; border-radius:8px; transform:translateY(-180%); }
    .skip-link:focus-visible { transform:none; outline:3px solid #5b92df; outline-offset:3px; }
    .single .frame { max-width:none; margin:0; padding:0; }
    .single .preview { border:0; border-radius:0; box-shadow:none; }
    .single .review { position:relative; }
    .single .review.stage-review { position:sticky; }

    /* Extensión de página completa: modalidades, recorrido y cierre. */
    .service h3 { margin:18px 0 8px; font-size:24px; letter-spacing:-.045em; }
    .c .service h3 { font-size:29px; }
    .experience { padding:85px 0 94px; }
    .experience-heading { display:grid; grid-template-columns:1fr 1.5fr; gap:10px 55px; align-items:start; margin-bottom:38px; }
    .experience-heading .section-kicker { grid-column:1; }
    .experience-heading .section-title { grid-column:2; grid-row:1 / span 2; max-width:770px; margin:0; }
    .experience-heading p { grid-column:1; max-width:350px; margin:0; font-size:14px; line-height:1.65; }
    .experience-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
    .experience-card { min-height:250px; padding:30px; }
    .experience-card span,.process-step span { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
    .experience-card h3,.experience-card h4 { margin:56px 0 14px; font-size:clamp(28px,3vw,42px); letter-spacing:-.05em; line-height:1.1; }
    .experience-card p { max-width:475px; margin:0; font-size:14px; line-height:1.65; }
    .process { padding:92px 0 104px; }
    .process-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:40px; }
    .process-heading .section-title { max-width:700px; margin:0; }
    .process-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
    .process-step { padding:28px 0 0; border-top:1px solid; }
    .process-step h3,.process-step h4 { margin:43px 0 13px; font-size:clamp(22px,2.4vw,32px); line-height:1.13; letter-spacing:-.045em; }
    .process-step p { max-width:360px; margin:0; font-size:13px; line-height:1.65; }
    .closing { padding:96px 0; }
    .closing-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr); align-items:end; gap:55px; }
    .closing .section-title { margin:0; max-width:850px; }
    .closing p { max-width:360px; margin:0 0 25px; font-size:14px; line-height:1.7; }
    .site-footer { padding:24px 0; }
    .site-footer .wrap { display:flex; align-items:center; justify-content:space-between; gap:20px; }
    .site-footer strong { font-size:14px; text-transform:uppercase; letter-spacing:.02em; }
    .site-footer span { font-size:11px; }
    .site-footer a { font-size:11px; font-weight:700; text-underline-offset:5px; }

    .a .experience { background:#f0efe5; }
    .a .experience-card { border:1px solid #d9dfd2; border-radius:7px; background:#fbfaf4; }
    .a .experience-card span,.a .experience-card p { color:#5e7460; }
    .a .process { background:#f6f3e9; }
    .a .process-step { border-color:#a4b7a5; }
    .a .process-step span,.a .process-step p { color:#607563; }
    .a .closing { color:#f7f7ed; background:#294b3a; }
    .a .closing .section-kicker { color:#bad8b8; }
    .a .closing .button { color:#294b3a; background:#f7f7ed; }
    .a .site-footer { color:#d8e6d6; background:#203a2e; }
    .a .site-footer a { color:#fff; }

    .b .experience { background:#edf4f7; }
    .b .experience-card { border:1px solid #cddfe6; border-radius:17px; background:#fff; }
    .b .experience-card span,.b .experience-card p { color:#5c7581; }
    .b .process { background:#fff; }
    .b .process-step { border-color:#91b2c0; }
    .b .process-step span,.b .process-step p { color:#567687; }
    .b .closing { color:#edf7fa; background:#1c4257; }
    .b .closing .section-kicker { color:#add5e7; }
    .b .closing .button { color:#173c50; background:#e4f0f5; }
    .b .site-footer { color:#cbdfe7; background:#163448; }
    .b .site-footer a { color:#fff; }

    .c .experience { background:#efc4ad; }
    .c .experience-card { border:2px solid #1a2641; border-radius:21px; background:#fff5e8; box-shadow:7px 7px 0 #1a2641; }
    .c .experience-card span { color:#a54536; }
    .c .experience-card p { color:#665763; }
    .c .process { background:#f8e9da; }
    .c .process-step { border-width:2px; border-color:#1a2641; }
    .c .process-step span { color:#b44433; }
    .c .process-step p { color:#665763; }
    .c .closing { color:#fff2e8; background:#1c2845; }
    .c .closing .section-kicker { color:#ff9f89; }
    .c .closing .button { color:#fff; background:#e25135; }
    .c .site-footer { color:#d6ddec; background:#16213b; }
    .c .site-footer a { color:#fff; }
    @media(max-width:960px) {
      .experience-heading { grid-template-columns:1fr; gap:15px; }
      .experience-heading .section-kicker,.experience-heading .section-title,.experience-heading p { grid-column:1; grid-row:auto; }
      .process-heading { display:block; }
      .process-heading .section-title { margin-top:14px; }
      .closing-grid { grid-template-columns:1fr; gap:30px; }
    }
    @media(max-width:620px) {
      .experience,.process,.closing { padding:65px 0 75px; }
      .experience-cards,.process-steps { grid-template-columns:1fr; }
      .experience-card { min-height:205px; padding:24px; }
      .experience-card h3,.experience-card h4 { margin-top:34px; }
      .process-step { padding-top:20px; }
      .process-step h3,.process-step h4 { margin-top:26px; }
      .site-footer .wrap { flex-direction:column; align-items:flex-start; gap:10px; }
    }

    /* Canal secundario opcional de una vista previa de cliente. */
    .contact { padding:85px 0 100px; }
    .contact-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(30px,6vw,85px); }
    .contact-grid>div>p { max-width:430px; font-size:14px; line-height:1.7; }
    .contact-form { display:grid; gap:14px; }
    .contact-form label { display:grid; gap:7px; font-size:12px; font-weight:700; }
    .contact-form input,.contact-form textarea { width:100%; padding:13px 14px; border:1px solid; border-radius:7px; font:inherit; color:#17242a; background:#fff; }
    .contact-form textarea { min-height:130px; resize:vertical; }
    .contact-form .honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
    .contact-form .privacy-note { margin:0; font-size:11px; line-height:1.5; }
    .contact-form button { justify-self:start; padding:13px 21px; border:0; border-radius:7px; font:700 12px Manrope,Arial,sans-serif; cursor:pointer; }
    .contact-form button:disabled { opacity:.6; cursor:wait; }
    .contact-form [role=status] { min-height:1.5em; margin:0; font-size:12px; }
    .contact-form input:focus-visible,.contact-form textarea:focus-visible,.contact-form button:focus-visible { outline:3px solid #5b92df; outline-offset:3px; }
    .a .contact { background:#f0efe5; }
    .a .contact-form input,.a .contact-form textarea { border-color:#a7bca8; }
    .a .contact-form button { color:#fff; background:#315f49; }
    .b .contact { background:#edf4f7; }
    .b .contact-form input,.b .contact-form textarea { border-color:#a6c4cf; }
    .b .contact-form button { color:#fff; background:#245e78; }
    .c .contact { background:#f1cdb9; }
    .c .contact-form input,.c .contact-form textarea { border-color:#8f7083; }
    .c .contact-form button { color:#fff; background:#1a2641; }
    @media(max-width:960px) { .contact-grid { grid-template-columns:1fr; } }
    @media(max-width:620px) { .contact { padding:65px 0 75px; } }

/* Movimiento de navegación compartido por las páginas generadas. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-motion-out .22s ease-in both; }
::view-transition-new(root) { animation: page-motion-in .36s cubic-bezier(.2,.75,.25,1) both; }
@keyframes page-motion-out { to { opacity:0; } }
@keyframes page-motion-in { from { opacity:0; transform:translateY(7px); } }
[data-motion-reveal] { transition:opacity .48s ease-out,transform .48s cubic-bezier(.2,.75,.25,1); }
html.motion-enabled [data-motion-reveal="pending"] { opacity:0; transform:translateY(12px); }
html.motion-enabled [data-motion-reveal="visible"] { opacity:1; }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
  [data-motion-reveal],html.motion-enabled [data-motion-reveal="pending"],html.motion-enabled [data-motion-reveal="visible"] { opacity:1;transform:none;transition:none; }
}
@media (max-width: 660px) {
  html.motion-enabled [data-motion-reveal="pending"] { opacity:1;transform:none; }
}
