@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/open-sans-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/open-sans-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/open-sans-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/open-sans-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Adaptación de la plantilla AS 002071 del sitio original de SIDSEI. */
.public-site{font-family:Tahoma,Geneva,Arial,sans-serif;font-size:14px;color:#555;background:#fefefe;line-height:1.6}
.public-site *{box-sizing:border-box}.public-site [hidden]{display:none!important}.public-site img{max-width:100%;height:auto}.public-site .container{width:1170px;max-width:calc(100% - 40px)}
.public-site a:focus-visible,.public-site button:focus-visible{outline:3px solid #125e99;outline-offset:4px}.skip-link{position:fixed;top:-100px;left:12px;z-index:1000;background:white;padding:12px}.skip-link:focus{top:12px}
#top-row .site-heading{display:flex;align-items:center;justify-content:space-between;padding:30px 0;gap:32px}.site-logo{display:block;flex-shrink:0}.site-logo img{display:block;width:280px}.site-contact{text-align:right;color:#000;font-family:Arial,sans-serif;font-size:16px}.site-contact strong{display:block;font-size:19px;line-height:1.4;margin-bottom:3px}.site-contact p{margin:0;padding:0;text-align:inherit;line-height:1.65}.site-contact a{color:#0c359c;font-weight:bold}.social-links{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.social-links img{width:25px;height:25px;object-fit:contain}
#header-row .site-navigation{background:#1a1a1a;border-top:0;border-bottom:6px solid #363f45}.site-navigation ul{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.site-navigation a{display:block;padding:13px 17px;color:#eee;font-size:14px;border-right:1px solid #444}.site-navigation a:hover,.site-navigation a[aria-current]{background:#444;color:white}.menu-toggle{background:#222;color:white;padding:12px 18px;font:inherit;width:100%;text-align:left;cursor:pointer}
#slider-row{padding:10px 0 35px}.site-carousel{position:relative;background:#111;overflow:hidden}.site-slide img{display:block;width:100%;aspect-ratio:1200/600;object-fit:cover}
.public-site .site-content{padding-top:40px;padding-bottom:60px;min-height:45vh}.service-intro{text-align:center;margin-bottom:45px}.service-intro h1{font:800 40px/1.15 "Open Sans",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#232a33;margin:0 0 23px}.service-intro p{text-align:center;padding:0;font:400 24px/1.6 "Open Sans",Arial,sans-serif;text-transform:uppercase;letter-spacing:.05em}.service-intro a{color:#0c359c;font-weight:bold}.services-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px 30px}.service-card h2{font:600 24px/1.375 "Open Sans",Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px}.service-card h2 a{color:#1caffc}.service-card img{width:100%;height:225px;object-fit:contain;display:block;margin:0 0 18px}.service-card p{padding:0;font:18px/1.6 Arial,sans-serif;color:#333;margin:0}.service-detail{font:17px/1.8 Arial,sans-serif;overflow:auto}.site-content h1{color:#232a33}.service-detail h1{margin-bottom:24px}.detail-photo{float:right;width:40%;max-height:360px;object-fit:contain;margin:0 0 25px 30px}.breadcrumb{background:transparent;padding:0;margin-bottom:20px;font-size:14px}.service-contact{clear:both;padding-top:25px;display:flex;flex-wrap:wrap;gap:14px}.contact-button{display:inline-block;padding:10px 20px;background:#0c359c;color:white}.contact-button:hover{background:#232a33;color:white}.contact-button.secondary{background:#555}.gallery-tabs{display:flex;gap:12px;margin:20px 0 30px;flex-wrap:wrap}.gallery-tabs a{padding:9px 16px;border:1px solid #ccc;color:#333}.gallery-tabs a[aria-current]{background:#333;color:white}.photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.photo-gallery a{display:block;background:#eee}.photo-gallery img{width:100%;height:260px;object-fit:cover;display:block}
.photo-dialog{position:fixed;inset:0;margin:auto;padding:45px 20px 20px;background:#171717;color:#fff;width:960px;max-width:95vw;max-height:95vh;border:0;overflow:auto}.photo-dialog::backdrop{background:rgba(0,0,0,.85)}.photo-dialog>img{display:block;max-height:70vh;margin:auto;object-fit:contain}.photo-dialog [data-close]{position:absolute;right:12px;top:3px;background:transparent;color:white;font-size:34px;padding:5px;cursor:pointer}.photo-dialog p{text-align:center;margin:10px}.photo-controls{display:flex;justify-content:space-between}.photo-controls button{padding:8px 14px;background:#eee;color:#111;cursor:pointer;font:inherit}body.photo-open{overflow:hidden}#copyright-row p{margin:0;padding:0}#copyright-row a{color:#ddd}.back-top{position:fixed;bottom:20px;right:20px;background:#333;color:white;padding:8px 15px;font-size:22px;z-index:10}

/* Bootstrap's clearfix pseudo-elements must not become flex children. */
#top-row .site-heading::before,
#top-row .site-heading::after {
    content: none;
    display: none;
}
.site-contact { max-width: 650px; }
.site-contact p + p { margin-top: 6px; }
.social-links { margin-top: 10px; }
.site-navigation li { list-style: none; }
.public-site h1,
.public-site h2,
.public-site h3 { font-family: "Open Sans", Arial, sans-serif; }
.service-intro h1,
.service-card h2 { padding-bottom: 0; }
.service-detail > p { margin-bottom: 20px; padding-bottom: 0; }

@media(max-width:1199px){.public-site .container{width:940px}.site-navigation a{padding:12px 13px;font-size:13px}}
/* Tablet: avoid squeezing three service columns into a narrow viewport. */
@media (min-width: 768px) and (max-width: 979px) {
    .site-logo img { width: 200px; }
    .site-contact strong { font-size: 17px; }
    .services-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-intro h1 { font-size: 32px; }
}

@media (max-width: 767px) {
    /* Undo Bootstrap 2's body gutters; each section owns its spacing. */
    body.public-site { padding: 0; }
    .public-site .container {
        width: calc(100% - 36px);
        max-width: none;
        margin-inline: auto;
    }
    #header { background-size: auto 240px; }
    #top-row .site-heading {
        flex-direction: column;
        gap: 12px;
        padding: 20px 0 16px;
    }
    .site-logo img { width: 156px; }
    .site-contact { width: 100%; max-width: 360px; text-align: center; font-size: 13px; }
    .site-contact strong { font-size: 15px; line-height: 1.45; margin-bottom: 4px; }
    .site-contact p + p { margin-top: 6px; }
    .site-contact a[href^="tel:"] { display: inline-block; padding: 4px 0; font-size: 16px; }
    .social-links { justify-content: center; gap: 8px; margin-top: 2px; }
    .social-links a { display: grid; place-items: center; width: 44px; height: 44px; }
    .social-links img { width: 28px; height: 28px; }

    #header-row .site-navigation { width: 100%; border-bottom-width: 3px; }
    .menu-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 48px;
        padding: 12px 18px;
        font-size: 15px;
        line-height: 1.5;
    }
    .menu-toggle::after { content: "+"; font-size: 22px; }
    .menu-toggle[aria-expanded="true"]::after { content: "−"; }
    .site-navigation ul { display: block; }
    .site-navigation li { margin: 0; padding: 0; }
    .site-navigation a { min-height: 48px; padding: 12px 18px; font-size: 14px; border-right: 0; border-bottom: 1px solid #444; }
    .site-navigation.is-enhanced ul:not(.is-open) { display: none; }

    #slider-row { padding: 0; }
    #slider-row .container { width: 100%; }
    .site-slide img { aspect-ratio: 2 / 1; object-fit: cover; }

    .public-site .site-content { padding-top: 30px; padding-bottom: 36px; min-height: 0; }
    .service-intro { margin-bottom: 30px; }
    .public-site .site-content h1 { font-size: clamp(23px, 6vw, 28px); line-height: 1.3; letter-spacing: .01em; overflow-wrap: break-word; }
    .service-intro h1 { margin-bottom: 16px; }
    .service-intro p { text-align: center; padding: 0; font-size: 16px; line-height: 1.65; text-transform: none; letter-spacing: 0; }
    .service-intro a { display: inline-block; padding: 6px 0; font-size: 20px; }
    .services-list { grid-template-columns: 1fr; gap: 28px; }
    .service-card { min-width: 0; padding-bottom: 28px; border-bottom: 1px solid #e7ebee; }
    .service-card:last-child { border-bottom: 0; padding-bottom: 0; }
    .service-card h2 { font-size: 21px; line-height: 1.35; letter-spacing: .02em; margin-bottom: 14px; }
    .service-card img { width: 100%; height: 210px; object-fit: contain; margin-bottom: 14px; }
    .service-card p { font-size: 16px; line-height: 1.7; }

    .service-detail { font-size: 16px; line-height: 1.7; }
    .detail-photo { float: none; width: 100%; height: 220px; object-fit: contain; margin: 0 0 24px; }
    .service-contact { gap: 12px; padding-top: 16px; }
    .contact-button { width: 100%; min-height: 48px; padding: 12px; text-align: center; }
    .gallery-tabs { gap: 8px; margin: 16px 0 24px; }
    .gallery-tabs a { flex: 1 1 130px; min-height: 46px; padding: 10px; text-align: center; }
    .photo-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .photo-gallery img { height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
    .photo-dialog { width: calc(100% - 24px); max-width: none; padding: 48px 12px 16px; }
    .photo-dialog > img { max-height: 60svh; }
    .photo-dialog [data-close] { width: 44px; height: 44px; line-height: 1; }
    .photo-controls { gap: 12px; }
    .photo-controls button { min-height: 44px; }
    #copyright-row { padding: 24px 0; }
    #copyright-row p { text-align: center; font-size: 12px; }
    #copyright-row a { display: inline-block; padding: 8px 12px; }
    .back-top { bottom: 12px; right: 12px; width: 44px; height: 44px; padding: 4px; text-align: center; }
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
