/*
Theme Name: El Fogón
Theme URI: https://example.com/el-fogon
Author: Portfolio Project
Author URI: https://example.com
Description: A wood-fire Mexican kitchen concept theme — warm rustic single-page design with a ticket-style menu, built as a portfolio piece. Not a real restaurant.
Version: 1.0
Requires at least: 5.0
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elfogon
*/


  :root{
    --ink:#2B1A12;
    --ink-soft:#4A3323;
    --adobe:#E4D3B0;
    --adobe-light:#F1E6CC;
    --ember:#B4402C;
    --ember-dark:#8C3021;
    --marigold:#C6862E;
    --cactus:#4B6B47;
    --paper:#FBF5E7;
    --line: rgba(43,26,18,0.16);
    --shadow: 0 10px 30px rgba(43,26,18,0.18);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--adobe);
    color:var(--ink);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  }

  h1,h2,h3,h4{font-family:'Fraunces', serif; font-weight:600; color:var(--ink); line-height:1.08;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .mono{font-family:'IBM Plex Mono', monospace;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    text-transform:uppercase;
    letter-spacing:0.14em;
    font-size:0.72rem;
    color:var(--ember-dark);
    font-weight:500;
  }
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
  section{position:relative;}
  :focus-visible{outline:3px solid var(--ember); outline-offset:3px;}

  /* ---------- Scallop divider (papel picado inspired) ---------- */
  .scallop{
    height:26px;
    width:100%;
    background-repeat:repeat-x;
    background-size:26px 26px;
  }
  .scallop-adobe-to-ink{ background-color:var(--ink); background-image:radial-gradient(circle at 13px 0, var(--adobe) 13px, transparent 13.5px); }
  .scallop-ink-to-adobe{ background-color:var(--adobe); background-image:radial-gradient(circle at 13px 26px, var(--ink) 13px, transparent 13.5px); }
  .scallop-paper-to-adobe{ background-color:var(--adobe); background-image:radial-gradient(circle at 13px 26px, var(--paper) 13px, transparent 13.5px); }
  .scallop-adobe-to-paper{ background-color:var(--paper); background-image:radial-gradient(circle at 13px 0, var(--adobe) 13px, transparent 13.5px); }

  /* ---------- Header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(228,211,176,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px;
    max-width:1120px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:10px;}
  .brand-mark{
    width:34px; height:34px; border-radius:50%;
    background:var(--ember);
    display:flex; align-items:center; justify-content:center;
    color:var(--paper); font-family:'Fraunces',serif; font-weight:700; font-size:1.1rem;
    flex-shrink:0;
  }
  .brand-name{font-family:'Fraunces', serif; font-weight:600; font-size:1.25rem;}
  .brand-name span{color:var(--ember-dark); font-style:italic; font-weight:500;}
  nav ul{display:flex; gap:28px; list-style:none;}
  nav ul li a{
    font-size:0.92rem; font-weight:500; color:var(--ink-soft);
    padding-bottom:3px; border-bottom:1px solid transparent;
    transition:border-color 0.2s, color 0.2s;
  }
  nav ul li a:hover{color:var(--ember-dark); border-color:var(--ember);}
  .nav-cta{
    background:var(--ink); color:var(--paper);
    padding:10px 18px; border-radius:3px;
    font-size:0.88rem; font-weight:500;
    white-space:nowrap;
    transition:background 0.2s;
  }
  .nav-cta:hover{background:var(--ember-dark);}
  .nav-toggle{display:none; background:none; border:none; cursor:pointer;}
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    display:block; width:22px; height:2px; background:var(--ink); position:relative; transition:0.2s;
  }
  .nav-toggle span::before, .nav-toggle span::after{content:''; position:absolute;}
  .nav-toggle span::before{top:-7px;}
  .nav-toggle span::after{top:7px;}

  /* ---------- Hero ---------- */
  .hero{
    padding:76px 0 64px;
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{
    display:grid;
    grid-template-columns:1.15fr 0.85fr;
    gap:48px;
    align-items:center;
  }
  .hero-badges{
    display:flex; gap:10px; flex-wrap:wrap;
    margin-bottom:22px;
  }
  .badge{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem; letter-spacing:0.03em;
    background:var(--paper);
    border:1px solid var(--line);
    padding:6px 12px; border-radius:999px;
    color:var(--ink-soft);
  }
  .hero h1{
    font-size:clamp(2.6rem, 5.4vw, 4.4rem);
    letter-spacing:-0.01em;
    margin-bottom:20px;
  }
  .hero h1 em{
    font-style:italic; font-weight:500; color:var(--ember);
    display:block;
  }
  .hero p.lede{
    font-size:1.12rem;
    color:var(--ink-soft);
    max-width:46ch;
    margin-bottom:32px;
  }
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:40px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 26px;
    border-radius:3px;
    font-weight:500; font-size:0.96rem;
    transition:transform 0.15s, box-shadow 0.15s, background 0.15s;
    border:1px solid transparent;
  }
  .btn-primary{background:var(--ember); color:var(--paper);}
  .btn-primary:hover{background:var(--ember-dark); transform:translateY(-2px); box-shadow:var(--shadow);}
  .btn-ghost{border-color:var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:var(--paper); transform:translateY(-2px);}

  .hero-stats{display:flex; gap:34px; flex-wrap:wrap;}
  .stat-num{font-family:'Fraunces', serif; font-size:1.9rem; font-weight:600; color:var(--ember-dark);}
  .stat-label{font-size:0.78rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.06em;}

  /* Comal (griddle) hero graphic */
  .comal-wrap{position:relative; display:flex; align-items:center; justify-content:center;}
  .comal{
    width:min(360px, 100%); aspect-ratio:1/1; border-radius:50%;
    background:
      radial-gradient(circle at 32% 28%, rgba(255,255,255,0.10), transparent 45%),
      conic-gradient(from 180deg, var(--ember) 0deg 8deg, transparent 8deg 42deg, var(--ember) 42deg 50deg, transparent 50deg 84deg, var(--ember) 84deg 92deg, transparent 92deg 126deg, var(--ember) 126deg 134deg, transparent 134deg 168deg, var(--ember) 168deg 176deg, transparent 176deg 210deg, var(--ember) 210deg 218deg, transparent 218deg 252deg, var(--ember) 252deg 260deg, transparent 260deg 294deg, var(--ember) 294deg 302deg, transparent 302deg 336deg, var(--ember) 336deg 344deg, transparent 344deg 360deg),
      var(--ink);
    position:relative;
    box-shadow: inset 0 0 0 14px var(--ink), 0 20px 50px rgba(43,26,18,0.35);
    animation:spin 60s linear infinite;
  }
  @media (prefers-reduced-motion: reduce){ .comal{animation:none;} }
  @keyframes spin{ to{ transform:rotate(360deg); } }
  .comal-center{
    position:absolute; inset:0; margin:auto;
    width:46%; height:46%; border-radius:50%;
    background:var(--marigold);
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    box-shadow:inset 0 4px 14px rgba(43,26,18,0.3);
  }
  .comal-center-inner{transform:rotate(0deg);}
  .comal-center span{
    display:block; font-family:'Fraunces', serif; font-weight:700; color:var(--ink);
    font-size:1.5rem; line-height:1;
  }
  .comal-center small{
    display:block; font-family:'IBM Plex Mono', monospace; font-size:0.62rem;
    letter-spacing:0.08em; color:var(--ink-soft); margin-top:4px;
  }

  /* ---------- Section headings ---------- */
  .section-head{max-width:620px; margin-bottom:44px;}
  .section-head h2{font-size:clamp(1.9rem, 3.4vw, 2.6rem); margin-top:10px;}
  .section-pad{padding:80px 0;}

  /* ---------- Story ---------- */
  .story{background:var(--ink); color:var(--adobe-light);}
  .story .section-head h2{color:var(--paper);}
  .story .eyebrow{color:var(--marigold);}
  .story-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;
  }
  .story-grid p{color:rgba(241,230,204,0.82); font-size:1.05rem; margin-bottom:18px; max-width:52ch;}
  .story-cards{display:grid; gap:16px;}
  .story-card{
    background:rgba(251,245,231,0.06);
    border:1px solid rgba(251,245,231,0.14);
    border-radius:6px;
    padding:22px 24px;
    display:flex; gap:16px; align-items:flex-start;
  }
  .story-card .num{
    font-family:'IBM Plex Mono', monospace; color:var(--marigold); font-size:0.85rem; padding-top:2px;
  }
  .story-card h4{color:var(--paper); font-size:1.05rem; margin-bottom:4px;}
  .story-card p{color:rgba(241,230,204,0.72); font-size:0.92rem; margin:0;}

  /* ---------- Day parts ---------- */
  .dayparts{background:var(--adobe);}
  .daypart-row{
    display:grid; grid-template-columns:0.9fr 1.1fr;
    gap:0; align-items:stretch;
    border:1px solid var(--line);
    border-radius:8px;
    overflow:hidden;
    background:var(--paper);
    margin-bottom:22px;
    box-shadow:var(--shadow);
  }
  .daypart-row:nth-child(even){grid-template-columns:1.1fr 0.9fr;}
  .daypart-row:nth-child(even) .daypart-text{order:2;}
  .daypart-visual{
    background:var(--ink);
    display:flex; flex-direction:column; justify-content:center; gap:10px;
    padding:34px;
    position:relative;
  }
  .daypart-visual .time{
    font-family:'Fraunces', serif; font-style:italic; font-weight:500;
    font-size:2.4rem; color:var(--marigold);
  }
  .daypart-visual .heat{display:flex; gap:5px;}
  .daypart-visual .heat span{width:8px; height:8px; border-radius:50%; background:var(--ember);}
  .daypart-text{padding:34px; display:flex; flex-direction:column; justify-content:center;}
  .daypart-text .eyebrow{margin-bottom:8px;}
  .daypart-text h3{font-size:1.5rem; margin-bottom:10px;}
  .daypart-text p{color:var(--ink-soft); margin-bottom:14px;}
  .daypart-tags{display:flex; gap:8px; flex-wrap:wrap;}
  .daypart-tags span{
    font-family:'IBM Plex Mono', monospace; font-size:0.7rem;
    background:var(--adobe); border:1px solid var(--line);
    padding:4px 10px; border-radius:999px; color:var(--ink-soft);
  }

  /* ---------- Menu (ticket cards) ---------- */
  .menu-section{background:var(--paper);}
  .filter-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
  .filter-btn{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    padding:9px 16px;
    border-radius:999px;
    border:1px solid var(--ink);
    background:transparent;
    color:var(--ink);
    cursor:pointer;
    transition:0.15s;
  }
  .filter-btn:hover{background:var(--adobe);}
  .filter-btn.active{background:var(--ink); color:var(--paper);}

  /* ---------- Menu header (enhanced) ---------- */
  .menu-head{
    text-align:center; max-width:640px; margin:0 auto 52px;
  }
  .menu-head-rule{
    display:flex; align-items:center; justify-content:center; gap:16px;
    margin-bottom:16px;
  }
  .menu-head-rule span.line{width:44px; height:1px; background:var(--ink-soft); opacity:0.35;}
  .menu-head-rule .eyebrow{margin-bottom:0;}
  .menu-head h2{font-size:clamp(2rem, 3.8vw, 2.9rem);}
  .menu-head h2 em{font-style:italic; font-weight:500; color:var(--ember);}
  .menu-sub{
    color:var(--ink-soft); font-size:1.02rem; margin-top:16px;
    max-width:46ch; margin-left:auto; margin-right:auto;
  }
  .menu-dots{
    display:flex; justify-content:center; gap:7px; margin-top:22px;
  }
  .menu-dots span{width:5px; height:5px; border-radius:50%; background:var(--ember); opacity:0.55;}
  .menu-dots span:nth-child(2){background:var(--marigold);}
  .menu-dots span:nth-child(3){background:var(--cactus);}

  .filter-row{justify-content:center;}

  .ticket-grid{
    display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:26px;
  }
  .ticket{
    position:relative;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 6px 18px rgba(43,26,18,0.14);
    transition:transform 0.22s ease, box-shadow 0.22s ease;
    line-height:0;
  }
  .ticket:nth-child(4n+1){transform:rotate(-0.6deg);}
  .ticket:nth-child(4n+2){transform:rotate(0.5deg);}
  .ticket:nth-child(4n+3){transform:rotate(-0.4deg);}
  .ticket:nth-child(4n+4){transform:rotate(0.7deg);}
  .ticket:hover{transform:rotate(0deg) translateY(-6px); box-shadow:0 18px 34px rgba(43,26,18,0.28); z-index:3;}
  .ticket img{width:100%; height:auto; display:block;}

  /* ---------- Reviews ---------- */
  .reviews{background:var(--adobe);}
  .review-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;}
  .review-card{
    background:var(--paper); border-radius:8px; padding:28px;
    box-shadow:var(--shadow);
    position:relative;
  }
  .review-stamp{
    position:absolute; top:20px; right:20px;
    width:44px; height:44px; border-radius:50%;
    border:2px solid var(--cactus);
    display:flex; align-items:center; justify-content:center;
    transform:rotate(-8deg);
    color:var(--cactus); font-family:'IBM Plex Mono', monospace; font-size:0.62rem; font-weight:500;
    text-align:center; line-height:1.1;
  }
  .stars{color:var(--marigold); letter-spacing:2px; margin-bottom:14px; font-size:0.95rem;}
  .review-card p{font-size:0.96rem; color:var(--ink-soft); margin-bottom:16px; max-width:85%;}
  .review-name{font-family:'Fraunces', serif; font-weight:600; font-size:0.95rem;}
  .review-role{font-size:0.78rem; color:var(--ink-soft);}

  /* ---------- Visit ---------- */
  .visit{background:var(--ink); color:var(--adobe-light);}
  .visit .eyebrow{color:var(--marigold);}
  .visit .section-head h2{color:var(--paper);}
  .visit-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
  .hours-table{width:100%; border-collapse:collapse;}
  .hours-table tr{border-bottom:1px solid rgba(251,245,231,0.14);}
  .hours-table td{padding:12px 0; font-size:0.95rem;}
  .hours-table td:first-child{color:var(--paper); font-weight:500;}
  .hours-table td:last-child{text-align:right; font-family:'IBM Plex Mono', monospace; color:rgba(241,230,204,0.75); font-size:0.88rem;}
  .hours-table tr.closed td:last-child{color:var(--ember); }
  .visit-details{margin-top:28px; display:grid; gap:14px;}
  .visit-detail{display:flex; gap:14px; align-items:flex-start;}
  .visit-detail .dot{width:8px; height:8px; border-radius:50%; background:var(--marigold); margin-top:8px; flex-shrink:0;}
  .visit-detail strong{display:block; color:var(--paper); font-size:0.95rem;}
  .visit-detail span{color:rgba(241,230,204,0.72); font-size:0.9rem;}
  .visit-cta{
    background:rgba(251,245,231,0.06); border:1px solid rgba(251,245,231,0.14);
    border-radius:8px; padding:32px;
    display:flex; flex-direction:column; gap:16px; justify-content:center;
  }
  .visit-cta h3{color:var(--paper); font-size:1.4rem;}
  .visit-cta p{color:rgba(241,230,204,0.75); font-size:0.94rem;}

  /* ---------- Footer ---------- */
  footer{background:var(--ink); padding:44px 0 30px; border-top:1px solid rgba(251,245,231,0.12);}
  .footer-grid{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; margin-bottom:28px;}
  .footer-brand{color:var(--paper); font-family:'Fraunces', serif; font-size:1.2rem; font-weight:600;}
  .footer-brand span{color:var(--marigold); font-style:italic; font-weight:500;}
  .footer-links{display:flex; gap:24px; flex-wrap:wrap;}
  .footer-links a{color:rgba(241,230,204,0.7); font-size:0.88rem;}
  .footer-links a:hover{color:var(--marigold);}
  .footer-bottom{
    padding-top:20px; border-top:1px solid rgba(251,245,231,0.1);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
    font-size:0.8rem; color:rgba(241,230,204,0.5);
  }

  /* ---------- Responsive ---------- */
  @media (max-width:860px){
    nav ul{display:none;}
    .nav-toggle{display:block;}
    .hero .wrap{grid-template-columns:1fr; text-align:left;}
    .comal-wrap{order:-1; margin-bottom:12px;}
    .comal{width:220px;}
    .story-grid{grid-template-columns:1fr;}
    .daypart-row, .daypart-row:nth-child(even){grid-template-columns:1fr;}
    .daypart-row:nth-child(even) .daypart-text{order:0;}
    .review-grid{grid-template-columns:1fr;}
    .visit-grid{grid-template-columns:1fr;}
    .footer-grid{flex-direction:column; align-items:flex-start;}
  }
  @media (max-width:520px){
    .wrap{padding:0 20px;}
    .hero{padding:52px 0 44px;}
    .hero-stats{gap:22px;}
  }
