/* Três demonstrações editoriais. Moldura TOFY em models.css. */
.new-demo { --demo-ink:#182c39; --demo-muted:#52616b; --demo-accent:#b94315; --demo-paper:#f8f7f3; --demo-tint:#f1e7da; margin:0; font-family:var(--tofy-font); background:var(--demo-paper); color:var(--demo-ink); line-height:1.65; }
.new-demo * { box-sizing:border-box; }
.new-demo a { color:inherit; text-decoration:none; }
.new-demo h1,.new-demo h2,.new-demo h3 { line-height:1.1; letter-spacing:-.045em; }
.new-demo h2 { font-size:clamp(32px,4vw,52px); margin:0 0 24px; }
.new-demo h3 { font-size:24px; margin:16px 0; }
.new-demo p { margin:0 0 20px; }
.new-demo .business-nav { display:flex; align-items:center; gap:30px; padding-block:26px; }
.new-demo .business-logo { font-size:25px; font-weight:800; letter-spacing:.04em; line-height:1.3; margin-right:auto; }
.business-logo small { display:block; font-size:11px; font-weight:500; letter-spacing:.02em; }
.business-nav nav { display:flex; gap:26px; font-size:14px; }
.business-jump { font-size:13px; font-weight:700; border-bottom:1px solid; padding:8px 0; }
.new-demo .hero { padding:38px 0 72px; }
.new-demo .hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:64px; }
.new-demo .hero h1 { font-size:clamp(44px,5.4vw,78px); margin:0 0 28px; max-width:15ch; }
.new-demo .demo-eyebrow { color:var(--demo-accent); font:700 11px/1.6 var(--tofy-mono); letter-spacing:.13em; margin-bottom:22px; }
.new-demo .demo-lead { color:var(--demo-muted); font-size:18px; max-width:50ch; }
.new-demo .hero-photo { margin:0; position:relative; height:540px; min-width:0; }
.new-demo .hero-photo img { width:100%; height:100%; object-fit:cover; border-radius:8px 110px 8px 8px; display:block; }
.new-demo .hero-photo figcaption { position:absolute; left:-24px; bottom:30px; padding:20px 26px; background:var(--demo-ink); color:white; font-size:15px; }
.new-demo .hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.new-demo .btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:14px 22px; border-radius:5px; font-size:14px; font-weight:700; }
.new-demo .demo-outline { border:1px solid var(--demo-ink); }
.new-demo .hero-footnote { font-size:12px; margin-top:18px; color:var(--demo-muted); }
.demo-ribbon { background:var(--demo-ink); color:#fff; padding:22px 0; }
.demo-ribbon .container { display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:14px; }
.demo-ribbon span:first-child { font-weight:700; }
.demo-section { padding:88px 0; }
.demo-section-head { display:grid; grid-template-columns:1.15fr 1fr; align-items:end; gap:80px; margin-bottom:36px; }
.demo-section-head h2 { max-width:19ch; margin-bottom:0; }
.demo-section-head > p { color:var(--demo-muted); margin:0; max-width:48ch; }
.demo-services { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.demo-service { border:1px solid #d7d8d4; background:#fff; padding:28px; min-width:0; display:flex; flex-direction:column; }
.service-number { color:var(--demo-accent); font:500 24px var(--tofy-mono); margin-bottom:26px; }
.new-demo .service-category { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--demo-muted); margin:0; }
.demo-service p { font-size:15px; color:var(--demo-muted); }
.demo-service a { font-size:13px; font-weight:700; margin-top:auto; padding-top:16px; text-decoration:underline; text-underline-offset:5px; min-height:44px; }
.demo-story { background:var(--demo-tint); padding:72px 0; }
.story-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:96px; align-items:center; }
.story-label { border:1px solid currentColor; padding:44px; min-height:310px; display:flex; flex-direction:column; }
.story-label > span { font-size:28px; font-weight:800; letter-spacing:.04em; }
.story-label p { font-size:14px; }
.story-symbol { font-size:100px; line-height:1; align-self:flex-end; color:var(--demo-accent); }
.story-grid h2 { max-width:20ch; }
.story-note { font-size:13px; border-top:1px solid #a9afa8; padding-top:20px; }
.demo-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px; list-style:none; padding:0; margin:40px 0 0; }
.demo-steps li { border-top:2px solid var(--demo-ink); padding-top:24px; }
.demo-steps li > span { color:var(--demo-accent); font-family:var(--tofy-mono); }
.demo-steps p { color:var(--demo-muted); font-size:16px; }
.demo-faq { background:#fff; border-top:1px solid #d7d8d4; }
.faq-layout { display:grid; grid-template-columns:1fr 1.4fr; gap:80px; }
.demo-faq details { border-bottom:1px solid #d7d8d4; }
.demo-faq summary { padding:24px 4px; cursor:pointer; font-weight:600; min-height:48px; }
.demo-faq details p { padding:0 4px 20px; color:var(--demo-muted); }
.demo-closing { text-align:center; padding:80px 0; background:var(--demo-tint); }
.demo-closing h2 { margin:0 auto 30px; max-width:25ch; }
.demo-footer { padding:30px 0; background:var(--demo-ink); color:#fff; }
.demo-footer .container { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; font-size:13px; }
.new-demo .model-personalization { font-size:16px; }
.theme-gastronomia { --demo-ink:#47231e; --demo-muted:#735b51; --demo-accent:#94472a; --demo-paper:#fffaf0; --demo-tint:#f2e4cf; }
.theme-gastronomia h1,.theme-gastronomia h2,.theme-gastronomia h3,.theme-gastronomia .business-logo { font-family:Georgia,serif; font-weight:400; }
.theme-gastronomia .hero-photo img { border-radius:240px 240px 8px 8px; }
.theme-gastronomia .hero-photo figcaption { left:auto; right:-12px; bottom:30px; border-radius:4px; }
.theme-gastronomia .demo-services { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 40px; }
.theme-gastronomia .demo-service { padding:28px 0; background:transparent; border:0; border-bottom:1px solid #c9b9a4; }
.theme-gastronomia .service-number { display:none; }
.theme-gastronomia .demo-service h3 { font-size:32px; }
.theme-gastronomia .demo-service a { color:var(--demo-accent); }
.menu-filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.menu-filters[hidden] { display:none; }
.menu-filters button { color:var(--demo-ink); background:transparent; border:1px solid #aa9685; border-radius:40px; font:inherit; padding:10px 20px; cursor:pointer; min-height:44px; }
.menu-filters button[aria-pressed="true"] { background:var(--demo-ink); color:#fff; border-color:var(--demo-ink); }
.demo-service[hidden] { display:none; }
.theme-educacao { --demo-ink:#163d34; --demo-muted:#51665e; --demo-accent:#276349; --demo-paper:#fafbf5; --demo-tint:#eef0d7; }
.theme-educacao .hero-photo img { border-radius:120px 10px 120px 10px; }
.theme-educacao .hero-photo figcaption { background:#e5ed99; color:#163d34; border-radius:10px; }
.theme-educacao .demo-service { border-radius:20px; }
.theme-educacao .service-number { background:#eef0d7; width:52px; height:52px; display:grid; place-items:center; border-radius:50%; }
.theme-educacao .story-label { border-radius:100px 10px 100px 10px; background:#e5ed99; border:none; }
@media(max-width:1000px) {
 .new-demo .hero-grid { gap:32px; }
 .new-demo .hero-photo { height:460px; }
 .demo-services { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .story-grid,.faq-layout { gap:40px; }
 .business-nav nav { display:none; }
}
@media(max-width:760px) {
 .new-demo .hero-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
 .new-demo .hero { padding:20px 0 40px; }
 .new-demo .hero h1 { font-size:clamp(42px,10vw,65px); }
 .new-demo .hero-photo { height:360px; }
 .new-demo .hero-photo figcaption { left:12px; right:12px; bottom:16px; font-size:13px; padding:14px; }
 .new-demo .hero-photo img { border-radius:10px 70px 10px 10px; }
 .theme-gastronomia .hero-photo img { border-radius:150px 150px 8px 8px; }
 .demo-ribbon .container { flex-direction:column; align-items:flex-start; gap:6px; }
 .demo-section { padding:52px 0; }
 .demo-section-head,.story-grid,.faq-layout { grid-template-columns:1fr; gap:24px; }
 .demo-section-head { margin-bottom:26px; }
 .demo-services,.theme-gastronomia .demo-services { grid-template-columns:minmax(0,1fr); }
 .demo-steps { grid-template-columns:1fr; gap:22px; }
 .demo-story { padding:48px 0; }
 .story-label { min-height:220px; padding:28px; }
 .demo-closing { padding:50px 0; }
 .business-jump { display:none; }
 .new-demo .business-nav { padding-block:22px; }
 .new-demo .business-logo { font-size:23px; }
}
@media(prefers-reduced-motion:reduce) { .new-demo * { scroll-behavior:auto !important; } }
