@import "tailwindcss";
@import "tw-animate-css";
@import "../vendor/shadcn-tailwind-4.13.0.css";

:root {
  --forest: #163f32; --forest-deep: #0b2a22; --forest-soft: #285d4b; --gold: #d7a84b;
  --cream: #f5f1e8; --paper: #fbfaf6; --ink: #16241f; --muted-text: #6c756f; --line: #dcded7;
  --background: #fbfaf6; --foreground: #16241f; --card: #fff; --card-foreground: #16241f;
  --popover: #fff; --popover-foreground: #16241f; --primary: #163f32; --primary-foreground: #fff;
  --secondary: #f1eee5; --secondary-foreground: #163f32; --muted: #f1eee5; --muted-foreground: #6c756f;
  --accent: #d7a84b; --accent-foreground: #10271f; --destructive: #b42318; --border: #dcded7;
  --input: #dcded7; --ring: #d7a84b; --radius: .75rem;
}
@theme inline {
  --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card);
  --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground);
  --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary);
  --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground);
  --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive);
  --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px);
  --font-sans: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.site-header { position: absolute; inset: 0 0 auto; z-index: 20; height: 94px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px,6vw,88px); color: #fff; border-bottom: 1px solid #ffffff38; }
.brand { display: inline-flex; align-items: center; gap: 12px; letter-spacing: .08em; }
.brand-mark { width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; color: var(--gold); }
.logo-badge { overflow: hidden; background: #fff; border-color: #fff; flex: 0 0 auto; }
.logo-badge img { width: 100%; height: 100%; display: block; object-fit: contain; padding: 2px; }
.brand-logo-full { width: 240px; height: 84px; display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: #fff; padding: 4px 8px; flex: 0 0 auto; }
.brand-logo-full img { width: 100%; height: 100%; display: block; object-fit: contain; }
.event-image { width: min(100%, 360px); max-height: 190px; object-fit: cover; border-radius: 10px; margin-bottom: 16px; }
.event-image-preview { width: min(100%, 420px); max-height: 220px; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); }
.brand strong,.brand small { display: block; }.brand strong { font-family: Georgia,serif; font-size: 17px; line-height: 1.05; }.brand small { margin-top: 4px; font-size: 9px; letter-spacing: .38em; color: var(--gold); }
.nav-links { display: flex; align-items: center; gap: 34px; font-size: 14px; }.nav-links a { transition: color .2s; }.nav-links a:hover { color: var(--gold); }.nav-contact { border: 1px solid #ffffff8c; padding: 12px 18px; border-radius: 999px; }.menu-button { display: none; color: #fff; background: transparent; border: 0; padding: 8px; }
.hero { min-height: 780px; height: 94vh; position: relative; display: flex; align-items: center; color: #fff; overflow: hidden; background: var(--forest-deep) url('https://upload.wikimedia.org/wikipedia/commons/4/41/Caminho_pedestre_Ger%C3%AAs.jpg') center/cover no-repeat; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg,#051d17e6 0%,#09261ea8 48%,#09261e1f 100%),linear-gradient(0deg,#0418136b,transparent 42%); }
.hero-content { position: relative; z-index: 2; width: min(760px,88vw); margin-left: clamp(24px,9vw,138px); padding-top: 80px; }
.eyebrow { margin: 0 0 20px; font-size: 12px; font-weight: 700; letter-spacing: .28em; color: var(--gold); }.eyebrow.dark { color: var(--forest-soft); }.eyebrow.gold { color: var(--gold); }
.hero h1,.section h2,.story h2,.contact h2 { font-family: Georgia,"Times New Roman",serif; font-weight: 400; letter-spacing: -.035em; }.hero h1 { margin: 0; font-size: clamp(48px,6.4vw,88px); line-height: .98; }.hero h1 em { color: var(--gold); font-weight: 400; }
.hero-copy { max-width: 650px; margin: 28px 0 0; font-size: clamp(17px,1.7vw,21px); line-height: 1.65; color: #ffffffdb; }.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 38px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 22px; border-radius: 999px; font-weight: 700; font-size: 14px; transition: transform .2s,background .2s; }.button:hover { transform: translateY(-2px); }.button-gold { background: var(--gold); color: var(--forest-deep); }.text-link { border-bottom: 1px solid #ffffff73; padding-bottom: 5px; font-size: 14px; }.hero-place { position: absolute; z-index: 2; right: clamp(24px,5vw,80px); bottom: 40px; display: flex; gap: 9px; align-items: center; font-size: 13px; color: #ffffffbf; }
.section { padding: 110px clamp(24px,8vw,120px); }.section-heading { max-width: 1260px; margin: 0 auto 55px; display: grid; grid-template-columns: 1.25fr .75fr; gap: 70px; align-items: end; }.section-heading h2 { margin: 0; font-size: clamp(40px,4vw,58px); color: var(--forest-deep); }.section-heading>p { margin: 0; max-width: 510px; color: var(--muted-text); font-size: 17px; line-height: 1.7; }
.service-grid { max-width: 1260px; margin: auto; display: grid; grid-template-columns: repeat(3,1fr); border-block: 1px solid var(--line); }.service-card { position: relative; min-height: 430px; padding: 28px 30px 38px; border-right: 1px solid var(--line); }.service-card:last-child { border-right: 0; }.service-image { width: 100%; height: 170px; display: block; object-fit: cover; border-radius: 10px; margin-bottom: 17px; }.service-card>svg.service-icon { color: var(--forest-soft); margin-bottom: 18px; }.service-number { position: absolute; right: 30px; top: 25px; color: #9aa39e; font: 13px Georgia,serif; }.service-card h3 { margin: 0 0 13px; font: 29px Georgia,serif; color: var(--forest-deep); }.service-card p { margin: 0; color: var(--muted-text); font-size: 16px; line-height: 1.6; }.service-card a { position: absolute; bottom: 38px; display: inline-flex; align-items: center; gap: 8px; color: var(--forest); font-weight: 700; font-size: 14px; }
.agenda { background: var(--forest-deep); color: #fff; }.agenda-heading h2 { color: #fff; }.agenda-heading>p { color: #ffffffa8; }.event-list,.empty-agenda { max-width: 1260px; margin: auto; }.event-card { display: grid; grid-template-columns: 100px minmax(0,1fr) auto; gap: 34px; align-items: center; padding: 34px 0; border-top: 1px solid #ffffff29; }.event-card:last-child { border-bottom: 1px solid #ffffff29; }.event-date { width: 80px; height: 86px; display: grid; place-content: center; text-align: center; border: 1px solid #d7a84b8c; }.event-date strong { font: 36px Georgia,serif; line-height: 1; color: var(--gold); }.event-date span { margin-top: 6px; font-size: 11px; letter-spacing: .18em; }.event-category { color: var(--gold); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; }.event-details h3 { margin: 7px 0; font: 27px Georgia,serif; }.event-details>p { margin: 0 0 15px; color: #ffffffa3; }.event-meta { display: flex; flex-wrap: wrap; gap: 20px; color: #ffffffb8; font-size: 13px; }.event-meta span { display: inline-flex; align-items: center; gap: 7px; }.button-outline { border: 1px solid currentColor; color: inherit; background: transparent; }.empty-agenda { min-height: 300px; display: grid; place-items: center; align-content: center; text-align: center; padding: 48px; border: 1px solid #ffffff26; }.empty-agenda>svg { color: var(--gold); margin-bottom: 18px; }.empty-agenda h3 { margin: 0 0 10px; font: 28px Georgia,serif; }.empty-agenda p { max-width: 580px; margin: 0 0 25px; color: #ffffffa6; line-height: 1.65; }
.story { display: grid; grid-template-columns: 1.2fr .8fr; min-height: 560px; }.story-panel { padding: 100px clamp(24px,8vw,120px); background: var(--cream); }.story-panel h2 { max-width: 770px; margin: 0 0 28px; font-size: clamp(38px,4vw,58px); color: var(--forest-deep); }.story-panel>p:last-child { max-width: 690px; color: var(--muted-text); font-size: 17px; line-height: 1.8; }.story-quote { padding: 80px; display: grid; place-content: center; background: var(--gold); color: var(--forest-deep); }.story-quote blockquote { max-width: 420px; margin: 30px 0 0; font: italic 34px/1.35 Georgia,serif; }
.contact { padding: 110px 24px; text-align: center; background: #102f26; color: #fff; }.contact h2 { margin: 0; font-size: clamp(40px,5vw,66px); }.contact>p:not(.eyebrow) { max-width: 620px; margin: 20px auto 30px; color: #ffffffad; font-size: 17px; }footer { min-height: 120px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 30px; padding: 26px clamp(24px,6vw,88px); background: #09231c; color: #ffffffa6; font-size: 13px; }.footer-brand { color: #fff; }footer>a { text-decoration: underline; text-underline-offset: 4px; }.footer-legal { flex: 1 1 100%; width: 100%; padding-top: 18px; border-top: 1px solid #ffffff26; text-align: center; color: #ffffff99; line-height: 1.8; }.footer-legal p { margin: 3px 0; }.footer-legal a { color: #ffffffc4; text-decoration: underline; text-underline-offset: 3px; }.footer-legal span { margin: 0 8px; color: #ffffff55; }.footer-legal strong { color: #fff; }
.admin-login-page { min-height: 100vh; display: grid; place-items: center; padding: 80px 24px; background: radial-gradient(circle at top left,#2b654f,var(--forest-deep) 55%); }.back-link { position: absolute; left: 30px; top: 30px; color: #fff; display: inline-flex; gap: 8px; align-items: center; font-size: 14px; }.login-card { width: min(430px,100%); padding: 44px; border-radius: 18px; background: #fff; box-shadow: 0 30px 80px #00000042; display: grid; gap: 15px; }.login-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--cream); color: var(--forest); }.login-card .eyebrow { margin: 8px 0 -8px; }.login-card h1 { margin: 0; font: 38px Georgia,serif; color: var(--forest-deep); }.login-card>p:not(.eyebrow):not(.form-error) { margin: 0 0 8px; color: var(--muted-text); line-height: 1.55; }.login-card small { text-align: center; color: #858e88; }.form-error { margin: -4px 0 0; color: #b42318; font-size: 14px; }.admin-primary { background: var(--forest)!important; color: #fff!important; }
.login-card label { display: grid; gap: 8px; margin-bottom: 2px; color: var(--forest-deep); font-size: 14px; font-weight: 700; line-height: 1.35; }
.login-card input[type="password"] { display: block; width: 100%; min-width: 0; height: 50px; min-height: 50px; padding: 0 15px; border: 1px solid #cfd5cf; border-radius: 9px; background: #fff; color: var(--ink); font-size: 17px; line-height: normal; }
.login-card input[type="password"]::placeholder { color: #89938c; opacity: 1; }
.password-field { display: flex; width: 100%; gap: 8px; align-items: stretch; }
.password-field input { flex: 1 1 auto; min-width: 0; display: block; width: 100%; height: 50px; min-height: 50px; padding: 0 15px; border: 1px solid #cfd5cf; border-radius: 9px; background: #fff; color: var(--ink); font-size: 17px; line-height: normal; }
.password-field input:focus { border-color: var(--gold); outline: 3px solid #d7a84b33; }
.password-field input::placeholder { color: #68756d; opacity: 1; }
.password-field button { flex: 0 0 auto; min-width: 76px; border: 1px solid #aebbb1; border-radius: 9px; background: #eef2ed; color: var(--forest); font-size: 13px; font-weight: 700; cursor: pointer; }
.contact-form { max-width: 760px; margin: 34px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; text-align: left; }
.contact-form label { display: grid; gap: 7px; color: #fff; font-size: 13px; font-weight: 700; }
.contact-form input,.contact-form textarea { width: 100%; border: 1px solid #ffffff59; border-radius: 9px; padding: 13px 14px; background: #ffffff12; color: #fff; outline: none; }
.contact-form input { height: 48px; }
.contact-form textarea { resize: vertical; min-height: 130px; }
.contact-form input::placeholder,.contact-form textarea::placeholder { color: #ffffffa6; }
.contact-form input:focus,.contact-form textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px #d7a84b33; }
.contact-form-full { grid-column: 1 / -1; }
.contact-form .button { grid-column: 1 / -1; justify-self: center; border: 0; cursor: pointer; }
.login-card input[type="password"]:focus { border-color: var(--gold); outline: 3px solid #d7a84b33; }
.local-modal { position: fixed; inset: 0; z-index: 100; display: none; place-items: center; padding: 24px; background: #061c16e8; overflow: auto; }.local-modal.open { display: grid; }.local-modal .login-card { max-height: 92vh; overflow: auto; }.local-close { position: absolute; top: 22px; right: 25px; border: 0; background: transparent; color: #fff; font-size: 32px; cursor: pointer; }.local-form { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.local-form label { display: grid; gap: 5px; color: var(--forest-deep); font-size: 13px; font-weight: 700; }.local-form label.full { grid-column: 1/-1; }.local-form input,.local-form select,.local-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 10px; background: #fff; }.local-form .button { grid-column: 1/-1; border: 0; cursor: pointer; }.local-saved { display: grid; gap: 8px; margin-top: 8px; }.local-saved article { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }.local-saved h3,.local-saved p { margin: 0; }.local-saved h3 { font-size: 15px; }.local-saved p { color: var(--muted-text); font-size: 12px; }.local-saved button { border: 0; background: transparent; color: #b42318; cursor: pointer; }
.login-card[hidden] { display: none !important; }
.admin-page { min-height: 100vh; background: #f2f4ef; }.admin-header { min-height: 120px; padding: 28px clamp(24px,6vw,80px); display: flex; align-items: center; justify-content: space-between; background: #fff; border-bottom: 1px solid var(--line); }.admin-header .eyebrow { margin-bottom: 5px; }.admin-header h1 { margin: 0; font: 35px Georgia,serif; color: var(--forest-deep); }.admin-header-actions { display: flex; align-items: center; gap: 20px; }.admin-header-actions a,.admin-header-actions button { display: inline-flex; align-items: center; gap: 7px; border: 0; background: transparent; color: var(--forest); font-size: 14px; cursor: pointer; }.admin-layout { max-width: 1380px; margin: auto; padding: 46px clamp(20px,4vw,60px) 80px; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr); gap: 28px; align-items: start; }.editor-card,.events-admin-card { background: #fff; border: 1px solid #e1e4de; border-radius: 16px; padding: 34px; box-shadow: 0 8px 25px #1c382d0d; }.admin-section-title { display: flex; align-items: flex-start; gap: 13px; color: var(--forest); margin-bottom: 28px; }.admin-section-title h2 { margin: 0 0 3px; font: 27px Georgia,serif; color: var(--forest-deep); }.admin-section-title p { margin: 0; color: var(--muted-text); font-size: 13px; }.event-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }.field { display: grid; gap: 8px; }.field.full { grid-column: 1/-1; }.field select { height: 40px; border: 1px solid var(--line); border-radius: 8px; padding: 0 12px; background: #fff; }.form-actions { grid-column: 1/-1; display: flex; justify-content: flex-end; gap: 10px; padding-top: 4px; }.success-notice { grid-column: 1/-1; margin: 0; display: flex; align-items: center; justify-content: flex-end; gap: 7px; color: #267447; font-size: 14px; }.admin-empty { min-height: 240px; border: 1px dashed #cbd2ca; border-radius: 12px; display: grid; place-items: center; place-content: center; text-align: center; color: #7b857f; }.admin-empty svg { color: var(--gold); margin-bottom: 12px; }.admin-empty p { line-height: 1.55; }.admin-event-list { display: grid; gap: 12px; }.admin-event-list article { display: flex; justify-content: space-between; gap: 18px; padding: 18px; border: 1px solid #e4e7e1; border-radius: 11px; }.admin-event-list h3 { margin: 7px 0 4px; font: 19px Georgia,serif; }.admin-event-list p { margin: 0; color: var(--muted-text); font-size: 13px; }.status { display: inline-flex; padding: 3px 8px; border-radius: 999px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.status.published { color: #21653f; background: #e4f4e9; }.status.draft { color: #725914; background: #f7efcf; }.row-actions { display: flex; gap: 6px; }.row-actions button { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #dfe3dd; border-radius: 8px; background: #fff; color: var(--forest); cursor: pointer; }.row-actions button.delete { color: #b42318; }
.legal-page { min-height: 100vh; background: var(--paper); }.legal-header { background: var(--forest-deep); padding: 24px clamp(24px,6vw,88px); }.legal-header .brand { color: #fff; }.legal-main { max-width: 900px; margin: 0 auto; padding: 80px 24px 100px; }.legal-main h1 { margin: 0 0 14px; color: var(--forest-deep); font: 48px Georgia,serif; }.legal-main h2 { margin: 38px 0 10px; color: var(--forest-deep); font: 28px Georgia,serif; }.legal-main p,.legal-main li { color: var(--muted-text); font-size: 16px; line-height: 1.75; }.legal-main a { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }.legal-back { display: inline-flex; margin-top: 28px; font-weight: 700; }
@media(max-width:1100px){.service-grid{grid-template-columns:repeat(2,1fr)}.service-card:nth-child(2){border-right:0}.service-card:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:900px){.site-header{height:80px}.menu-button{display:block}.nav-links{display:none;position:absolute;top:80px;left:0;right:0;padding:28px 24px;background:var(--forest-deep);flex-direction:column;align-items:flex-start;gap:22px}.nav-links.nav-open{display:flex}.hero{min-height:720px}.hero-shade{background:linear-gradient(90deg,#051d17e6,#09261e7a),linear-gradient(0deg,#04181380,transparent 50%)}.section-heading{grid-template-columns:1fr;gap:22px}.service-grid{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line)}.service-card:nth-child(2){border-right:0}.service-card:last-child{border-bottom:0}.story{grid-template-columns:1fr}.story-quote{min-height:360px;padding:50px 28px}.admin-layout{grid-template-columns:1fr}}
@media(max-width:620px){.brand-logo-full{width:198px;height:70px}.hero-content{margin-left:24px}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.hero-place{left:24px;right:auto}.section{padding-top:78px;padding-bottom:78px}.service-card{min-height:330px;padding-inline:24px}.event-card{grid-template-columns:76px 1fr;gap:18px}.event-card .button{grid-column:1/-1}.event-date{width:70px;height:78px}.story-panel{padding-top:78px;padding-bottom:78px}footer{flex-direction:column;align-items:flex-start;padding-block:38px}.admin-header{align-items:flex-start;flex-direction:column;gap:20px}.event-form{grid-template-columns:1fr}.field.full,.form-actions,.success-notice{grid-column:1}.editor-card,.events-admin-card,.login-card{padding:25px}.legal-main{padding-top:55px}.legal-main h1{font-size:40px}}
