/* Dunebeacon — Pliego de Arena */
:root{--arena:#FCFBF8;--lino:#F6F2EA;--duna:#EBE4D8;--ocre:#B4703C;--salvia:#5F7360;--indigo:#2A3F5F;--tinta:#1D2126;--font-display:'Newsreader',serif;--font-body:'Public Sans',sans-serif;--font-mono:'IBM Plex Mono',monospace}
body{font-family:var(--font-body);background:var(--arena);color:var(--tinta)}
h1,h2,h3{font-family:var(--font-display);color:var(--indigo);line-height:1.2;margin-bottom:.75rem}
.folio,.folio-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--salvia)}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
@media(max-width:768px){.hero-grid{grid-template-columns:1fr}.main-nav ul{display:none;position:absolute;top:100%;left:0;right:0;background:var(--arena);flex-direction:column;padding:1rem;border-bottom:1px solid var(--duna)}.main-nav.is-open ul{display:flex}.nav-toggle{display:block;margin-left:auto;background:none;border:1px solid var(--duna);padding:.4rem .8rem;cursor:pointer}}
@media(min-width:769px){.nav-toggle{display:none}}
.section--lino{background:var(--lino)}
.editorial{display:grid;grid-template-columns:180px 1fr;gap:2rem}
.marginalia{font-family:var(--font-mono);font-size:.78rem;color:var(--salvia);border-left:2px solid var(--ocre);padding-left:1rem}
@media(max-width:768px){.editorial{grid-template-columns:1fr}}
.diptico{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.5rem 0}
.diptico article{background:var(--lino);padding:1rem;border:1px solid var(--duna)}
@media(max-width:768px){.diptico{grid-template-columns:1fr}}
.lista-editorial{list-style:none;padding:0}
.lista-editorial li{padding:.75rem 0;border-bottom:1px solid var(--duna)}
.figure-wide img{border:1px solid var(--duna);margin:1rem 0}
.figure-inline{float:left;max-width:min(260px,45%);margin:0 1.5rem 1rem 0}
.figure-inline img{max-height:520px;width:100%;object-fit:contain;object-position:left center;border:1px solid var(--duna);margin:0}
.figure-inline~.figure-inline{clear:both;float:none;max-width:100%;margin:1.5rem 0}
.figure-inline~.figure-inline img{max-height:480px;object-fit:cover;object-position:center}
.prose::after{content:'';display:table;clear:both}
@media(max-width:768px){.figure-inline{float:none;max-width:100%;margin:1rem 0}}
.calendario-strip{overflow-x:auto;margin:2rem 0;padding:1rem 0;border-top:1px solid var(--duna);border-bottom:1px solid var(--duna)}
.calendario-track{display:flex;gap:2rem;min-width:max-content;font-family:var(--font-mono);font-size:.85rem}
.calendario-track span{padding:.5rem 1rem;background:var(--lino);border:1px solid var(--duna)}
.faq{border:1px solid var(--duna);margin-bottom:.5rem;padding:1rem;background:var(--arena)}
.faq summary{cursor:pointer;font-weight:600;color:var(--indigo)}
.faq-answer,.faq p{margin-top:.75rem;color:var(--salvia)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
@media(max-width:768px){.contact-grid{grid-template-columns:1fr}}
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:.85rem;margin-bottom:.25rem;color:var(--salvia)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.6rem;border:1px solid var(--duna);background:var(--arena);font-family:var(--font-body)}
.form-check{display:flex;gap:.5rem;align-items:flex-start;margin:1rem 0;font-size:.9rem}
.hp-field{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-alert{padding:1rem;margin-bottom:1rem;border:1px solid var(--duna)}
.form-alert--ok{background:#eef5ee;border-color:var(--salvia)}
.form-alert--error{background:#fdf0ea;border-color:var(--ocre)}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;padding-bottom:1.5rem}
.footer-grid ul{list-style:none;font-size:.9rem}
.footer-grid h4{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--salvia);margin-bottom:.5rem}
.footer-bottom{border-top:1px solid var(--duna);padding-top:1rem;font-size:.8rem;color:var(--salvia)}
.map-compact iframe,.map-full iframe{display:block;width:100%;border:0}
.map-full iframe{min-height:420px}
.map-compact iframe{min-height:200px}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s,transform .6s}
.reveal.is-visible{opacity:1;transform:none}
.cookie-inner{max-width:1140px;margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.cookie-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.cookie-actions button{padding:.5rem 1rem;cursor:pointer;border:1px solid var(--duna);background:var(--lino)}
.btn-accept{background:var(--ocre)!important;color:var(--arena)!important;border-color:var(--ocre)!important}
.cookie-modal{position:fixed;inset:0;background:rgba(29,33,38,.5);display:none;align-items:center;justify-content:center;z-index:2100}
.cookie-modal.is-open{display:flex}
.cookie-modal-box{background:var(--arena);padding:1.5rem;max-width:400px;width:90%;border:1px solid var(--duna)}
.cookie-modal label{display:block;margin:.5rem 0}
.cookie-modal-actions{margin-top:1rem;display:flex;gap:.5rem;justify-content:flex-end}
.container{max-width:1140px;margin:0 auto;padding:0 clamp(1.25rem,5vw,2rem)}
.header-nav .container{position:relative}
a{color:var(--ocre);text-decoration:none;transition:color .15s}
a:hover,a:focus-visible{color:#8B5630;text-decoration:underline;text-underline-offset:2px}
a:focus-visible{outline:2px solid var(--ocre);outline-offset:2px}
.main-nav a{color:var(--indigo);text-decoration:none}
.main-nav a:hover,.main-nav a:focus-visible{color:var(--ocre)}
.main-nav a.is-active{color:var(--ocre)}
.logo{color:var(--tinta);text-decoration:none}
.logo:hover,.logo:focus-visible{color:var(--tinta);text-decoration:none}
.btn--ocre{color:var(--arena)!important;text-decoration:none!important}
.btn--ocre:hover,.btn--ocre:focus-visible{background:#8B5630!important;color:var(--arena)!important}
.section--lino a,.site-footer a,.prose a,.form-check a{color:var(--ocre)}
.diptico article a{color:var(--ocre)}
.diptico article p{color:var(--tinta)}
.footer-grid a{color:var(--ocre)}
.footer-grid a:hover,.footer-grid a:focus-visible{color:#8B5630}
.footer-bottom a{color:var(--ocre)}
.faq summary:hover,.faq summary:focus-visible{color:var(--ocre)}
.faq p,.faq-answer{color:var(--tinta)}
.faq a{color:var(--ocre)}
.cookie-banner{color:var(--arena)}
.cookie-banner a{color:#F0C896}
.cookie-banner a:hover,.cookie-banner a:focus-visible{color:var(--arena)}
.cookie-actions button{color:var(--tinta);transition:background .15s,border-color .15s,color .15s}
.cookie-actions button:hover,.cookie-actions button:focus-visible{border-color:var(--ocre);color:var(--indigo)}
.btn-accept:hover,.btn-accept:focus-visible{background:#8B5630!important;border-color:#8B5630!important;color:var(--arena)!important}
.cookie-modal a{color:var(--ocre)}
.nav-toggle{color:var(--indigo);transition:border-color .15s,color .15s}
.nav-toggle:hover,.nav-toggle:focus-visible{border-color:var(--ocre);color:var(--ocre)}
.hero-figure img,.diptico article img,.contact-info figure img,.figure-wide img,figure:not(.figure-inline) img{max-height:480px;width:100%;object-fit:cover;object-position:center;border:1px solid var(--duna)}
.diptico article img{margin-bottom:.75rem}
.section--supplement{background:var(--lino);border-top:1px solid var(--duna)}
.section--supplement .prose p{color:var(--salvia);font-size:.95rem}
.page-hero a:not(.btn){color:var(--ocre);font-weight:600}
.page-hero a:not(.btn):hover{color:#8B5630}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}