:root { --ink:#241812; --cream:#f3eadc; --paper:#fbf6ed; --ember:#d84b1f; --gold:#e99b43; --muted:#77675c; font-family:"DM Sans",sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:300px; background:var(--paper); }
a { color:inherit; }
.site-header { height:86px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(22px,5vw,76px); border-bottom:1px solid #39271d18; background:#fbf6edeb; backdrop-filter:blur(12px); position:relative; z-index:10; }
.logo { display:flex; align-items:center; gap:11px; color:var(--ink); text-decoration:none; font-size:11px; line-height:1.05; text-transform:uppercase; letter-spacing:.08em; }
.logo b { display:block; font:700 21px/1 "Fraunces",serif; text-transform:none; letter-spacing:0; }
.logo-fire { width:42px; height:42px; display:grid; place-items:center; border-radius:50% 50% 48% 52% / 62% 62% 38% 38%; color:white; background:var(--ember); font:700 22px "Fraunces",serif; transform:rotate(-4deg); }
.site-header nav { display:flex; align-items:center; gap:30px; font-size:13px; font-weight:600; }
.site-header nav a { text-decoration:none; }
.nav-admin { padding:11px 16px; border:1px solid #37251b; border-radius:99px; }
.hero { min-height:calc(100vh - 86px); display:grid; grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr); overflow:hidden; }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:80px clamp(28px,7vw,112px); }
.eyebrow { color:var(--ember); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
h1,h2,h3 { font-family:"Fraunces",serif; }
.hero h1 { max-width:740px; margin:18px 0 24px; font-size:clamp(52px,6.3vw,96px); line-height:.94; letter-spacing:-.045em; }
.hero h1 em { color:var(--ember); font-weight:600; }
.hero-copy > p { max-width:570px; margin:0; color:var(--muted); font-size:17px; line-height:1.7; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.button { padding:14px 20px; border-radius:4px; text-decoration:none; font-size:13px; font-weight:700; }
.button.primary { color:white; background:var(--ember); }
.button.secondary { border:1px solid #3b2a20; }
.grill-scene { position:relative; isolation:isolate; min-height:610px; display:grid; place-items:center; overflow:hidden; color:white; background:#20130e; }
.grill-scene::before { content:""; position:absolute; inset:0; z-index:-2; opacity:.24; background:radial-gradient(circle at 20% 35%,#f18a3b 0 1px,transparent 2px),radial-gradient(circle at 70% 70%,#f18a3b 0 1px,transparent 2px); background-size:31px 31px,43px 43px; }
.sun { position:absolute; width:min(35vw,450px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,#ef9b3f 0 22%,#df5b27 23% 48%,#702716 49% 63%,transparent 64%); opacity:.82; }
.grill { position:relative; z-index:2; width:min(31vw,400px); height:250px; border:13px solid #130b08; border-radius:50%; transform:rotate(-8deg); background:#39241b; box-shadow:0 30px 80px #000b,inset 0 0 50px #000; overflow:hidden; }
.grill > span { position:relative; z-index:1; display:block; height:9px; margin:25px -20px; background:#a49184; transform:rotate(8deg); box-shadow:0 3px #2b1b15; }
.steak { position:absolute; z-index:3; width:110px; height:70px; border:7px solid #6f2415; border-radius:60% 42% 55% 40%; background:repeating-linear-gradient(35deg,#ad4125 0 12px,#d86b36 13px 17px); box-shadow:0 7px 15px #0009; }
.steak-one { left:65px; top:60px; transform:rotate(18deg); }.steak-two { right:40px; bottom:44px; transform:rotate(-13deg) scale(.85); }
.smoke { position:absolute; width:70px; height:210px; border-radius:50%; border-left:22px solid #f2ddca18; filter:blur(5px); transform:rotate(12deg); }.smoke-one { margin:-440px 0 0 -170px; }.smoke-two { margin:-410px -180px 0 0; transform:rotate(-9deg); }
.embers { position:absolute; bottom:12%; width:70%; height:60px; background:radial-gradient(circle,#ffad47 0 2px,transparent 3px); background-size:23px 19px; filter:drop-shadow(0 0 8px #ef531f); opacity:.7; }
.grill-scene p { position:absolute; z-index:4; bottom:7%; left:8%; margin:0; font-size:12px; letter-spacing:.13em; text-transform:uppercase; }.grill-scene p strong { display:block; color:var(--gold); font:600 24px "Fraunces",serif; letter-spacing:0; text-transform:none; }
.manifesto { display:grid; grid-template-columns:70px minmax(260px,.8fr) minmax(320px,1.2fr); gap:clamp(28px,5vw,86px); align-items:start; padding:110px clamp(28px,8vw,130px); background:var(--cream); }
.section-number { color:var(--ember); font:600 14px "Fraunces",serif; border-top:2px solid var(--ember); padding-top:8px; }
.manifesto h2,.section-heading h2,.closing h2 { margin:10px 0 0; font-size:clamp(38px,4vw,62px); line-height:1; letter-spacing:-.035em; }
.manifesto > p { margin:3px 0 0; color:var(--muted); font-size:17px; line-height:1.8; }
.flavors { padding:110px clamp(28px,8vw,130px) 130px; }
.section-heading { max-width:720px; margin-bottom:45px; }
.flavor-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.flavor-grid article { min-height:360px; display:flex; flex-direction:column; padding:28px; border:1px solid #3c291e24; background:#f7f0e5; }
.flavor-grid article.featured { color:white; background:var(--ember); transform:translateY(24px); }
.flavor-grid article > span { font-size:10px; letter-spacing:.15em; opacity:.65; }
.food-mark { width:110px; height:110px; display:grid; place-items:center; margin:auto; border-radius:50%; color:var(--ember); border:1px solid currentColor; font:600 58px "Fraunces",serif; }
.featured .food-mark { color:white; }
.flavor-grid h3 { margin:0 0 7px; font-size:28px; }.flavor-grid p { margin:0; color:var(--muted); line-height:1.6; }.featured p { color:#ffe5d7; }
.closing { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:end; padding:100px clamp(28px,8vw,130px); color:white; background:#21150f; }.closing p { max-width:440px; margin:0; color:#cbb9ac; font-size:18px; line-height:1.7; }
footer { min-height:110px; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:25px clamp(28px,5vw,76px); color:#d8c9be; background:#160d09; font-size:12px; } footer .logo { color:white; } footer > a:last-child { color:var(--gold); }
.admin-body { min-height:100vh; background:#21150f; color:white; }.admin-body .site-header { background:#21150f; border-color:#ffffff18; }.admin-body .logo { color:white; }.back-site { color:#d8c9be; font-size:13px; text-decoration:none; }
.access-main { min-height:calc(100vh - 86px); display:grid; place-content:center; padding:60px 24px 90px; background:radial-gradient(circle at 50% 15%,#5b251a55,transparent 37%); }
.access-intro { text-align:center; margin-bottom:34px; }.access-intro h1 { margin:12px 0 10px; font-size:clamp(38px,5vw,64px); }.access-intro p { margin:0; color:#c7b7ac; }
.access-grid { width:min(900px,92vw); display:grid; grid-template-columns:1fr 1fr; gap:16px; }.access-card { min-height:300px; display:grid; grid-template-columns:auto 1fr; gap:24px; padding:32px; color:var(--ink); background:var(--paper); text-decoration:none; transition:transform .2s,background .2s; }.access-card:hover { transform:translateY(-5px); background:white; }.access-icon { width:60px; height:60px; display:grid; place-items:center; border-radius:50%; color:white; background:var(--ember); font:700 25px "Fraunces",serif; }.access-card small { color:var(--ember); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.13em; }.access-card h2 { margin:7px 0 10px; font-size:36px; }.access-card p { margin:0; color:var(--muted); line-height:1.6; }.access-card > b { grid-column:1/-1; align-self:end; display:flex; justify-content:space-between; padding-top:18px; border-top:1px solid #39271d2b; font-size:13px; }.access-card > b span { color:var(--ember); font-size:20px; }.access-note { text-align:center; margin:28px 0 0; color:#a9978a; font-size:12px; }
.login-layout { width:min(1040px,94vw); display:grid; grid-template-columns:minmax(300px,.9fr) minmax(380px,1.1fr); gap:clamp(35px,7vw,95px); align-items:center; }
.login-intro h1 { margin:14px 0 18px; font-size:clamp(48px,6vw,76px); line-height:.93; letter-spacing:-.04em; }.login-intro > p { max-width:470px; margin:0 0 34px; color:#c7b7ac; line-height:1.7; }.login-detail { display:grid; grid-template-columns:75px 1fr; gap:12px; max-width:480px; padding:13px 0; border-top:1px solid #ffffff18; }.login-detail > span { color:var(--gold); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }.login-detail p { margin:0; color:#a9978a; font-size:12px; line-height:1.5; }
.login-card { display:grid; gap:20px; padding:clamp(26px,4vw,44px); color:var(--ink); background:var(--paper); box-shadow:0 30px 90px #0005; }.login-card h2 { margin:7px 0 0; font-size:38px; }.login-card fieldset { margin:0; padding:0; border:0; }.login-card legend,.login-field > span { margin-bottom:8px; color:#74645a; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.profile-options { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }.profile-options label { position:relative; cursor:pointer; }.profile-options input { position:absolute; opacity:0; pointer-events:none; }.profile-options label > span { min-height:70px; display:grid; align-content:center; gap:3px; padding:12px 14px; border:1px solid #dacfc4; background:#fff; transition:border-color .15s,background .15s; }.profile-options b { font-size:14px; }.profile-options small { color:var(--muted); font-size:10px; }.profile-options input:checked + span { border-color:var(--ember); background:#fff1e9; box-shadow:0 0 0 2px #d84b1f18; }.profile-options input:checked + span b { color:var(--ember); }
.login-field { display:grid; }.login-field input { width:100%; min-height:49px; border:1px solid #d8cdc2; border-radius:3px; padding:0 13px; background:#fff; color:var(--ink); font:inherit; outline:none; }.login-field input:focus { border-color:var(--ember); box-shadow:0 0 0 3px #d84b1f18; }.login-submit { min-height:52px; display:flex; align-items:center; justify-content:space-between; border:0; border-radius:3px; padding:0 18px; background:var(--ember); color:white; font:700 13px "DM Sans",sans-serif; cursor:pointer; }.login-submit span { font-size:20px; }.login-submit:disabled { opacity:.6; cursor:wait; }.login-error { margin:0; padding:10px 12px; border:1px solid #e8b5aa; background:#fff0ed; color:#a43827; font-size:12px; font-weight:700; }
@media (max-width:800px) { .site-header nav > a:not(.nav-admin) { display:none; }.site-header nav { gap:0; }.hero { grid-template-columns:1fr; }.hero-copy { min-height:650px; padding-top:70px; }.grill-scene { min-height:540px; }.grill { width:min(78vw,400px); }.manifesto { grid-template-columns:40px 1fr; }.manifesto > p { grid-column:2; }.flavor-grid { grid-template-columns:1fr; }.flavor-grid article.featured { transform:none; }.closing { grid-template-columns:1fr; }.access-grid,.login-layout { grid-template-columns:1fr; }.access-card { min-height:260px; }.login-intro { display:none; } footer { flex-direction:column; align-items:flex-start; } }
@media (max-width:520px) { .site-header { height:76px; padding:0 18px; }.logo-fire { width:36px; height:36px; }.logo b { font-size:18px; }.nav-admin { padding:9px 11px; font-size:11px; }.hero-copy { min-height:590px; padding:55px 22px; }.hero h1 { font-size:48px; }.manifesto,.flavors,.closing { padding-left:22px; padding-right:22px; }.manifesto { grid-template-columns:1fr; }.manifesto > p { grid-column:1; }.section-number { width:35px; }.access-main { padding-left:15px; padding-right:15px; }.access-card { grid-template-columns:1fr; }.access-icon { width:48px; height:48px; }.access-card > b { grid-column:1; }.profile-options { grid-template-columns:1fr; }.profile-options label > span { min-height:58px; } }

/* Página inicial — identidade Sociedade do Churrasco */
.home-body {
  --home-black:#08090a;
  --home-coal:#111315;
  --home-panel:#181a1c;
  --home-gold:#d0a55d;
  --home-gold-light:#f0d08c;
  --home-cream:#f2eadb;
  --home-muted:#afa595;
  --home-line:#92703c55;
  color:var(--home-cream);
  background:var(--home-black);
}
.home-body main { overflow:hidden; }
.home-header {
  min-height:96px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:8px clamp(22px,5vw,78px);
  border-bottom:1px solid var(--home-line);
  background:#08090af2;
  position:relative;
  z-index:5;
}
.home-brand { width:198px; height:78px; display:block; overflow:hidden; }
.home-brand img { width:100%; height:100%; display:block; object-fit:contain; }
.home-nav { display:flex; align-items:center; gap:clamp(16px,2.2vw,34px); }
.home-nav a { color:#c2b8a9; text-decoration:none; font-size:12px; font-weight:700; letter-spacing:.04em; transition:color .2s,border-color .2s,background .2s; }
.home-nav a:hover { color:var(--home-gold-light); }
.home-nav .home-nav-menu { color:var(--home-black); padding:12px 18px; border:1px solid var(--home-gold); border-radius:3px; background:var(--home-gold); }
.home-nav .home-nav-menu:hover { color:var(--home-black); background:var(--home-gold-light); }
.home-nav .home-nav-admin { padding:11px 16px; border:1px solid #716248; border-radius:3px; }
.home-hero { min-height:calc(100vh - 96px); display:grid; grid-template-columns:minmax(0,1fr) minmax(480px,.92fr); background:radial-gradient(circle at 15% 48%,#986d2c1f,transparent 33%),linear-gradient(135deg,#08090a,#111315); }
.home-hero-copy { display:flex; flex-direction:column; justify-content:center; padding:90px clamp(30px,7vw,120px); position:relative; }
.home-hero-copy::before { content:""; width:1px; height:90px; position:absolute; top:0; left:clamp(30px,7vw,120px); background:linear-gradient(var(--home-gold),transparent); opacity:.7; }
.home-kicker { color:var(--home-gold); font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.home-hero h1 { max-width:780px; margin:22px 0 26px; color:var(--home-cream); font:600 clamp(58px,6.5vw,104px)/.9 "Fraunces",serif; letter-spacing:-.05em; }
.home-hero h1 em { display:block; color:var(--home-gold); font-weight:600; }
.home-hero-copy > p { max-width:555px; margin:0; color:var(--home-muted); font-size:16px; line-height:1.8; }
.home-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:38px; }
.home-button { min-height:50px; display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:0 20px; border-radius:3px; text-decoration:none; font-size:12px; font-weight:700; letter-spacing:.02em; transition:transform .2s,background .2s,border-color .2s; }
.home-button:hover { transform:translateY(-2px); }
.home-button-primary { color:var(--home-black); border:1px solid var(--home-gold); background:var(--home-gold); }
.home-button-primary:hover { background:var(--home-gold-light); border-color:var(--home-gold-light); }
.home-button-secondary { color:var(--home-cream); border:1px solid #6c5c42; background:#151719; }
.home-hero-visual { min-height:620px; position:relative; overflow:hidden; border-left:1px solid var(--home-line); background:#171819; }
.home-hero-visual > img { width:100%; height:100%; position:absolute; inset:0; display:block; object-fit:cover; object-position:center; transform:scale(1.015); }
.home-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,#090a0b5e 0,transparent 35%),linear-gradient(0deg,#08090adb 0,transparent 47%),linear-gradient(180deg,#090a0b26,transparent 25%); }
.home-hero-number { position:absolute; top:34px; right:38px; color:#f2eadb80; font:600 12px "Fraunces",serif; letter-spacing:.12em; }
.home-hero-caption { position:absolute; right:38px; bottom:42px; left:38px; display:flex; align-items:end; justify-content:space-between; gap:25px; padding-top:17px; border-top:1px solid #f0d08c66; }
.home-hero-caption span { color:var(--home-gold); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.home-hero-caption strong { max-width:260px; color:var(--home-cream); font:600 24px/1.1 "Fraunces",serif; text-align:right; }
.home-experience { display:grid; grid-template-columns:155px minmax(320px,1.05fr) minmax(300px,.7fr); align-items:start; gap:clamp(30px,5vw,90px); padding:120px clamp(28px,7vw,120px); border-top:1px solid var(--home-line); border-bottom:1px solid var(--home-line); background:#0d0f10; }
.home-section-label { display:flex; align-items:center; gap:15px; padding-top:4px; }
.home-section-label span { color:var(--home-gold); font:600 14px "Fraunces",serif; }
.home-section-label small { color:#776e61; font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.home-experience h2,.home-section-heading h2,.home-visit h2 { margin:13px 0 0; color:var(--home-cream); font:600 clamp(39px,4vw,65px)/.98 "Fraunces",serif; letter-spacing:-.04em; }
.home-experience > p { margin:24px 0 0; padding-top:24px; border-top:1px solid var(--home-line); color:var(--home-muted); font-size:15px; line-height:1.85; }
.home-flavors { padding:115px clamp(28px,5vw,78px) 130px; background:linear-gradient(180deg,#111315,#08090a); }
.home-section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:45px; }
.home-section-heading a { color:var(--home-gold); text-decoration:none; font-size:11px; font-weight:700; letter-spacing:.05em; }
.home-section-heading a span { margin-left:10px; }
.home-flavor-grid { min-height:660px; display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:1fr 1fr; gap:16px; }
.home-flavor-card { min-height:0; display:block; position:relative; overflow:hidden; border:1px solid #5d4b30; border-radius:4px; color:var(--home-cream); background:var(--home-panel); text-decoration:none; }
.home-flavor-card.home-flavor-large { grid-row:1 / 3; }
.home-flavor-card > img { width:100%; height:100%; display:block; position:absolute; inset:0; object-fit:cover; transition:transform .5s ease; }
.home-flavor-card:hover > img { transform:scale(1.035); }
.home-flavor-overlay { position:absolute; inset:0; background:linear-gradient(0deg,#070809f2 0,#090a0b8f 35%,transparent 72%); }
.home-flavor-index { position:absolute; top:22px; right:24px; color:#fff9; font:600 11px "Fraunces",serif; }
.home-flavor-card > div { position:absolute; right:28px; bottom:27px; left:28px; }
.home-flavor-card small { color:var(--home-gold); font-size:9px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.home-flavor-card h3 { margin:6px 0 0; color:var(--home-cream); font:600 clamp(32px,3.6vw,57px) "Fraunces",serif; letter-spacing:-.03em; }
.home-flavor-card p { max-width:430px; margin:8px 0 0; color:#beb4a5; font-size:13px; line-height:1.55; }
.home-visit { display:grid; grid-template-columns:1fr .8fr; align-items:end; gap:70px; padding:105px clamp(28px,7vw,120px); border-top:1px solid var(--home-line); background:radial-gradient(circle at 85% 50%,#a1793820,transparent 28%),#111315; }
.home-visit-copy { display:flex; align-items:end; justify-content:space-between; gap:25px; }
.home-visit-copy p { margin:0; color:var(--home-muted); font-size:14px; line-height:1.7; }
.home-visit-copy .home-button { flex:0 0 auto; }
.home-footer { min-height:118px; display:grid; grid-template-columns:220px 1fr auto; align-items:center; gap:28px; padding:9px clamp(22px,5vw,78px); border-top:1px solid var(--home-line); color:var(--home-muted); background:#060708; font-size:11px; }
.home-footer > a:first-child { width:180px; height:92px; display:block; overflow:hidden; }
.home-footer img { width:100%; height:100%; display:block; object-fit:contain; }
.home-footer p { margin:0; text-align:center; letter-spacing:.05em; }
.home-footer > a:last-child { color:var(--home-gold); text-decoration:none; font-weight:700; }

@media (max-width:980px) {
  .home-nav > a:not(.home-nav-menu):not(.home-nav-admin) { display:none; }
  .home-hero { grid-template-columns:1fr; }
  .home-hero-copy { min-height:650px; }
  .home-hero-visual { min-height:600px; border-top:1px solid var(--home-line); border-left:0; }
  .home-experience { grid-template-columns:120px 1fr; }
  .home-experience > p { grid-column:2; margin-top:0; }
  .home-flavor-grid { min-height:740px; grid-template-columns:1fr 1fr; grid-template-rows:1.15fr .85fr; }
  .home-flavor-card.home-flavor-large { grid-column:1 / 3; grid-row:1; }
  .home-visit { grid-template-columns:1fr; }
}
@media (max-width:680px) {
  .home-header { min-height:78px; padding:4px 14px; }
  .home-brand { width:143px; height:68px; }
  .home-nav { gap:8px; }
  .home-nav .home-nav-menu { padding:10px 12px; font-size:10px; }
  .home-nav .home-nav-admin { width:39px; height:39px; padding:0; overflow:hidden; color:transparent; border-radius:50%; position:relative; }
  .home-nav .home-nav-admin::after { content:"↗"; position:absolute; inset:0; display:grid; place-items:center; color:var(--home-gold); font-size:16px; }
  .home-hero { min-height:auto; }
  .home-hero-copy { min-height:590px; padding:76px 22px 64px; }
  .home-hero-copy::before { left:22px; height:58px; }
  .home-hero h1 { font-size:clamp(50px,15vw,68px); }
  .home-actions { flex-direction:column; align-items:stretch; }
  .home-button { width:100%; }
  .home-hero-visual { min-height:470px; }
  .home-hero-caption { right:20px; bottom:24px; left:20px; align-items:start; flex-direction:column; gap:7px; }
  .home-hero-caption strong { max-width:none; font-size:22px; text-align:left; }
  .home-experience { grid-template-columns:1fr; padding:85px 22px; }
  .home-experience > p { grid-column:1; }
  .home-section-label { padding-bottom:12px; border-bottom:1px solid var(--home-line); }
  .home-flavors { padding:85px 14px 95px; }
  .home-section-heading { align-items:start; flex-direction:column; margin-right:8px; margin-left:8px; }
  .home-flavor-grid { min-height:1080px; grid-template-columns:1fr; grid-template-rows:1.15fr 1fr 1fr; }
  .home-flavor-card.home-flavor-large { grid-column:1; grid-row:1; }
  .home-flavor-card h3 { font-size:39px; }
  .home-visit { gap:35px; padding:85px 22px; }
  .home-visit-copy { align-items:stretch; flex-direction:column; }
  .home-footer { grid-template-columns:1fr auto; padding:12px 18px 20px; }
  .home-footer > a:first-child { width:145px; height:80px; }
  .home-footer p { grid-column:1 / 3; grid-row:2; text-align:left; }
}
