/* Main shared stylesheet for subpages */
:root{
  --primary:#f2f6fb;
  --primary-dark:#071827;
  --secondary:#0d4f8b;
  --secondary-light:#1975b8;
  --accent:#1f77b4;
  --accent-light:#4aa0e0;
  --side-menu-width: 220px;
  --light-bg:#ffffff;
  --light-bg-alt:#eef4fb;
  --text-dark:#0f172a;
  --text-gray:#4b5563;
  --border:#d9e2ec;
  --shadow:rgba(15,23,42,0.12);
}

html,body{height:100%;}
body{font-family:Inter,system-ui,Arial,sans-serif;background:linear-gradient(180deg,#f6f9fd,#eef4fb);color:var(--text-dark);margin:0}

/* Corporate typographic scale and refined palette */
:root{
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  --base-size: 16px;
  --scale-ratio: 1.125;
  --muted: #6b7280;
  --panel-bg: linear-gradient(180deg,#ffffff, #fbfdff);
}

html{font-size:var(--base-size);}
body{font-family:var(--font-sans);line-height:1.65;color:var(--text-dark);}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:0.8rem 1.2rem;border-radius:10px;border:0;font-weight:700;cursor:pointer;}
.btn-primary{background:linear-gradient(135deg,var(--secondary),var(--accent));color:white;box-shadow:0 10px 30px rgba(31,119,180,0.15);}
.btn-secondary{background:transparent;color:var(--secondary);border:1px solid rgba(13,79,139,0.08);}
.btn:focus{outline:3px solid rgba(31,119,180,0.12);outline-offset:4px;}

/* Hero layout */
.hero{padding:4rem 1rem;min-height:440px;display:flex;align-items:center;justify-content:center;}
.hero-inner{max-width:1200px;width:100%;display:grid;grid-template-columns:1fr 480px;gap:36px;align-items:center;}
.hero-content{background:transparent;padding:0;}
.hero h1{font-size:2.6rem;line-height:1.05;margin-bottom:0.6rem;}
.hero-subtitle{color:var(--muted);font-size:1.05rem;margin-bottom:1.25rem;}
.hero-badge{display:inline-block;padding:6px 12px;border-radius:999px;background:rgba(13,79,139,0.06);color:var(--secondary);font-weight:700;margin-bottom:14px;}
.hero-illustration{display:block;width:100%;height:auto;border-radius:16px;overflow:hidden;background:var(--panel-bg);box-shadow:0 14px 40px rgba(11,34,56,0.06);padding:18px;}
.hero-illustration img{display:block;width:100%;height:100%;object-fit:contain;}

@media(max-width:980px){.hero-inner{grid-template-columns:1fr 360px;}}
@media(max-width:720px){.hero-inner{grid-template-columns:1fr;gap:18px;}.hero{padding:2.5rem 1rem;}.hero h1{font-size:1.8rem;}.hero-illustration{order:-1;}}

/* Container */
.site-main{max-width:1100px;margin:28px auto;padding:28px;background:var(--light-bg);border-radius:12px;box-shadow:0 10px 30px var(--shadow)}

/* Header */
header{display:flex;align-items:center;justify-content:space-between;padding:22px 28px;max-width:1100px;margin:18px auto 0}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text-dark)}
.logo-mark{width:56px;height:56px}
.logo-text{display:flex;flex-direction:column}
.logo-main{font-weight:700;letter-spacing:0.6px}
.logo-subtitle{font-size:12px;color:var(--text-gray);margin-top:2px}

/* Header logo image (uses uploaded asset) */
.header-logo{width:56px;height:auto;display:block;flex-shrink:0}
.main-nav a{margin:0 10px;color:var(--text-gray);text-decoration:none}
.main-nav a:hover{color:var(--secondary)}
.cta-header{display:flex;gap:10px;align-items:center}
.email-btn,.whatsapp-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:var(--light-bg);border:1px solid rgba(15,23,42,0.04);text-decoration:none;color:var(--text-dark)}

