/* Signal Atlas: cartographic editorial system; ink blue, mineral paper, and Kauri Signal orange. */
:root { --ink:#101c2a; --ink-soft:#263646; --paper:#f3f1e9; --sand:#e7e1d5; --signal:#ff5a36; --white:#fffdf8; --line:rgba(16,28,42,.18); --display:Georgia, 'Times New Roman', serif; --body:'Trebuchet MS', Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--body); font-size:16px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:3px solid var(--signal); outline-offset:3px; }
.site-header { position:absolute; inset:0 0 auto; z-index:20; color:var(--white); }
.site-header.light-header { position:relative; color:var(--ink); border-bottom:1px solid var(--line); }
.navbar { min-height:86px; padding:0; }
.brand { display:inline-flex; align-items:center; gap:12px; font-size:19px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.brand-mark { position:relative; width:25px; height:25px; display:inline-block; background:var(--signal); box-shadow:inset 0 0 0 6px rgba(255,253,248,.88); }
.brand-mark::after { content:''; position:absolute; left:-4px; right:-4px; top:10px; height:5px; background:var(--ink); }
.site-header:not(.light-header) .brand-mark::after { background:var(--white); }
.nav-link { padding:8px 16px!important; font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; opacity:.78; transition:opacity .18s ease, color .18s ease; }
.nav-link:hover, .nav-link.active { opacity:1; color:var(--signal); }
.nav-cta { margin-left:13px; border:1px solid currentColor; opacity:1; }
.nav-cta:hover { background:var(--signal); color:var(--white); border-color:var(--signal); }
.nav-toggle { border:0; padding:10px 0; width:34px; display:flex; flex-direction:column; gap:6px; align-items:stretch; }
.nav-toggle span { display:block; height:2px; background:currentColor; }
.hero-section { min-height:720px; position:relative; display:flex; align-items:flex-end; color:var(--white); overflow:hidden; background:var(--ink); }
.hero-image { position:absolute; inset:0; background:url('../images/xamudero-hero.jpg') center/cover no-repeat; transform:scale(1.015); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,21,34,.92) 0%,rgba(10,21,34,.7) 45%,rgba(10,21,34,.2) 100%),linear-gradient(0deg,rgba(10,21,34,.7),transparent 58%); }
.hero-content { position:relative; z-index:1; max-width:860px; padding-top:180px; padding-bottom:95px; }
.eyebrow { margin:0 0 20px; color:var(--ink-soft); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.eyebrow span { color:var(--signal); margin-right:10px; }
.eyebrow.light { color:rgba(255,253,248,.75); }
.eyebrow.light span { color:var(--signal); }
h1,h2,h3 { font-family:var(--display); font-weight:600; line-height:.98; letter-spacing:-.045em; }
.hero-section h1 { margin:0; max-width:780px; font-size:clamp(52px,7.1vw,104px); }
.hero-copy { max-width:510px; margin:28px 0 37px; color:rgba(255,253,248,.86); font-size:19px; line-height:1.55; }
.button { display:inline-flex; gap:14px; align-items:center; justify-content:center; padding:15px 20px; border:1px solid transparent; font-family:var(--body); font-size:12px; font-weight:700; letter-spacing:.08em; line-height:1; text-transform:uppercase; transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease; }
.button:hover { transform:translateY(-2px); }
.button:active { transform:scale(.97); }
.button-signal { color:var(--white); background:var(--signal); }
.button-signal:hover { color:var(--white); background:#e84c2b; }
.button-outline-light { color:var(--white); border-color:rgba(255,253,248,.7); }
.button-outline-light:hover { color:var(--ink); background:var(--white); }
.button-ink { color:var(--white); background:var(--ink); }
.button-ink:hover { color:var(--white); background:var(--ink-soft); }
.button-small { padding:11px 13px; color:var(--white); background:var(--ink); }
.hero-coordinates { position:absolute; z-index:1; right:32px; bottom:32px; display:flex; gap:17px; color:rgba(255,253,248,.65); font-size:10px; letter-spacing:.13em; }
.section-pad { padding:112px 0; }
.editorial-split { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.72fr); gap:10%; align-items:end; }
.display-heading { margin:0; font-size:clamp(46px,5vw,72px); }
.intro-text { max-width:420px; padding-bottom:4px; font-size:19px; }
.intro-text p { margin:0 0 26px; }
.text-link { display:inline-flex; gap:11px; align-items:center; border-bottom:1px solid var(--ink); padding-bottom:4px; font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:color .18s ease, border-color .18s ease; }
.text-link:hover { color:var(--signal); border-color:var(--signal); }
.feature-section { padding:0 0 112px; }
.feature-grid { display:grid; grid-template-columns:1.12fr .88fr; min-height:510px; background:var(--ink); color:var(--white); }
.feature-media { overflow:hidden; }
.feature-media img { width:100%; height:100%; min-height:510px; object-fit:cover; filter:saturate(.8); }
.feature-copy { display:flex; flex-direction:column; justify-content:center; padding:65px; }
.feature-copy h2 { max-width:430px; margin:0 0 24px; font-size:clamp(40px,4.4vw,62px); }
.feature-copy > p:not(.eyebrow) { max-width:360px; margin:0 0 32px; color:rgba(255,253,248,.78); font-size:18px; }
.feature-copy .button { align-self:flex-start; }
.section-topline { display:flex; align-items:center; justify-content:space-between; margin-bottom:33px; }
.section-topline .eyebrow { margin:0; }
.story-card { position:relative; min-height:330px; display:block; padding:28px 28px 58px; background:var(--white); border-top:3px solid var(--ink); transition:transform .2s ease, box-shadow .2s ease; }
.story-card:hover { transform:translateY(-7px); box-shadow:0 15px 0 var(--signal); }
.story-card.warm { background:#e8dccb; border-color:var(--signal); }.story-card.dark { background:var(--ink); color:var(--white); border-color:var(--ink); }
.story-index { display:block; margin-bottom:48px; font-size:12px; font-weight:700; letter-spacing:.1em; color:var(--signal); }
.story-tag { margin:0 0 13px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.story-card h3 { margin:0 0 16px; max-width:300px; font-size:31px; }.story-card > p:not(.story-tag) { max-width:285px; margin:0; font-size:15px; }.story-arrow { position:absolute; right:28px; bottom:23px; color:var(--signal); font-size:24px; }
.newsletter-section { position:relative; padding:88px 0; color:var(--white); background:var(--ink); overflow:hidden; }
.newsletter-section::before { content:''; position:absolute; width:570px; height:570px; top:-290px; right:-130px; border:1px solid rgba(255,253,248,.18); border-radius:50%; box-shadow:0 0 0 65px transparent,0 0 0 66px rgba(255,253,248,.1); }
.newsletter-grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:end; }.newsletter-grid h2 { margin:0 0 15px; max-width:450px; font-size:clamp(40px,4.5vw,62px); }.newsletter-grid > div > p:not(.eyebrow) { max-width:430px; margin:0; color:rgba(255,253,248,.75); }
label { display:block; margin-bottom:9px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; } input, textarea, select { width:100%; padding:14px; color:var(--ink); background:var(--white); border:1px solid transparent; border-radius:0; font:inherit; } input:focus, textarea:focus, select:focus { border-color:var(--signal); outline:none; }.form-row { display:flex; gap:10px; }.form-row input { min-width:0; }.form-row .button { flex:0 0 auto; }.form-message { min-height:24px; margin:12px 0 0; color:#ffcbbb; font-size:14px; }.form-note { margin:4px 0 0; color:rgba(255,253,248,.62); font-size:12px; }.form-note a { text-decoration:underline; }
.site-footer { padding:37px 0; background:#0a1420; color:var(--white); }.footer-grid { display:grid; grid-template-columns:1fr 1.4fr auto; align-items:center; gap:35px; }.brand-footer { font-size:15px; }.brand-footer .brand-mark { width:21px; height:21px; box-shadow:inset 0 0 0 5px rgba(255,253,248,.88); }.brand-footer .brand-mark::after { top:8px; height:5px; background:var(--white); }.site-footer p { margin:0; max-width:430px; color:rgba(255,253,248,.62); font-size:13px; }.footer-links { display:flex; gap:19px; }.footer-links a { color:rgba(255,253,248,.78); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.footer-links a:hover { color:var(--signal); }
.cookie-notice { position:fixed; z-index:40; right:20px; bottom:20px; width:min(430px,calc(100% - 40px)); padding:16px; display:flex; align-items:center; gap:16px; color:var(--white); background:var(--ink); box-shadow:0 15px 35px rgba(0,0,0,.3); }.cookie-notice p { flex:1; margin:0; font-size:12px; line-height:1.4; }.cookie-notice a { text-decoration:underline; }
.page-intro { border-bottom:1px solid var(--line); }.page-intro-grid { display:grid; grid-template-columns:1.15fr .7fr; align-items:end; gap:10%; }.page-intro h1, .contact-hero h1 { margin:0; font-size:clamp(52px,7vw,93px); }.page-intro-grid > p { max-width:400px; margin:0 0 5px; font-size:18px; }.story-list-section { padding:20px 0 90px; }.long-story { display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; padding:62px 0; border-bottom:1px solid var(--line); }.long-story-num { color:var(--signal); font-size:13px; font-weight:700; letter-spacing:.12em; }.long-story-content { max-width:700px; }.long-story-content h2 { max-width:650px; margin:0 0 18px; font-size:clamp(40px,4.6vw,66px); }.long-story-content > p:not(.story-tag) { max-width:610px; margin:0 0 24px; font-size:18px; }.story-image-row { grid-template-columns:100px minmax(0,1fr) 330px; align-items:center; }.story-image-row img { width:100%; height:250px; object-fit:cover; }.image-first { grid-template-columns:330px 100px minmax(0,1fr); }.strip-cta { padding:57px 0; background:#e8dccb; }.strip-cta .container { display:flex; align-items:center; justify-content:space-between; gap:30px; }.strip-cta p { margin:0; font-family:var(--display); font-size:36px; letter-spacing:-.04em; }
.contact-hero { background:var(--sand); }.contact-grid { display:grid; grid-template-columns:1fr .65fr; gap:14%; align-items:end; }.lead-copy { max-width:530px; margin:24px 0 0; font-size:19px; }.address-card { padding:28px; border-top:3px solid var(--signal); background:var(--white); }.address-card .eyebrow { margin-bottom:28px; }.address-card p { margin:0 0 15px; }.address-name { font-family:var(--display); font-size:25px; line-height:1.15; }.address-note { padding-top:14px; border-top:1px solid var(--line); color:var(--ink-soft); font-size:13px; }.contact-form-section { padding:92px 0 112px; }.contact-form { max-width:850px; }.form-header { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:33px; }.form-header .eyebrow, .form-header p { margin:0; }.form-header > p:not(.eyebrow) { color:var(--ink-soft); font-size:13px; }.contact-form input, .contact-form textarea, .contact-form select { background:var(--white); border-color:var(--line); }.contact-form textarea { resize:vertical; }.form-submit-row { display:flex; align-items:center; gap:23px; margin-top:27px; }.form-submit-row .form-message { color:var(--ink-soft); margin:0; }
.policy-main { padding:90px 0 120px; }.policy-layout { display:grid; grid-template-columns:.66fr 1fr; gap:13%; }.policy-layout h1 { margin:0; font-size:clamp(50px,6vw,78px); }.policy-date { margin-top:18px; font-size:13px; color:var(--ink-soft); }.policy-copy { max-width:700px; font-size:17px; }.policy-copy > p:first-child { margin-top:0; font-size:21px; line-height:1.55; }.policy-copy h2 { margin:42px 0 13px; font-size:31px; }.policy-copy a { color:var(--signal); text-decoration:underline; }
@media (max-width:991px) { .site-header:not(.light-header) .navbar-collapse { margin-top:8px; padding:14px; background:var(--ink); }.site-header.light-header .navbar-collapse { margin:8px 0; padding:14px; background:var(--white); }.nav-link { padding:11px 3px!important; }.nav-cta { margin:10px 0 0; padding:11px!important; text-align:center; }.hero-section { min-height:650px; }.feature-copy { padding:45px; }.footer-grid { grid-template-columns:1fr 1fr; }.footer-links { grid-column:1 / -1; }.story-image-row, .image-first { grid-template-columns:70px minmax(0,1fr); }.story-image-row img, .image-first img { grid-column:2; height:220px; }.image-first .long-story-num { grid-row:2; }.image-first .long-story-content { grid-column:2; grid-row:2; }.policy-layout { grid-template-columns:1fr; gap:38px; } }
@media (max-width:767px) { .navbar { min-height:70px; }.hero-content { padding-top:150px; padding-bottom:75px; }.hero-section h1 { font-size:56px; }.hero-coordinates { right:20px; bottom:20px; }.section-pad { padding:72px 0; }.editorial-split, .newsletter-grid, .page-intro-grid, .contact-grid { grid-template-columns:1fr; gap:35px; }.feature-section { padding-bottom:72px; }.feature-grid { grid-template-columns:1fr; }.feature-media img { min-height:260px; height:280px; }.feature-copy { padding:38px 25px; }.section-topline { align-items:flex-start; flex-direction:column; gap:10px; }.newsletter-section { padding:68px 0; }.form-row { flex-direction:column; }.form-row .button { width:100%; }.footer-grid { grid-template-columns:1fr; gap:18px; }.footer-links { grid-column:auto; flex-wrap:wrap; }.cookie-notice { align-items:flex-start; flex-direction:column; gap:11px; }.long-story, .story-image-row, .image-first { grid-template-columns:1fr; gap:16px; padding:45px 0; }.story-image-row img, .image-first img, .image-first .long-story-num, .image-first .long-story-content { grid-column:auto; grid-row:auto; }.story-image-row img, .image-first img { height:220px; order:2; }.strip-cta .container { align-items:flex-start; flex-direction:column; }.strip-cta p { font-size:31px; }.form-header, .form-submit-row { align-items:flex-start; flex-direction:column; }.policy-main { padding:65px 0 85px; } }
@media (prefers-reduced-motion:no-preference) { .story-card, .button, .nav-link { transition-timing-function:cubic-bezier(.23,1,.32,1); } }
