      * {
          margin: 0;
          padding: 0;
          box-sizing: border-box;
      }

      :root {
          --color-primary: #8B4513;
          --color-secondary: #D4AF37;
          --color-accent: #2C1810;
          --color-light: #FBF8F3;
          --color-text: #1a1a1a;
          --color-border: #DDD0C4;
      }

      body {
          font-family: 'Crimson Text', serif;
          color: var(--color-text);
          background-color: #FCD491;
          line-height: 1.6;
      }

      /* HEADER */
      header {
          background: linear-gradient(135deg, #8c0000 30%, #fff 1000%);
          padding: 0;
          position: sticky;
          top: 0;
          z-index: 1000;
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
      }

      .header-top {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 1.5rem 2rem;
          max-width: 1400px;
          margin: 0 auto;
      }

      .logo {
          font-family: 'Cinzel', serif;
          font-size: 1.8rem;
          font-weight: 700;
          color: var(--color-secondary);
          text-decoration: none;
          letter-spacing: 2px;
      }

      .hamburger {
          display: none;
          flex-direction: column;
          cursor: pointer;
          gap: 6px;
      }

      .hamburger span {
          width: 25px;
          height: 3px;
          background-color: var(--color-secondary);
          border-radius: 3px;
          transition: all 0.3s ease;
      }

      .hamburger.active span:nth-child(1) {
          transform: rotate(45deg) translate(8px, 8px);
      }

      .hamburger.active span:nth-child(2) {
          opacity: 0;
      }

      .hamburger.active span:nth-child(3) {
          transform: rotate(-45deg) translate(7px, -7px);
      }

      nav {
          display: flex;
          gap: 3rem;
          align-items: center;
      }

      nav>div {
          position: relative;
          group: 1;
      }

      .nav-item {
          font-family: 'Cinzel', serif;
          color: rgb(255, 255, 255);
          text-decoration: none;
          font-size: 0.95rem;
          cursor: pointer;
          display: flex;
          align-items: center;
          gap: 0.5rem;
          transition: color 0.3s ease;
          padding: 0.5rem 0;
      }

      .nav-item:hover {
          color: #FFD700;
      }

      .submenu {
          display: none;
          position: absolute;
          top: 100%;
          left: 0;
          background: rgba(44, 24, 16, 0.95);
          backdrop-filter: blur(10px);
          min-width: 220px;
          border-top: 3px solid var(--color-secondary);
          border-radius: 0 0 8px 8px;
          padding: 1rem 0;
          margin-top: 0.5rem;
          opacity: 0;
          visibility: hidden;
          transform: translateY(-10px);
          transition: all 0.3s ease;
          box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
      }

      nav>div:hover .submenu {
          display: block;
          opacity: 1;
          visibility: visible;
          transform: translateY(0);
      }

      .submenu a {
          display: block;
          padding: 0.8rem 1.5rem;
          color: var(--color-light);
          text-decoration: none;
          font-family: 'Crimson Text', serif;
          font-size: 0.95rem;
          transition: all 0.3s ease;
          border-left: 3px solid transparent;
      }

      .submenu a:hover {
          background-color: rgba(212, 175, 55, 0.1);
          border-left-color: var(--color-secondary);
          padding-left: 2rem;
          color: var(--color-secondary);
      }

      /* Mobile */
      @media (max-width: 768px) {
          .hamburger {
              display: flex;
          }

          nav {
              display: none;
              position: absolute;
              top: 100%;
              left: 0;
              right: 0;
              flex-direction: column;
              background: rgba(44, 24, 16, 0.98);
              backdrop-filter: blur(10px);
              padding: 2rem 1rem;
              gap: 0;
              border-top: 2px solid var(--color-secondary);
          }

          nav.active {
              display: flex;
          }

          nav>div {
              width: 100%;
          }

          .nav-item {
              padding: 1rem;
              justify-content: space-between;
          }

          .submenu {
              position: static;
              background: rgba(139, 69, 19, 0.5);
              display: none;
              opacity: 1;
              visibility: visible;
              transform: none;
              border: none;
              margin-top: 0;
              border-radius: 0;
              box-shadow: none;
          }

          nav>div.active .submenu {
              display: block;
          }

          .submenu a {
              padding: 0.8rem 2rem;
          }

          .header-top {
              padding: 1rem 1.5rem;
          }

          .logo {
              font-size: 1.3rem;
          }
      }

      /* HERO SECTION */
      .hero {
          height: 60vh;
          background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(139, 69, 19, 0.6)),
              url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600"><defs><pattern id="pattern" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M0,20 Q10,10 20,20 T40,20" fill="none" stroke="%23D4AF37" stroke-width="0.5" opacity="0.2"/></pattern></defs><rect width="1200" height="600" fill="%238B4513"/><rect width="1200" height="600" fill="url(%23pattern)"/></svg>');
          background: url(./assets/museo-della-cattedrale-altare.jpg);
          background-size: cover;
          background-position: center;
          display: flex;
          align-items: center;
          justify-content: center;
          text-align: center;
          color: var(--color-light);
          animation: fadeIn 0.8s ease-out;
      }

      .hero-content h1 {
          font-family: 'Cinzel', serif;
          font-size: 3.5rem;
          margin-bottom: 1rem;
          text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
          letter-spacing: 3px;
      }

      .hero-content p {
          font-size: 1.6rem;
          text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
          font-style: italic;
      }

      @keyframes fadeIn {
          from {
              opacity: 0;
          }

          to {
              opacity: 1;
          }
      }

      @media (max-width: 768px) {
          .hero {
              height: 40vh;
          }

          .hero-content h1 {
              font-size: 2rem;
              letter-spacing: 1px;
          }

          .hero-content p {
              font-size: 1rem;
          }
      }

      /* STORIA SECTION */
      .storia-section {
          padding: 4rem 2rem;
          max-width: 1200px;
          margin: 0 auto;
      }

      .storia-section h2 {
          font-family: 'Cinzel', serif;
          font-size: 2.5rem;
          text-align: center;
          margin-bottom: 2rem;
          color: var(--color-primary);
          position: relative;
          padding-bottom: 1rem;
      }

      .storia-section h2::after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 50%;
          transform: translateX(-50%);
          width: 80px;
          height: 3px;
          background: linear-gradient(90deg, transparent, var(--color-secondary), transparent);
      }

      .storia-content {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 3rem;
          align-items: center;
          margin-bottom: 2rem;
      }

      .storia-text {
          font-size: 1.1rem;
          line-height: 1.8;
          color: var(--color-text);
      }

      .storia-text p {
          margin-bottom: 1.5rem;
      }

      .storia-image {
          width: 100%;
          height: 400px;

          background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
          background: url(./assets/cattedrale-di-chiusi-interno.jpg);
          background-position: center;
          background-size: cover;
          background-repeat: no-repeat;

          border-radius: 8px;
          display: flex;
          align-items: center;
          justify-content: center;
          color: white;
          font-size: 1.2rem;
          font-family: 'Cinzel', serif;
          box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
      }

      .read-more {
          display: inline-block;
          color: var(--color-primary);
          text-decoration: none;
          font-family: 'Cinzel', serif;
          border-bottom: 2px solid var(--color-secondary);
          padding-bottom: 0.3rem;
          transition: all 0.3s ease;
          cursor: pointer;
      }

      .read-more:hover {
          color: var(--color-secondary);
          border-bottom-color: var(--color-primary);
      }

      @media (max-width: 768px) {
          .storia-content {
              grid-template-columns: 1fr;
          }

          .storia-section h2 {
              font-size: 1.8rem;
          }
      }

      /* LUOGHI DA VEDERE */
      .luoghi-section {
          padding: 4rem 2rem;
          background: linear-gradient(180deg, rgba(139, 69, 19, 0.05) 0%, rgba(212, 175, 55, 0.05) 100%);
      }

      .luoghi-container {
          max-width: 1200px;
          margin: 0 auto;
      }

      .luoghi-section h2 {
          font-family: 'Cinzel', serif;
          font-size: 2.5rem;
          text-align: center;
          margin-bottom: 3rem;
          color: var(--color-secondary);
          position: relative;
          padding-bottom: 1rem;
      }

      .luoghi-section h2::after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 50%;
          transform: translateX(-50%);
          width: 80px;
          height: 3px;
          background: linear-gradient(90deg, transparent, var(--color-secondary), transparent);
      }

      .lugares-grid {
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
          gap: 2rem;
      }

      .lugar-card {
          background: white;
          border-radius: 12px;
          overflow: hidden;
          cursor: pointer;
          transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
          position: relative;
          height: 350px;
      }

      .lugar-card:hover {
          transform: translateY(-30px);
          box-shadow: 0 0 40px 20px rgba(255, 117, 19, 0.893);
      }

      .lugar-image {
          width: 100%;
          height: 70%;
          background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);




          display: flex;
          align-items: center;
          justify-content: center;
          font-family: 'Cinzel', serif;
          font-size: 3rem;
          color: rgba(255, 255, 255, 0.9);
          position: relative;
          overflow: hidden;
      }

      .lugar-image::before {
          content: '';
          position: absolute;
          top: -50%;
          right: -50%;
          width: 200%;
          height: 200%;

      }

      .lugar-content {
          padding: 1.5rem;
          height: 30%;
          display: flex;
          flex-direction: column;
          justify-content: center;
          background: white;
      }

      .lugar-content h3 {
          font-family: 'Cinzel', serif;
          color: var(--color-primary);
          font-size: 1.3rem;
          margin-bottom: 0.5rem;
      }

      .lugar-content p {
          font-size: 0.9rem;
          color: #666;
          line-height: 1.4;
      }

      @media (max-width: 768px) {
          .lugares-grid {
              grid-template-columns: 1fr;
          }

          .lugar-card {
              height: 300px;
          }

          .lugar-image {
              height: 65%;
          }

          .lugar-content {
              height: 35%;
          }

          .lugares-section h2 {
              font-size: 1.8rem;
          }
      }

      /* CONTATTI SECTION */
      .contatti-section {
          padding: 4rem 2rem;
          max-width: 1200px;
          margin: 0 auto;
      }

      .contatti-section h2 {
          font-family: 'Cinzel', serif;
          font-size: 2.5rem;
          text-align: center;
          margin-bottom: 3rem;
          color: var(--color-primary);
          position: relative;
          padding-bottom: 1rem;
      }

      .contatti-section h2::after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 50%;
          transform: translateX(-50%);
          width: 80px;
          height: 3px;
          background: linear-gradient(90deg, transparent, var(--color-secondary), transparent);
      }

      .contatti-content {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 3rem;
          margin-bottom: 3rem;
      }

      .contatti-info {
          background: white;
          padding: 2rem;
          border-radius: 8px;
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
          border-left: 4px solid var(--color-secondary);
      }

      .contatti-info h3 {
          font-family: 'Cinzel', serif;
          color: var(--color-primary);
          margin-bottom: 1.5rem;
          font-size: 1.3rem;
      }

      .contatti-info p {
          margin-bottom: 1.5rem;
          font-size: 1.05rem;
          display: flex;
          align-items: center;
          gap: 1rem;
      }

      .contatti-info i {
          color: var(--color-secondary);
          font-size: 1.3rem;
          width: 30px;
          text-align: center;
      }

      .contatti-info a {
          color: var(--color-primary);
          text-decoration: none;
          transition: color 0.3s ease;
      }

      .contatti-info a:hover {
          color: var(--color-secondary);
      }

      .social-buttons {
          display: flex;
          gap: 1rem;
          margin-top: 2rem;
      }

      .social-btn {
          display: inline-flex;
          align-items: center;
          justify-content: center;
          width: 50px;
          height: 50px;
          border-radius: 50%;
          text-decoration: none;
          font-size: 1.5rem;
          transition: all 0.3s ease;
          color: white;
          box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
      }

      .social-btn.facebook {
          background: linear-gradient(135deg, #1877F2 0%, #0A66C2 100%);
      }

      .social-btn.instagram {
          background: linear-gradient(135deg, #E4405F 0%, #C13584 100%);
      }

      .social-btn:hover {
          transform: translateY(-5px);
          box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
      }

      .mappa-container {
          width: 100%;
          height: 400px;
          border-radius: 8px;
          overflow: hidden;
          box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
          margin-bottom: 2rem;
      }

      #mappa {
          width: 100%;
          height: 100%;
      }

      @media (max-width: 768px) {
          .contatti-content {
              grid-template-columns: 1fr;
          }

          .contatti-section h2 {
              font-size: 1.8rem;
          }

          .mappa-container {
              height: 300px;
          }

          .contatti-info {
              padding: 1.5rem;
          }
      }

      /* FOOTER */
      footer {
          background: linear-gradient(135deg, #8c0000 30%, #fff 1000%);
          color: var(--color-light);
          padding: 3rem 2rem 1rem;
          margin-top: 4rem;
      }

      .footer-content {
          max-width: 1200px;
          margin: 0 auto;
          display: grid;
          grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
          gap: 2rem;
          margin-bottom: 2rem;
      }

      .footer-section h3 {
          font-family: 'Cinzel', serif;
          color: var(--color-secondary);
          margin-bottom: 1rem;
          font-size: 1.1rem;
      }

      .footer-section ul {
          list-style: none;
      }

      .footer-section ul li {
          margin-bottom: 0.7rem;
      }

      .footer-section a {
          color: var(--color-light);
          text-decoration: none;
          transition: color 0.3s ease;
          font-size: 0.95rem;
      }

      .footer-section a:hover {
          color: var(--color-secondary);
      }

      .footer-bottom {
          border-top: 1px solid rgba(212, 175, 55, 0.3);
          padding-top: 1.5rem;
          text-align: center;
          font-size: 0.9rem;
          color: rgba(251, 248, 243, 0.8);
      }

      .footer-bottom p {
          margin-bottom: 0.5rem;
      }

      /* UTILITY */
      .container {
          max-width: 1200px;
          margin: 0 auto;
          padding: 0 2rem;
      }

      @media (max-width: 768px) {
          .container {
              padding: 0 1rem;
          }
      }

      /* ===== INNER PAGES ===== */

      /* PAGE HERO */
      .page-hero {
          height: 45vh;
          min-height: 320px;
          background-size: cover;
          background-position: center;
          background-repeat: no-repeat;
          display: flex;
          align-items: center;
          justify-content: center;
          text-align: center;
          color: var(--color-light);
          position: relative;
      }

      .page-hero::after {
          content: '';
          position: absolute;
          inset: 0;
          background: linear-gradient(
              to bottom,
              rgba(10, 5, 2, 0.3) 0%,
              rgba(10, 5, 2, 0.65) 100%
          );
      }

      .page-hero .hero-content {
          position: relative;
          z-index: 1;
          width: 90%;
          max-width: 800px;
      }

      .page-hero .hero-content h1 {
          font-family: 'Cinzel', serif;
          font-size: clamp(2rem, 5vw, 3.5rem);
          color: #fbf8f3;
          letter-spacing: 0.08em;
          text-shadow: 0 2px 20px rgba(0,0,0,0.6);
          margin-bottom: 0.5rem;
      }

      .page-hero .hero-content p {
          font-family: 'Crimson Text', serif;
          font-size: clamp(1rem, 2.5vw, 1.4rem);
          color: rgba(251, 248, 243, 0.85);
          font-style: italic;
          text-shadow: 0 1px 10px rgba(0,0,0,0.5);
      }

      @media (max-width: 768px) {
          .page-hero {
              height: 35vh;
          }
      }

      /* BREADCRUMB */
      .breadcrumb {
          padding: 0.8rem 2rem;
          max-width: 1200px;
          margin: 0 auto;
          font-size: 0.9rem;
          color: #666;
          border-bottom: 1px solid var(--color-border);
      }

      .breadcrumb a {
          color: var(--color-primary);
          text-decoration: none;
          transition: color 0.3s;
      }

      .breadcrumb a:hover {
          color: var(--color-secondary);
      }

      /* CONTENT SECTION */
      .content-section {
          padding: 4rem 2rem;
          max-width: 1200px;
          margin: 0 auto;
      }

      .content-section h2 {
          font-family: 'Cinzel', serif;
          font-size: 2.2rem;
          color: var(--color-primary);
          margin-bottom: 2rem;
          position: relative;
          padding-bottom: 1rem;
      }

      .content-section h2::after {
          content: '';
          position: absolute;
          bottom: 0;
          left: 0;
          width: 70px;
          height: 3px;
          background: linear-gradient(90deg, var(--color-secondary), transparent);
      }

      .content-body {
          font-size: 1.1rem;
          line-height: 1.9;
          color: var(--color-text);
      }

      .content-body p {
          margin-bottom: 1.5rem;
      }

      .content-body h3 {
          font-family: 'Cinzel', serif;
          color: var(--color-primary);
          font-size: 1.3rem;
          margin: 2rem 0 1rem;
      }

      /* TWO COLUMN LAYOUT */
      .content-two-col {
          display: grid;
          grid-template-columns: 2fr 1fr;
          gap: 3rem;
          align-items: start;
      }

      @media (max-width: 768px) {
          .content-two-col {
              grid-template-columns: 1fr;
          }

          .content-section h2 {
              font-size: 1.7rem;
          }
      }

      .content-image {
          width: 100%;
          height: 380px;
          border-radius: 8px;
          object-fit: cover;
          box-shadow: 0 10px 40px rgba(0,0,0,0.15);
          background-size: cover;
          background-position: center;
          background-repeat: no-repeat;
      }

      /* INFO BOX */
      .info-box {
          background: white;
          border-radius: 8px;
          padding: 2rem;
          box-shadow: 0 4px 20px rgba(0,0,0,0.08);
          border-left: 4px solid var(--color-secondary);
          margin-top: 2rem;
      }

      .info-box h3 {
          font-family: 'Cinzel', serif;
          color: var(--color-primary);
          margin-bottom: 1rem;
          font-size: 1.1rem;
      }

      .info-box p {
          font-size: 1rem;
          margin-bottom: 0.7rem;
          display: flex;
          align-items: center;
          gap: 0.8rem;
      }

      .info-box i {
          color: var(--color-secondary);
          width: 20px;
          text-align: center;
      }

      .info-box a {
          color: var(--color-primary);
          text-decoration: none;
      }

      .info-box a:hover {
          color: var(--color-secondary);
      }

      /* ORARI TABLE */
      .orari-table {
          width: 100%;
          border-collapse: collapse;
          font-size: 1.05rem;
      }

      .orari-table th,
      .orari-table td {
          padding: 0.9rem 1.2rem;
          text-align: left;
          border-bottom: 1px solid var(--color-border);
      }

      .orari-table th {
          font-family: 'Cinzel', serif;
          color: var(--color-primary);
          background: rgba(212,175,55,0.08);
          font-size: 0.95rem;
      }

      .orari-table tr:last-child td {
          border-bottom: none;
      }

      /* ALERT NOTE */
      .alert-note {
          background: rgba(139, 69, 19, 0.08);
          border: 1px solid rgba(139, 69, 19, 0.2);
          border-radius: 8px;
          padding: 1.2rem 1.5rem;
          margin-bottom: 2rem;
          font-size: 1rem;
          color: var(--color-primary);
          display: flex;
          align-items: flex-start;
          gap: 0.8rem;
      }

      .alert-note i {
          color: var(--color-secondary);
          margin-top: 0.2rem;
          flex-shrink: 0;
      }