
/* EL HORNO DE SOFÍA / Edición editorial 5.0
   Diseño público solamente. Todos los valores comerciales siguen viniendo de /admin/. */
:root {
  --brand:#b5462a;
  --gold:#c39350;
  --ink:#2b1d16;
  --sand:#f7efe6;
  --cream:#fcf8f3;
  --paper:#fffdfa;
  --muted:#64564c;
  --line:#e9ddd0;
  --container:1200px;
  --serif:'DM Serif Display',Georgia,serif;
  --sans:Montserrat,Arial,sans-serif;
  --shadow:0 16px 42px rgb(71 35 18 / 8%);
}
html { scroll-padding-top:92px; }
body { background:var(--paper); color:var(--ink); font-size:15px; line-height:1.7; }
.container { width:min(var(--container),calc(100% - 64px)); }
.section { padding:88px 0; }
.section-paper { background:#fbf6f0; }
:where(h1,h2,h3) { letter-spacing:-.025em; }
h1 { font-size:clamp(3.4rem,5.65vw,5.9rem);line-height:1.08; }
h2 { font-size:clamp(2.55rem,4.15vw,4.4rem);line-height:1.11; }
h3 { font-size:clamp(1.65rem,2.25vw,2.3rem); }
.eyebrow { color:var(--brand); font-size:.67rem; letter-spacing:.17em; font-weight:800; margin-bottom:15px; }
.eyebrow-light { color:var(--brand); }
.section-lead { color:var(--muted);line-height:1.8;font-size:1.01rem; }
.title-accent { color:var(--brand);font-style:italic; }
.section-heading.centered { max-width:800px;margin-bottom:42px; }
.section-heading.centered h2 { margin-bottom:6px; }
.section-heading>p:last-child { max-width:610px; }
.btn { border-radius:999px; min-height:47px; padding:12px 24px; font-size:.79rem; box-shadow:none; transition:background .2s, border-color .2s, transform .2s; }
.btn-primary { background:var(--brand);border-color:var(--brand);box-shadow:0 9px 16px rgba(141,54,32,.12); }
.btn-primary:hover { background:#94341e; }
.btn-outline { border:1px solid var(--brand);color:var(--brand);background:transparent; }
.btn-outline:hover { background:#fdf0e7; }
.btn-cream { background:var(--brand);color:#fff; }
.btn-cream:hover { color:#fff;background:#8b321f; }
.btn:focus-visible { outline:3px solid var(--gold);outline-offset:2px; }
.topbar { background:var(--ink);font-weight:600; }
.site-header { background:rgba(255,252,248,.975);border-bottom:1px solid #e9e0d5;box-shadow:0 2px 18px rgba(48,26,15,.035); }
.header-inner { min-height:88px;gap:22px; }
.brand-logo { flex:0 0 auto; width:285px;min-width:0; }
.brand-logo .logo-wide { display:block;object-fit:contain;width:100%;mix-blend-mode:normal; }
.logo-mobile { display:none; }
.main-nav { display:flex; align-items:center;gap:21px;font-weight:750;font-size:.74rem;letter-spacing:-.015em; }
.main-nav>a:not(.btn) { transition:color .18s;white-space:nowrap; }
.main-nav>a:not(.btn):hover { color:var(--brand); }
.btn-nav { min-height:43px; padding:11px 17px;white-space:nowrap;font-size:.73rem; }
.menu-toggle { display:none; }
.hero { padding:0; background:linear-gradient(102deg,#fbf4ec 0%,#fff9f3 57%,#f4e7da 100%);overflow:hidden; }
.hero-grid { min-height:590px;display:grid;grid-template-columns:.96fr 1.04fr;gap:48px;align-items:stretch; }
.hero-content { padding:90px 0 85px;display:flex;flex-direction:column;align-items:start;justify-content:center; }
.hero-label-rule { width:46px;height:2px;background:var(--gold);margin-bottom:24px; }
.hero-content h1 { font-size:clamp(3.1rem,5.1vw,5.25rem);max-width:620px;line-height:1.08; }
.hero-intro { max-width:530px;margin-top:23px;font-size:1.01rem;line-height:1.88;color:#5e4d42; }
.hero .actions { margin-top:27px;gap:13px; }
.hero-meta { margin-top:29px;color:#735d4e;font-size:.72rem;line-height:1.5; }
.meta-bullet { color:var(--gold);font-size:1.1rem; }
.hero-media { height:auto;position:relative;min-width:0;align-self:stretch; }
.hero-photo { position:absolute;inset:0 -6vw 0 0;height:100%;width:auto;border-radius:0;box-shadow:none; }
.hero-photo::after { content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(251,244,236,.12),transparent 30%);pointer-events:none; }
.hero-photo img { object-position:50% 54%; }
.photo-tag { left:22px;bottom:24px;padding:10px 15px;background:rgba(43,29,22,.78);backdrop-filter:blur(6px);border-radius:4px;box-shadow:none;font-size:.69rem; }
.tag-symbol { font-size:1rem; }
.catalog-heading h2 { position:relative;display:inline-block; }
.catalog-heading h2::before,.catalog-heading h2::after { content:'';position:absolute;top:50%;width:48px;height:1px;background:var(--gold); }
.catalog-heading h2::before { right:calc(100% + 23px); }
.catalog-heading h2::after { left:calc(100% + 23px); }
.catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr));gap:19px; }
.catalog-card { border:1px solid #e8d8c8;border-radius:12px;box-shadow:0 8px 25px rgba(67,35,17,.035); }
.catalog-image { height:233px; }
.catalog-image img { transition:transform .35s ease; }
.catalog-body { padding:22px 24px 25px; }
.catalog-body h3 { font-size:2rem;line-height:1.1; }
.catalog-body>p { font-size:.8rem;line-height:1.7;margin:8px 0 0; }
.catalog-hours { color:#8d4937; }
.catalog-products { border-color:#eadbce; }
.catalog-actions { margin-top:auto;padding-top:22px; }
.catalog-actions .btn { border:0;border-radius:0;border-bottom:1px solid var(--brand);width:auto;min-height:35px;padding:4px 0;box-shadow:none;font-size:.77rem;background:transparent;color:var(--brand); }
.catalog-actions .btn:hover { transform:none;color:#8c351c; }
.section-footnote { margin-top:26px; }
.week-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.week-day { border-radius:9px; }
.visit-section { background:#fffdfa; }
.visit-layout { grid-template-columns:1.02fr .95fr;gap:69px;align-items:start; }
.visit-intro h2 { max-width:560px; }
.visit-intro>.section-lead { max-width:570px;margin-top:19px; }
.visit-gallery { margin-top:29px;gap:10px; }
.visit-gallery img { border-radius:9px;height:278px; }
.visit-gallery img:only-child { height:365px; }
.visit-card { padding:29px 31px;border-radius:13px;background:#fffaf5;border:1px solid #eddcd0;box-shadow:none; }
.visit-info-item { grid-template-columns:40px 1fr;gap:15px;padding-bottom:20px; }
.visit-info-item+.visit-info-item { padding-top:21px; }
.circle-icon { background:#f4e3d8;border-radius:8px;width:39px;height:39px;font-size:1.4rem;color:var(--brand); }
.visit-info-item h3 { font-family:var(--sans);font-size:.84rem; }
.visit-hours-row { align-items:baseline; }
.visit-card .btn { margin-top:4px; }
.visit-map { border-radius:8px; }
.companies-section { background:#f8f0e7;color:var(--ink); }
.companies-intro { grid-template-columns:.95fr .8fr;gap:72px;align-items:center; }
.companies-intro h2 { max-width:720px; }
.companies-intro>div:last-child>p { color:var(--muted);font-size:1rem;line-height:1.85; }
.companies-intro .actions { align-items:center; }
.companies-intro .text-link { color:var(--brand); }
.enterprise-divider { background:#dfcabc;margin:42px 0 32px; }
.enterprise-head p:last-child { color:#735e51;font-size:.84rem; }
.enterprise-head h3 { font-size:2.55rem; }
.plans-grid { gap:16px; }
.plan-card { border:1px solid #e7d8cc;background:#fffcf8;border-radius:13px;padding:26px 25px;box-shadow:none; }
.plan-card.featured { border:1px solid var(--gold);box-shadow:0 0 0 2px rgba(195,147,80,.13); }
.plan-badge { border-radius:4px;top:-11px; }
.plan-card h4 { font-size:1.85rem; }
.plan-card .btn-outline { border:1px solid var(--brand); }
.plan-card .btn-primary { color:#fff; }
.enterprise-note, .company-note { color:#665449; }
.steps-grid { gap:18px; }
.step-card { border:1px solid #e7d7c7;border-radius:12px;background:#fffaf5;color:var(--ink); }
.step-number { color:var(--brand); }
.step-card h4, .benefit-card h4 { color:var(--ink); }
.step-card p,.benefit-card p { color:var(--muted); }
.benefit-card { background:#fffaf5;border:1px solid #e7d7c7;border-radius:12px;color:var(--ink); }
.benefit-card>span { color:var(--brand); }
.small-plan { background:#fffaf5;color:var(--ink); }
.catering-section { background:#fffdfa; }
.catering-grid { gap:67px;grid-template-columns:1fr 1fr; }
.catering-photo { border-radius:11px;box-shadow:none; }
.catering-photo img { height:480px; }
.catering-copy h2 { font-size:clamp(2.5rem,3.8vw,3.9rem); }
.catering-copy>.section-lead { margin-top:17px; }
.catering-facts { padding:14px 0 8px;border-top:1px solid #eaddd0;border-bottom:1px solid #eaddd0; }
.catering-facts p { padding:3px 0; }
.testimonials-section { background:#f8f0e7; }
.testimonial { border-radius:12px;box-shadow:none; }
.faq-section { background:#fbf6f0; }
.faq-layout { grid-template-columns:.67fr 1fr;gap:83px; }
.faq-list { border-top:0; }
.faq-item { border:1px solid #e6d4c6;border-radius:8px;margin-bottom:9px;background:#fffaf6; }
.faq-item button { padding:15px 18px;font-size:.84rem; }
.faq-answer { padding:0 18px 17px; }
.contact-section { background:#fffdfa; }
.contact-card { background:linear-gradient(115deg,#fff8f0,#fffdfa);padding:48px 50px;border-radius:15px; }
.contact-routes article { border-radius:11px; }
.route-icon { background:#f4e4d9;border-radius:8px;color:var(--brand); }
.quote-section { background:#fbf6f0; }
.quote-form { border-radius:12px;box-shadow:none; }
.form-grid input,.form-grid select,.form-grid textarea { border-radius:6px; }
.site-footer { background:#2b1d16;color:#fff8ee;padding:54px 0 24px; }
.footer-grid { grid-template-columns:1.55fr .63fr 1fr;gap:50px; }
.footer-brand img { background:transparent;border:0;padding:0;border-radius:0;width:320px;mix-blend-mode:normal; }
.footer-brand p { font-size:.74rem;color:#dec8b7; }
.footer-links strong,.footer-contact strong { color:#f5dcc5; }
.footer-bottom { border-color:rgba(255,255,255,.17);margin-top:45px; }
.floating-whatsapp { box-shadow:0 6px 20px rgba(14,85,55,.17); }
/* Mac / tablet navigation collapses gracefully without crowding the wordmark. */
@media (max-width:1080px) {
 .container { width:min(100% - 44px,1040px); }
 .header-inner { min-height:77px; }
 .brand-logo { width:265px; }
 .brand-logo .logo-wide { display:block!important; }
 .logo-mobile { display:none; }
 .main-nav { gap:12px;font-size:.7rem; }
 .btn-nav { padding:10px 13px; }
 .hero-grid { min-height:540px;gap:23px;grid-template-columns:1fr 1fr; }
 .hero-content { padding:75px 0; }
 .hero-content h1 { font-size:clamp(3.05rem,5.2vw,4.55rem); }
 .catalog-image { height:195px; }
 .catalog-body { padding:22px 19px; }
 .visit-layout,.catering-grid { gap:35px; }
 .companies-intro,.faq-layout { gap:39px; }
}
@media (max-width:860px) {
 html { scroll-padding-top:75px; }
 .container { width:min(100% - 40px,740px); }
 .menu-toggle { display:flex; }
 .brand-logo { width:274px;max-width:calc(100% - 62px); }
 .brand-logo .logo-wide { display:block!important; }
 .logo-mobile { display:none; }
 .main-nav { display:none;position:absolute;top:100%;left:0;right:0;background:#fffdfa;border-top:1px solid var(--line);padding:18px 24px 23px;flex-direction:column;align-items:stretch;gap:3px;box-shadow:0 18px 24px rgba(58,32,17,.08); }
 .main-nav.open { display:flex; }
 .main-nav a:not(.btn) { padding:10px 4px;font-size:.84rem; }
 .btn-nav { align-self:flex-start;margin-top:9px; }
 .hero-grid { grid-template-columns:1fr 1fr;min-height:500px;gap:20px; }
 .hero-content h1 { font-size:clamp(2.9rem,5.45vw,4rem); }
 .hero-intro { font-size:.94rem; }
 .hero .actions .btn { padding:11px 17px; }
 .catalog-grid { gap:13px; }
 .catalog-image { height:155px; }
 .catalog-body { padding:19px 15px 22px; }
 .catalog-body h3 { font-size:1.58rem; }
 .week-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .visit-layout { grid-template-columns:1fr;gap:32px; }
 .visit-gallery img { height:240px; }
 .companies-intro { grid-template-columns:1fr;gap:22px; }
 .plans-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .catering-grid { grid-template-columns:1fr 1fr;gap:25px; }
 .catering-photo img { height:435px; }
 .service-list { grid-template-columns:1fr; }
 .faq-layout { grid-template-columns:.7fr 1fr;gap:30px; }
}
@media (max-width:620px) {
 .container { width:min(100% - 34px,520px); }
 .section { padding:64px 0; }
 .header-inner { min-height:70px; }
 .brand-logo { width:247px; }
 .brand-logo .logo-wide { display:block!important; }
 .logo-mobile { display:none; }
 .hero { padding:0; }
 .hero-grid { display:flex;flex-direction:column;min-height:0;gap:0; }
 .hero-content { order:1;padding:58px 0 43px; }
 .hero-label-rule { margin-bottom:17px; }
 .hero-content h1 { font-size:clamp(2.9rem,10.5vw,4.1rem);line-height:1.1; }
 .hero-intro { font-size:.94rem;margin-top:18px;line-height:1.78; }
 .hero .actions { width:100%;margin-top:23px; }
 .hero .actions .btn { flex:1;min-width:155px;width:auto; }
 .hero-meta { margin-top:24px; }
 .hero-media { order:2;height:360px;width:calc(100% + 34px);margin-left:-17px; }
 .hero-photo { inset:0;position:absolute; }
 .photo-tag { left:18px;bottom:18px; }
 .catalog-heading h2::before,.catalog-heading h2::after { width:22px; }
 .catalog-heading h2::before { right:calc(100% + 9px); }
 .catalog-heading h2::after { left:calc(100% + 9px); }
 .catalog-grid { display:grid;grid-template-columns:1fr;gap:19px; }
 .catalog-image { height:220px; }
 .catalog-body { padding:22px 22px 25px; }
 .catalog-body h3 { font-size:1.96rem; }
 .catalog-body>p { font-size:.86rem; }
 .weekly-heading { flex-direction:column;align-items:flex-start; }
 .week-grid { grid-template-columns:1fr; }
 .visit-layout { display:grid;grid-template-columns:1fr; }
 .visit-gallery img { height:210px; }
 .visit-card { padding:24px 21px; }
 .companies-intro { display:grid;grid-template-columns:1fr; }
 .companies-intro .actions>.btn { width:auto; }
 .enterprise-divider { margin:33px 0 26px; }
 .enterprise-head { display:block; }
 .enterprise-head h3 { font-size:2.2rem; }
 .plans-grid { grid-template-columns:1fr; }
 .plan-card { padding:24px; }
 .steps-grid { grid-template-columns:1fr; }
 .benefits-grid { grid-template-columns:1fr; }
 .catering-grid { display:flex;flex-direction:column;gap:29px; }
 .catering-copy { order:1; }
 .catering-photo { order:2;width:100%; }
 .catering-photo img { height:310px; }
 .testimonials-grid { grid-template-columns:1fr; }
 .faq-layout { display:grid;grid-template-columns:1fr;gap:25px; }
 .contact-card { padding:30px 20px; }
 .contact-routes { grid-template-columns:1fr; }
 .quote-grid { grid-template-columns:1fr;gap:23px; }
 .form-grid { grid-template-columns:1fr; }
 .quote-form { padding:24px 19px; }
 .footer-grid { grid-template-columns:1fr 1fr;gap:30px; }
 .footer-brand { grid-column:1 / -1; }
 .footer-brand img { width:295px; }
 .footer-bottom { display:flex;flex-direction:column;gap:8px; }
 .floating-whatsapp { bottom:19px;right:17px; }
}
@media (max-width:390px) {
 .brand-logo { width:217px; }
 .hero-content h1 { font-size:2.72rem; }
 .hero .actions .btn { width:100%;flex-basis:100%; }
 .catalog-heading h2::before,.catalog-heading h2::after { display:none; }
 .footer-grid { grid-template-columns:1fr; }
 .footer-brand { grid-column:auto; }
}
@media (prefers-reduced-motion:reduce) { .catalog-image img { transition:none; } }
