:root {
  color-scheme: light;
  font: 16px/1.5 "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ink: #163128;
  --muted: #516358;
  --background: #f6f6ef;
  --paper: #fff;
  --line: #dce4d9;
  --green: #205843;
  --green-dark: #143c2e;
  --lime: #deeca0;
  --sage: #e9f1e6;
  --amber: #776019;
  --error: #922b29;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--background); }
button, input, select { font: inherit; }
a { color: var(--green); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid #438e76;
  outline-offset: 3px;
}
[hidden] { display: none !important; }
.wrap { width: min(1200px, 100% - 3.5rem); margin-inline: auto; }
.skip { position: absolute; inset: .5rem auto auto 1rem; transform: translateY(-200%); z-index: 10; background: var(--paper); padding: .5rem 1rem; }
.skip:focus { transform: none; }
.masthead { border-bottom: 1px solid var(--line); background: #fbfbf5; }
.header-row { display: flex; align-items: center; justify-content: space-between; min-height: 74px; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--ink); text-decoration: none; font-size: 1.1rem; font-weight: 780; letter-spacing: -.035em; white-space: nowrap; }
.brand b { color: #416651; }
.brand-icon { display: inline-flex; align-items: flex-end; justify-content: center; gap: 3px; width: 36px; height: 36px; padding: 9px 7px 8px; background: var(--green-dark); border-radius: 9px; }
.brand-icon i { display: block; width: 5px; background: var(--lime); border-radius: 1px; height: 8px; }
.brand-icon i:nth-child(2) { height: 13px; }
.brand-icon i:nth-child(3) { height: 18px; }
nav { display: flex; align-items: center; gap: clamp(.8rem, 3vw, 1.9rem); }
nav a { color: var(--muted); font-size: .91rem; font-weight: 630; text-decoration: none; white-space: nowrap; }
nav a[aria-current="page"] { color: var(--green-dark); }
main { min-height: 70vh; padding-block: 2rem 3.5rem; }
.hero { position: relative; isolation: isolate; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 1.25rem; padding: clamp(1.5rem, 4.3vw, 3.7rem); min-height: 322px; overflow: hidden; border-radius: 20px; background: #12392d; color: #fff; }
.hero-photo { position: absolute; z-index: -2; inset: 0 0 0 38%; background: #48614c url("/obras-banner.webp") 58% 55% / cover no-repeat; }
.hero::after { content: ""; z-index: -1; position: absolute; inset: 0; background: linear-gradient(95deg, #133c30 15%, #123a2de8 35%, #13382aa1 60%, #102c252e 100%); }
.hero h1 { margin: 0; font-size: clamp(3rem, 6.5vw, 5.2rem); line-height: .98; letter-spacing: -.07em; font-weight: 800; }
.hero-copy p { margin: 1rem 0 0; color: #e1eadc; font-size: clamp(.95rem, 2vw, 1.13rem); }
.countdown { align-self: end; width: min(100%, 295px); padding: 1.1rem 1.4rem; border-radius: 13px; color: var(--ink); background: var(--lime); }
.countdown p { margin: 0; font-weight: 720; }
.clock { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: start; gap: .45rem; margin: .45rem 0 .7rem; font-variant-numeric: tabular-nums; }
.clock span { text-align: center; }
.clock b { display: block; font-size: clamp(1.75rem, 4.25vw, 2.45rem); font-weight: 740; line-height: 1.1; }
.clock small { display: block; font-size: .72rem; color: #3a513f; font-weight: 620; }
.clock-divider { font-size: 1.65rem; line-height: 1.45; color: #4d6445; }
.countdown .clock-date { padding-top: .55rem; border-top: 1px solid #52654841; color: #384e39; font-size: .81rem; font-weight: 630; }
.countdown .clock-works { padding-top: .3rem; font-size: .86rem; }
.countdown .clock-works:empty { display: none; }
.catalog { margin-top: 2.2rem; }
.catalog-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 1rem; }
.catalog-heading h2, .panel h1, .panel h2 { margin: 0; letter-spacing: -.044em; line-height: 1.15; }
.catalog-heading h2 { font-size: clamp(1.55rem, 3.5vw, 2.2rem); }
.text-link { font-size: .91rem; font-weight: 690; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.filters { display: grid; grid-template-columns: 1.4fr .65fr 1.35fr auto; gap: .8rem; align-items: end; padding: 1rem; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); }
label { display: grid; gap: .29rem; font-size: .87rem; font-weight: 690; }
input, select { width: 100%; min-height: 43px; color: var(--ink); background: #fbfcf9; border: 1px solid #ccd9cb; border-radius: 8px; padding: .56rem .75rem; font-size: .93rem; font-weight: 480; }
input::placeholder { color: #5d6b62; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: .4em; min-height: 43px; padding: .55rem 1.12rem; border: 1px solid transparent; border-radius: 8px; background: var(--green); color: #fff; font-size: .93rem; font-weight: 700; cursor: pointer; text-decoration: none; }
.button:not([disabled]):hover { background: var(--green-dark); color: #fff; border-color: var(--green-dark); }
.button:disabled { background: #e9ede6; color: #526253; cursor: default; }
.button-small { min-height: 35px; padding-block: .3rem; }
.button-outline { background: transparent; border-color: #a4b6a9; color: var(--green-dark); }
.status { margin-block: .85rem; color: var(--muted); font-size: .92rem; }
.status:empty { display: none; }
.status.error { color: var(--error); }
.work-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); gap: .95rem; }
.work-card { display: flex; flex-direction: column; min-height: 208px; padding: 1.2rem; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); }
.work-status { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: 0 0 .8rem; color: var(--green-dark); font-size: .8rem; font-weight: 760; }
.work-status::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: #448957; }
.work-status[data-state="scheduled"] { color: var(--amber); }
.work-status[data-state="scheduled"]::before { background: #b08421; }
.work-status[data-state="full"] { color: #5b685d; }
.work-status[data-state="full"]::before { background: #858d84; }
.work-card h3 { margin: 0; line-height: 1.2; font-size: 1.23rem; letter-spacing: -.035em; overflow-wrap: anywhere; }
.location, .summary, .details { overflow-wrap: anywhere; }
.location { margin: .4rem 0 .25rem; color: var(--muted); font-size: .85rem; font-weight: 690; }
.summary { margin: .35em 0 .75rem; color: var(--muted); font-size: .91rem; }
.work-card .button { margin-top: auto; align-self: flex-start; }
.details { margin: auto 0 0; color: var(--muted); font-size: .84rem; }
.account-view { max-width: 850px; margin-inline: auto; }
.panel { padding: clamp(1.2rem, 4vw, 2.3rem); border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.panel + .panel { margin-top: 1rem; }
.panel h1 { font-size: clamp(2rem, 5vw, 3rem); }
.panel h2 { font-size: 1.4rem; }
.panel p { color: var(--muted); }
.panel form { max-width: 420px; }
.panel form label { margin-block: .85rem; }
.account-actions { display: flex; gap: .55rem; flex-wrap: wrap; margin-top: 1rem; }
.contact-list, .request-list { padding: 0; list-style: none; }
.contact-list li, .request-list li { padding: .8rem 0; border-top: 1px solid var(--line); overflow-wrap: anywhere; }
.contact-list p, .request-list p { margin: .3rem 0; }
.operation-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .7rem; }
.operation-stats div { padding: .75rem; color: var(--green-dark); background: var(--sage); border-radius: 8px; }
.operation-stats dt { font-size: .84rem; font-weight: 650; }
.operation-stats dd { margin: 0; font-size: 1.12rem; }
.footer { display: flex; justify-content: space-between; gap: 1rem; padding-block: 1rem 1.5rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .85rem; }
.footer a { text-decoration: none; }
@media (max-width: 700px) {
  .wrap { width: calc(100% - 2rem); }
  main { padding-block: 1.1rem 2.75rem; }
  .header-row { min-height: 64px; }
  nav { gap: .7rem; }
  nav a { font-size: .82rem; }
  nav a[data-nav="obras"] { display: none; }
  .brand { font-size: .97rem; }
  .hero { min-height: 0; grid-template-columns: 1fr; align-content: end; gap: 1.35rem; padding: 1.5rem; }
  .hero h1 { max-width: 8ch; }
  .hero-photo { left: 18%; }
  .hero::after { background: linear-gradient(100deg, #133c30 9%, #123a2ddd 45%, #13382a52 100%); }
  .countdown { padding: .7rem 1rem; }
  .filters { grid-template-columns: 1fr minmax(92px, .4fr); }
  .filters .button { width: 100%; }
}
@media (max-width: 385px) {
  .header-row { gap: .4rem; }
  nav { gap: .45rem; }
  .brand { gap: .4rem; }
  .brand-icon { width: 28px; height: 28px; padding: 4px 4px 5px; }
  .button-small { padding-inline: .54rem; }
}
