/*
 * Styles for the Front Page Template
 */

    :root {
          --font-primary: 'Jost', sans-serif;
          --transition-speed: 0.3s;
          --ticker-height: 40px;
          --nav-height: 60px;

          /* Dark Theme (Default) - From Original Page */
          --color-text: #ffffff;
          --color-background: #0d0d0d;
          --color-section-background: rgba(0, 0, 0, 0.65);
          --color-primary: #ff2727;
          --color-secondary: #007cba;
          --color-overlay: rgba(0, 0, 0, 0.6);
          --color-border: rgba(255,255,255,0.2);
          --color-footer-background: rgba(0,0,0,0.8);
          --color-shadow: rgba(0,0,0,0.3);
          --particles-color: #ffffff;
          --hearts-color: rgba(255, 39, 39, 0.8);
          /* --nav-background from original was rgba(34, 34, 34, 0.95) */
          /* Reference Nav CSS uses its own --nav-background definition, ensure it's picked up or use original */
          --nav-background: rgba(34, 34, 34, 0.95); /* Using original page's nav bg for consistency */
          --color-cta-button: #ff2727;
          --color-cta-button-hover: #e60000;
          --color-input-background: rgba(255,255,255,0.9);
          --color-input-text: #000000;
          --color-input-focus-background: #ffffff;
          --color-ticker-background: rgba(0,0,0,0.7);
          --color-modal-background: rgba(0,0,0,0.9);
        }

        :root.light-theme {
          --color-text: #1a1a1a; /* Original page */
          --color-background: #f5f5f5; /* Original page */
          --color-section-background: rgba(255,255,255,0.8); /* Original page */
          --color-primary: #ff5722; /* Original page */
          --color-secondary: #2196f3; /* Original page */
          --color-overlay: rgba(255, 255, 255, 0.5); /* Original page */
          --color-border: #cccccc; /* Original page */
          --color-footer-background: #e0e0e0; /* Original page */
          --color-shadow: rgba(0,0,0,0.1); /* Original page */
          --particles-color: #ff5722; /* Original page */
          --hearts-color: rgba(33, 150, 243, 0.8); /* Original page */
          /* --nav-background from original was #f0f0f0 */
          --nav-background: #f0f0f0; /* Using original page's nav bg for consistency */
          --color-cta-button: #ff5722; /* Original page */
          --color-cta-button-hover: #e64a19; /* Original page */
          --color-input-background: rgba(0,0,0,0.05); /* Original page */
          --color-input-text: #1a1a1a; /* Original page */
          --color-input-focus-background: #e9e9e9; /* Original page */
          --color-ticker-background: rgba(230,230,230,0.8); /* Original page */
          --color-modal-background: rgba(255,255,255,0.8); /* Original page */
        }

        /* General Responsive Styles from original page */
        @media (max-width:768px) {
          html { font-size:14px; }
          .section { padding: 30px 15px; margin: 20px 0;}
          .section h2 { font-size:2rem; }
          .section p { font-size:1rem; }
          #services .service-item img { width: 100%; max-width: 300px;}
          #contact a.picture-link img { width:60px; height:60px;}
          footer p { font-size:0.9rem; }
          @media (max-width:768px) { .video-section h2 { font-size:1.8rem; } } /* from original */
        }

        *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
        html { scroll-behavior:smooth; font-size:16px; }
        body {
          font-family:var(--font-primary);
          overflow-x:hidden;
          overflow-y: scroll;
          background-color:var(--color-background);
          color:var(--color-text);
          transition: background-color var(--transition-speed), color var(--transition-speed);
          display: flex;
          flex-direction: column;
          min-height: 100vh;
        }
        main.page-content-wrapper {
            flex-grow: 1;
            position: relative;
            z-index: 1;
            margin-top: 0; /* Adjusted */
        }
        img { max-width:100%; height:auto; display:block; }

        .news-ticker { /* Ticker styles from original page */
          position:fixed; top:0; left:0; width:100%;
          background-color: var(--color-ticker-background);
          color:var(--color-text);
          text-align:center; font-size:1rem; font-weight:600;
          z-index:3000;
          height: var(--ticker-height);
          display: flex;
          align-items: center;
          overflow: hidden;
        }
        .news-ticker-content {
            display: inline-block;
            white-space: nowrap;
            padding-left: 100%;
            animation: ticker-scroll 25s linear infinite;
        }
        .news-ticker-content span { display: inline-block; }
        @keyframes ticker-scroll {
            0% { transform: translateX(0); }
            100% { transform: translateX(-100%); }
        }
        .news-ticker:hover .news-ticker-content { animation-play-state: paused; }

        .parallax {
          position:fixed; top:0; left:0; width:100%; height:100%;
          background:url('https://onelovedao.org/wp-content/uploads/2024/10/Residency-BG.jpg') no-repeat center center fixed;
          background-size:cover; z-index:-3;
        }

        #rectangle {
          margin-top: calc(var(--ticker-height) + var(--nav-height)); /* Adjusted */
          width: 100%; height: 55vh;
          background-color: var(--color-section-background);
          border-top:3px solid var(--color-primary); border-bottom:3px solid var(--color-primary);
          z-index:0; overflow:hidden;
          transition: height var(--transition-speed), background-color var(--transition-speed), border-color var(--transition-speed);
          display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative;
        }
        #particles-js, canvas#hearts-canvas {
          position:absolute; top:0; left:0; width:100%; height:100%; z-index:1;
        }
        #rectangle .central-image {
          display: flex; justify-content: center; align-items: center;
          width: 100%; height: 100%; padding: 20px; box-sizing: border-box;
          position: relative; z-index: 1;
        }
        #rectangle .central-image img#central-image {
          max-width: 300px; height: auto; border-radius: 8px;
          transition: transform var(--transition-speed), max-width var(--transition-speed);
          object-fit: contain;
        }
        #rectangle .central-image img#central-image:hover { transform: scale(1.05); }

        @media (max-width: 768px) {
            #rectangle { height: 45vh; min-height: 300px; }
            #rectangle .central-image img#central-image { max-width: 260px; }
        }
        @media (max-width: 480px) {
            #rectangle { height: 40vh; min-height: 250px; }
            #rectangle .central-image img#central-image { max-width: 220px; }
        }

       /* Navigation Bar Styling */
     nav {
       position: fixed;
       top: 33px; /* Adjusted for ticker */
       width: 100%;
       background: var(--nav-background);
       padding: 0px 20px;
       z-index: 2000;
       display: flex;
       justify-content: space-between;
       align-items: center;
       box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
       transition: background-color var(--transition-speed), box-shadow var(--transition-speed), padding var(--transition-speed);
     }

     nav.scrolled {
       background: rgba(34, 34, 34, 1);
       box-shadow: 0 4px 6px rgba(0, 0, 0, 0.5);
     }

     /* Logo Styling */
     nav .logo {
       display: flex;
       align-items: center;
       font-size: 1.8rem;
       font-weight: 700;
       color: var(--color-text);
       text-decoration: none;
     }
     /* Navigation Links */
     nav .menu {
       display: flex;
       align-items: center;
       gap: 20px;
     }

     nav .menu a {
       color: var(--color-text);
       text-decoration: none;
       font-size: 1rem;
       font-weight: 500;
       position: relative;
       transition: color var(--transition-speed);
     }

     nav .menu a:hover {
       color: var(--color-primary);
     }

     /* Dropdown Menu */
     nav .dropdown {
       position: relative;
      
     }

     nav .dropdown-toggle {
       display: flex;
       align-items: center;
       cursor: pointer;
       color: var(--color-text);
       text-decoration: none;
       font-size: 1rem;
       font-weight: 500;
       transition: color var(--transition-speed);
     }

     nav .dropdown-toggle:hover {
       color: var(--color-primary);
     }

     nav .dropdown-toggle i {
       margin-left: 5px;
       transition: transform var(--transition-speed);
     }

     nav .dropdown.open .dropdown-toggle i {
       transform: rotate(180deg);
     }

     nav .dropdown-menu {
       position: absolute;
       top: 100%;
       left: 0;
       background: var(--nav-background);
       border-radius: 5px;
       overflow: hidden;
       display: none;
       flex-direction: column;
       min-width: 200px;
       box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
       transition: opacity var(--transition-speed), visibility var(--transition-speed);
       opacity: 1;
       visibility: hidden;
     }

     nav .dropdown.open .dropdown-menu {
       display: flex;
       opacity: 1;
       visibility: visible;
     }

     nav .dropdown-menu a {
       padding: 10px 15px;
       color: var(--color-text);
       text-decoration: none;
       font-size: 0.95rem;
       transition: background-color var(--transition-speed), color var(--transition-speed);
     }

     nav .dropdown-menu a:hover {
       background-color: var(--color-primary);
       color: #fff;
     }

     /* Theme Toggle Styling */
     .theme-toggle {
       margin-left: 20px;
       display: flex;
       align-items: center;
     }

     .theme-toggle input[type='checkbox'] {
       display: none;
     }

     .theme-toggle label {
       cursor: pointer;
       display: flex;
       align-items: center;
       justify-content: center;
       width: 50px; /* Increased width */
       height: 25px; /* Increased height */
       background-color: var(--color-overlay);
       border-radius: 25px;
       position: relative;
       transition: background-color var(--transition-speed);
     }

     .theme-toggle label::after {
       content: '';
       position: absolute;
       top: 3px;
       left: 3px;
       width: 19px;
       height: 19px;
       background-color: var(--color-text);
       border-radius: 50%;
       transition: transform var(--transition-speed), background-color var(--transition-speed);
     }

     .theme-toggle input[type='checkbox']:checked + label {
       background-color: var(--color-primary);
     }

     .theme-toggle input[type='checkbox']:checked + label::after {
       transform: translateX(25px); /* Adjusted for increased width */
       background-color: #fff;
     }

     .theme-toggle label i {
       position: absolute;
       font-size: 12px;
       color: #f1c40f; /* Bright color for visibility */
     }

     .theme-toggle label .fa-moon {
       left: 5px;
     }

     .theme-toggle label .fa-sun {
       right: 5px;
     }

     /* Hamburger Menu Styling */
     .hamburger {
       display: none; /* Hidden on large screens */
       flex-direction: column;
       justify-content: space-between;
       width: 25px;
       height: 20px;
       cursor: pointer;
       z-index: 2001; /* Above the nav */
     }

     .hamburger div {
       width: 100%;
       height: 3px;
       background-color: var(--color-text);
       transition: transform var(--transition-speed), opacity var(--transition-speed);
     }

     /* Hamburger Animation when Open */
     .hamburger.open div:nth-child(1) {
       transform: rotate(45deg) translate(5px, 5px);
     }

     .hamburger.open div:nth-child(2) {
       opacity: 0;
     }

     .hamburger.open div:nth-child(3) {
       transform: rotate(-45deg) translate(5px, -5px);
     }

     /* Responsive Navigation */
     @media (max-width: 768px) {
       nav {
         padding: 15px 20px;
       }

       /* Show hamburger on small screens */
       .hamburger {
         display: flex;
       }

       /* Hide menu by default on small screens */
       nav .menu {
         position: fixed;
         top: 60px;
         right: 0;
         height: calc(100vh - 60px);
         width: 250px;
         background: var(--nav-background);
         flex-direction: column;
         align-items: flex-start;
         padding-top: 20px;
         transform: translateX(100%);
         transition: transform var(--transition-speed);
         gap: 20px;
         overflow-y: auto;
       }

       /* Slide in menu when open */
       nav .menu.open {
         transform: translateX(0);
       }

       /* Navigation links in the menu */
       nav .menu a,
       nav .menu .dropdown-toggle {
         padding: 10px 20px;
         width: 100%;
         font-size: 1.1rem;
       }

       /* Dropdown menu adjustments for mobile */
       nav .dropdown-menu {
         position: static;
         top: auto;
         left: auto;
         background: var(--nav-background);
         box-shadow: none;
         opacity: 1;
         visibility: visible;
         display: none;
         flex-direction: column;
         width: 100%;
       }

       nav .dropdown.open .dropdown-menu {
         display: flex;
       }

       nav .dropdown-menu a {
         padding-left: 20px;
         font-size: 1rem;
       }
     }


        
        .page-content-wrapper {
            max-width: 1200px; margin-left: auto; margin-right: auto;
            padding-left: 20px; padding-right: 20px;
        }
        .section {
          padding:60px 30px; background-color:var(--color-section-background);
          margin:40px 0; border-radius:10px;
          box-shadow:0 6px 12px var(--color-shadow);
          text-align:center; animation:fadeIn 1s ease-in-out;
        }
        .section h2 {
          font-size:2.8rem; margin-bottom:30px; color:var(--color-primary);
          text-shadow:1px 1px 2px rgba(0,0,0,0.5);
          padding:12px; border-radius:6px; font-weight:700;
        }
        .section p { font-size:1.2rem; margin-bottom:20px; font-weight:400; line-height: 1.6; }

        #services .service-list { display:flex; flex-direction:column; gap:40px; margin-top:30px; }
        #services .service-item {
          display:flex; align-items:center; gap:20px; padding:20px; background:var(--color-section-background);
          border-radius:10px; box-shadow:0 4px 8px var(--color-shadow); transition:transform var(--transition-speed);
        }
        #services .service-item:nth-child(even) { flex-direction:row-reverse; }
        #services .service-item:hover { transform:translateY(-5px); }
        #services .service-item img {
          flex-shrink:0; width:350px; height:230px; object-fit:contain; background:#000; border-radius:8px;
        }
        #services .service-item .content { flex:1; text-align: left; }
        #services .service-item .content h3 { margin:0 0 10px; font-size:1.4rem; color:var(--color-primary); text-shadow: none; padding: 0; }
        #services .service-item .content p { margin:0; font-size:1rem; line-height:1.4; color:var(--color-text); text-shadow: none; padding: 0; text-align: left;}
                #services .service-item .content a { text-decoration:none; color:var(--color-secondary); font-weight:600; }
        #services .service-item .content a:hover { text-decoration:underline; }
        @media (max-width:992px) {
          #services .service-item { flex-direction:column !important; text-align:center; gap:15px; }
          #services .service-item .content { text-align: center; }
          #services .service-item .content p { text-align: center; }
          #services .service-item img { width:100%; max-width:400px; height:auto; margin:0 auto 20px; }
        }

        #grants { background:linear-gradient(135deg,rgba(255,39,39,0.2),rgba(0,124,186,0.2)); padding:60px 30px; border-radius:12px; }
        #grants .grant-list { display:flex; flex-direction:column; gap:50px; }
        #grants .grant-item { display:flex; align-items:center; gap:30px; text-align: left; }
        #grants .grant-item h3 {
            margin:0 0 15px; font-size:1.6rem; color:var(--color-secondary);
            text-shadow: none; padding: 0; text-align: left;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
        }
        #grants .grant-item p { margin:0; font-size:1.1rem; line-height:1.5; color:var(--color-text); text-shadow: none; padding: 0; text-align: left;}
        @media (max-width:768px) {
          #grants .grant-item { flex-direction:column !important; text-align:center; gap:15px; }
          #grants .grant-item h3, #grants .grant-item p { text-align: center; }
          #grants .grant-item h3 { font-size:1.4rem; }
          #grants .grant-item p { font-size:1rem; line-height:1.5; }
        }

        .scroll-container { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:15px; padding:20px; }
        .scroll-container::-webkit-scrollbar { height:12px; }
        .scroll-container::-webkit-scrollbar-track { background:rgba(255,255,255,0.2); border-radius:6px; }
        .scroll-container::-webkit-scrollbar-thumb { background-color:var(--color-primary); border-radius:6px; }
        .carousel-item {
          position:relative; overflow:hidden; border-radius:15px; box-shadow:0 10px 20px var(--color-shadow);
          flex:0 0 auto; width:200px; height:200px; scroll-snap-align:start; background-color:var(--color-background);
          transition:transform var(--transition-speed);
        }
        .carousel-item img { width:100%; height:100%; object-fit:cover; transition:transform var(--transition-speed); }
        .carousel-item:hover img { transform:scale(1.05); }
        .carousel-item .overlay {
          position:absolute; bottom:0; left:0; width:100%; background:linear-gradient(to top,rgba(0,0,0,0.7),transparent);
          color:#fff; text-align:center; padding:5px 0; font-size:0.8rem; font-weight:600; opacity:0;
          transition:opacity var(--transition-speed),transform var(--transition-speed);
          border-bottom-left-radius:15px; border-bottom-right-radius:15px;
        }
        .carousel-item:hover .overlay { opacity:1; transform:translateY(0); }

        .video-container { position:relative; padding-bottom:56.25%; height:0; }
        .video-container video {
          position:absolute; top:0; left:0; width:100%; height:100%; border-radius:8px;
          box-shadow:0 6px 12px var(--color-shadow); transition:transform var(--transition-speed);
        }
        .video-container video:hover { transform:scale(1.05); }
        .video-container iframe {
            position: absolute; top: 0; left: 0; width: 100%; height: 100%;
            border-radius: 8px; box-shadow: 0 6px 12px var(--color-shadow); border: 0;
        }

        #cta a.cta-button {
            display: inline-block; padding: 12px 25px; background-color: var(--color-cta-button);
            color: var(--color-text); text-decoration: none; border-radius: 5px;
            font-weight: 600; font-size: 1.1rem;
            transition: background-color var(--transition-speed), transform var(--transition-speed);
            margin-top: 20px;
        }
        :root.dark-theme #cta a.cta-button { color: #ffffff; }
        :root.light-theme #cta a.cta-button { color: #ffffff; }
        #cta a.cta-button:hover { background-color: var(--color-cta-button-hover); transform: scale(1.05); }

        #founders .founders-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 30px; padding: 20px; }
        #founders .founder-item {
          display: flex; flex-direction: column; align-items: center; text-align: center;
          padding: 20px; border-radius: 10px; background: var(--color-background);
          box-shadow: 0 4px 10px var(--color-shadow);
          transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        #founders .founder-item:hover { transform: translateY(-5px); box-shadow: 0 8px 16px var(--color-shadow); }
        #founders .founder-item img {
          width: 120px; height: 120px; object-fit: cover; border-radius: 50%;
          margin-bottom: 15px; border: 3px solid var(--color-primary);
        }
        #founders .founder-name { font-size: 1.25rem; font-weight: 600; color: var(--color-primary); margin: 0 0 8px; text-shadow: none; padding:0; }
        #founders .founder-bio { font-size: 0.9rem; color: var(--color-text); line-height: 1.5; margin-bottom: 0; text-shadow: none; padding: 0; text-align: center; }
        #founders .founder-bio-container { margin-bottom: 10px; min-height: 70px; width: 100%; }
        #founders .founder-bio .bio-short { display: inline; }
        #founders .founder-bio .bio-more-text { display: none; }
        #founders .founder-bio .read-more-btn {
          display: inline-block; cursor: pointer; color: var(--color-secondary); font-weight: 600;
          text-decoration: underline; margin-left: 5px; margin-top: 5px; transition: color var(--transition-speed);
        }
        #founders .founder-bio .read-more-btn:hover { color: var(--color-primary); }
        #founders .founder-bio.expanded .bio-short { display: block; margin-bottom: 8px; }
        #founders .founder-bio.expanded .bio-more-text { display: block !important; margin-bottom: 8px; }
        #founders .founder-bio.expanded .read-more-btn { display: block; margin-left: 0; margin-top: 10px; }
        #founders .founder-item .founder-social { margin-top: 10px; }
        #founders .founder-item .founder-social-link { display: inline-block; text-decoration: none; line-height: 1; }
        #founders .founder-item .founder-social-link i.fab.fa-twitter {
          font-family: "Font Awesome 6 Brands"; font-weight: 400; font-style: normal; font-variant: normal;
          text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
          font-size: 1.5rem; vertical-align: middle; transition: transform var(--transition-speed), color var(--transition-speed);
          color: #FF0000; /* Specific color from original */
        }
        #founders .founder-item .founder-social-link:hover i.fab.fa-twitter { transform: scale(1.15); }

        #partners-preview > a > h2 { transition: transform var(--transition-speed), color var(--transition-speed); display: inline-block; }
        #partners-preview > a:hover > h2 { transform: scale(1.03); }

        #contact { max-width:800px; margin-left: auto; margin-right: auto; }
        #contact p { font-size: 1.3rem; text-align: center; }
        #contact .contact-links { display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; }
        #contact a.picture-link { display:inline-block; }
        #contact a.picture-link img { width:80px; height:80px; transition: transform var(--transition-speed); }
        #contact a.picture-link img:hover { transform: scale(1.1); }
        #contact form { display:flex; flex-direction:column; gap:15px; max-width:600px; margin:0 auto; }
        #contact form input, #contact form textarea {
          padding:14px 20px; border:none; border-radius:5px; font-size:1rem;
          background: var(--color-input-background); color: var(--color-input-text);
          transition:box-shadow var(--transition-speed);
        }
        #contact form input:focus, #contact form textarea:focus {
          box-shadow:0 0 5px var(--color-primary); background: var(--color-input-focus-background);
        }
        #contact form button {
          padding:16px 24px; background:var(--color-cta-button); color:var(--color-text);
          border:none; border-radius:5px; font-size:1.1rem; cursor:pointer;
          transition:transform var(--transition-speed), background-color var(--transition-speed);
        }
        :root.dark-theme #contact form button { color: #ffffff; }
        :root.light-theme #contact form button { color: #ffffff; }
        #contact form button:hover { transform:scale(1.05); background:var(--color-cta-button-hover); }

        footer {
          text-align:center; padding:20px; background-color:var(--color-footer-background);
          color:var(--color-text); transition:background-color var(--transition-speed);
          box-shadow:0 -2px 4px var(--color-shadow); border-radius:8px 8px 0 0;
          position:relative; z-index:10; width:100%; margin-top: auto; /* Keep footer at bottom */
        }
        footer p { margin:0; font-size:1rem; }
        footer .social-links { margin-bottom:10px; }
        footer .social-links a { margin:0 8px; font-size:1.2rem; color:var(--color-text); transition:color var(--transition-speed); }
        footer .social-links a:hover { color:var(--color-primary); }

        .modal {
          display: none; position: fixed; z-index: 4000; padding-top: 60px;
          left: 0; top: 0; width: 100%; height: 100%; overflow: auto;
          background-color: var(--color-modal-background);
        }
        .modal-content { margin: auto; display: block; width: 90%; max-width: 700px; border-radius: 10px; box-shadow: 0 4px 8px var(--color-shadow); }
        #captionModal, #caption {
          margin: 15px auto; display: block; width: 80%; max-width: 700px;
          text-align: center; color: #ccc; padding: 10px 0;
          background-color: rgba(0,0,0,0.6); border-radius: 5px;
          font-size: 1.1rem; font-weight: 500;
        }
        :root.light-theme #captionModal, :root.light-theme #caption { color: var(--color-text); background-color: rgba(255,255,255,0.7); }
        .close-modal-btn, .close { /* .close for wider compatibility */
          position: absolute; top: 20px; right: 35px; color: #fff;
          font-size: 40px; font-weight: bold; transition: color var(--transition-speed);
          cursor: pointer; z-index: 4001;
        }
        .close-modal-btn:hover, .close-modal-btn:focus, .close:hover, .close:focus { color: var(--color-primary); text-decoration: none; }

        body::-webkit-scrollbar { width: 12px; }
        body::-webkit-scrollbar-thumb { background: var(--color-primary); border-radius: 6px; border: 3px solid transparent; background-clip: padding-box; }
        :root.dark-theme body::-webkit-scrollbar-track { background: #333; }
        :root.light-theme body::-webkit-scrollbar-track { background: #ddd; }

        @keyframes fadeIn { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
        @media (max-width:480px) {
          html { font-size:13px; }
          .page-content-wrapper { padding-left:15px; padding-right:15px; }
          .section { padding: 20px 10px; margin: 15px 0;}
          .section h2 { font-size:1.8rem; }
          .section p { font-size:0.95rem; }
          #services .service-item img { max-width: 250px;}
          #contact a.picture-link img { width:50px; height:50px;}
          footer p { font-size:0.8rem; }
          @media (max-width:480px) { .video-section h2 { font-size:1.6rem; } } /* from original */
        }
/* --- Cookie Banner Styles --- */
.cookie-banner {
    position: fixed;
    bottom: -100%; /* Initially hidden */
    left: 0;
    width: 100%;
    background: var(--nav-background);
    color: var(--color-text);
    padding: 1rem 2rem;
    z-index: 2000;
    box-shadow: 0 -5px 20px var(--color-shadow);
    transition: bottom 0.5s ease-in-out;
    border-top: 1px solid var(--color-border);
}

.cookie-banner.show {
    bottom: 0; /* Slides into view */
}

.cookie-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    gap: 1rem;
}

.cookie-content p {
    margin: 0;
}

.cookie-actions {
    display: flex;
    gap: 1rem;
    flex-shrink: 0;
}

.cookie-button {
    background: var(--color-primary);
    color: white;
    border: none;
    padding: 0.6rem 1.2rem;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 500;
    transition: all var(--transition-speed);
}

.cookie-button:hover {
    background: var(--color-cta-button-hover);
    transform: translateY(-2px);
}

.cookie-button.decline {
    background: none;
    border: 1px solid var(--color-border);
    color: var(--color-text);
}

.cookie-button.decline:hover {
    background: var(--color-text);
    color: var(--color-background);
}


/* --- Newsletter Popup Styles --- */
.newsletter-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--color-modal-background);
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--transition-speed), visibility var(--transition-speed);
    overflow: hidden;
}