/* Portafolio */
.portafolio{padding:28px 24px;background:transparent}
.portafolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;max-width:1100px;margin:0 auto}
.portafolio-card{background:var(--light-bg);border-radius:12px;padding:16px;border:1px solid rgba(15,23,42,0.06);box-shadow:0 10px 30px rgba(15,23,42,0.06)}
.portafolio-thumb{height:110px;display:flex;align-items:center;justify-content:center;font-size:2.4rem;border-radius:8px;background:linear-gradient(135deg,var(--secondary),var(--accent));color:white;margin-bottom:12px}

/* Footer */
.footer{max-width:1100px;margin:36px auto;padding:22px;border-radius:12px;background:linear-gradient(180deg,rgba(13,79,139,0.06),rgba(31,119,180,0.03));display:flex;justify-content:space-between;gap:12px;align-items:center}
.footer .col{display:flex;flex-direction:column;gap:6px}
.footer a{color:var(--text-gray);text-decoration:none}
.footer a:hover{color:var(--secondary)}

/* Utilities */
.section-title{font-size:1.25rem;margin:0 0 6px}
.section-subtitle{color:var(--text-gray);margin:0 0 14px}

/* Constrain section titles for better line length */
.section-title{max-width:920px;margin-left:auto;margin-right:auto;font-size:1.9rem}
.section-subtitle{max-width:920px;margin-left:auto;margin-right:auto}

/* Hero heading width control */
.hero h1{max-width:960px;margin-left:auto;margin-right:auto}

@media(max-width:720px){
  .logo-mark{width:44px;height:44px}
  header{padding:12px 18px}
  .portafolio-thumb{height:88px}
  .footer{flex-direction:column;align-items:flex-start}
}

/* Subpage content responsive fixes */
.site-main{box-sizing:border-box;max-width:920px;margin:28px auto;padding:28px;background:transparent}
@media(max-width:920px){
  .site-main{max-width:100%;padding:16px;margin:12px}
  .page-content{padding-left:0;padding-right:0}
  header{padding:12px}
}

/* About / Quiénes somos */
.about{max-width:1100px;margin:28px auto;padding:28px;background:transparent}
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:12px}
.about-card{background:var(--light-bg);padding:18px;border-radius:12px;border:1px solid var(--border);box-shadow:0 8px 24px rgba(15,23,42,0.04)}
.about-card h3{margin-bottom:8px}

/* Clientes */
.clientes{max-width:1100px;margin:28px auto;padding:28px 24px;background:transparent}
.clientes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;align-items:center}
.client-logo{background:var(--light-bg);padding:18px;border-radius:10px;text-align:center;border:1px solid rgba(15,23,42,0.04);box-shadow:0 8px 20px rgba(15,23,42,0.04)}

@media(max-width:900px){
  .about-grid{grid-template-columns:1fr}
}

/* Layout with left sidebar menu for services (fixed on desktop) */
.layout-with-sidebar{position:relative;max-width:1200px;margin:0 auto;padding:0 24px;padding-left:calc(var(--side-menu-width) + 40px)}

/* Fixed side menu aligned to the centered content area */
.side-menu{
  position:fixed;
  top:88px;
  left:24px; /* anchor to viewport left to avoid centering math that caused overlap */
  width:var(--side-menu-width);
  height:calc(100vh - 120px);
  overflow:auto;
  padding-bottom:48px;
  z-index:40;
}
.side-menu{
  background: var(--light-bg);
  border: 1px solid rgba(15,23,42,0.04);
  padding: 12px;
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(15,23,42,0.05);
}
.side-menu .palette{flex-direction:column;gap:12px;padding:12px;background:transparent}
.side-menu .card{min-width:0;width:100%;padding:10px 12px;border-radius:10px;justify-content:flex-start;font-size:0.98rem}
.side-menu .card .card-emoji{width:36px;height:36px;font-size:1.1rem}
.side-menu .card .card-emoji{width:40px;height:40px;font-size:1.2rem}
.side-menu .card.external{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:white}
.content-area{padding:0 0 28px;max-width:820px;margin-left:0}

/* Desktop specific: ensure content sits to the right of the fixed menu */

@media(min-width:921px){
  .layout-with-sidebar{padding-left:calc(var(--side-menu-width) + 56px)}
}

/* Offset the whole page content so fixed side-menu doesn't overlap */
@media(min-width:921px){
  .page-content{padding-left:calc(var(--side-menu-width) + 56px)}
}

