/* Pantano de San Juan · versión 3.1 */
:root { --pine:#16493c; --pine-2:#215e4d; --ember:#c36d43; --gold:#dbb46a; --sand:#f4f0e7; --paper:#fbfaf7; --line:#dfe4dc; --serif:Georgia,"Iowan Old Style",serif; }
.brand-logo { width:48px; height:48px; object-fit:contain; border-radius:50%; background:#fff; flex:none; }
.brand small { letter-spacing:.1em; }
.hero { gap:54px; min-height:610px; }
.hero-copy { position:relative; z-index:1; }
.hero h1 { font-size:clamp(50px,6vw,82px); }
.hero h1 em { font-style:normal; color:var(--pine); }
.hero-photo { height:570px; position:relative; margin:0; border-radius:28px; overflow:hidden; box-shadow:var(--shadow); }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 53%; display:block; }
.hero-photo:after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(9,29,24,.8)); pointer-events:none; }
.hero-photo figcaption { position:absolute; z-index:1; bottom:28px; left:32px; right:30px; color:#fff; }
.hero-photo figcaption span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.18em; font-weight:800; margin-bottom:5px; }
.hero-photo figcaption strong { font-family:var(--serif); font-size:30px; font-weight:500; line-height:1.1; }
.signal-strip { background:#aa5738; }
.pillar-grid { gap:18px; }
.pillar-card { padding:0; min-height:390px; display:block; background:white; }
.pillar-card img { width:100%; height:178px; display:block; object-fit:cover; }
.pillar-card.nature img, .pillar-card.fauna img, .pillar-card.assoc img { object-position:center 35%; }
.pillar-body { padding:22px 23px 24px; min-height:208px; display:flex; flex-direction:column; }
.pillar-body h3 { margin:6px 0 0; }
.pillar-body p { margin:9px 0 20px; }
.pillar-card.regen { background:#f5f7f2; color:var(--ink); }
.pillar-card.regen .card-index, .pillar-card.regen p { color:#63706b; }
.pillar-card:hover .card-link { color:#ad5936; }
.page-intro { padding-top:72px; padding-bottom:65px; }
.page-intro h1 { max-width:920px; }
.terrain-photo { margin:0 0 28px; height:340px; overflow:hidden; border-radius:18px; position:relative; }
.terrain-photo img { width:100%; height:100%; object-fit:cover; object-position:center 58%; display:block; }
.terrain-photo figcaption { position:absolute; left:15px; bottom:14px; right:15px; background:rgba(255,255,255,.9); padding:8px 12px; border-radius:9px; font-size:12px; }
.photo-story { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:center; }
.photo-story figure { margin:0; position:relative; }
.photo-story figure img { display:block; width:100%; height:530px; border-radius:24px; object-fit:cover; }
.photo-story figcaption { font-size:11px; color:#617069; padding:8px 0; }
.photo-story h2 { font-family:var(--serif); font-size:clamp(38px,4vw,55px); line-height:1.05; margin:15px 0; }
.photo-story p { max-width:610px; }
.photo-story .button { display:inline-block; margin-top:18px; }
.text-link { display:inline-block; margin-top:22px; font-weight:800; color:var(--pine); border-bottom:2px solid #b3cec0; padding-bottom:2px; }
.form-photo { margin:28px 0 0; height:320px; border-radius:22px; overflow:hidden; }
.form-photo img { width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; }
.form-demo-note { margin:0; color:#685231; background:#fbf3df; border:1px solid #e7d5ab; padding:9px 13px; border-radius:10px; font-size:12px; font-weight:800; }
.contact-form label { color:#26352d; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline:2px solid #89b9a0; outline-offset:2px; }
.form-feedback { min-height:1.5em; }
.map-page-head { padding-top:65px; }
.map-page-head h1 { font-size:clamp(43px,5vw,66px); line-height:1; }
.map-workspace { height:720px; }
.map-sidebar { overflow-y:auto; }
.map-sidebar.compact .layer-list, .map-sidebar.compact .map-lot-legend, .map-sidebar.compact .georef-tools, .map-sidebar.compact .map-status, .map-sidebar.compact .map-legend-note, .map-sidebar.compact .map-sources { display:none; }
.map-canvas { background:#e5e8e1; background-image:none; height:100%; min-height:500px; z-index:0; }
.map-canvas .leaflet-container { font-family:var(--sans); }
.map-canvas .leaflet-control-layers { border:0; box-shadow:0 5px 20px #133a2b2b; border-radius:10px; }
.psj-municipality-label { background:rgba(255,255,255,.87); border:1px solid #317a6c; border-radius:6px; color:#194a3f; font-weight:800; font-size:11px; padding:3px 6px; box-shadow:none; white-space:normal; text-align:center; max-width:110px; }
.psj-municipality-label:before { display:none; }
.map-canvas .leaflet-popup-content { font-size:13px; line-height:1.45; }
.map-canvas .leaflet-popup-content strong { color:var(--pine); }
.map-info a { color:var(--pine); font-weight:800; text-decoration:underline; }
.map-status { font-size:12px; line-height:1.45; color:#58695e; }
.trace-focus-button { width:100%; margin:0 0 12px; padding:10px 12px; border:1px solid #cfd8d1; border-radius:10px; background:#fff; color:var(--pine); font-weight:800; cursor:pointer; }
.trace-focus-button:hover, .trace-focus-button[aria-pressed="true"] { background:#eef4f0; border-color:#94ad9f; }
.map-sources { display:grid; gap:6px; margin-top:20px; font-size:12px; color:var(--pine); font-weight:700; }
.map-sources a:hover { text-decoration:underline; }
.swatch.plans { background:linear-gradient(90deg,#be653c 0 25%,#2b6952 25% 50%,#406997 50% 75%,#755291 75% 100%); border:1px solid #fff; box-shadow:0 0 0 1px #98a39c; }
.map-lot-legend { display:grid; grid-template-columns:1fr 1fr; gap:7px 12px; margin:14px 0 16px; padding:12px; border-radius:12px; background:#f6f7f3; border:1px solid #dde3dc; font-size:11px; font-weight:800; color:#45574e; }
.map-lot-legend span { display:flex; align-items:center; gap:7px; line-height:1.25; }
.trace-focus-button { width:100%; margin:0 0 14px; padding:9px 11px; border:1px solid #b7c9be; border-radius:10px; background:#fff; color:var(--pine); font:800 11px/1.2 var(--sans); cursor:pointer; }
.trace-focus-button:hover, .trace-focus-button[aria-pressed="true"] { background:#e9f1ec; border-color:#779a87; }
.lot-dot { width:10px; height:10px; border-radius:50%; flex:none; }
.lot-dot.lot-1 { background:#be653c; }
.lot-dot.lot-2 { background:#2b6952; }
.lot-dot.lot-3 { background:#406997; }
.lot-dot.lot-12 { background:#755291; }
.georef-tools { margin:0 0 16px; padding:14px; border:1px solid #d9e0da; border-radius:14px; background:#f8f8f4; }
.georef-tools .mini-label { margin:0 0 7px; }
.georef-intro { margin:0 0 11px; color:#5d6b64; font-size:11px; line-height:1.4; }
.georef-buttons { display:grid; gap:7px; }
.georef-buttons button { width:100%; padding:9px 10px; border:1px solid #c7d3cb; border-radius:9px; background:#fff; color:var(--pine); font:800 11px/1.2 var(--sans); cursor:pointer; text-align:left; }
.georef-buttons button:hover, .georef-buttons button.is-active { border-color:#769987; background:#eaf2ed; }
.georef-review { margin-top:12px; padding-top:12px; border-top:1px solid #dbe2dc; }
.georef-review > strong { display:block; color:#173b30; font-size:12px; }
.georef-review p { margin:6px 0 9px; color:#617068; font-size:10px; line-height:1.4; }
.georef-review img { display:block; width:100%; max-height:180px; object-fit:contain; border:1px solid #d8dfd9; border-radius:9px; background:#edf0ea; }
.georef-review a { display:inline-block; margin-top:8px; color:var(--pine); font-size:10px; font-weight:800; text-decoration:underline; }
.trace-editor { margin-top:14px; padding-top:13px; border-top:1px solid #dbe2dc; }
.trace-editor-status { margin:5px 0 10px; color:#5b6a62; font-size:10px; line-height:1.45; }
.trace-editor-buttons { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.trace-editor-buttons button { padding:8px 7px; border:1px solid #c7d3cb; border-radius:8px; background:#fff; color:var(--pine); font:800 10px/1.15 var(--sans); cursor:pointer; }
.trace-editor-buttons button:hover:not(:disabled) { background:#eaf2ed; border-color:#789989; }
.trace-editor-buttons button:disabled { opacity:.45; cursor:not-allowed; }
#trace-start { grid-column:1 / -1; background:#173b30; color:#fff; border-color:#173b30; }
#trace-clear { color:#8b3b2c; }
#trace-geojson { width:100%; box-sizing:border-box; margin-top:9px; padding:8px; border:1px solid #d4ddd6; border-radius:8px; background:#fff; color:#3d4c44; font:9px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace; resize:vertical; }
.map-canvas.is-drawing { cursor:crosshair; }
.map-canvas.is-drawing .leaflet-interactive { cursor:crosshair; }
.plan-map-marker { background:transparent; border:0; }
.plan-map-marker button { width:62px; height:42px; padding:5px 7px; border:2px solid #8b452f; border-radius:10px; background:#fff8f1; color:#5f2f20; box-shadow:0 3px 12px #34211835; font:800 10px/1.05 var(--sans); cursor:pointer; }
.plan-map-marker span { display:block; margin-top:3px; color:#a05237; font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
.plan-popup img { display:block; width:100%; margin:10px 0 8px; border:1px solid #dce2da; border-radius:9px; background:#eef1eb; }
.plan-popup-note { color:#66736d; font-size:11px; }
.map-under-note { font-size:12px; color:#68766e; margin-top:13px; }
.mup-map-jump { display:inline-flex; align-items:center; margin:0 0 16px; padding:8px 11px; border:1px solid #b7c9be; border-radius:999px; background:#f7faf7; color:var(--pine); font:800 11px/1 var(--sans); cursor:pointer; }
.mup-map-jump:hover { background:#edf4ef; border-color:#7fa18e; }
.mup-card.is-map-active { border-color:#6e9a85; box-shadow:0 0 0 3px rgba(66,122,94,.08); }
.leaflet-image-layer { image-rendering:auto; }
.contract-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:18px; background:white; }
.contract-table { width:100%; border-collapse:collapse; text-align:left; min-width:700px; }
.contract-table caption { text-align:left; padding:18px 22px 0; font-size:12px; color:#68766e; }
.contract-table th, .contract-table td { padding:20px 22px; vertical-align:top; border-bottom:1px solid var(--line); }
.contract-table th { color:#52635b; font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.contract-table tr:last-child td { border-bottom:0; }
.contract-table td:first-child { font-family:var(--serif); font-size:28px; color:var(--pine); }
.source-note { font-size:13px; color:#59675e; margin-top:18px; }
.source-note a { color:var(--pine); text-decoration:underline; font-weight:800; }
.dashboard h2 { font-family:var(--serif); font-size:clamp(32px,3vw,43px); line-height:1.1; max-width:650px; }
.profile-intro { max-width:640px; color:#55655e; }
.profile-card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:36px; }
.profile-card-grid article { border:1px solid var(--line); border-radius:15px; padding:20px; background:#f7f8f4; }
.profile-card-grid span { font-size:12px; color:var(--ember); font-weight:800; }
.profile-card-grid h3 { font-family:var(--serif); font-size:24px; line-height:1.1; margin:16px 0 7px; }
.profile-card-grid p { color:#637068; font-size:13px; margin:0; }
.profile-demo-note { color:#725b37; background:#fbf3df; border-radius:10px; padding:12px; font-size:12px; margin-top:28px; }
.dash-aside-note { color:#617068; font-size:13px; margin-top:30px; }
@media(max-width:980px) { .hero-photo { height:420px; } .pillar-card { min-height:380px; } .photo-story { grid-template-columns:1fr; gap:30px; } .photo-story figure img { height:390px; } .profile-card-grid { grid-template-columns:1fr; } }
@media(max-width:680px) { .brand-logo { width:39px; height:39px; } .hero { gap:26px; } .hero-photo { height:390px; } .hero-photo figcaption { left:20px; bottom:20px; } .hero-photo figcaption strong { font-size:23px; } .pillar-card { min-height:0; } .pillar-card img { height:190px; } .pillar-body { min-height:190px; } .map-workspace { height:680px; } .map-sidebar { z-index:1000; } .map-sidebar.compact { z-index:1000; } .map-canvas { min-height:680px; } .map-canvas .leaflet-control-layers { margin-top:65px; } .photo-story figure img { height:360px; } .form-photo { height:250px; } .contract-table th, .contract-table td { padding:15px; } }

.photo-evidence { background:#f7f6f1; }
.field-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.field-gallery figure { margin:0; background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.field-gallery a { display:block; overflow:hidden; }
.field-gallery img { display:block; width:100%; height:230px; object-fit:cover; transition:transform .25s; }
.field-gallery a:hover img { transform:scale(1.035); }
.field-gallery figcaption { padding:13px 15px 17px; font-size:13px; line-height:1.45; color:#3d5147; }
@media(max-width:980px){ .field-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px){ .field-gallery { gap:10px; } .field-gallery img { height:150px; } .field-gallery figcaption { font-size:12px; padding:10px; } }
.map-head-side p { color:#5f6d67; font-size:17px; margin:0; }
.map-head-side .text-link { margin-top:10px; font-size:14px; }
.footer-grid { grid-template-columns:1.35fr .65fr 1.15fr .85fr; gap:45px; }
.footer-grid .footer-email { display:block; color:#b9d3c8; font-weight:700; overflow-wrap:anywhere; margin-top:14px; padding-top:16px!important; border-top:1px solid #294139; }
@media(max-width:980px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:680px) { .footer-grid { grid-template-columns:1fr; } }

.psj-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.evidence-label { display:inline-flex; align-items:center; gap:8px; margin:0 0 14px; padding:7px 11px; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.evidence-label:before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.8; }
.evidence-label.official { color:#1c5a49; background:#e7f0eb; }
.contract-dossier, .mup-directory { margin-top:64px; }
.contract-dossier { padding:34px; border-radius:24px; background:#eef3ed; border:1px solid #d6e1d8; }
.dossier-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:end; margin-bottom:26px; }
.dossier-heading h3 { font-family:var(--serif); font-size:clamp(32px,4vw,48px); line-height:1.05; margin:7px 0 0; color:#142b23; }
.dossier-heading > p { margin:0; color:#596961; line-height:1.65; }
.dossier-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); background:#fff; border:1px solid #d7e0d8; border-radius:18px; overflow:hidden; }
.dossier-metrics div { padding:22px; border-right:1px solid #dfe5df; }
.dossier-metrics div:last-child { border-right:0; }
.dossier-metrics strong { display:block; font-family:var(--serif); color:var(--pine); font-size:29px; line-height:1; }
.dossier-metrics span { display:block; margin-top:8px; color:#66736d; font-size:12px; line-height:1.35; }
.dossier-reading { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.dossier-reading article { padding:22px; border-radius:16px; background:#fff; border:1px solid #dfe5df; }
.dossier-reading article > span { color:var(--ember); font-size:11px; letter-spacing:.1em; font-weight:800; }
.dossier-reading h4 { font-family:var(--serif); font-size:24px; margin:10px 0 6px; color:#173228; }
.dossier-reading p { margin:0; color:#5a6961; font-size:14px; line-height:1.55; }
.document-links { display:flex; align-items:center; flex-wrap:wrap; gap:18px; margin-top:24px; }
.document-links .text-link { margin-top:0; font-size:13px; }
.mup-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.mup-card { scroll-margin-top:110px; padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.mup-card header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.mup-card header span { color:var(--pine); font-weight:900; letter-spacing:.08em; font-size:12px; }
.mup-card header em { font-style:normal; color:#7b4a35; background:#f4e8e0; padding:5px 9px; border-radius:999px; font-size:11px; font-weight:800; }
.mup-card h4 { font-family:var(--serif); font-size:27px; line-height:1.08; margin:18px 0 7px; color:#152c24; }
.mup-place { color:#68766e; margin:0 0 20px; font-size:13px; }
.mup-card dl { margin:0; }
.mup-card dl div { display:grid; grid-template-columns:135px 1fr; gap:14px; padding:11px 0; border-top:1px solid #edf0eb; }
.mup-card dt { color:#68766e; font-size:11px; text-transform:uppercase; letter-spacing:.05em; font-weight:800; }
.mup-card dd { margin:0; color:#2d3d35; font-size:13px; line-height:1.4; }
.mup-zone { margin-top:12px; padding:14px; border-radius:12px; background:#f5f6f2; }
.mup-zone strong { color:var(--pine); font-size:13px; }
.mup-zone p { margin:5px 0 0; color:#53635b; font-size:13px; line-height:1.45; }
.mup-plan { margin:0 0 18px; overflow:hidden; border:1px solid #dce2da; border-radius:14px; background:#eef1eb; }
.mup-plan img { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; object-position:center; background:#eef1eb; padding:10px; }
.mup-plan figcaption { padding:9px 12px; background:#f7f8f4; color:#617068; font-size:11px; font-weight:700; }
.mup-plan-link { display:inline-block; margin-top:15px; color:var(--pine); border-bottom:1px solid #9ebcab; font-size:12px; font-weight:800; }
.mup-plan-link:hover { border-color:var(--pine); }
@media(max-width:980px){ .dossier-metrics { grid-template-columns:repeat(2,1fr); } .dossier-metrics div:nth-child(2) { border-right:0; } }
@media(max-width:680px){ .contract-dossier { padding:22px 16px; margin-left:-6px; margin-right:-6px; } .dossier-heading { grid-template-columns:1fr; gap:16px; } .dossier-reading, .mup-card-grid { grid-template-columns:1fr; } .dossier-metrics strong { font-size:24px; } .dossier-metrics div { padding:17px 14px; } .mup-card { padding:20px 16px; } .mup-card dl div { grid-template-columns:110px 1fr; gap:10px; } }
.association-roadmap { background:#f3f1e9; }
.association-timeline { list-style:none; margin:42px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.association-timeline li { position:relative; display:grid; grid-template-columns:48px 1fr; gap:14px; min-height:220px; padding:22px; border:1px solid #dde2da; border-radius:18px; background:#fff; }
.association-timeline li.is-current { border-color:#4e8a70; box-shadow:inset 0 4px 0 #3c7b60; }
.timeline-marker { position:relative; }
.timeline-marker span { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#e8eee9; color:var(--pine); font-family:var(--serif); font-size:18px; font-weight:700; }
.is-current .timeline-marker span { color:#fff; background:var(--pine); }
.timeline-status { margin:1px 0 10px; color:#7a4b37; font-size:10px; text-transform:uppercase; letter-spacing:.08em; font-weight:900; }
.is-current .timeline-status { color:#27634e; }
.timeline-content h3 { margin:0 0 10px; color:#172d25; font-family:var(--serif); font-size:23px; line-height:1.08; }
.timeline-content > p:last-child { margin:0; color:#5b6962; font-size:13px; line-height:1.55; }
@media(max-width:980px){ .association-timeline { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px){ .association-timeline { grid-template-columns:1fr; gap:10px; } .association-timeline li { min-height:0; padding:18px 16px; } }
