:root { --green:#007c0a; --body-text:#002050; --heading:#302d55; --footer:#407239; --container:1480px; background:#fff; color:var(--body-text); font-family:"Courier Prime","Lucida Console",Monaco,monospace; font-size:62.5%; }
* { box-sizing:border-box; }
html, body { min-height:100%; }
body { display:flex; flex-direction:column; min-height:100vh; margin:0; font-size:1.7rem; line-height:1.75; }
a { color:var(--heading); }
h1,h2,h3,h4,h5,h6 { color:var(--heading); font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-weight:700; line-height:1.4; }
h1 { font-size:clamp(3.2rem,4vw,4rem); }
.site-container { width:min(var(--container),calc(100% - 4rem)); margin-inline:auto; }
.site-header { position:relative; z-index:20; background:#fff; border-bottom:1px solid rgba(185,185,185,.4); }
.header-inner { display:flex; align-items:center; gap:3rem; min-height:156px; }
.site-logo { display:flex; flex:0 0 auto; }
.site-logo img { display:block; width:auto; max-height:101px; }
.primary-nav { display:flex; align-items:center; gap:clamp(2rem,3vw,4.5rem); margin-left:auto; }
.primary-nav a { position:relative; color:#131315; font-family:"Inter Tight",Helvetica,Arial,sans-serif; font-size:1.7rem; font-weight:600; line-height:1.5; text-decoration:none; text-transform:uppercase; }
.primary-nav a::after { position:absolute; right:0; bottom:-.6rem; left:0; height:2px; background:var(--green); content:""; transform:scaleX(0); transform-origin:right; transition:transform .2s ease; }
.primary-nav a:hover::after,.primary-nav a:focus-visible::after { transform:scaleX(1); transform-origin:left; }
.header-actions { display:flex; align-items:center; gap:.6rem; }
.icon-link { display:inline-grid; width:3.2rem; height:3.2rem; place-items:center; padding:0; color:#131315; background:transparent; border:0; }
.icon-link svg { width:2rem; height:2rem; fill:currentColor; }
.icon-link:hover { color:var(--green); }
.search-button { border:1px solid rgba(0,32,80,.2); border-radius:8px; background:#fff; }
.search-button:hover,.search-button[aria-expanded="true"] { color:var(--heading); background:#fff; border-color:var(--heading); }
.search-button:disabled { cursor:not-allowed; opacity:.48; }
.site-search { position:absolute; top:calc(100% + .8rem); right:2rem; left:auto; width:min(760px,calc(100% - 4rem)); border:1px solid rgba(0,32,80,.25); border-radius:8px; background:#fff; box-shadow:0 1.2rem 2.4rem rgba(0,32,80,.14); }
.site-search[hidden] { display:none; }
.site-search .site-container { display:flex; flex-direction:column; align-items:stretch; width:100%; padding:1.6rem 1.8rem 1.8rem; }
.site-search label { display:block; margin-bottom:.6rem; color:var(--heading); font-weight:700; text-align:left; }
.site-search input { width:100%; padding:1rem 1.2rem; color:var(--body-text); background:#fff; border:1px solid rgba(0,32,80,.25); border-radius:8px; font:inherit; }
.site-search-results { display:grid; gap:.35rem; max-height:260px; margin-top:1rem; overflow:auto; text-align:left; }
.site-search-results a { padding:.35rem 0; color:var(--heading); text-decoration:none; }
.site-search-results a:hover { color:var(--green); }
.site-search-results a[hidden] { display:none; }
.homepage { padding-block:2rem 7rem; }
.eyebrow { margin:0; color:var(--green); font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-weight:600; }
.homepage h1 { margin-top:.3rem; }
.latest-section { max-width:var(--container); margin-inline:auto; }
.latest-heading-row { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-top:9rem; }
.post-controls { display:flex; align-items:center; gap:.8rem; font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-size:1.35rem; }
.view-toggle { display:flex; border:1px solid rgba(0,32,80,.2); border-radius:8px; overflow:hidden; }
.view-button,.page-size-select { border:0; background:#fff; color:var(--body-text); font:inherit; padding:.75rem 1rem; cursor:pointer; }
.view-button svg { display:block; width:1.8rem; height:1.8rem; fill:currentColor; }
.view-button + .view-button { border-left:1px solid rgba(0,32,80,.2); }
.view-button.is-active { background:var(--heading); color:#fff; }
.page-size-label { margin-left:.8rem; }
.page-size-select { border:1px solid rgba(0,32,80,.2); border-radius:8px; padding-right:2.4rem; }
.post-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3.2rem; margin-top:3.5rem; }
.post-card { overflow:hidden; background:#fff; border:1px solid rgba(0,32,80,.12); border-radius:8px; }
.post-card[hidden] { display:none; }
.post-card-media { display:block; aspect-ratio:16 / 9; overflow:hidden; background:#eef1ed; }
.post-card-media-wrap { position:relative; }
.post-card-media img,.featured-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.post-card:hover .post-card-media img,.featured-slide:hover .featured-media img { transform:scale(1.03); }
.post-card-placeholder { display:block; width:100%; height:100%; background:linear-gradient(135deg,#dce8dc,#f7e5b7); }
.card-share { position:absolute; right:.8rem; bottom:.8rem; display:flex; gap:.4rem; opacity:0; pointer-events:none; transition:opacity .25s ease; }
.post-card:hover .card-share,.post-card:focus-within .card-share { opacity:1; pointer-events:auto; }
.card-share-icon { display:inline-flex; align-items:center; justify-content:center; width:2.8rem; height:2.8rem; padding:0; color:var(--heading); background:rgba(255,255,255,.94); border:1px solid rgba(0,32,80,.25); border-radius:8px; font:inherit; font-size:1.5rem; text-decoration:none; cursor:pointer; }
.card-share-icon:hover,.card-share-icon[aria-expanded="true"] { color:#fff; background:var(--heading); border-color:var(--heading); }
.card-share-menu { position:absolute; right:0; bottom:calc(100% + .5rem); display:flex; gap:.3rem; padding:.4rem; background:rgba(255,255,255,.97); border:1px solid rgba(0,32,80,.25); border-radius:8px; box-shadow:0 .8rem 1.6rem rgba(0,32,80,.16); }
.card-share-menu[hidden] { display:none; }
.card-share-menu a { display:inline-flex; align-items:center; justify-content:center; width:2.7rem; height:2.7rem; color:var(--heading); text-decoration:none; font-size:1.45rem; }
.card-share-menu a:hover { color:var(--green); }
.post-card-body { padding:2rem 2.2rem 2.3rem; }
.post-card-date { margin:0 0 .6rem; color:var(--green); font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-size:1.4rem; font-weight:600; }
.post-card h2 { margin:.2rem 0 1.3rem; font-size:2.2rem; }
.post-card h2 a,.featured-body h3 a { text-decoration:none; }
.post-card-link { color:var(--green); font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-size:1.5rem; font-weight:600; text-decoration:none; }
.post-pagination { display:flex; justify-content:center; gap:.6rem; margin:4rem 0 1rem; }
.page-button { min-width:3.4rem; height:3.4rem; border:1px solid rgba(0,32,80,.2); border-radius:8px; background:#fff; color:var(--heading); font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; cursor:pointer; }
.page-button:hover:not(:disabled),.page-button[aria-current="page"] { background:var(--heading); color:#fff; }
.page-button:disabled { opacity:.35; cursor:default; }
.featured-section { max-width:var(--container); margin:0 auto; }
.section-heading h2 { margin:.2rem 0 2.5rem; font-size:3.2rem; }
.featured-carousel { position:relative; overflow:hidden; }
.featured-slides { position:relative; }
.featured-slide { display:none; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); height:420px; background:#fff; border:1px solid rgba(0,32,80,.12); border-radius:8px; overflow:hidden; }
.featured-slide.is-active { display:grid; }
.featured-media { display:block; min-height:100%; overflow:hidden; background:#eef1ed; }
.featured-body { display:flex; flex-direction:column; justify-content:center; padding:4rem; }
.featured-body h3 { margin:.3rem 0 1.8rem; font-size:3rem; }
.post-excerpt { margin:0 0 1.8rem; color:var(--body-text); }
.featured-navigation { position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 1.2rem; pointer-events:none; }
.carousel-button { width:3.6rem; height:3.6rem; color:var(--heading); background:rgba(255,255,255,.9); border:1px solid rgba(48,45,85,.3); border-radius:8px; font:inherit; cursor:pointer; pointer-events:auto; }
.carousel-button:hover,.carousel-button:focus-visible { color:#fff; background:var(--green); border-color:var(--green); }
.carousel-dots { position:absolute; right:50%; bottom:1.2rem; display:flex; align-items:center; gap:.8rem; transform:translateX(50%); pointer-events:auto; }
.carousel-dot { width:.9rem; height:.9rem; padding:0; background:rgba(48,45,85,.3); border:0; border-radius:50%; cursor:pointer; }
.carousel-dot.is-active { background:var(--green); transform:scale(1.3); }
.post-list { padding:0; list-style:none; }
.post-list li { padding-block:1.6rem; border-bottom:1px solid rgba(0,32,80,.15); }
.post-list a { font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-size:2rem; font-weight:700; text-decoration:none; }
.post-list a:hover { color:var(--green); }
.blog-search { margin:3rem 0 1rem; }
.blog-search label { display:block; margin-bottom:.7rem; color:var(--heading); font-weight:700; }
.blog-search input { width:min(100%,620px); padding:1rem 1.2rem; color:var(--body-text); background:#fff; border:1px solid rgba(0,32,80,.25); border-radius:8px; font:inherit; }
.search-status { min-height:1.7em; margin:.8rem 0 0; color:var(--green); font-size:1.4rem; }
.post-list li[hidden] { display:none; }
.article-page { width:min(820px,calc(100% - 4rem)); margin-inline:auto; padding-block:7rem; }
.article-content > :first-child { margin-top:0; }
.article-date { color:var(--green); font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-size:1.5rem; font-weight:600; }
.article-image { display:block; width:100%; max-height:460px; margin-block:2.5rem 3.5rem; object-fit:cover; }
.article-content img { max-width:100%; height:auto; }
.back-link { display:inline-block; margin-top:3rem; color:var(--green); font-family:"Be Vietnam Pro",Helvetica,Arial,sans-serif; font-weight:600; }
.article-share { display:flex; align-items:center; gap:.7rem; margin-top:3.2rem; padding-top:1.5rem; border-top:1px solid rgba(0,32,80,.15); }
.share-icon { display:inline-flex; align-items:center; justify-content:center; width:3.4rem; height:3.4rem; color:var(--heading); background:#fff; border:1px solid rgba(0,32,80,.2); border-radius:8px; font:inherit; text-decoration:none; cursor:pointer; }
.share-icon { width:3.4rem; font-size:1.8rem; }
.share-icon:hover,.share-icon[aria-expanded="true"] { color:#fff; background:var(--heading); border-color:var(--heading); }
.share-more { position:relative; }
.share-menu { position:absolute; bottom:calc(100% + .8rem); left:0; z-index:5; display:grid; min-width:170px; padding:.5rem; background:#fff; border:1px solid rgba(0,32,80,.25); border-radius:8px; box-shadow:0 1rem 2rem rgba(0,32,80,.14); }
.share-menu[hidden] { display:none; }
.share-menu a,.share-menu button { padding:.65rem .8rem; color:var(--heading); background:none; border:0; font:inherit; text-align:left; text-decoration:none; cursor:pointer; }
.share-menu a:hover,.share-menu button:hover { color:var(--green); background:rgba(0,124,10,.06); }
.share-status { color:var(--green); font-size:1.35rem; }
.legal-draft { padding:1rem 1.4rem; color:#5d4100; background:#fff4cf; border-left:3px solid #d49a00; }
.site-footer { margin-top:auto; background:var(--footer); color:#d9d9d9; }
.instagram-gallery { display:grid; grid-template-columns:repeat(6,1fr); gap:0; width:min(1200px,calc(100% - 4rem)); margin-inline:auto; padding-top:2.6rem; overflow:hidden; background:var(--footer); line-height:0; }
.instagram-gallery a { display:block; aspect-ratio:1; overflow:hidden; background:#2f5e2a; border:1px solid #000; line-height:0; }
.instagram-gallery img { display:block; width:100%; height:100%; object-fit:cover; vertical-align:top; transition:transform .25s ease,opacity .25s ease; }
.instagram-gallery a:hover img { opacity:.8; transform:scale(1.04); }
.footer-copyright { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:1.8rem; padding-block:2.4rem; border-top:1px solid rgba(255,255,255,.1); font-size:1.5rem; text-align:center; }
.footer-legal { display:flex; flex-wrap:wrap; gap:1.8rem; }
.footer-legal a { color:#fff; }
/* Tipografía técnica uniforme en toda la interfaz. */
body, button, select, input, textarea, h1, h2, h3, h4, h5, h6,
.primary-nav a, .post-controls, .post-card-date, .post-card-link,
.post-list a, .article-date, .back-link, .footer-copyright { font-family:"Courier Prime","Courier New",monospace; }
@media (max-width:800px) { :root { font-size:56.25%; } .header-inner { min-height:auto; padding-block:2.2rem; flex-wrap:wrap; gap:1.8rem; } .site-logo img { max-height:75px; } .primary-nav { order:3; width:100%; justify-content:space-between; gap:1rem; } .header-actions { margin-left:auto; } .latest-heading-row { align-items:flex-start; flex-direction:column; } .post-controls { width:100%; flex-wrap:wrap; } .featured-slide { height:460px; grid-template-columns:1fr; grid-template-rows:245px 1fr; } .featured-media { min-height:0; } .featured-body { padding:2.8rem; } }
@media (max-width:700px) { .post-grid { grid-template-columns:1fr; } }
[data-post-list][data-view="list"] { grid-template-columns:1fr; gap:1.4rem; }
[data-post-list][data-view="list"] .post-card { display:grid; grid-template-columns:240px 1fr; }
[data-post-list][data-view="list"] .post-card[hidden] { display:none; }
[data-post-list][data-view="list"] .post-card-media { aspect-ratio:auto; min-height:170px; }
[data-post-list][data-view="list"] .post-card-body { padding:1.5rem 2rem; }
@media (max-width:700px) { [data-post-list][data-view="list"] .post-card { grid-template-columns:1fr; } [data-post-list][data-view="list"] .post-card-media { min-height:0; aspect-ratio:16 / 9; } }
@media (hover:none) { .card-share { opacity:1; pointer-events:auto; } }
@media (max-width:480px) { :root { font-size:50%; } .site-container { width:min(var(--container),calc(100% - 3rem)); } .primary-nav a { font-size:1.5rem; } .instagram-gallery { grid-template-columns:repeat(2,1fr); } }