.newsletter-overlay.show {
    opacity: 1;
    visibility: visible;
}

.newsletter-popup {
    background: var(--color-background);
    padding: 2rem;
    border-radius: 15px;
    border: 1px solid var(--color-border);
    box-shadow: 0 10px 40px var(--color-shadow);
    max-width: 450px;
    width: 90%;
    text-align: center;
    position: relative;
    transform: scale(0.9);
    transition: transform var(--transition-speed);
}

.newsletter-overlay.show .newsletter-popup {
    transform: scale(1);
}

.newsletter-close-btn {
    position: absolute;
    top: 10px;
  right: 15px;
  background: none;
  border: none;
  font-size: 2rem;
  color: var(--color-text);
  cursor: pointer;
  opacity: 0.7;
}

.cookie-button.decline {
  background: none;
  border: 1px solid var(--color-border);
  color: var(--color-text);
}

.newsletter-popup h3 {
    color: var(--color-primary);
    margin-top: 0;
    font-size: 1.8rem;
}


/* --- Success Message Styles --- */
.success-message {
    position: fixed;
    top: calc(var(--nav-height) + 1rem);
    right: -100%; /* Initially hidden */
    background: linear-gradient(45deg, var(--color-primary), var(--color-secondary));
    color: white;
    padding: 1rem 1.5rem;
    border-radius: 8px;
    z-index: 9999;
    font-weight: 500;
    box-shadow: 0 5px 15px var(--color-shadow);
    transition: right 0.5s ease-in-out;
}