/* Small screens: revert to stacked layout and toggleable menu */
@media(max-width:920px){
  .layout-with-sidebar{padding-left:0}
  .side-menu{position:relative;top:0;left:0;width:100%;height:auto;margin-bottom:18px}
  .side-menu .palette{flex-direction:row;overflow:auto}
  .side-toggle{display:inline-flex}
}

/* Side menu toggle for small screens */
.side-toggle{display:none;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;border:0;background:var(--secondary);color:#fff;font-weight:700;cursor:pointer}
.side-toggle:focus{outline:3px solid rgba(31,119,180,0.16);outline-offset:3px}

@media(max-width:920px){
  .side-toggle{display:inline-flex}
  /* hide side menu by default on small screens, show when layout has .side-open */
  .layout-with-sidebar .side-menu{display:none}
  .layout-with-sidebar.side-open .side-menu{display:block}
  .layout-with-sidebar.side-open .side-menu .palette{flex-direction:column}
}

/* Paletas styles (merged from styles/paletas.css) */
*{box-sizing:border-box}
.container{max-width:1100px;margin:0 auto;padding:0 24px}
h1,h2{margin:0 0 12px}
.palette{display:flex;gap:12px;overflow:auto;padding:12px 4px 16px;background:transparent}
.card{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;justify-content:flex-start;min-width:150px;padding:12px 18px;border-radius:12px;background:var(--light-bg);box-shadow:0 6px 18px rgba(15,22,39,0.06);text-decoration:none;color:var(--text-dark);font-weight:700;border:1px solid rgba(15,22,39,0.04);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(15,22,39,0.08)}
.card.external{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:white;border:1px solid rgba(0,0,0,0.06)}
.card .card-emoji{font-size:1.45rem;line-height:1;display:inline-block;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:rgba(15,23,42,0.04)}
.card.external .card-emoji{background:rgba(255,255,255,0.12)}
.note{color:var(--text-gray);margin-top:18px}

/* responsive paletas */
@media (max-width:920px){
  .card{min-width:140px;padding:10px 14px}
  .card .card-emoji{width:30px;height:30px}
}
@media (max-width:480px){
  .palette{gap:10px}
  .card{min-width:120px;padding:10px}
}

/* keyboard focus */
.card:focus{outline:3px solid rgba(31,119,180,0.16);outline-offset:4px}

/* Tooltip styling for cards using data-tooltip */
.card[data-tooltip]{position:relative}
.card[data-tooltip]::after{
  content:attr(data-tooltip);
  position:absolute;
  left:50%;
  transform:translateX(-50%) translateY(-8px);
  bottom:100%;
  white-space:nowrap;
  background:rgba(2,6,23,0.92);
  color:#fff;
  padding:6px 10px;
  border-radius:8px;
  font-size:0.85rem;
  opacity:0;
  pointer-events:none;
  transition:opacity .12s ease,transform .12s ease;
  z-index:30;
}
.card[data-tooltip]::before{
  content:'';
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:100%;
  width:8px;height:8px;background:rgba(2,6,23,0.92);border-radius:2px;transform-origin:center;opacity:0;z-index:30;transform:translateX(-50%) translateY(-4px) rotate(45deg);
}
.card[data-tooltip]:hover::after,
.card[data-tooltip]:hover::before,
.card[data-tooltip]:focus::after,
.card[data-tooltip]:focus::before{
  opacity:1;transform:translateX(-50%) translateY(-12px);
}

/* Skip link for keyboard users */
.skip-link{
  position:fixed;
  top:12px;
  left:12px;
  background:var(--secondary);
  color:#fff;
  padding:8px 12px;
  border-radius:8px;
  z-index:9999;
  transform:translateY(-120%);
  transition:transform .18s ease,opacity .18s ease;
  opacity:0;
  text-decoration:none;
}
.skip-link:focus{transform:translateY(0);opacity:1;outline:3px solid rgba(31,119,180,0.16);outline-offset:3px}

/* Better visible focus for keyboard users */
.card:focus-visible{outline:3px solid rgba(13,79,139,0.18);outline-offset:4px}

/* Improve horizontal palette scrolling appearance on small devices */
.palette{scrollbar-width:thin}
.palette::-webkit-scrollbar{height:8px}
.palette::-webkit-scrollbar-thumb{background:rgba(13,79,139,0.12);border-radius:8px}
