        :root {
          --accent:#0070a3;
          --dark:#0b2b3a;
          --muted:#6b7280;
          --card:#ffffff;
          --bg:#f9fafb;
          --max-width:1200px;
        }
        * { box-sizing:border-box; margin:0; padding:0; }

        body {
          font-family:'Inter', system-ui, sans-serif;
          color:var(--dark);
          background:var(--bg);
          line-height:1.6;
          display:flex;
          flex-direction:column;
          min-height:100vh;
        }

        header.site-header {
            background:var(--dark);
            color:#fff;
            padding:0.75rem 0;
            position:sticky; top:0;
            z-index:50;
            box-shadow:0 2px 6px rgba(0,0,0,0.15);
            }

        .container {
            max-width:var(--max-width);
            margin:0 auto;
            padding:0 16px;
        }

        .topbar {
            display:flex;
            justify-content:space-between;
            align-items:center; }

        .branding {
            display:flex;
            align-items:center;
            gap:12px; }

        .branding img {
            width:48px;
            height:48px;
            object-fit:cover;
            border-radius:6px;
            background:#fff; }

        .branding h1 {
            font-family:'Playfair Display', serif;
            font-size:18px;
            margin:0; }

        nav.main-nav .nav-list {
            display:flex;
            gap:18px;
            list-style:none;
            margin:0;
            padding:0; }

        .nav-list a {
            color:#e6f7ff;
            text-decoration:none;
            font-weight:600;
            transition:color 0.3s; }

        .nav-list a:hover {
            color:#fff;
        }

        nav.main-nav {
          display: block;
        }

        .menu-toggle {
          display: none;
          background:none;
          border:none;
          cursor:pointer;
          flex-direction:column;
          gap:5px;
        }
        .menu-toggle span {
          display:block;
          width:24px;
          height:3px;
          background:#fff;
          border-radius:2px;
          transition:0.3s;
        }

        @media(max-width: 768px) {
          .menu-toggle {
            display: flex;
          }
          nav.main-nav {
            display: none;
            position: absolute;
            top:60px;
            right:16px;
            background:var(--dark);
            border-radius:8px;
            box-shadow:0 6px 12px rgba(0,0,0,0.2);
          }
          nav.main-nav.active {
            display:block;
          }
          nav.main-nav .nav-list {
            flex-direction: column;
            gap:0;
          }
          nav.main-nav .nav-list li {
            border-bottom:1px solid rgba(255,255,255,0.1);
          }
          nav.main-nav .nav-list a {
            display:block;
            padding:12px 20px;
            color:#fff;
          }
        }

        .hero {
          background:url("../images/_gimno_cut.webp") no-repeat center/cover;
          flex:1;
          display:flex;
          align-items:center;
          justify-content:center;
          text-align:center;
          color:#fff;
          position:relative;
          min-height:60vh;
        }
        .hero::after {
          content:"";
          position:absolute;
          inset:0;
          background:rgba(0,0,0,0.35);
        }
        .hero .overlay {
          position:relative;
          z-index:1;
          max-width:700px;
          padding:2rem;
        }
        .hero h1 {
          font-family:'Playfair Display', serif;
          font-size:3rem;
          margin-bottom:0.75rem;
        }
        .hero p {
          font-size:1.2rem;
          margin-bottom:1.5rem;
          opacity:0.9;
        }
        .btn {
          display:inline-block;
          background:var(--accent);
          color:#fff;
          padding:0.9rem 1.8rem;
          border-radius:8px;
          text-decoration:none;
          font-weight:600;
          transition:background 0.3s, transform 0.2s;
        }
        .btn:hover {
          background:#005b7a;
          transform:translateY(-2px);
        }

        main {
          flex:1;
          display:flex;
          justify-content:center;
          padding:3rem 1rem;
        }
        .reserva-section {
          max-width:500px;
          width:100%;
        }
        .reserva-section h2 {
          text-align:center;
          margin-bottom:1.5rem;
          font-family:'Playfair Display', serif;
          color:var(--dark);
        }
        .reserva-form {
          background:#fff;
          padding:2rem;
          border-radius:12px;
          box-shadow:0 6px 16px rgba(0,0,0,0.08);
          display:grid;
          gap:1rem;
        }
        .reserva-form label {
          font-weight:600;
          font-size:0.9rem;
          color:var(--dark);
        }
        .reserva-form input {
          padding:0.8rem;
          border:1px solid #d1d5db;
          border-radius:6px;
          font-size:1rem;
        }
        .reserva-form button {
          background:#27ae60;
          color:#fff;
          border:none;
          padding:1rem;
          border-radius:8px;
          cursor:pointer;
          font-size:1rem;
          font-weight:600;
          transition:background 0.3s, transform 0.2s;
        }
        .reserva-form button:hover {
          background:#1e8449;
          transform:translateY(-2px);
        }

        footer {
          background:#0b2b3a;
          color:#fff;
          text-align:center;
          padding:1rem;
          margin-top:auto;
          font-size:0.9rem;
        }

        @media(max-width:768px){
          .hero h1 { font-size:2rem; }
          .hero p { font-size:1rem; }
          .nav-list { flex-wrap:wrap; gap:10px; }
          .reserva-form { padding:1.5rem; }
        }