.success-message.show {
    right: 1rem; /* Slides into view */
}

/* Mobile responsiveness for modals and banners */
@media (max-width: 768px) {
    .cookie-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    
    .cookie-actions {
        width: 100%;
        justify-content: space-between;
    }
    
    .newsletter-overlay {
        align-items: flex-start;
        padding-top: 2rem;
    }
    
    .newsletter-popup {
        padding: 1.5rem;
        max-width: 90%;
    }
    
    .newsletter-popup h3 {
        font-size: 1.5rem;
    }
}

@media (max-width:480px) {
    .cookie-banner {
        padding: 1rem;
    }
    
    .cookie-content p {
        font-size: 0.9rem;
    }
    
    .newsletter-overlay {
        padding-top: 1rem;
    }
    
    .newsletter-popup {
        padding: 1rem;
        max-width: 95%;
    }
    
    .newsletter-popup h3 {
        font-size: 1.3rem;
    }

    .page-content-wrapper { 
        max-width: none; 
        margin: 0; 
        padding-left: 0; 
        padding-right: 0; 
    }

    .section { 
        margin: 10px 0; 
        padding: 15px 0; 
    }

    .scroll-container { 
        display: flex;
        overflow-x: auto;
        gap: 10px;
        padding: 10px;
    }

    .scroll-container::-webkit-scrollbar { 
        width: 12px; 
        height: 12px; 
    }    .carousel-item { 
        flex: 0 0 250px; 
        height: 250px; 
    }

    #rectangle .central-image { 
        padding: 10px; 
    }

    ::-webkit-scrollbar {
        width: 0;
    }
}